个人中心会员相关

This commit is contained in:
张松
2025-09-25 11:41:39 +08:00
parent f4b6e68eff
commit 6bcf58aafc
4 changed files with 81 additions and 14 deletions

View File

@@ -14,16 +14,11 @@ import com.czg.account.entity.*;
import com.czg.account.service.*;
import com.czg.market.entity.*;
import com.czg.market.service.*;
import com.czg.market.vo.MemberConfigVO;
import com.czg.market.vo.MemberDetailVO;
import com.czg.market.vo.MemberLevelVO;
import com.czg.exception.ApiNotPrintException;
import com.czg.market.vo.MemberListVO;
import com.czg.market.vo.*;
import com.czg.order.entity.OrderInfo;
import com.czg.order.entity.OrderPayment;
import com.czg.order.service.OrderInfoService;
import com.czg.order.service.OrderPaymentService;
import com.czg.sa.StpKit;
import com.czg.service.market.enums.OrderStatusEnums;
import com.czg.service.market.mapper.TbMemberConfigMapper;
import com.czg.utils.AssertUtil;
@@ -99,6 +94,48 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
return memberConfigVO;
}
@Override
public UMemberConfigVO detail(Long shopId, Long userId) {
MemberConfigVO memberConfigVO = detail(shopId);
ShopUser shopUserInfo = shopUserService.getShopUserInfo(shopId, userId);
HashMap<String, Object> conditionMap = new HashMap<>();
UMemberConfigVO configVO = new UMemberConfigVO();
configVO.setMemberConfig(memberConfigVO);
configVO.setConditionMap(conditionMap);
if (memberConfigVO.getConditionList() != null) {
for (MemberConfigDTO.condition item : memberConfigVO.getConditionList()) {
switch (item.getCode()) {
case "BIND_PHONE":
conditionMap.put("BIND_PHONE", StrUtil.isNotBlank(shopUserInfo.getPhone()));
break;
case "ORDER":
conditionMap.put("ORDER", orderInfoService.count(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue()));
break;
case "COST_AMOUNT":
conditionMap.put("BIND_PHONE", orderInfoService.list(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()))
.stream().map(OrderInfo::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
break;
case "RECHARGE_AMOUNT":
conditionMap.put("BIND_PHONE", paymentService.list(new QueryWrapper().eq(OrderPayment::getShopId, shopUserInfo.getSourceShopId())
.eq(OrderPayment::getSourceId, shopUserInfo.getId()).isNotNull(OrderPayment::getTradeNumber))
.stream().map(OrderPayment::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
break;
default:
throw new CzgException("会员开通条件类型错误");
}
}
}
return configVO;
}
@Override
public Boolean edit(Long shopId, MemberConfigDTO memberDTO) {
TbMemberConfig memberConfig = getOne(new QueryWrapper().eq(TbMemberConfig::getShopId, shopId));