新客立减相关

This commit is contained in:
张松
2025-11-11 16:24:56 +08:00
parent cdfc8162e7
commit ed59e39960
4 changed files with 31 additions and 9 deletions

View File

@@ -27,4 +27,5 @@ public class ShopUserDTO extends ShopUser {
private String memberLevelName; private String memberLevelName;
private String nextMemberLevelName; private String nextMemberLevelName;
private Long nextExperience; private Long nextExperience;
private boolean isNew;
} }

View File

@@ -1,5 +1,6 @@
package com.czg.market.service; package com.czg.market.service;
import com.czg.account.entity.ShopUser;
import com.czg.market.vo.MkConsumeDiscountVO; import com.czg.market.vo.MkConsumeDiscountVO;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkShopConsumeDiscountRecord; import com.czg.market.entity.MkShopConsumeDiscountRecord;
@@ -37,4 +38,6 @@ public interface MkShopConsumeDiscountRecordService extends IService<MkShopConsu
* @param amount 减免金额 * @param amount 减免金额
*/ */
void useDiscount(Long shopUserId, Long orderId, BigDecimal amount); void useDiscount(Long shopUserId, Long orderId, BigDecimal amount);
boolean isNewUser(ShopUser shopUser, Long shopId);
} }

View File

@@ -16,6 +16,7 @@ import com.czg.market.entity.MemberLevelConfig;
import com.czg.market.entity.MkShopCouponRecord; import com.czg.market.entity.MkShopCouponRecord;
import com.czg.market.entity.SmsPushEventUser; import com.czg.market.entity.SmsPushEventUser;
import com.czg.market.service.MemberLevelConfigService; import com.czg.market.service.MemberLevelConfigService;
import com.czg.market.service.MkShopConsumeDiscountRecordService;
import com.czg.market.service.MkShopCouponRecordService; import com.czg.market.service.MkShopCouponRecordService;
import com.czg.market.service.TbMemberConfigService; import com.czg.market.service.TbMemberConfigService;
import com.czg.market.vo.MemberConfigVO; import com.czg.market.vo.MemberConfigVO;
@@ -67,6 +68,8 @@ public class AShopUserServiceImpl implements AShopUserService {
private MemberLevelConfigService memberLevelConfigService; private MemberLevelConfigService memberLevelConfigService;
@DubboReference @DubboReference
private TbMemberConfigService memberConfigService; private TbMemberConfigService memberConfigService;
@DubboReference
private MkShopConsumeDiscountRecordService consumeDiscountService;
private ShopUser getUserInfo(Long shopUserId) { private ShopUser getUserInfo(Long shopUserId) {
ShopUser shopUser = shopUserService.queryChain().eq(ShopUser::getId, shopUserId).one(); ShopUser shopUser = shopUserService.queryChain().eq(ShopUser::getId, shopUserId).one();
@@ -93,7 +96,11 @@ public class AShopUserServiceImpl implements AShopUserService {
public Page<ShopUserDTO> getPage(String key, Integer isVip, BigDecimal amount) { public Page<ShopUserDTO> getPage(String key, Integer isVip, BigDecimal amount) {
Long mainIdByShopId = shopInfoService.getMainIdByShopId(StpKit.USER.getShopId()); Long mainIdByShopId = shopInfoService.getMainIdByShopId(StpKit.USER.getShopId());
PageHelper.startPage(PageUtil.buildPageHelp()); PageHelper.startPage(PageUtil.buildPageHelp());
return PageUtil.convert(new PageInfo<>(shopUserMapper.selectPageByKeyAndIsVip(mainIdByShopId, isVip, key, amount))); PageInfo<ShopUserDTO> shopUserDTOPageInfo = new PageInfo<>(shopUserMapper.selectPageByKeyAndIsVip(mainIdByShopId, isVip, key, amount));
shopUserDTOPageInfo.getList().forEach(item -> {
item.setNew(consumeDiscountService.isNewUser(item, StpKit.USER.getShopId()));
});
return PageUtil.convert(shopUserDTOPageInfo);
} }
@Override @Override

View File

@@ -22,6 +22,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.auth.v1alpha1.Ca; import org.apache.dubbo.auth.v1alpha1.Ca;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -35,7 +36,7 @@ import java.util.Random;
* @since 2025-09-17 * @since 2025-09-17
*/ */
@Slf4j @Slf4j
@Service @DubboService
public class MkShopConsumeDiscountRecordServiceImpl extends ServiceImpl<MkShopConsumeDiscountRecordMapper, MkShopConsumeDiscountRecord> implements MkShopConsumeDiscountRecordService { public class MkShopConsumeDiscountRecordServiceImpl extends ServiceImpl<MkShopConsumeDiscountRecordMapper, MkShopConsumeDiscountRecord> implements MkShopConsumeDiscountRecordService {
@Resource @Resource
private MkConsumeDiscountService consumeDiscountService; private MkConsumeDiscountService consumeDiscountService;
@@ -101,9 +102,25 @@ public class MkShopConsumeDiscountRecordServiceImpl extends ServiceImpl<MkShopCo
AssertUtil.isTrue(!flag, "修改失败"); AssertUtil.isTrue(!flag, "修改失败");
} }
@Override
public boolean isNewUser(ShopUser shopUser, Long shopId) {
MkShopConsumeDiscountRecord discountRecord = getOne(new QueryWrapper().eq(MkShopConsumeDiscountRecord::getShopId, shopId)
.eq(MkShopConsumeDiscountRecord::getIsUse, 1)
.eq(MkShopConsumeDiscountRecord::getShopUserId, shopUser.getId()));
boolean exists = orderInfoService.exists(new QueryWrapper().eq(OrderInfo::getUserId, shopUser.getUserId())
.eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()));
return !exists && discountRecord == null;
}
@Override @Override
public MkShopConsumeDiscountRecord getDiscount(Long shopId, Long userId, Long orderId) { public MkShopConsumeDiscountRecord getDiscount(Long shopId, Long userId, Long orderId) {
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getUserId, userId).eq(ShopUser::getSourceShopId, shopId)); ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getUserId, userId).eq(ShopUser::getSourceShopId, shopId));
boolean newUser = isNewUser(shopUser, shopId);
if (!newUser) {
// throw new ApiNotPrintException("新客立减仅新用户可用");
log.info("新客立减仅限新用户使用");
return null;
}
MkShopConsumeDiscountRecord discountRecord = getOne(new QueryWrapper().eq(MkShopConsumeDiscountRecord::getShopId, shopId) MkShopConsumeDiscountRecord discountRecord = getOne(new QueryWrapper().eq(MkShopConsumeDiscountRecord::getShopId, shopId)
.eq(MkShopConsumeDiscountRecord::getOrderId, orderId) .eq(MkShopConsumeDiscountRecord::getOrderId, orderId)
.eq(MkShopConsumeDiscountRecord::getIsUse, 0) .eq(MkShopConsumeDiscountRecord::getIsUse, 0)
@@ -115,13 +132,7 @@ public class MkShopConsumeDiscountRecordServiceImpl extends ServiceImpl<MkShopCo
} }
return discountRecord; return discountRecord;
} }
boolean exists = orderInfoService.exists(new QueryWrapper().eq(OrderInfo::getUserId, shopUser.getUserId())
.eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()));
if (exists) {
// throw new ApiNotPrintException("新客立减仅新用户可用");
log.info("新客立减仅限新用户使用");
return null;
}
try { try {
MkConsumeDiscountVO consumeDiscountVO = canUse(shopId, userId); MkConsumeDiscountVO consumeDiscountVO = canUse(shopId, userId);