diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreHistoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreHistoryController.java index 17752c865..797eb070c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreHistoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreHistoryController.java @@ -2,10 +2,14 @@ package com.iformall.controller.mem; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.WxScoreHistory; +import com.iformall.enums.EnumCUserBasicInfoStatus; +import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxScoreHistoryService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -23,6 +27,10 @@ public class WxScoreHistoryController extends BaseController { @Autowired private WxScoreHistoryService wxScoreHistoryService; + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + + @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ @@ -43,6 +51,9 @@ public class WxScoreHistoryController extends BaseController { logger.debug("[" + getIpAddr() + "] WxScoreHistoryController::add"); //Assert.notNull(wxScoreHistory.getName(), "角色名不能为空"); //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); + if (checkMemberStatus(wxScoreHistory.getCUserId())) { + return new ResultData(ErrorCode.MEMBER_IS_LOCKED); + } wxScoreHistoryService.saveOrUpdate(wxScoreHistory); return new ResultData(); } @@ -52,10 +63,22 @@ public class WxScoreHistoryController extends BaseController { @SystemControllerLog(description = "成长值-更新") public ResultData update(@RequestBody WxScoreHistory wxScoreHistory) { logger.debug("[" + getIpAddr() + "] WxScoreHistoryController::update"); + if (checkMemberStatus(wxScoreHistory.getCUserId())) { + return new ResultData(ErrorCode.MEMBER_IS_LOCKED); + } wxScoreHistoryService.saveOrUpdate(wxScoreHistory); return new ResultData(); } + public boolean checkMemberStatus(Long userId) { + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(userId); + if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + userId); + return true; + } + return false; + } + @ApiOperation("根据id删除接口") @GetMapping("/del") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index cea078e18..977851b7a 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -28,8 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; -import java.util.HashMap; -import java.util.List; import java.util.Map; @RestController @@ -66,6 +64,12 @@ public class WxOrderController extends BaseController { if (resultData != null) return resultData; WxCUser user = getUser(); + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getId()); + if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + user.getId()); + return new ResultData(ErrorCode.MEMBER_IS_LOCKED); + } + resultData = couponUserCheck(user, wxCouponChannelService.findDetailVo(orderSaveDto.getCouponChannelId())); if (resultData != null) return resultData; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCUserBasicInfoStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCUserBasicInfoStatus.java new file mode 100644 index 000000000..40587314f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCUserBasicInfoStatus.java @@ -0,0 +1,35 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumCUserBasicInfoStatus { + + NORMAL(0, "正常"), + LOCKED(1, "锁定"),; + + public static EnumCUserBasicInfoStatus getEnum(Integer code) { + for (EnumCUserBasicInfoStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumCUserBasicInfoStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index c9f30c7d6..9508757a7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -849,13 +849,15 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { Date createDate = oldUserBase.getCreateDate() == null ? new Date() : oldUserBase.getCreateDate(); oldUserBase.setUpdateDate(userBase.getUpdateDate() == null ? updateDate : userBase.getUpdateDate()); oldUserBase.setCreateDate(userBase.getCreateDate() == null ? createDate : userBase.getCreateDate()); - // 成长值 - if(points != null) { - oldUserBase.setPoins(points); - } - // 覆盖原积分 - if(credit != null) { - oldUserBase.setCredit(credit); + if (oldUserBase.getStatus().equals(EnumCUserBasicInfoStatus.NORMAL.getCode())) { + // 成长值 + if (points != null) { + oldUserBase.setPoins(points); + } + // 覆盖原积分 + if (credit != null) { + oldUserBase.setCredit(credit); + } } } else { userBase.setId(idWorker.nextId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index 8a9fbaf4d..bd1efb798 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -310,6 +310,12 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { return false; } + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(cUserId); + if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + cUserId); + return false; + } + //查询开关是否打开 WxCouponSendConfig wxCouponSendConfig = new WxCouponSendConfig(); wxCouponSendConfig.setSendType(type.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java index b04daf8fe..3e2fbfa02 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.*; import com.iformall.enums.EnumBusiness; +import com.iformall.enums.EnumCUserBasicInfoStatus; import com.iformall.enums.EnumScoreRules; import com.iformall.enums.EnumScoreType; import com.iformall.exception.MallinkException; @@ -555,27 +556,42 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { @Override public int addScore(EnumScoreType scoreType, Object param) { - + WxCUser wxCUser = null; + WxCUserCar userCar = null; + WxCUserBasicInfo userBasicInfo = null; + Long userId = null; + if (param instanceof WxCUser) { + wxCUser = (WxCUser) param; + userId = wxCUser.getId(); + } + if (param instanceof WxCUserCar) { + userCar = (WxCUserCar) param; + userId = userCar.getCUserId(); + } + if (param instanceof WxCUserBasicInfo) { + userBasicInfo = (WxCUserBasicInfo) param; + userId = userBasicInfo.getId(); + } + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); + if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + userId); + return 0; + } switch (scoreType){ case LOGIN: { - WxCUser user = (WxCUser) param; - return loginAddScore(user); + return loginAddScore(wxCUser); } case BIND_CAR:{ - WxCUserCar userCar = (WxCUserCar) param; return bindCarAddScore(userCar); } case WECHAT_PERSION:{ - WxCUser user = (WxCUser) param; - return personAddScore(user); + return personAddScore(wxCUser); } case WECHAT_PHONE:{ - WxCUser user = (WxCUser) param; - return phoneAddScore(user); + return phoneAddScore(wxCUser); } case COMPLETE_INFO:{ - WxCUserBasicInfo user = (WxCUserBasicInfo) param; - return infoAddScore(user); + return infoAddScore(userBasicInfo); } default: { @@ -587,14 +603,30 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { @Override public int addScore2(EnumScoreType scoreType, Object param1, Object param2) { + WxOrder order = null; + WxCUserBasicInfo user = null; + Long userId = null; + if (param1 instanceof WxOrder) { + order = (WxOrder) param1; + userId = order.getCUserId(); + } + if (param1 instanceof WxCUserBasicInfo) { + user = (WxCUserBasicInfo) param1; + userId = user.getId(); + } + + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); + if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + userId); + return 0; + } + switch (scoreType){ case CONSUMPTION: { - WxOrder order = (WxOrder) param1; Integer bussinessId = (Integer) param2; return payAddScore(order, bussinessId); } case MEM_IMPORT: { - WxCUserBasicInfo user = (WxCUserBasicInfo) param1; boolean bHaveCUser = (boolean)(param2); return memResetScore(user, bHaveCUser); } @@ -606,9 +638,13 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { @Override public int reduceScore(EnumScoreType scoreType, Object param1, Object param2, Object param3) { + WxCUserBasicInfo user = (WxCUserBasicInfo) param1; + if (user != null && user.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { + logger.info("会员权益被锁定:cUserId:" + user.getId()); + return 0; + } switch (scoreType){ case MEM_REDUCE: { - WxCUserBasicInfo user = (WxCUserBasicInfo)param1; String reason = (String)param2; Integer scoreNum = (Integer)param3; return memReduceScore(user, reason, scoreNum); diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 66fd7e83f..62c50db9a 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -216,8 +216,8 @@ select from wx_c_user_basic_info cub inner join wx_c_user cu on cu.id = cub.id - - where 1=1 + + where 1=1 and cub.status=0 and cub.poins >= #{levelStartScore} @@ -241,7 +241,7 @@ select from wx_c_user_basic_info cub inner join wx_c_user cu on cu.id = cub.id - where cu.phone is not null + where cub.status = 0 and cu.phone is not null AND DATE_FORMAT(cub.birthdate,'%m-%d') >= #{begin} AND DATE_FORMAT(cub.birthdate,'%m-%d') <= #{end}