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}