修改会员信息,重置用户等级

This commit is contained in:
张松 2025-09-26 11:26:32 +08:00
parent 31b22f9413
commit 60bcef1e9b
4 changed files with 44 additions and 7 deletions

View File

@ -4,6 +4,8 @@ import com.czg.market.vo.MemberLevelVO;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MemberLevelConfig;
import java.util.ArrayList;
/**
* 会员等级配置 服务层
*
@ -13,4 +15,5 @@ import com.czg.market.entity.MemberLevelConfig;
public interface MemberLevelConfigService extends IService<MemberLevelConfig> {
MemberLevelVO detail(Long memberLevelId);
ArrayList<MemberLevelVO> listInfo(Long shopId);
}

View File

@ -26,4 +26,5 @@ public class UMemberConfigVO implements Serializable {
*/
private Map<String, Object> conditionMap;
private MemberLevelVO memberLevel;
private List<MemberLevelVO> memberLevelList;
}

View File

@ -140,6 +140,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
} else {
configVO.setMemberLevel(levelConfigService.detail(shopUserInfo.getMemberLevelId()));
}
configVO.setMemberLevelList(levelConfigService.listInfo(shopId));
return configVO;
}
@ -185,6 +187,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
memberConfig.setMemberPriceShopIdList(JSONObject.toJSONString(memberDTO.getMemberPriceShopIdList()));
}
return updateById(memberConfig, false);
}
private void checkLevelDto(Long shopId, MemberLevelDTO levelDTO) {
@ -228,6 +232,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
public Boolean editLevel(Long shopId, MemberLevelDTO levelDTO) {
MemberLevelConfig levelConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getId, levelDTO.getId()).eq(MemberLevelConfig::getShopId, shopId));
Optional.ofNullable(levelConfig).orElseThrow(() -> new ApiNotPrintException("会员等级不存在"));
Integer oldVal = levelConfig.getExperienceValue();
checkLevelDto(shopId, levelDTO);
BeanUtil.copyProperties(levelDTO, levelConfig);
@ -236,7 +241,19 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
} else {
levelConfig.setCycleRewardCouponList(null);
}
return levelConfigService.updateById(levelConfig, false);
AssertUtil.isTrue(!levelConfigService.updateById(levelConfig, false), "修改失败");
if (!Objects.equals(oldVal, levelDTO.getExperienceValue())) {
List<ShopUser> shopUserList = shopUserService.list(new QueryWrapper().eq(ShopUser::getSourceShopId, shopId));
shopUserList.forEach(item -> {
MemberLevelConfig configServiceOne = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)
.le(MemberLevelConfig::getExperienceValue, item.getExperience()).orderBy(MemberLevelConfig::getExperienceValue, false).limit(1));
item.setMemberLevelId(configServiceOne == null ? item.getMemberLevelId() : configServiceOne.getId());
});
return shopUserService.updateBatch(shopUserList);
}
return true;
}
@Override

View File

@ -4,16 +4,17 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONArray;
import com.czg.market.dto.MemberLevelDTO;
import com.czg.market.entity.ShopCoupon;
import com.czg.market.service.ShopCouponService;
import com.czg.market.vo.MemberLevelVO;
import com.czg.service.market.mapper.TbMemberLevelConfigMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MemberLevelConfig;
import com.czg.market.service.MemberLevelConfigService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@ -26,12 +27,18 @@ import java.util.List;
public class TbMemberLevelConfigServiceImpl extends ServiceImpl<TbMemberLevelConfigMapper, MemberLevelConfig> implements MemberLevelConfigService{
@Resource
private ShopCouponService shopCouponService;
@Override
public MemberLevelVO detail(Long memberLevelId) {
MemberLevelConfig memberLevelConfig = getById(memberLevelId);
if (memberLevelConfig == null) {
return null;
}
public ArrayList<MemberLevelVO> listInfo(Long shopId) {
List<MemberLevelConfig> levelConfigs = list(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId));
ArrayList<MemberLevelVO> memberLevelVOS = new ArrayList<>();
levelConfigs.forEach(memberLevelConfig -> {
memberLevelVOS.add(transVO(memberLevelConfig));
});
return memberLevelVOS;
}
private MemberLevelVO transVO(MemberLevelConfig memberLevelConfig) {
MemberLevelVO levelVO = BeanUtil.copyProperties(memberLevelConfig, MemberLevelVO.class, "cycleRewardCouponList");
if (StrUtil.isNotBlank(memberLevelConfig.getCycleRewardCouponList())) {
List<MemberLevelDTO.ConfigCoupon> coupons = JSONArray.parseArray(memberLevelConfig.getCycleRewardCouponList()).toList(MemberLevelDTO.ConfigCoupon.class);
@ -42,4 +49,13 @@ public class TbMemberLevelConfigServiceImpl extends ServiceImpl<TbMemberLevelCon
}
return levelVO;
}
@Override
public MemberLevelVO detail(Long memberLevelId) {
MemberLevelConfig memberLevelConfig = getById(memberLevelId);
if (memberLevelConfig == null) {
return null;
}
return transVO(memberLevelConfig);
}
}