|
|
|
|
@@ -6,18 +6,16 @@ import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
import com.czg.constant.TableValueConstant;
|
|
|
|
|
import com.czg.market.dto.MemberConfigDTO;
|
|
|
|
|
import com.czg.market.dto.MemberLevelDTO;
|
|
|
|
|
import com.czg.account.entity.*;
|
|
|
|
|
import com.czg.account.service.*;
|
|
|
|
|
import com.czg.market.entity.MemberOrder;
|
|
|
|
|
import com.czg.market.entity.*;
|
|
|
|
|
import com.czg.market.service.MemberOrderService;
|
|
|
|
|
import com.czg.market.vo.MemberConfigVO;
|
|
|
|
|
import com.czg.market.vo.MemberLevelVO;
|
|
|
|
|
import com.czg.exception.CzgException;
|
|
|
|
|
import com.czg.market.entity.MemberLevelConfig;
|
|
|
|
|
import com.czg.market.entity.ShopCoupon;
|
|
|
|
|
import com.czg.market.entity.TbMemberConfig;
|
|
|
|
|
import com.czg.market.service.MemberLevelConfigService;
|
|
|
|
|
import com.czg.market.service.TbMemberConfigService;
|
|
|
|
|
import com.czg.order.entity.OrderInfo;
|
|
|
|
|
@@ -194,7 +192,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
levelConfigService.list(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)).forEach(item -> {
|
|
|
|
|
MemberLevelVO memberLevelVO = BeanUtil.copyProperties(item, MemberLevelVO.class, "cycleRewardCouponList");
|
|
|
|
|
if (StrUtil.isNotBlank(item.getCycleRewardCouponList())) {
|
|
|
|
|
memberLevelVO.setCycleRewardCouponList(JSONArray.parseArray(item.getCycleRewardCouponList()).toList(ShopCoupon.class));
|
|
|
|
|
memberLevelVO.setCycleRewardCouponList(JSONArray.parseArray(item.getCycleRewardCouponList()).toList(MemberLevelDTO.ConfigCoupon.class));
|
|
|
|
|
}
|
|
|
|
|
memberLevelVOS.add(memberLevelVO);
|
|
|
|
|
});
|
|
|
|
|
@@ -203,7 +201,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean deliver(Long shopId, Long userId, BigDecimal money, boolean isCost) {
|
|
|
|
|
public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, boolean isCost) {
|
|
|
|
|
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getShopId, shopId).eq(ShopUser::getUserId, userId));
|
|
|
|
|
if (shopUser == null || shopUser.getIsVip() == 0) {
|
|
|
|
|
return false;
|
|
|
|
|
@@ -218,9 +216,27 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
shopUser.setExperience(0L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long exp = 0;
|
|
|
|
|
switch (type) {
|
|
|
|
|
case COST -> {
|
|
|
|
|
if (memberConfig.getCostReward() != null) {
|
|
|
|
|
exp = money.longValue() * memberConfig.getCostReward();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
case RECHARGE -> {
|
|
|
|
|
if (memberConfig.getRechargeReward() != null) {
|
|
|
|
|
exp = money.longValue() * memberConfig.getRechargeReward();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
case PAY -> {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 消费经验
|
|
|
|
|
if (memberConfig.getCostReward() != null && isCost) {
|
|
|
|
|
shopUser.setExperience(money.longValue() * memberConfig.getCostReward() + shopUser.getExperience());
|
|
|
|
|
exp = money.longValue() * memberConfig.getCostReward() + shopUser.getExperience();
|
|
|
|
|
// shopUser.setExperience();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 充值经验
|
|
|
|
|
@@ -239,6 +255,13 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
int points = (int) (money.floatValue() / levelConfig.getCostRewardPoints());
|
|
|
|
|
memberPointsService.addPoints(shopUser.getId(), points, "会员消费送积分", null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MemberExpFlow expFlow = new MemberExpFlow();
|
|
|
|
|
expFlow.setContent(type.getMsg() + 1);
|
|
|
|
|
expFlow.setType("+");
|
|
|
|
|
expFlow.setUserId(userId);
|
|
|
|
|
expFlow.setShopId(shopId);
|
|
|
|
|
expFlow.setMoney(money);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -250,7 +273,6 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
log.warn("用户不存在, 店铺id: {}, 用户id: {}", shopId, userId);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
boolean canOpen = false;
|
|
|
|
|
|
|
|
|
|
if (shopUser.getStartTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
|
|
|
|
shopUser.setStartTime(DateUtil.date().toLocalDateTime());
|
|
|
|
|
@@ -294,6 +316,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (memberOrder.getCouponList() != null && !memberOrder.getCouponList().isEmpty()) {
|
|
|
|
|
// TODO 发放优惠券
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|