|
@@ -2,12 +2,15 @@ package cn.newfeifan.mall.module.distri.service.integraltopuplog;
|
|
|
|
|
|
import cn.newfeifan.mall.framework.common.exception.ErrorCode;
|
|
|
import cn.newfeifan.mall.module.distri.constant.DistriConstants;
|
|
|
+import cn.newfeifan.mall.module.distri.controller.admin.duser.vo.DuserSaveReqVO;
|
|
|
import cn.newfeifan.mall.module.distri.controller.admin.integralchangelog.vo.IntegralChangeLogSaveReqVO;
|
|
|
import cn.newfeifan.mall.module.distri.controller.admin.integral.vo.IntegralSaveReqVO;
|
|
|
+import cn.newfeifan.mall.module.distri.dal.dataobject.duser.DuserDO;
|
|
|
import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
|
|
|
import cn.newfeifan.mall.module.distri.dal.dataobject.orderpercentage.OrderPercentageDO;
|
|
|
import cn.newfeifan.mall.module.distri.enums.IntegralEnum;
|
|
|
import cn.newfeifan.mall.module.distri.enums.IntegralTypeEnum;
|
|
|
+import cn.newfeifan.mall.module.distri.service.duser.DuserService;
|
|
|
import cn.newfeifan.mall.module.distri.service.integralchangelog.IntegralChangeLogService;
|
|
|
import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
|
|
|
import cn.newfeifan.mall.module.distri.service.orderpercentage.OrderPercentageService;
|
|
@@ -51,10 +54,14 @@ public class IntegralTopUpLogServiceImpl implements IntegralTopUpLogService {
|
|
|
|
|
|
@Resource
|
|
|
private IntegralChangeLogService integralChangeLogService;
|
|
|
+ @Resource
|
|
|
+ private DuserService duserService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Long createConsumptionTopUpLog(IntegralTopUpLogSaveReqVO createReqVO) {
|
|
|
+ // 充值的额度
|
|
|
+ Long agentQuota = createReqVO.getIntegralPoints();
|
|
|
OrderPercentageDO orderPercentageDO = orderPercentageService.queryStatus();
|
|
|
// 充值额度校验
|
|
|
quotaVerify(createReqVO.getUserId(), createReqVO.getIntegralPoints(), orderPercentageDO);
|
|
@@ -62,6 +69,9 @@ public class IntegralTopUpLogServiceImpl implements IntegralTopUpLogService {
|
|
|
// 额度放大百万倍,存储需要(方便换算),和积分一样
|
|
|
createReqVO.setIntegralPoints(createReqVO.getIntegralPoints() * DistriConstants.MILLION);
|
|
|
|
|
|
+ // 获取用户的会员类别信息
|
|
|
+ DuserDO user = duserService.getDuserByUser(createReqVO.getUserId());
|
|
|
+
|
|
|
// 充值倍率
|
|
|
if (createReqVO.getIntegralPoints() >= Long.parseLong(orderPercentageDO.getTriggerMagnificationPoints()) * DistriConstants.MILLION) {
|
|
|
createReqVO.setPracticalIntegralPoints((long) (createReqVO.getIntegralPoints() * Double.parseDouble(orderPercentageDO.getIntegralMagnification())));
|
|
@@ -81,11 +91,11 @@ public class IntegralTopUpLogServiceImpl implements IntegralTopUpLogService {
|
|
|
// 记录用户消费分变动日志
|
|
|
integralChangeLogService.createConsumptionChangeLog(IntegralChangeLogSaveReqVO.builder()
|
|
|
.userId(consumptionTopUpLog.getUserId())
|
|
|
- .integralPoints(consumptionTopUpLog.getPracticalIntegralPoints())
|
|
|
+ .integralPoints(consumptionTopUpLog.getIntegralPoints())
|
|
|
.afterIntegralPoints(integralDO.getRedCurrentQuota())
|
|
|
.integralStatus(IntegralEnum.PT_TOP_TUP.getType())
|
|
|
.integralType(IntegralTypeEnum.RED_INTEGRAL.getType())
|
|
|
- .practicalIntegralPoints(consumptionTopUpLog.getIntegralPoints())
|
|
|
+ .practicalIntegralPoints(consumptionTopUpLog.getPracticalIntegralPoints())
|
|
|
.generateUserId(getLoginUserId())
|
|
|
.build());
|
|
|
|
|
@@ -97,11 +107,12 @@ public class IntegralTopUpLogServiceImpl implements IntegralTopUpLogService {
|
|
|
// .createIp(getClientIP())
|
|
|
// .build());
|
|
|
|
|
|
-// // 当单笔充值大于设定金额时,将用户设置为代理商
|
|
|
-// if(agentQuota >= Long.parseLong(orderPercentageDO.getAgentQuota()) && !user.getAgent()){
|
|
|
-// user.setAgent(true);
|
|
|
-// memberUserService.updateUser(BeanUtils.toBean(user, MemberUserUpdateReqVO.class));
|
|
|
-// }
|
|
|
+
|
|
|
+ // 当单笔充值大于设定金额时,将用户设置为代理商
|
|
|
+ if(agentQuota >= Long.parseLong(orderPercentageDO.getTriggerMagnificationPoints()) && user.getCategoryId() != 3){
|
|
|
+ user.setCategoryId(3);
|
|
|
+ duserService.updateDuser(BeanUtils.toBean(user, DuserSaveReqVO.class));
|
|
|
+ }
|
|
|
|
|
|
// 返回
|
|
|
return consumptionTopUpLog.getId();
|