# Conflicts:
#	fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/mapper/CardFuelRecordMapper.java
This commit is contained in:
wangh 2023-12-18 17:43:57 +08:00
commit 96f978ae11
50 changed files with 1684 additions and 431 deletions

View File

@ -243,13 +243,17 @@ public class ActiveConsumptionServiceImpl extends ServiceImpl<ActiveConsumptionM
}
}
}
ArrayList<String> oilNameList = new ArrayList<>();
//油号名字
String oilName = "";
for (Integer id : s.getAdaptOil()) {
oilName += oilNameService.selectOilNameById(id).getOilName()+",";
String oilName = oilNameService.selectOilNameById(id).getOilName();
oilNameList.add(oilName);
}
activeConsumptionAppletVO.setActiveDescribe(s.getName() + ""+"本活动"+oilName+"油品可用,消费需满"+
s.getParticipationConditionMoney()+"元,"+ adaptUserType+"可用,赠送券:"+card+" 赠送物品:"+goods+" 赠送积分:"+s.getPoints()+"积分。");
activeConsumptionAppletVO.setOilName(oilNameList);
activeConsumptionAppletVO.setPoints(s.getPoints());
activeConsumptionAppletVO.setAdaptUserType(adaptUserType);
activeConsumptionAppletVO.setActiveDescribe(s.getName() + ""+"本活动消费需满"+
s.getParticipationConditionMoney()+"元,赠送券:"+card+" 赠送物品:"+goods+"");
return activeConsumptionAppletVO;
}).collect(Collectors.toList());
return appletVOList;

View File

@ -3,11 +3,19 @@ package com.fuint.business.marketingActivity.activeConsumption.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ActiveConsumptionAppletVO implements Serializable {
//活动描述
private String activeDescribe;
//活动时间
private String time;
//参与油品
private List<String> oilName;
//积分
private Integer points;
//可用用户
private String adaptUserType;
}

View File

@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -225,9 +226,10 @@ public class ActiveDiscountServiceImpl extends ServiceImpl<ActiveDiscountMapper,
String formatEd = dateFormat.format(s.getActiveEndTime());
activeDiscountAppletVO.setTime(formatSt+"-" + formatEd+"");
//油号名字
String oilName = "";
ArrayList<String> oilNameList = new ArrayList<>();
for (Integer id : s.getAdaptOil()) {
oilName += oilNameService.selectOilNameById(id).getOilName() + ",";
String oilName = oilNameService.selectOilNameById(id).getOilName();
oilNameList.add(oilName);
}
//适用用户名
String adaptUserType = "";
@ -242,7 +244,10 @@ public class ActiveDiscountServiceImpl extends ServiceImpl<ActiveDiscountMapper,
discount = activeDiscountChild.getDiscount();
}
}
activeDiscountAppletVO.setDiscountActiveDescribe(s.getName() + ":本活动:适用用户为:"+adaptUserType+"购买如下油品:" + oilName + ",享受满" +
activeDiscountAppletVO.setAdaptUserType(adaptUserType);
activeDiscountAppletVO.setOilName(oilNameList);
activeDiscountAppletVO.setDiscountActiveDescribe(s.getName() + ",享受满" +
amount + "元,打" + discount + "折。");
return activeDiscountAppletVO;
}).collect(Collectors.toList());

View File

@ -3,10 +3,18 @@ package com.fuint.business.marketingActivity.activeDiscount.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ActiveDiscountAppletVO implements Serializable {
//活动描述
private String discountActiveDescribe;
//活动时间
private String time;
//参与油品
private List<String> oilName;
//积分
private Integer points;
//可用用户
private String adaptUserType;
}

View File

@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -225,9 +226,10 @@ public class ActiveFullminusServiceImpl extends ServiceImpl<ActiveFullminusMappe
String formatEd = dateFormat.format(s.getActiveEndTime());
activeFullminusAppletVO.setTime(formatSt+"-" + formatEd+"");
//油号名字
String oilName = "";
ArrayList<String> oilNameList = new ArrayList<>();
for (Integer id : s.getAdaptOil()) {
oilName += oilNameService.selectOilNameById(id).getOilName() + ",";
String oilName = oilNameService.selectOilNameById(id).getOilName();
oilNameList.add(oilName);
}
//适用用户名
String adaptUserType = "";
@ -242,7 +244,9 @@ public class ActiveFullminusServiceImpl extends ServiceImpl<ActiveFullminusMappe
discount = activeDiscountChild.getDeductionAmount();
}
}
activeFullminusAppletVO.setFullminusActiveDescribe(s.getName() + ":本活动:适用用户为:"+adaptUserType+"购买如下油品:" + oilName + ",享受满" +
activeFullminusAppletVO.setAdaptUserType(adaptUserType);
activeFullminusAppletVO.setOilName(oilNameList);
activeFullminusAppletVO.setFullminusActiveDescribe(s.getName() +"享受满" +
amount + "元,减" + discount + "元。");
return activeFullminusAppletVO;
}).collect(Collectors.toList());

View File

@ -3,10 +3,18 @@ package com.fuint.business.marketingActivity.activeFullminus.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ActiveFullminusAppletVO implements Serializable {
//活动描述
private String fullminusActiveDescribe;
//活动时间
private String time;
//参与油品
private List<String> oilName;
//积分
private Integer points;
//可用用户
private String adaptUserType;
}

View File

@ -251,7 +251,11 @@ public class ActiveNewlywedsServiceImpl extends ServiceImpl<ActiveNewlywedsMappe
}
}
//邀请人的券
activeNewlywedsAppletVO.setNewlywedsActiveDescribe("优惠券:"+cardi1+"兑换券:"+cardo1);
//积分
activeNewlywedsAppletVO.setPoint(activeNewlywedsVO.getPoints().toString());
//成长值
activeNewlywedsAppletVO.setGrowValue(activeNewlywedsVO.getGrowthValue().toString());
activeNewlywedsAppletVO.setNewlywedsActiveDescribe("欢迎各位亲朋好友参加本店的新人有礼活动,我们有丰厚的奖励哦,参加即送优惠券:"+cardi1+"兑换券:"+cardo1);
return activeNewlywedsAppletVO;
}

View File

@ -194,9 +194,15 @@ public class ActiveRecommendServiceImpl extends ServiceImpl<ActiveRecommendMappe
}
}
//邀请人的券
activeRecommendAppletVO.setRecommendActiveDescribeIn("优惠券:"+cardi1+"兑换券:"+cardo1);
//活动时间
activeRecommendAppletVO.setTime("永久有效");
//积分
activeRecommendAppletVO.setPoint(activeRecommendVO.getPoints().toString());
//成长值
activeRecommendAppletVO.setGrowValue(activeRecommendVO.getGrowthValue().toString());
activeRecommendAppletVO.setRecommendActiveDescribeIn("欢迎各位亲朋好友来参加本店的推荐有礼活动,对于邀请人,参加即送:优惠券:"+cardi1+"兑换券:"+cardo1);
//被邀请人的券
activeRecommendAppletVO.setRecommendActiveDescribeOut("优惠券:"+cardi2);
activeRecommendAppletVO.setRecommendActiveDescribeOut("对于被邀请人,参加即送:优惠券:"+cardi2);
return activeRecommendAppletVO;
}

View File

@ -1,6 +1,7 @@
package com.fuint.business.marketingActivity.cardExchange.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.marketingActivity.cardExchange.dto.CardExchangeRecordDTO;
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
import com.fuint.business.marketingActivity.cardExchange.service.CardExchangeRecordService;
import com.fuint.framework.web.BaseController;
@ -58,6 +59,21 @@ public class CardExchangeRecordController extends BaseController {
return getSuccessResult(this.cardExchangeRecordService.selectIsUsed(page,cardExchangeRecord));
}
/**
* 核销记录小程序端
* @param pageNo
* @param pageSize
* @param cardExchangeRecordDTO
* @return
*/
@GetMapping("selectCancelRecords")
public ResponseObject selectCancelRecords(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("cardFuelDiesel") CardExchangeRecordDTO cardExchangeRecordDTO) {
Page page = new Page(pageNo, pageSize);
return getSuccessResult(this.cardExchangeRecordService.selectCancelRecords(page,cardExchangeRecordDTO));
}
/**
* 通过主键查询单条数据
*

View File

@ -0,0 +1,12 @@
package com.fuint.business.marketingActivity.cardExchange.dto;
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
import lombok.Data;
import java.io.Serializable;
@Data
public class CardExchangeRecordDTO extends CardExchangeRecord implements Serializable {
//卡券类型
private String cardType;
}

View File

@ -1,7 +1,12 @@
package com.fuint.business.marketingActivity.cardExchange.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.marketingActivity.cardExchange.dto.CardExchangeRecordDTO;
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
import com.fuint.business.marketingActivity.cardExchange.vo.CardExchangeRecordVO;
import org.apache.ibatis.annotations.Param;
/**
* 兑换券领取记录表(CardExchangeRecord)表数据库访问层
@ -11,5 +16,12 @@ import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeReco
*/
public interface CardExchangeRecordMapper extends BaseMapper<CardExchangeRecord> {
/**
* 核销记录小程序端
* @param page
* @param cardExchangeRecordDTO
* @return
*/
IPage<CardExchangeRecordVO> selectCancelRecords(@Param("page") Page page, @Param("cardExchangeRecordDTO") CardExchangeRecordDTO cardExchangeRecordDTO);
}

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.marketingActivity.cardExchange.mapper.CardExchangeRecordMapper">
<select id="selectCancelRecords" resultType="com.fuint.business.marketingActivity.cardExchange.vo.CardExchangeRecordVO">
SELECT
card_favorables.couponType cardType,
card_favorables.couponName cardName,
card_favorables.id id,
card_favorables.updateTime updateTime,
card_favorables.couponContent cardContent
from
(SELECT
'兑换券' AS couponType,
ce.NAME couponName, ce.id id, ce.count couponAmount, ce.use_instructions couponContent,cer.update_time updateTime
FROM
card_exchange_record cer
LEFT JOIN card_exchange ce ON cer.card_exchange_id = ce.id
WHERE
cer.mt_user_id = #{cardExchangeRecordDTO.mtUserId}
and cer.store_id = #{cardExchangeRecordDTO.storeId}
and cer.status = 1
and ce.type = 0 UNION ALL
SELECT
'洗车券' AS couponType,
ce.NAME couponName, ce.id id, ce.count couponAmount, ce.use_instructions couponContent,cer.update_time updateTime
FROM
card_exchange_record cer
LEFT JOIN card_exchange ce ON cer.card_exchange_id = ce.id
WHERE
cer.mt_user_id = #{cardExchangeRecordDTO.mtUserId}
and cer.store_id = #{cardExchangeRecordDTO.storeId}
and cer.status = 1
and ce.type = 1 UNION ALL
SELECT
'洗车卡' AS couponType,
ce.NAME couponName, ce.id id, ce.count couponAmount, ce.use_instructions couponContent,cer.update_time updateTime
FROM
card_exchange_record cer
LEFT JOIN card_exchange ce ON cer.card_exchange_id = ce.id
WHERE
cer.mt_user_id = #{cardExchangeRecordDTO.mtUserId}
and cer.store_id = #{cardExchangeRecordDTO.storeId}
and cer.status = 1
and ce.type = 2) AS card_favorables
<where>
<if test="cardExchangeRecordDTO.cardType != null and cardExchangeRecordDTO.cardType != ''">
and card_favorables.couponType = #{cardExchangeRecordDTO.cardType}
</if>
</where>
</select>
</mapper>

View File

@ -3,7 +3,11 @@ package com.fuint.business.marketingActivity.cardExchange.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fuint.business.marketingActivity.cardExchange.dto.CardExchangeRecordDTO;
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
import com.fuint.business.marketingActivity.cardExchange.vo.CardExchangeRecordVO;
import java.util.List;
/**
* 兑换券领取记录表(CardExchangeRecord)表服务接口
@ -28,5 +32,13 @@ public interface CardExchangeRecordService extends IService<CardExchangeRecord>
* @return
*/
IPage selectIsUsed(Page page, CardExchangeRecord cardExchangeRecord);
/**
* 核销记录小程序端
* @param page
* @param cardExchangeRecordDTO
* @return
*/
IPage<CardExchangeRecordVO> selectCancelRecords (Page page, CardExchangeRecordDTO cardExchangeRecordDTO);
}

View File

@ -4,15 +4,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.marketingActivity.cardExchange.dto.CardExchangeRecordDTO;
import com.fuint.business.marketingActivity.cardExchange.mapper.CardExchangeRecordMapper;
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
import com.fuint.business.marketingActivity.cardExchange.service.CardExchangeRecordService;
import com.fuint.business.marketingActivity.cardExchange.vo.CardExchangeRecordVO;
import com.fuint.business.store.service.StoreService;
import com.fuint.common.util.TokenUtil;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 兑换券领取记录表(CardExchangeRecord)表服务实现类
@ -24,6 +27,8 @@ import javax.annotation.Resource;
public class CardExchangeRecordServiceImpl extends ServiceImpl<CardExchangeRecordMapper, CardExchangeRecord> implements CardExchangeRecordService {
@Resource
private StoreService storeService;
@Resource
private CardExchangeRecordMapper cardExchangeRecordMapper;
/**
* 分页查询
* @param page
@ -90,5 +95,18 @@ public class CardExchangeRecordServiceImpl extends ServiceImpl<CardExchangeRecor
queryWrapper.orderByDesc(CardExchangeRecord::getCreateTime);
return page(page, queryWrapper);
}
/**
* 核销记录小程序端
* @param page
* @param cardExchangeRecordDTO
* @return
*/
@Override
public IPage<CardExchangeRecordVO> selectCancelRecords(Page page, CardExchangeRecordDTO cardExchangeRecordDTO) {
cardExchangeRecordDTO.setStoreId(TokenUtil.getNowAccountInfo().getStoreId());
cardExchangeRecordDTO.setMtUserId(TokenUtil.getNowAccountInfo().getId());
return cardExchangeRecordMapper.selectCancelRecords(page,cardExchangeRecordDTO);
}
}

View File

@ -0,0 +1,19 @@
package com.fuint.business.marketingActivity.cardExchange.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CardExchangeRecordVO implements Serializable {
//id
private Integer id;
//卡券类型
private String cardType;
//卡券名称
private String cardName;
//卡券内容
private String cardContent;
//兑换时间
private String updateTime;
}

View File

@ -154,7 +154,7 @@ public class CardFavorableServiceImpl extends ServiceImpl<CardFavorableMapper, C
/**
* 查询优惠券接口(小程序)
* @param page
* @param cardFavorable
* @param cardFavorableDTOS
* @return
*/
@Override

View File

@ -45,6 +45,22 @@ public class CardFuelRecordController extends BaseController {
return getSuccessResult(iPageList);
}
/**
* 分页查询(小程序端)
*
* @param cardFuelRecord 筛选条件
* @param pageNo 分页对象
* @return 查询结果
*/
@GetMapping("queryByPageApplet")
public ResponseObject queryByPageApplet(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("cardFuelRecord") CardFuelRecord cardFuelRecord) {
Page page = new Page(pageNo, pageSize);
IPage< CardFuelRecord> iPageList = this.cardFuelRecordService.queryByPageApplet(page, cardFuelRecord);
return getSuccessResult(iPageList);
}
/**

View File

@ -93,7 +93,17 @@ public interface CardFuelRecordMapper {
*/
IPage<CardFuelRecordDTO> selectFuelRecord(@Param("page") Page page, CardFuelRecord cardFuelRecord);
Map<String, String> fuelStream(@Param("storeId") Integer storeId);
/**
* 分页查询(小程序端)
* @param page
* @param cardFuelRecord
* @return
*/
IPage<CardFuelRecord> queryByPageApplet(@Param("page") Page page, @Param("cardFuelRecord") CardFuelRecord cardFuelRecord);
}

View File

@ -382,6 +382,23 @@
CAST((SELECT SUM(pay_amount) FROM oil_order WHERE MONTH(create_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))) AS CHAR) AS last_month_sum;
</select>
<select id="queryByPageApplet"
resultType="com.fuint.business.marketingActivity.cardFule.vo.CardFuelRecordVo">
SELECT
*
FROM
card_fuel_record
<where>
<if test=" cardFuelRecord.mtUserId != null and cardFuelRecord.mtUserId != ''">
and mt_user_id = #{cardFuelRecord.mtUserId}
</if>
<if test=" cardFuelRecord.storeId != null and cardFuelRecord.storeId != ''">
and store_id = #{cardFuelRecord.storeId}
</if>
</where>
order by create_time
</select>
</mapper>

View File

@ -80,4 +80,11 @@ public interface CardFuelRecordService {
*/
IPage<CardFuelRecordDTO> selectFuelRecord(@Param("page") Page page, CardFuelRecord cardFuelRecord);
/**
* 分页查询(小程序端)
* @param page
* @param cardFuelRecord
* @return
*/
IPage<CardFuelRecord> queryByPageApplet(Page page, CardFuelRecord cardFuelRecord);
}

View File

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.api.fuyou.entity.MerchantConfig;
@ -321,4 +322,21 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
return this.cardFuelRecordMapper.selectFuelRecord(page, cardFuelRecord);
}
/**
* 分页查询(小程序端)
* @param page
* @param cardFuelRecord
* @return
*/
@Override
public IPage<CardFuelRecord> queryByPageApplet(Page page, CardFuelRecord cardFuelRecord) {
//获取登录用户信息
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
Integer userId = nowAccountInfo.getId();
Integer storeId = nowAccountInfo.getStoreId();
cardFuelRecord.setMtUserId(userId);
cardFuelRecord.setStoreId(storeId);
return this.cardFuelRecordMapper.queryByPageApplet(page,cardFuelRecord);
}
}

View File

@ -0,0 +1,12 @@
package com.fuint.business.marketingActivity.cardFule.vo;
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
import lombok.Data;
import java.io.Serializable;
@Data
public class CardFuelRecordVo extends CardFuelRecord implements Serializable {
//所剩升数
private Double oilLitres;
}

View File

@ -20,9 +20,6 @@ public class CardValueRecord extends Model<CardValueRecord> {
//主键id
@TableId(type = IdType.AUTO)
private Integer id;
private Integer storeId;
//会员id
private Integer mtUserId;

View File

@ -256,8 +256,11 @@ public class CardValueServiceImpl extends ServiceImpl<CardValueMapper, CardValue
card = cardValueChild.getGiftCardDetail() + "的券";
}
}
cardValueAppletVO.setDiscountActiveDescribe("本充值活动"+adaptUserType+"可用,充值满"+
s.getBidBalance()+"元,赠送金额为:"+s.getGiftBalance()+"元,赠送券:"+card+" 赠送积分:"+s.getPoints()+"积分,赠送成长值为:"+s.getGrowthValue()+"");
cardValueAppletVO.setAdaptUserType(adaptUserType);
cardValueAppletVO.setPoints(s.getPoints());
cardValueAppletVO.setGrowaValue(s.getGrowthValue());
cardValueAppletVO.setDiscountActiveDescribe("本充值活动,充值满"+
s.getBidBalance()+"元,赠送金额为:"+s.getGiftBalance()+"元,赠送券:"+card+"");
return cardValueAppletVO;
}).collect(Collectors.toList());
return appletVOList;

View File

@ -3,6 +3,7 @@ package com.fuint.business.marketingActivity.cardValue.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class CardValueAppletVO implements Serializable {
@ -10,4 +11,12 @@ public class CardValueAppletVO implements Serializable {
private String discountActiveDescribe;
//活动时间
private String time;
//参与油品
private List<String> oilName;
//积分
private Integer points;
//成长值
private Integer growaValue;
//可用用户
private String adaptUserType;
}

View File

@ -0,0 +1,90 @@
package com.fuint.business.marketingActivity.cardValueChildrens.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.marketingActivity.cardValueChildrens.entity.CardValudChildrens;
import com.fuint.business.marketingActivity.cardValueChildrens.service.CardValudChildrensService;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
/**
* 子卡表(CardValudChildrens)表控制层
*
* @author makejava
* @since 2023-12-18 15:59:36
*/
@RestController
@RequestMapping("cardValudChildrens")
public class CardValudChildrensController extends BaseController {
/**
* 服务对象
*/
@Resource
private CardValudChildrensService cardValudChildrensService;
/**
* 分页查询所有数据
* @param cardValudChildrens 查询实体
* @return 所有数据
*/
@GetMapping
public ResponseObject selectAll(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("cardValudChildrens") CardValudChildrens cardValudChildrens) {
Page page = new Page(pageNo, pageSize);
return getSuccessResult(this.cardValudChildrensService.page(page, new QueryWrapper<>(cardValudChildrens)));
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public ResponseObject selectOne(@PathVariable Serializable id) {
return getSuccessResult(this.cardValudChildrensService.getById(id));
}
/**
* 新增数据
*
* @param cardValudChildrens 实体对象
* @return 新增结果
*/
@PostMapping
public ResponseObject insert(@RequestBody CardValudChildrens cardValudChildrens) {
return getSuccessResult(this.cardValudChildrensService.add(cardValudChildrens));
}
/**
* 修改数据
*
* @param cardValudChildrens 实体对象
* @return 修改结果
*/
@PutMapping
public ResponseObject update(@RequestBody CardValudChildrens cardValudChildrens) {
return getSuccessResult(this.cardValudChildrensService.updateById(cardValudChildrens));
}
/**
* 删除数据
*
* @param idList 主键结合
* @return 删除结果
*/
@DeleteMapping
public ResponseObject delete(@RequestParam("idList") List<Long> idList) {
return getSuccessResult(this.cardValudChildrensService.removeByIds(idList));
}
}

View File

@ -0,0 +1,105 @@
package com.fuint.business.marketingActivity.cardValueChildrens.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
/**
* 子卡表(CardValudChildrens)表实体类
*
* @author makejava
* @since 2023-12-18 15:59:36
*/
@SuppressWarnings("serial")
public class CardValudChildrens extends Model<CardValudChildrens> {
//主键id
@TableId(type = IdType.AUTO)
private Integer id;
//主卡id
private Integer cardValueId;
//子卡手机号
private String cardChildPhones;
//创建者
private String createBy;
//创建时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新者
private String updateBy;
//更新时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCardValueId() {
return cardValueId;
}
public void setCardValueId(Integer cardValueId) {
this.cardValueId = cardValueId;
}
public String getCardChildPhones() {
return cardChildPhones;
}
public void setCardChildPhones(String cardChildPhones) {
this.cardChildPhones = cardChildPhones;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取主键值
*
* @return 主键值
*/
@Override
protected Serializable pkVal() {
return this.id;
}
}

View File

@ -0,0 +1,15 @@
package com.fuint.business.marketingActivity.cardValueChildrens.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fuint.business.marketingActivity.cardValueChildrens.entity.CardValudChildrens;
/**
* 子卡表(CardValudChildrens)表数据库访问层
*
* @author makejava
* @since 2023-12-18 15:59:36
*/
public interface CardValudChildrensMapper extends BaseMapper<CardValudChildrens> {
}

View File

@ -0,0 +1,21 @@
package com.fuint.business.marketingActivity.cardValueChildrens.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fuint.business.marketingActivity.cardValueChildrens.entity.CardValudChildrens;
/**
* 子卡表(CardValudChildrens)表服务接口
*
* @author makejava
* @since 2023-12-18 15:59:36
*/
public interface CardValudChildrensService extends IService<CardValudChildrens> {
/**
* 新增数据
* @param cardValudChildrens
* @return
*/
boolean add(CardValudChildrens cardValudChildrens);
}

View File

@ -0,0 +1,37 @@
package com.fuint.business.marketingActivity.cardValueChildrens.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.marketingActivity.cardValue.service.CardValueService;
import com.fuint.business.marketingActivity.cardValueChildrens.mapper.CardValudChildrensMapper;
import com.fuint.business.marketingActivity.cardValueChildrens.entity.CardValudChildrens;
import com.fuint.business.marketingActivity.cardValueChildrens.service.CardValudChildrensService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 子卡表(CardValudChildrens)表服务实现类
*
* @author makejava
* @since 2023-12-18 15:59:36
*/
@Service("cardValudChildrensService")
public class CardValudChildrensServiceImpl extends ServiceImpl<CardValudChildrensMapper, CardValudChildrens> implements CardValudChildrensService {
@Resource
private CardValueService cardValueService;
/**
* 新增数据
* @param cardValudChildrens
* @return
*/
@Override
public boolean add(CardValudChildrens cardValudChildrens) {
if (ObjectUtils.isNotEmpty(cardValudChildrens)){
}
return false;
}
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.userManager.entity.LJUser;
import com.fuint.business.userManager.entity.UserStatistic;
import com.fuint.business.userManager.service.LJUserService;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.business.userManager.service.UserStatisticService;
import com.fuint.business.userManager.vo.LJUserVo;
import com.fuint.framework.web.BaseController;
@ -26,6 +27,8 @@ public class LJUserController extends BaseController {
private LJUserService userService;
@Autowired
private UserStatisticService statisticService;
@Autowired
private UserBalanceService userBalanceService;
/**
* 根据条件分页查询会员信息
@ -52,6 +55,15 @@ public class LJUserController extends BaseController {
return getSuccessResult(userService.selectUsersList());
}
/**
* 查询会员储值卡余额
* @return
*/
@GetMapping("/getUserBalance")
public ResponseObject getUserBalance(){
return getSuccessResult(userBalanceService.getUserBalance());
}
/**
* 查询会员统计信息
* @return

View File

@ -42,4 +42,9 @@ public interface UserBalanceService extends IService<UserBalance> {
*/
public UserBalance selectUserBalance(int userId, int chainStoreId);
/**
* 查询会员储值卡余额
* @return
*/
UserBalance getUserBalance();
}

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.userManager.entity.UserBalance;
import com.fuint.business.userManager.mapper.UserBalanceMapper;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil;
import org.springframework.stereotype.Service;
/**
@ -47,4 +49,18 @@ public class UserBalanceServiceImpl extends ServiceImpl<UserBalanceMapper, UserB
UserBalance balance = baseMapper.selectOne(queryWrapper);
return balance;
}
/**
* 查询会员储值卡余额
* @return
*/
@Override
public UserBalance getUserBalance() {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mt_user_id",nowAccountInfo.getId());
queryWrapper.eq("store_id",nowAccountInfo.getStoreId());
UserBalance balance = baseMapper.selectOne(queryWrapper);
return balance;
}
}

View File

@ -193,6 +193,13 @@
"navigationStyle": "custom"
}
},
{
"path": "CardManagement/Detail",
"style": {
"navigationBarTitleText": "添加子卡管理",
"navigationStyle": "custom"
}
},
{
"path": "writeOff/writeOff",
"style": {

View File

@ -23,23 +23,23 @@
<view class="my-top-box">
<view class="jg-box" @click="gomony()">
<view class="jg-box-title">储值余额</view>
<view class="jg-box-nmb">0.00</view>
<view class="jg-box-nmb">{{cardBalance || 0 }}</view>
</view>
<text style="color: #999999;">|</text>
<view class="jg-box" @click="gooil()">
<view class="jg-box-title">囤油升数</view>
<view class="jg-box-nmb">0.00</view>
<view class="jg-box-nmb">{{refuelMoney[0].refuelMoney || 0 }}</view>
</view>
<text style="color: #999999;">|</text>
<view class="jg-box" @click="toCoupons">
<view class="jg-box-title">卡券</view>
<view class="jg-box-nmb">0</view>
<view class="jg-box-nmb">{{cardsList.length || 0 }}</view>
</view>
<text style="color: #999999;">|</text>
<view class="jg-box" style="border: none;" @click="gointegral()">
<view class="jg-box-title">我的积分</view>
<view class="jg-box-nmb">0</view>
<view class="jg-box-nmb">{{myPoints || 0 }}</view>
</view>
</view>
</view>
@ -158,10 +158,16 @@
</view>
</template>
<script>
import request from "../../utils/request";
import tabbar from "../../components/tabbar/tabbar.vue"
export default {
data() {
return {
chainStoreId: uni.getStorageSync('chainStoreId'),
myPoints: 0,
cardsList: [],
refuelMoney: [],
cardBalance: 0.00,
title: '',
msg: "3",
@ -171,6 +177,11 @@
components: {
tabbar
},
onShow() {
this.getUserBalance();
this.getGiftRecords();
this.getUserInfoList()
},
methods: {
gomyorder(id) {
uni.navigateTo({
@ -247,6 +258,44 @@
url: '/pagesMy/feedback/feedback'
})
},
getUserBalance() {
request({
url: '/business/userManager/user/getUserBalance',
method: 'get',
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardBalance = res.data.cardBalance,
this.refuelMoney = JSON.parse(res.data.refuelMoney);
}
})
},
getGiftRecords() {
request({
url: 'business/marketingActivity/cardFavorable/applet',
method: 'get',
params: this.query
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardsList = res.data.records
}
})
},
//
getUserInfoList() {
request({
url: '/business/userManager/user/getByUniApp',
method: 'get',
params: {
chainStoreId: this.chainStoreId
}
}).then((res) => {
if (res.code == 200) {
this.myPoints = res.data.points
}
})
},
toCoupons() {
uni.navigateTo({
url: '/pagesMy/Coupons/Coupons'
@ -357,11 +406,16 @@
.jg-box-title {
font-size: 16px;
color: #999999;
margin-bottom: 5px;
}
.jg-box-nmb {
font-size: 18px;
font-size: 12px;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-centenr {

View File

@ -7,13 +7,14 @@
<view class="my-icons"></view>
</view>
<view class="mub">
<view class="mub-box" v-for="(item,index) in activityList" :key="index"
@click="intoOtherPage(item.name)">
<view class="right-box">
立即前往
<view class="mub-box" v-for="(item,index) in activityList" :key="index">
<view class="right-box" v-if="index != 0">
最新活动
</view>
<view class="box-img">
<view class="right-box" v-if="index == 0">
最新活动
</view>
<view class="box-img" @click="intoOtherPage(item.name)">
<image src="../../static/imgs/xfyl.png" v-if="item.name == '消费有礼活动'"></image>
<image src="../../static/imgs/zkyx.png" v-if="item.name == '折扣营销活动'"></image>
<image src="../../static/imgs/mjyh.png" v-if="item.name == '满减营销活动'"></image>
@ -24,6 +25,14 @@
<view class="box-size">
<view class="box-s-title">{{item.name || "活动标题"}}</view>
<view class="box-s-size">{{item.des || "内容"}}</view>
<!-- <view class="dis-box">
<view class="dian"></view>
<view class="h_size">适用用户普通会员银牌会员V2</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">享受优惠满送一百万 送一元</view>
</view>-->
</view>
<view class="box-bottom">
<view class="">活动时间</view>
@ -170,19 +179,21 @@
justify-content: space-between;
border-top: 1px solid #f4f5f6;
font-size: 14px;
color: #666666;
}
.box-s-title {
font-size: 17px;
font-weight: bold;
margin: 5px auto;
}
.box-s-size {
font-size: 14px;
color: #666666;
color: #777777;
box-sizing: border-box;
padding: 5px;
background-color: #f4f5f6;
// padding: 5px;
// background-color: #f4f5f6;
border-radius: 8px;
margin: 5px auto;
@ -199,6 +210,7 @@
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
z-index: 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;
.my-icons {
width: 20px;
@ -208,4 +220,24 @@
position: fixed;
top: 0px;
}
.dian {
width: 6px;
height: 6px;
background: #2F72F7;
border-radius: 50%;
margin-right: 5px;
}
.dis-box {
display: flex;
align-items: center;
}
.h_size {
font-size: 14px;
font-weight: 400;
color: #777777;
}
</style>

View File

@ -9,19 +9,23 @@
<!-- 顶部区域 -->
<!-- 储值卡 -->
<view class="xyihang">
<view class="title-hei">储值卡</view>
</view>
<view class="card-cz">
<view class="card-top">
<view class="cardimg">
<image src="../../static/imgs/jyz.png" mode=""></image>
</view>
<text>油站名称</text>
<!-- <text>油站名称</text> -->
</view>
<view class="dis-but">
<view class="bai-box">
<view class="">通用余额</view>
<view class=""> <text style="font-weight: bold;font-size: 26px;">0.00</text> </view>
<view class=""> <text style="font-weight: bold;font-size: 26px;">{{cardBalance}}</text>
</view>
<view class="anniu-cz" @click="gocard()">
</view>
<view class="anniu-cz" @click="gocard(0)">
<text>立即充值</text>
</view>
</view>
@ -30,30 +34,42 @@
<!-- 囤油卡 -->
<view class="xyihang">
<view class="title-hei">囤油卡</view>
<view class="">
<view class="d_dis">
<view class="" @click="s_()">
<text>上一张</text>
<uni-icons type="reload" color="#2979ff" size="20"></uni-icons>
</view>
<view class="" @click="x_()">
<text>下一张</text>
<uni-icons type="refreshempty" color="#2979ff" size="20"></uni-icons>
</view>
</view>
</view>
<view class="card-ty">
<view class="card-top">
<view class="cardimg">
<image src="../../static/imgs/jyzb.png" mode=""></image>
</view>
<text style="color: #ffffff;">油站名称</text>
<!-- <text style="color: #ffffff;">油站名称</text> -->
</view>
<view style="width: 100%;display: flex;align-items: center;justify-content: space-between; ">
<view class="bai-box">
<view class="title-card">囤油卡</view>
<view class="">卡券卡密</view>
<view style="lins"> **** **** **** 970 </view>
<view class="">{{cardsList[cardsIndex].type}}:{{cardsList[cardsIndex].oilType}} </view>
<!-- <view style="lins"> **** **** **** 970 </view> -->
</view>
<view class="">
<uni-icons type="eye-slash-filled" color="#ffffff" size="30"
style="margin-right: 15px;"></uni-icons>
</view>
</view>
<view class="z_yw">
<view class="anniu-cz" @click="gocard(1)">
<text>立即充值</text>
</view>
</view>
</view>
<!-- 礼品卡 -->
<view class="xyihang">
@ -68,21 +84,25 @@
<view class="cardimg">
<image src="../../static/imgs/jyzb.png" mode=""></image>
</view>
<text style="color: #ffffff;">油站名称</text>
<!-- <text style="color: #ffffff;">油站名称</text> -->
</view>
<view style="width: 100%;display: flex;align-items: center;justify-content: space-between; ">
<view class="bai-box">
<view class="title-card">礼品卡</view>
<view class="">券卡密</view>
<view style="lins"> **** **** **** 970 </view>
<view class="">:454545578545</view>
<view style="lins"> 卡密: **** **** **** 970 </view>
</view>
<view class="">
<uni-icons type="eye-slash-filled" color="#ffffff" size="30"
style="margin-right: 15px;"></uni-icons>
</view>
</view>
<view class="z_yw">
<view class="anniu-cz" @click="gocard(2)">
<text>立即兑换</text>
</view>
</view>
</view>
@ -91,20 +111,81 @@
</template>
<script>
import request from "../../utils/request";
export default {
data() {
return {
cardBalance: 0.00,
cardsList: [],
cardsIndex: 0,
title: '',
}
},
components: {
},
onShow() {
this.getCardFuleRecords();
this.getUserBalance()
},
methods: {
gocard() {
gocard(id) {
uni.navigateTo({
url: '/pagesHome/oilRecharge/oilRecharge'
url: '/pagesHome/oilRecharge/oilRecharge?id=' + id
})
},
s_() {
if (this.cardsIndex == 0) {
uni.showToast({
title: '没有上一张了',
icon: 'error'
})
return
}
this.cardsIndex--
},
x_() {
if (this.cardsIndex < this.toil) {
this.cardsIndex++
} else {
uni.showToast({
title: '没有下一张了哦',
icon: 'error'
})
}
},
getCardFuleRecords() {
request({
url: 'business/marketingActivity/cardFuelRecord/queryByPageApplet',
method: 'get',
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardsList = res.data.records
if (this.cardsList.length != 0) {
this.toil = this.cardsList.length - 1
} else {
this.toil = this.cardsList.length
}
console.log(this.toil);
}
})
},
getUserBalance() {
request({
url: '/business/userManager/user/getUserBalance',
method: 'get',
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardBalance = res.data.cardBalance
}
})
},
goback() {
@ -147,6 +228,11 @@
top: 0px;
}
.d_dis {
display: flex;
align-items: center;
}
.card-cz {
width: 90%;
border-radius: 8px;
@ -252,4 +338,12 @@
font-weight: bold;
color: #000;
}
.z_yw {
width: 100%;
margin: 5px auto;
display: flex;
align-items: center;
justify-content: flex-end;
}
</style>

View File

@ -11,7 +11,6 @@
<view class="t-top">
<view class="top-icon">
<uni-icons type="checkmarkempty" color="#ffffff" size="18"></uni-icons>
</view>
<view class="">
<view class="title-lan">兑换成功</view>
@ -105,9 +104,7 @@
exchangeQuantity: '',
exchangeMethod: '',
shippingType: '',
amount: '',
courierCompanies: '',
theTrackingNumber: ''

View File

@ -62,7 +62,11 @@
<view class="gang" v-if="qhindex === index"></view>
</view>
</scroll-view>
<u-empty v-if="integralGiftList.length == 0" style="margin: 5px auto;" mode="data"
icon="http://cdn.uviewui.com/uview/empty/data.png">
</u-empty>
<view class="wrap-box">
<view class="box-goods" v-for="(item,index) in integralGiftList" :key="index"
@click="godetails(item)">
<view class="goods-img">
@ -126,7 +130,6 @@
page: 1,
pageSize: 10000
}
}
},
@ -204,10 +207,6 @@
},
godetails(data) {
// uni.$emit('goodsInfo', data)
// uni.$on('goodsInfo', res => {
// // console.log("myArray123", res)
// })
uni.$on('un', function() {
uni.$emit('goodsInfo', data)
@ -255,12 +254,18 @@
</script>
<style scoped lang="scss">
.content {}
.content {
background-color: #ffd8d8;
width: 100%;
height: 100vh;
}
.container {
width: 100%;
box-sizing: border-box;
padding-top: 88px;
background: linear-gradient(180deg, #ff5c28 0%, #ff5c28 20%, #ffd8d8 37%, #ffd8d8 100%);
padding-bottom: 40px;
}
@ -361,11 +366,13 @@
.sz {
width: 25%;
text-align: center;
display: inline-block;
}
.box {
// margin: 0 auto;
text-align: center;
font-size: 32rpx;
margin-right: 50rpx;
@ -373,6 +380,7 @@
text-align: center;
// font-weight: bold;
color: #666666;
margin: 0 auto;
margin-bottom: 22rpx;
}
}
@ -383,7 +391,8 @@
}
.gang {
width: 38rpx;
width: 50%;
margin: 0 auto;
height: 8rpx;
background: #ff5c28;
border-radius: 14rpx;

View File

@ -8,8 +8,8 @@
</view>
<!-- 顶部区域 -->
<view class="centen-siez">
<u-parse :content="setting.pointsRules"></u-parse>
<view v-html="setting.pointsRules"></view>
</view>
</view>
@ -60,6 +60,7 @@
.content {
width: 100%;
background: #f4f5f6;
background: #ffffff;
}

View File

@ -13,10 +13,153 @@
<image src="../../static/imgs/mjyh.png" v-if="title == '满减营销活动'"></image>
<image src="../../static/imgs/xryl.png" v-if="title == '新人有礼活动'"></image>
<image src="../../static/imgs/yqyl.png" v-if="title == '推荐有礼活动'"></image>
<image src="../../static/imgs/chongzhi.png" v-if="title == '储值卡充值活动'"></image>
</view>
<view class="center-box">
<view class="title-box">活动明细</view>
<view class="g-box" v-for="(item,index) in datas" :key="index" v-if="title == '消费有礼活动'">
<view class="center-box" v-for="(item,index) in datas" :key="index" v-if="title == '消费有礼活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{item.activeDescribe || ""}}</view>
<view class="box-bottom">
<view class="">活动时间</view>
<view>{{item.time}}</view>
</view>
<view class="title-box">参与油品</view>
<view class="w_box">
<view class="w_oil" v-for="(item,index) in item.oilName" :key="index">{{item}}</view>
</view>
<view class="h_bottom">
<view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员{{item.adaptUserType}}</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">获得折扣赠送{{item.points}}积分</view>
</view>
</view>
</view>
<view class="center-box" v-for="(item,index) in datas" :key="index" v-if="title == '折扣营销活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{item.discountActiveDescribe || ""}}</view>
<view class="box-bottom">
<view class="">活动时间</view>
<view>{{item.time}}</view>
</view>
<view class="title-box">参与油品</view>
<view class="w_box">
<view class="w_oil" v-for="(item,index) in item.oilName" :key="index">{{item}}</view>
</view>
<view class="h_bottom">
<view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员{{item.adaptUserType}}</view>
</view>
<!-- <view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">获得折扣赠送{{item.points}}积分</view>
</view> -->
</view>
</view>
<view class="center-box" v-for="(item,index) in datas" :key="index" v-if="title == '满减营销活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{item.fullminusActiveDescribe || ""}}</view>
<view class="box-bottom">
<view class="">活动时间</view>
<view>{{item.time}}</view>
</view>
<view class="title-box">参与油品</view>
<view class="w_box">
<view class="w_oil" v-for="(item,index) in item.oilName" :key="index">{{item}}</view>
</view>
<view class="h_bottom">
<view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员{{item.adaptUserType}}</view>
</view>
<!-- <view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">获得折扣赠送10积分</view>
</view> -->
</view>
</view>
<view class="center-box" v-for="(item,index) in datas" :key="index" v-if="title == '储值卡充值活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{item.discountActiveDescribe || ""}}</view>
<view class="box-bottom">
<view class="">活动时间{{item.time}}</view>
</view>
<!-- <view class="title-box">参与油品</view>
<view class="w_box">
<view class="w_oil" v-for="(item,index) in 3" :key="index">#95</view>
</view> -->
<view class="h_bottom">
<view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员{{item.adaptUserType}}</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">获得折扣赠送{{item.points}}积分</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">获得折扣赠送{{item.growaValue}}成长值</view>
</view>
</view>
</view>
<view class="center-box" v-if="title == '新人有礼活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{datas.newlywedsActiveDescribe || ""}}</view>
<view class="box-bottom">
<view class="">活动时间</view>
<view>{{datas.time}}</view>
</view>
<!-- <view class="title-box">参与油品</view> -->
<!-- <view class="w_box">
<view class="w_oil" v-for="(item,index) in 3" :key="index">#95</view>
</view> -->
<view class="h_bottom">
<!-- <view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员普通会员银牌会员V2</view>
</view> -->
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">赠送{{datas.point}}积分</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">赠送{{datas.growValue}}成长值</view>
</view>
</view>
</view>
<view class="center-box" v-if="title == '推荐有礼活动'">
<view class=" title-box">活动介绍</view>
<view class="h_size">{{datas.recommendActiveDescribeIn || ""}}</view>
<view class="h_size">{{datas.recommendActiveDescribeOut || ""}}</view>
<view class="box-bottom">
<view class="">活动时间{{datas.time}}</view>
</view>
<!-- <view class="title-box">参与油品</view>
<view class="w_box">
<view class="w_oil" v-for="(item,index) in 3" :key="index">#95</view>
</view> -->
<view class="h_bottom">
<!-- <view class="dis-box">
<view class="dian"></view>
<view class="h_size">参与会员普通会员银牌会员V2</view>
</view> -->
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">赠送{{datas.point}}积分</view>
</view>
<view class="dis-box">
<view class="dian" style="background: #FA5E03;"></view>
<view class="h_size">赠送{{datas.growValue}}成长值</view>
</view>
</view>
</view>
<!-- <view class="g-box" v-for="(item,index) in datas" :key="index" v-if="title == '消费有礼活动'">
<text>{{item.activeDescribe || ""}}</text>
</view>
<view class="g-box" v-for="(item,index) in datas" :key="index" v-if="title == '折扣营销活动'">
@ -34,8 +177,7 @@
<view class="g-box" v-if="title == '推荐有礼活动'">
<text>{{datas.recommendActiveDescribeIn || ""}}</text>
<text>{{datas.recommendActiveDescribeOut || ""}}</text>
</view>
</view>
</view> -->
</view>
</view>
@ -46,6 +188,7 @@
export default {
data() {
return {
oilName: [],
title: '',
datas: [],
@ -70,7 +213,7 @@
method: 'get',
}).then(res => {
if (res.code == 200) {
this.datas = res.data
this.datas = res.data,
uni.hideLoading();
}
@ -143,7 +286,7 @@
<style scoped lang="scss">
.content {
background: #ffffff;
background: #f4f5f6;
height: 100vh;
}
@ -158,7 +301,7 @@
.container {
width: 100%;
background: #ffffff;
background: #f4f5f6;
box-sizing: border-box;
padding-top: 88px;
padding-bottom: 20px;
@ -187,7 +330,7 @@
.center-box {
border-radius: 8px;
background: #f4f5f6;
background: #ffffff;
margin: 10px auto;
box-sizing: border-box;
padding: 10px;
@ -197,6 +340,7 @@
.title-box {
font-size: 18px;
font-weight: bold;
margin: 10px auto;
}
@ -207,4 +351,52 @@
font-size: 14px;
color: #333333;
}
.w_box {
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.h_size {
font-size: 14px;
font-weight: 400;
color: #777777;
}
.w_oil {
border-radius: 4px 4px 4px 4px;
box-sizing: border-box;
padding: 5px 10px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10px;
border: 1px solid #2F72F7;
color: #2F72F7;
}
.h_bottom {
width: 100%;
background: #F4F4F4;
border-radius: 4px;
box-sizing: border-box;
padding: 10px 5px;
margin: 10px auto;
}
.dian {
width: 6px;
height: 6px;
background: #2F72F7;
border-radius: 50%;
margin-right: 5px;
}
.dis-box {
display: flex;
align-items: center;
}
</style>

View File

@ -181,7 +181,7 @@
title: '囤油充值'
},
{
title: '礼品卡充值'
title: '礼品卡兑换'
},
],
@ -193,11 +193,22 @@
},
components: {
},
onLoad(option) {
this.actinput = option.id
if (option.id == 0) {
this.getValueCars();
}
if (option.id == 1) {
console.log("囤油");
this.getFuelCars();
}
},
onShow() {
this.getValueCars();
this.getStaffList()
//this.getFuelCars();
},
methods: {
confirms() {
@ -265,9 +276,9 @@
this.cardValueList = []
if (res.code == 200) {
this.cardValueList = res.data.records
this.xzindex(0, this.cardValueList[0].rechargeBalance, this.cardValueList[0].fringeBenefit,
this.cardValueList[0].giftBalance, this.cardValueList[0].points, this
.cardValueList[0].growthValue)
this.xzindex(0, res.data.records[0].rechargeBalance, res.data.records[0].fringeBenefit,
res.data.records[0].giftBalance, res.data.records[0].points, res.data.records[0]
.growthValue)
}
})
@ -284,11 +295,8 @@
this.cardValueList = []
if (res.code == 200) {
this.cardFuleList = res.data.records
this.fuleindex(0, this.cardValueList[0].rechargeBalance, this.cardValueList[0]
.fringeBenefit,
this.cardFuleList[0].rechargeBalance, this.cardFuleList[0].points, this
.cardFuleList[0].lockupPrice, this
.cardFuleList[0].incomeLitres)
this.fuleindex(0, res.data.records[0].rechargeBalance, res.data.records[0].points)
}
})
},
@ -321,7 +329,7 @@
},
goRechargeRecords() {
uni.navigateTo({
url: '/pagesHome/RechargeRecords/RechargeRecords'
url: '/pagesMy/Recharge/Recharge'
})
},
//

View File

@ -30,6 +30,9 @@
</view>
</view>
</view>
<view class="x_anniu" @click="goDetail()">
<uni-icons type="plusempty" color="#fff" size="30"></uni-icons>
</view>
<!-- <u-empty v-if="list.length == 0 " mode="coupon" text="内容为空"
icon="http://cdn.uviewui.com/uview/empty/coupon.png">
@ -66,6 +69,11 @@
tapindex(index) {
this.tindex = index
},
goDetail() {
uni.navigateTo({
url: '/pagesMy/CardManagement/Detail'
})
},
goback() {
uni.navigateBack()
}
@ -197,4 +205,17 @@
font-size: 14px;
border-radius: 50px;
}
.x_anniu {
position: fixed;
bottom: 50px;
right: 30px;
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: #0000ff;
}
</style>

View File

@ -0,0 +1,101 @@
<template>
<view class="content">
<view class="container">
<view class="my-header">
<view class="my-icons" @click="goback"> <uni-icons type="left" size="16"></uni-icons> </view>
<view class="my-text">添加子卡</view>
<view class="my-icons"></view>
</view>
<!-- 顶部区域 -->
<view class="input_">
<view class="">请输入手机号</view>
<view class="">
<input type="text" placeholder="请输入手机号" />
</view>
</view>
<view class="anniu">
<text>提交</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: '',
}
},
components: {
},
methods: {
goback() {
uni.navigateBack()
}
}
}
</script>
<style scoped lang="scss">
.content {
background: #ffffff;
}
.container {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 88px;
}
.my-header {
width: 100%;
height: 88px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
.my-icons {
width: 20px;
}
position: fixed;
top: 0px;
}
.input_ {
width: 90%;
box-sizing: border-box;
padding: 15px 0px;
display: flex;
align-items: center;
border-bottom: 1px solid #DDDDDD;
margin: 15px auto;
}
.anniu {
width: 90%;
height: 42px;
margin: 15px auto;
display: flex;
align-items: center;
justify-content: center;
color: white;
border-radius: 8px;
background: #ff6e05;
}
</style>

View File

@ -26,7 +26,7 @@
<view class="hui-size">{{item.couponContent}}</view>
<view class="dis-bt">
<view class="hui-size">有效期2023-11-30</view>
<view class="anniu">
<view class="anniu" v-if="item.couponType == '优惠券'" @click="goRecharge()">
<text>立即使用</text>
</view>
</view>
@ -85,6 +85,11 @@
this.getGiftRecords()
},
methods: {
goRecharge() {
uni.navigateTo({
url: '/pagesHome/oilRecharge/oilRecharge'
})
},
click(item) {
console.log('item', item);

View File

@ -7,10 +7,15 @@
<view class="my-icons"></view>
</view>
<!-- 顶部区域 -->
<uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="current" :mode="mode"
:dots-styles="dotsStyles" field="content">
<swiper class="swiper-box" @change="change" :current="swiperDotIndex">
<swiper-item v-for="(item, index) in 20" :key="index">
<view class="top-box">
<view class="b-top">
<view style="width: 70%;">
<view class="title-size">V2会员</view>
<view class="title-size">V{{index}}会员</view>
<view class="min-size" style="margin-bottom: 20px;">升级会员享更多特权</view>
<view class="min-size" style="margin-bottom: 10px;">在获得358可升级至钻石会员</view>
<u-line-progress :percentage="30" activeColor="#2F72F7"></u-line-progress>
@ -20,95 +25,38 @@
</view>
</view>
</view>
<!-- qy -->
<view class="c-box">
<view class="title-bai">会员权益</view>
<!-- <view class="title-bai">会员权益</view> -->
<view class="wrap-box">
<view class="box-ba">
<view class="box-ba" v-for="(item,index) in oilNameList" :key="index">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
</view>
<view class="box-ba">
<view class="min-box">
<image src="../../static/imgs/vipxz.png" mode=""></image>
</view>
<view class="">会员特权</view>
<view class="mu_">{{item}}</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
</uni-swiper-dot>
<view style="height: 340px; width: 100%;"></view>
<view class="bottom-box">
<view class="bottom-bai-box">
<view class="b-top-bt">
<view class="title">每日任务</view>
<view class="title">优惠信息</view>
<view class="times">每天04:00更新</view>
</view>
<view class="b-top-bt" style="margin: 10px auto; ">
<view class="disa">
<view class="btimg">
<image src="../../static/imgs/dljf.png" mode=""></image>
</view>
<view class="an-title">每日登录</view>
</view>
<view class="anniu"> 去完成 </view>
</view>
<view class="b-top-bt" style="margin: 10px auto; ">
<view class="disa">
<view class="btimg">
<image src="../../static/imgs/dljf.png" mode=""></image>
</view>
<view class="bottom-bai-box">
<view class="title">每消费<text style=" margin: 0px 5px; color:#ff5c28 ;">200</text> 元加<text
style="margin: 0px 5px;color:#2c62cd ;">1%</text>成长值</view>
<view class="an-title">每日登录</view>
</view>
<view class="anniu"> 去完成 </view>
</view>
<view class="b-top-bt" style="margin: 10px auto; ">
<view class="disa">
<view class="btimg">
<image src="../../static/imgs/dljf.png" mode=""></image>
</view>
<view class="an-title">每日登录</view>
</view>
<view class="anniu"> 去完成 </view>
</view>
</view>
</view>
</view>
@ -120,7 +68,33 @@ export default {
data() {
return {
title: '',
info: [{
colorClass: 'uni-bg-red',
url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
content: '内容 A'
},
{
colorClass: 'uni-bg-green',
url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
content: '内容 B'
},
{
colorClass: 'uni-bg-blue',
url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
content: '内容 C'
}
],
oilNameList: [
"汽油",
"柴油",
"天然气"
],
modeIndex: -1,
styleIndex: -1,
current: 0,
mode: 'default',
dotsStyles: {},
swiperDotIndex: 0
}
},
@ -129,6 +103,9 @@ export default {
},
methods: {
change(e) {
this.current = e.detail.current
},
goback() {
uni.navigateBack()
}
@ -137,6 +114,10 @@ export default {
</script>
<style scoped lang="scss">
.swiper-box {
height: 500px;
}
.content {
background: #2F3648;
height: 100vh;
@ -223,12 +204,13 @@ export default {
.wrap-box {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.box-ba {
width: 25%;
width: 33%;
text-align: center;
margin: 10px auto;
color: #ffffff;
@ -236,8 +218,8 @@ export default {
}
.min-box {
width: 30px;
height: 30px;
width: 90%;
height: 90px;
margin: 5px auto;
image {
@ -264,6 +246,7 @@ export default {
background: #ffffff;
box-sizing: border-box;
padding: 10px;
margin: 15px auto;
@ -322,4 +305,10 @@ export default {
color: #333333;
margin-left: 5px;
}
.mu_ {
font-size: 18px;
font-weight: bold;
margin: 15px auto;
}
</style>

View File

@ -10,7 +10,7 @@
<view class="top-box">
<view class="kuangbox">使用规则 </view>
<view class="box-title">储值余额</view>
<view class="box-nmb">0.00</view>
<view class="box-nmb">{{cardBalance}}</view>
<view class="dis-bt">
<view class="">累计获得0.00</view>
<view class="">已经抵用0.00</view>
@ -18,7 +18,7 @@
</view>
<view class="box-gang">
<view class="">明细</view>
<view class="hui-anniu">全部 <u-icon name="arrow-down-fill" size="18"></u-icon> </view>
<!-- <view class="hui-anniu">全部 <u-icon name="arrow-down-fill" size="18"></u-icon> </view> -->
</view>
<view class="fuji">
@ -52,9 +52,11 @@
</template>
<script>
import request from "../../utils/request";
export default {
data() {
return {
cardBalance: 0.00,
title: '',
@ -63,6 +65,9 @@
components: {
},
onShow() {
this.getUserBalance()
},
methods: {
godetails() {
@ -70,6 +75,17 @@
url: '/pagesMy/details/details'
})
},
getUserBalance() {
request({
url: '/business/userManager/user/getUserBalance',
method: 'get',
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardBalance = res.data.cardBalance
}
})
},
goback() {
uni.navigateBack()
}

View File

@ -7,19 +7,19 @@
<view class="my-icons"></view>
</view>
<!-- 顶部区域 -->
<view class="top-box">
<view class="top-box" v-for="(item,index) in refuelMoney" :key="index">
<view class="kuangbox">使用规则 </view>
<view class="box-title">囤油升数</view>
<view class="box-nmb">0.00</view>
<view class="dis-bt">
<view class="box-nmb">{{item.type}} : {{item.oilType}}</view>
<view class="box-nmb">剩余升数: {{item.refuelMoney}}</view>
<!-- <view class="dis-bt">
<view class="">累计获得0.00</view>
<view class="">已经抵用0.00</view>
</view>
</view> -->
</view>
<view class="box-gang">
<view class="">明细</view>
<view class="hui-anniu">全部 <u-icon name="arrow-down-fill" size="18"></u-icon> </view>
<!-- <view class="hui-anniu">全部 <u-icon name="arrow-down-fill" size="18"></u-icon> </view> -->
</view>
<view class="fuji">
@ -53,9 +53,11 @@
</template>
<script>
import request from "../../utils/request";
export default {
data() {
return {
refuelMoney: [],
title: '',
@ -64,10 +66,25 @@
components: {
},
onShow() {
this.getUserBalance()
},
methods: {
goback() {
uni.navigateBack()
},
getUserBalance() {
request({
url: '/business/userManager/user/getUserBalance',
method: 'get',
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardBalance = res.data.cardBalance,
this.refuelMoney = JSON.parse(res.data.refuelMoney);
}
})
}
}
}

View File

@ -8,11 +8,41 @@
</view>
<!-- 顶部区域 -->
<view class="tap-top">
<view class="tap-box" :class="{ 'act' : tindex == index }" v-for="(item,index) in tapList" :key="index"
@click="tapindex(index)">
@click="tapindex(index,item.text)">
<view class="">{{ item.text }}</view>
<view class="gang" :class="{ 'lan' : tindex == index }"></view>
</view>
</view>
<view class="ail" v-if="cardsList.length != 0 ">
<view class="box-order" v-for="(item,index) in cardsList" :key="index">
<view class="or-box-top">
<view class="chengg" style="font-weight: bold;">兑换券</view>
</view>
<view class="but-box">
<view class="huis">卡类型</view>
<view class="">{{item.cardType || "暂无"}}</view>
</view>
<view class="but-box">
<view class="huis">核销卡名</view>
<view class="reds">{{item.cardName || "暂无"}}</view>
</view>
<view class="but-box">
<view class="huis">卡券内容</view>
<view class="reds">{{item.cardContent || "暂无"}}</view>
</view>
<view class="but-box">
<view class="huis">兑换时间</view>
<view class="">{{item.updateTime || "暂无"}}</view>
</view>
</view>
</view>
<u-empty v-if="list.length == 0 " mode="coupon" text="内容为空"
@ -24,20 +54,27 @@
</template>
<script>
import request from "../../utils/request";
export default {
data() {
return {
cardsList: [],
query: {
cardType: '兑换券',
pageNo: 1,
pageSize: 10
},
title: '',
tindex: 0,
list: [],
tapList: [{
text: "洗车券"
},
{
text: "兑换券"
},
{
text: "商家券"
text: "洗车券"
},
{
text: "洗车卡"
},
]
@ -47,15 +84,36 @@
components: {
},
onShow() {
this.getGiftRecords()
},
methods: {
tapindex(index) {
tapindex(index, item) {
this.cardsList = []
this.tindex = index
this.query.cardType = item
this.getGiftRecords()
},
getGiftRecords() {
request({
url: '/business/marketingActivity/cardExchangeRecord/selectCancelRecords',
method: 'get',
params: this.query
}).then(res => {
console.log(res)
if (res.code == 200) {
this.cardsList = res.data.records
console.log(cardsList)
}
})
},
goback() {
uni.navigateBack()
}
}
},
}
</script>
@ -92,6 +150,15 @@
top: 0px;
}
.but-box {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.tap-top {
width: 100%;
height: 50px;
@ -123,4 +190,64 @@
.lan {
background: #0000ff;
}
.box-order {
width: 95%;
border-radius: 8px;
background: #ffffff;
box-sizing: border-box;
padding: 10px;
margin: 10px auto;
}
.or-box-top {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 5px 0px;
border-bottom: 1px solid #e5e5e5;
}
.chengg {
color: #1678ff;
}
.but-box {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.reds {
color: red;
}
.huis {
color: #666666;
}
.end-box {
width: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
}
.anniu {
width: 70px;
height: 25px;
background-color: #1678ff;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
border-radius: 15px;
}
</style>

View File

@ -19,33 +19,35 @@
<view class="box-top">
<view class="dis">
<view class="touxiang">
<image src="../../static/imgs/topbj.png" mode=""></image>
<image src="../../static/imgs/bzhd.png" mode=""></image>
</view>
<view class="box-top-size">
<view class="box-title">{{item.store.name}}{{item.store.description ? "("+item.store.description+")" : ""}}</view>
<view class="box-title">
{{item.store.name}}{{item.store.description ? "("+item.store.description+")" : ""}}
</view>
<view class="box-hui"> {{item.store.address}} </view>
</view>
</view>
<view class="">
<view class="top-right-icon" v-if="index == 0">
<u-tag text="距离最近" size="mini" type="error"
plain plainFill></u-tag>
<u-tag text="距离最近" size="mini" type="error" plain plainFill></u-tag>
</view>
<view class="box-hui" style="width: 80px;">{{(Math.ceil(item.distance)).toFixed(1)}}km
</view>
<view class="box-hui" style="width: 80px;">{{(Math.ceil(item.distance)).toFixed(1)}}km</view>
</view>
</view>
<scroll-view scroll-x="true" class="fa-scroll">
<view class="scrollbox" v-for="(item1,index1) in item.store.oilList" :key="index1" @click="toRefuel(item.store)">
<view class="scrollbox" v-for="(item1,index1) in item.store.oilList" :key="index1"
@click="toRefuel(item.store)">
<view style="font-size: 16px;">{{item1.oilNames}}</view>
<view style="font-size: 18px;">{{item1.gbPrice}}/{{item1.unit}}</view>
</view>
</scroll-view>
<view class="wrap-box">
<u-tag v-if="item.store.welfareList!=null"
v-for="(item1,index1) in item.store.welfareList" :key="index1"
:text="item1" type="warning" shape="circle"></u-tag>
<u-tag v-if="item.store.welfareList!=null" v-for="(item1,index1) in item.store.welfareList"
:key="index1" :text="item1" type="warning" shape="circle"></u-tag>
</view>
<view class="box-bottom">
<view class="box-bottom-anniu">
@ -103,7 +105,8 @@
queryStore(val) {
this.list = []
this.storeList.forEach(item => {
if (item.store.name.includes(val.detail.value) || item.store.description.includes(val.detail.value)){
if (item.store.name.includes(val.detail.value) || item.store.description.includes(val.detail
.value)) {
this.list.push(item)
}
})
@ -234,7 +237,7 @@
.touxiang {
width: 45px;
height: 45px;
border-radius: 50%;
overflow: hidden;
image {
@ -244,6 +247,7 @@
}
.box-top-size {
width: 80%;
margin-left: 5px;
}