diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/user/domain/YxUserLevel.java b/zsw-bxg/src/main/java/co/yixiang/modules/user/domain/YxUserLevel.java
index 4ee2fd08..f08d1e3c 100644
--- a/zsw-bxg/src/main/java/co/yixiang/modules/user/domain/YxUserLevel.java
+++ b/zsw-bxg/src/main/java/co/yixiang/modules/user/domain/YxUserLevel.java
@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Service;
/**
*
@@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode(callSuper = true)
+@Service
@ApiModel(value = "YxUserLevel对象", description = "用户等级记录表")
public class YxUserLevel extends BaseDomain {
diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/MemberController.java b/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/MemberController.java
index 34cb091a..2bfbf37e 100644
--- a/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/MemberController.java
+++ b/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/MemberController.java
@@ -9,16 +9,23 @@
package co.yixiang.modules.user.rest;
import cn.iocoder.yudao.framework.common.exception.YshopException;
+import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
+import co.yixiang.modules.shop.domain.YxSystemUserLevel;
import co.yixiang.modules.user.domain.YxUser;
+import co.yixiang.modules.user.service.YxSystemUserLevelService;
+import co.yixiang.modules.user.service.YxUserLevelService;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.service.dto.UserMoneyDto;
import co.yixiang.modules.user.service.dto.YxUserQueryCriteria;
+import co.yixiang.modules.user.service.impl.YxUserLevelServiceImpl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -44,7 +51,14 @@ import java.math.BigDecimal;
@RequestMapping("api")
public class MemberController {
- private final YxUserService yxUserService;
+ @Autowired
+ private YxUserService yxUserService;
+
+ @Autowired
+ private YxUserLevelServiceImpl yxUserLevelServiceImpl;
+
+ @Autowired
+ private YxSystemUserLevelService yxSystemUserLevelService;
public MemberController(YxUserService yxUserService) {
this.yxUserService = yxUserService;
@@ -76,6 +90,18 @@ public class MemberController {
// if (resources.getIntegral().compareTo(BigDecimal.valueOf(999999.99))>=0){
// throw new YshopException("999999.99");
// }
+ //这里判断是否对会员等级进行了修改
+ YxUser yxUser=yxUserService.getById(resources.getUid());
+ //会员等级进行了修改
+ if (yxUser.getLevel()!=resources.getLevel()){
+ LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>();
+ wrapper.eq(YxSystemUserLevel::getGrade,resources.getLevel())
+ .eq(YxSystemUserLevel::getIsShow, ShopCommonEnum.SHOW_1.getValue())
+ .orderByAsc(YxSystemUserLevel::getGrade)
+ .last("limit 1");
+ int levelId=yxSystemUserLevelService.getOne(wrapper).getId();
+ yxUserLevelServiceImpl.setUserLevel(resources.getUid(),levelId);
+ }
yxUserService.saveOrUpdate(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/SystemUserLevelController.java b/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/SystemUserLevelController.java
index a418fc64..9a7c2d2c 100644
--- a/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/SystemUserLevelController.java
+++ b/zsw-bxg/src/main/java/co/yixiang/modules/user/rest/SystemUserLevelController.java
@@ -5,11 +5,15 @@
*/
package co.yixiang.modules.user.rest;
+import cn.hutool.core.util.ObjectUtil;
+import cn.iocoder.yudao.framework.common.exception.YshopException;
+import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.shop.domain.YxSystemUserLevel;
import co.yixiang.modules.user.service.YxSystemUserLevelService;
import co.yixiang.modules.user.service.dto.YxSystemUserLevelQueryCriteria;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.Pageable;
@@ -55,6 +59,15 @@ public class SystemUserLevelController {
@PostMapping(value = "/yxSystemUserLevel")
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_CREATE')")
public ResponseEntity create(@Validated @RequestBody YxSystemUserLevel resources){
+ YxSystemUserLevel yxSystemUserLevel=yxSystemUserLevelService.lambdaQuery()
+ .eq(YxSystemUserLevel::getIsShow, ShopCommonEnum.SHOW_1.getValue())
+ .orderByAsc(YxSystemUserLevel::getGrade)
+ .gt(YxSystemUserLevel::getGrade,resources.getGrade())
+ .last("limit 1")
+ .one();
+ if (ObjectUtil.isNotEmpty(yxSystemUserLevel)){
+ throw new YshopException("已有相同等级会员卡");
+ }
return new ResponseEntity<>(yxSystemUserLevelService.save(resources),HttpStatus.CREATED);
}
@@ -64,6 +77,15 @@ public class SystemUserLevelController {
@PutMapping(value = "/yxSystemUserLevel")
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_EDIT')")
public ResponseEntity update(@Validated @RequestBody YxSystemUserLevel resources){
+ YxSystemUserLevel yxSystemUserLevel=yxSystemUserLevelService.lambdaQuery()
+ .eq(YxSystemUserLevel::getIsShow, ShopCommonEnum.SHOW_1.getValue())
+ .orderByAsc(YxSystemUserLevel::getGrade)
+ .gt(YxSystemUserLevel::getGrade,resources.getGrade())
+ .last("limit 1")
+ .one();
+ if (ObjectUtil.isNotEmpty(yxSystemUserLevel)){
+ throw new YshopException("已有相同等级会员卡");
+ }
yxSystemUserLevelService.saveOrUpdate(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/user/service/YxUserService.java b/zsw-bxg/src/main/java/co/yixiang/modules/user/service/YxUserService.java
index 5a7a3ddb..e69cbfe0 100644
--- a/zsw-bxg/src/main/java/co/yixiang/modules/user/service/YxUserService.java
+++ b/zsw-bxg/src/main/java/co/yixiang/modules/user/service/YxUserService.java
@@ -30,6 +30,12 @@ import java.util.Map;
*/
public interface YxUserService extends BaseService{
+ /**
+ * 更新会员等级
+ * @return resources 会员信息
+ */
+ void updateLevel(YxUser resources);
+
/**
* 返回用户累计充值金额与消费金额
* @param uid uid
diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/user/service/impl/YxUserLevelServiceImpl.java b/zsw-bxg/src/main/java/co/yixiang/modules/user/service/impl/YxUserLevelServiceImpl.java
index 4a0f49ac..460f8062 100644
--- a/zsw-bxg/src/main/java/co/yixiang/modules/user/service/impl/YxUserLevelServiceImpl.java
+++ b/zsw-bxg/src/main/java/co/yixiang/modules/user/service/impl/YxUserLevelServiceImpl.java
@@ -141,7 +141,7 @@ public class YxUserLevelServiceImpl extends BaseServiceImpl im
@Autowired
private YxStoreOrderCartInfoService storeOrderCartInfoService;
+ @Autowired
+ private YxUserLevelService yxUserLevelService;
+ @Autowired
+ private YxUserLevel yxUserLevel;
+ @Override
+ public void updateLevel(YxUser resources) {
+ LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>();
+ wrapper.eq(YxUserLevel::getUid,resources.getUid());
+ yxUserLevel.setLevelId(resources.getLevel())
+ .setUid(resources.getUid())
+ .setGrowth(resources.getGrowth());
+ if (ObjectUtil.isNotEmpty(yxUserLevelService.getOne(wrapper))){
+ yxUserLevelService.update(yxUserLevel,wrapper);
+ }else {
+ yxUserLevel.setId(null);
+ yxUserLevelService.save(yxUserLevel);
+ }
+
+ }
/**
* 返回用户累计充值金额与消费金额