会员等级问题

This commit is contained in:
2026-03-10 15:24:23 +08:00
parent d052721b9b
commit 9b4768f01e
6 changed files with 48 additions and 8 deletions

View File

@@ -3,7 +3,6 @@ package com.czg.controller.admin;
import com.czg.exception.CzgException; import com.czg.exception.CzgException;
import com.czg.market.dto.MemberConfigDTO; import com.czg.market.dto.MemberConfigDTO;
import com.czg.market.dto.MemberLevelDTO; import com.czg.market.dto.MemberLevelDTO;
import com.czg.market.entity.MemberLevelConfig;
import com.czg.market.service.MemberLevelConfigService; import com.czg.market.service.MemberLevelConfigService;
import com.czg.market.service.MemberOrderService; import com.czg.market.service.MemberOrderService;
import com.czg.market.service.TbMemberConfigService; import com.czg.market.service.TbMemberConfigService;
@@ -13,7 +12,6 @@ import com.czg.resp.CzgResult;
import com.czg.sa.StpKit; import com.czg.sa.StpKit;
import com.czg.utils.AssertUtil; import com.czg.utils.AssertUtil;
import com.czg.validator.group.UpdateGroup; import com.czg.validator.group.UpdateGroup;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.groups.Default; import jakarta.validation.groups.Default;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -24,6 +22,7 @@ import java.util.Map;
/** /**
* 会员配置管理 * 会员配置管理
*
* @author ww * @author ww
*/ */
@@ -40,6 +39,7 @@ public class MemberController {
/** /**
* 会员购买订单记录 分页 * 会员购买订单记录 分页
*
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @param key 用户id * @param key 用户id
@@ -50,6 +50,7 @@ public class MemberController {
@RequestParam(required = false) String endTime, @RequestParam(required = false) String key) { @RequestParam(required = false) String endTime, @RequestParam(required = false) String key) {
return CzgResult.success(memberOrderService.pageInfo(startTime, endTime, key)); return CzgResult.success(memberOrderService.pageInfo(startTime, endTime, key));
} }
/** /**
* 配置信息获取 * 配置信息获取
* 权限标识: activate:list * 权限标识: activate:list
@@ -61,6 +62,7 @@ public class MemberController {
/** /**
* 配置信息修改 * 配置信息修改
*
* @return 是否成功 * @return 是否成功
*/ */
@PostMapping @PostMapping
@@ -72,6 +74,7 @@ public class MemberController {
/** /**
* 会员等级添加 * 会员等级添加
*
* @return 是否成功 * @return 是否成功
*/ */
@PostMapping("/level") @PostMapping("/level")
@@ -82,6 +85,7 @@ public class MemberController {
/** /**
* 会员等级修改 * 会员等级修改
*
* @return 是否成功 * @return 是否成功
*/ */
@PutMapping("/level") @PutMapping("/level")
@@ -92,16 +96,18 @@ public class MemberController {
/** /**
* 会员等级删除 * 会员等级删除
*
* @return 是否成功 * @return 是否成功
*/ */
@DeleteMapping("/level/{id}") @DeleteMapping("/level/{id}")
public CzgResult<Boolean> deleteLevel(@PathVariable Long id) { public CzgResult<Boolean> deleteLevel(@PathVariable Long id) {
AssertUtil.isTrue(!StpKit.USER.isMainShop(), "无权限操作"); AssertUtil.isTrue(!StpKit.USER.isMainShop(), "无权限操作");
return CzgResult.success(memberLevelConfigService.remove(new QueryWrapper().eq(MemberLevelConfig::getId, id).eq(MemberLevelConfig::getShopId, StpKit.USER.getShopId()))); return CzgResult.success(memberLevelConfigService.removeLevel(id, StpKit.USER.getShopId()));
} }
/** /**
* 会员等级列表 * 会员等级列表
*
* @return 是否成功 * @return 是否成功
*/ */
@GetMapping("/level/list") @GetMapping("/level/list")
@@ -112,6 +118,7 @@ public class MemberController {
/** /**
* 会员等级详情 * 会员等级详情
*
* @return 是否成功 * @return 是否成功
*/ */
@PutMapping("/level/detail") @PutMapping("/level/detail")

View File

@@ -42,6 +42,10 @@ public interface ShopUserService extends IService<ShopUser> {
Page<InviteUserVO> getInviteUser(Long getDistributionUserId, Long shopId, Long shopUserId, Long distributionLevelId, Integer page, Integer size); Page<InviteUserVO> getInviteUser(Long getDistributionUserId, Long shopId, Long shopUserId, Long distributionLevelId, Integer page, Integer size);
boolean updateInfo(ShopUser shopUser); boolean updateInfo(ShopUser shopUser);
/**
* 修改会员等级id 不忽略Null值
*/
void upMemberLevel(Long newMemberLevelId, Long oldMemberLevelId);
List<ShopUser> selectBirthdayUser(LocalDate current, Long mainShopId, String userType); List<ShopUser> selectBirthdayUser(LocalDate current, Long mainShopId, String userType);

View File

@@ -1,8 +1,8 @@
package com.czg.market.service; package com.czg.market.service;
import com.czg.market.entity.MemberLevelConfig;
import com.czg.market.vo.MemberLevelVO; import com.czg.market.vo.MemberLevelVO;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MemberLevelConfig;
import java.util.ArrayList; import java.util.ArrayList;
@@ -15,5 +15,8 @@ import java.util.ArrayList;
public interface MemberLevelConfigService extends IService<MemberLevelConfig> { public interface MemberLevelConfigService extends IService<MemberLevelConfig> {
MemberLevelVO detail(Long memberLevelId); MemberLevelVO detail(Long memberLevelId);
ArrayList<MemberLevelVO> listInfo(Long shopId); ArrayList<MemberLevelVO> listInfo(Long shopId);
Boolean removeLevel(Long id, Long shopId);
} }

View File

@@ -10,6 +10,7 @@ import com.czg.market.vo.InviteUserVO;
import com.mybatisflex.core.BaseMapper; import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -74,4 +75,6 @@ public interface ShopUserMapper extends BaseMapper<ShopUser> {
void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal amount, Integer isOne); void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal amount, Integer isOne);
@Update("update tb_shop_user set member_level_id = #{newMemberLevelId} where member_level_id = #{oldMemberLevelId}")
void upMemberLevel(Long newMemberLevelId, Long oldMemberLevelId);
} }

View File

@@ -38,7 +38,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -82,6 +81,11 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
return super.updateById(shopUser); return super.updateById(shopUser);
} }
@Override
public void upMemberLevel(Long newMemberLevelId, Long oldMemberLevelId) {
mapper.upMemberLevel(newMemberLevelId, oldMemberLevelId);
}
@Override @Override
public ShopUser getShopUserInfo(Long shopId, long userId) { public ShopUser getShopUserInfo(Long shopId, long userId) {

View File

@@ -3,6 +3,7 @@ package com.czg.service.market.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.czg.account.service.ShopUserService;
import com.czg.market.dto.MemberLevelDTO; import com.czg.market.dto.MemberLevelDTO;
import com.czg.market.entity.MemberLevelConfig; import com.czg.market.entity.MemberLevelConfig;
import com.czg.market.service.MemberLevelConfigService; import com.czg.market.service.MemberLevelConfigService;
@@ -12,6 +13,7 @@ import com.czg.service.market.mapper.TbMemberLevelConfigMapper;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import java.util.ArrayList; import java.util.ArrayList;
@@ -27,6 +29,8 @@ import java.util.List;
public class TbMemberLevelConfigServiceImpl extends ServiceImpl<TbMemberLevelConfigMapper, MemberLevelConfig> implements MemberLevelConfigService { public class TbMemberLevelConfigServiceImpl extends ServiceImpl<TbMemberLevelConfigMapper, MemberLevelConfig> implements MemberLevelConfigService {
@Resource @Resource
private ShopCouponService shopCouponService; private ShopCouponService shopCouponService;
@DubboReference
private ShopUserService shopUserService;
@Override @Override
public ArrayList<MemberLevelVO> listInfo(Long shopId) { public ArrayList<MemberLevelVO> listInfo(Long shopId) {
@@ -36,6 +40,21 @@ public class TbMemberLevelConfigServiceImpl extends ServiceImpl<TbMemberLevelCon
return memberLevels; return memberLevels;
} }
@Override
public Boolean removeLevel(Long id, Long shopId) {
boolean result = remove(new QueryWrapper().eq(MemberLevelConfig::getId, id).eq(MemberLevelConfig::getShopId, shopId));
if (result) {
MemberLevelConfig one = getOne(query().lt(MemberLevelConfig::getId, id).eq(MemberLevelConfig::getShopId, shopId).orderBy(MemberLevelConfig::getId, false));
if (one != null) {
shopUserService.upMemberLevel(one.getId(), id);
} else {
//设置等级id为null
shopUserService.upMemberLevel(null, id);
}
}
return result;
}
private MemberLevelVO transVO(MemberLevelConfig memberLevelConfig) { private MemberLevelVO transVO(MemberLevelConfig memberLevelConfig) {
MemberLevelVO levelVO = BeanUtil.copyProperties(memberLevelConfig, MemberLevelVO.class, "cycleRewardCouponList"); MemberLevelVO levelVO = BeanUtil.copyProperties(memberLevelConfig, MemberLevelVO.class, "cycleRewardCouponList");
if (StrUtil.isNotBlank(memberLevelConfig.getCycleRewardCouponList())) { if (StrUtil.isNotBlank(memberLevelConfig.getCycleRewardCouponList())) {