会员 条件开通

This commit is contained in:
2025-12-25 14:06:31 +08:00
parent 621bf2401d
commit e125eed517
2 changed files with 16 additions and 15 deletions

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.czg.CzgPayUtils; import com.czg.CzgPayUtils;
import com.czg.account.service.ShopUserService;
import com.czg.constants.PayTypeConstants; import com.czg.constants.PayTypeConstants;
import com.czg.entity.CzgBaseRespParams; import com.czg.entity.CzgBaseRespParams;
import com.czg.market.entity.MkShopConsumeDiscountRecord; import com.czg.market.entity.MkShopConsumeDiscountRecord;
@@ -38,10 +37,6 @@ import java.io.IOException;
@RequestMapping("/notify") @RequestMapping("/notify")
public class NotifyController { public class NotifyController {
private static final String SUCCESS = "SUCCESS"; private static final String SUCCESS = "SUCCESS";
@Resource
private ShopUserService shopUserService;
@Resource @Resource
private OrderInfoCustomService orderInfoCustomService; private OrderInfoCustomService orderInfoCustomService;
@Resource @Resource

View File

@@ -13,6 +13,7 @@ import com.czg.account.service.ShopInfoService;
import com.czg.account.service.ShopUserService; import com.czg.account.service.ShopUserService;
import com.czg.account.service.UserInfoService; import com.czg.account.service.UserInfoService;
import com.czg.constant.TableValueConstant; import com.czg.constant.TableValueConstant;
import com.czg.constants.PayTypeConstants;
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;
@@ -411,16 +412,19 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
boolean canOpen = switch (item.getCode()) { boolean canOpen = switch (item.getCode()) {
case "BIND_PHONE" -> StrUtil.isNotBlank(shopUser.getPhone()); case "BIND_PHONE" -> StrUtil.isNotBlank(shopUser.getPhone());
case "ORDER" -> case "ORDER" ->
orderInfoService.count(new QueryWrapper().eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getUserId, shopUser.getUserId()) orderInfoService.count(query().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUser.getUserId())
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue()); .notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue());
case "COST_AMOUNT" -> case "COST_AMOUNT" ->
orderInfoService.list(new QueryWrapper().eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getUserId, shopUser.getUserId()) orderInfoService.getOneAs(query().select("sum(pay_amount)").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUser.getUserId())
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) .notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()), BigDecimal.class)
.stream().map(OrderInfo::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0; .compareTo(new BigDecimal(item.getValue())) >= 0;
case "RECHARGE_AMOUNT" -> case "RECHARGE_AMOUNT" -> paymentService.getOneAs(query().select("sum(amount)")
paymentService.list(new QueryWrapper().eq(OrderPayment::getShopId, shopUser.getSourceShopId()) .eq(OrderPayment::getShopId, shopId)
.eq(OrderPayment::getSourceId, shopUser.getId()).isNotNull(OrderPayment::getTradeNumber)) .eq(OrderPayment::getSourceType, PayTypeConstants.SourceType.MEMBER_IN)
.stream().map(OrderPayment::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0; .eq(OrderPayment::getPayType, PayTypeConstants.PayType.PAY)
.eq(OrderPayment::getSourceId, shopUser.getId())
.eq(OrderPayment::getPayStatus, PayTypeConstants.PayStatus.SUCCESS), BigDecimal.class)
.compareTo(new BigDecimal(item.getValue())) >= 0;
default -> throw new CzgException("会员开通条件类型错误"); default -> throw new CzgException("会员开通条件类型错误");
}; };
if (!canOpen) { if (!canOpen) {
@@ -431,10 +435,12 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
ShopUser upShopUser = new ShopUser(); ShopUser upShopUser = new ShopUser();
upShopUser.setId(shopUser.getId()); upShopUser.setId(shopUser.getId());
upShopUser.setMemberLevelId(levelConfig.getId()); upShopUser.setMemberLevelId(levelConfig.getId());
upShopUser.setStartTime(DateUtil.date().toLocalDateTime()); upShopUser.setStartTime(LocalDateTime.now());
upShopUser.setEndTime(shopUser.getStartTime().plusDays(20000)); upShopUser.setEndTime(shopUser.getStartTime().plusDays(20000));
upShopUser.setIsVip(1); upShopUser.setIsVip(1);
if (shopUser.getJoinTime() != null) {
upShopUser.setJoinTime(LocalDateTime.now());
}
upShopUser.setOpenType("CONDITION"); upShopUser.setOpenType("CONDITION");
return shopUserService.updateById(upShopUser); return shopUserService.updateById(upShopUser);
} }