超级会员购买相关

This commit is contained in:
张松
2025-09-12 10:36:50 +08:00
parent 5dd5e09770
commit bd47a96228
14 changed files with 278 additions and 23 deletions

View File

@@ -10,10 +10,11 @@ import com.zaxxer.hikari.HikariDataSource;
* @author ww
*/
public class Main {
private final static String BASE_URL = "rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com";
// private final static String BASE_URL = "rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com";
private final static String BASE_URL = "192.168.1.31";
private final static String PORT = "3306";
private final static String USERNAME = "cashier";
private final static String PASSWORD = "Cashier@1@";
private final static String USERNAME = "root";
private final static String PASSWORD = "Chaozg123.";
private final static String DATABASE = "czg_cashier";
static String currentWorkingDirectory = System.getProperty("user.dir");
static String basePackage = "com.czg.";
@@ -24,11 +25,11 @@ public class Main {
// tableName 指定需要生成的表
// String packageName = "system";
String packageName = "account";
// String packageName = "account";
// String packageName = "product";
// String packageName = "order";
String packageName = "market";
String tableName = "tb_order_info";
String tableName = "tb_member_exp_flow";
String author = "zs";
//是否生成DTO实体 默认生成
boolean isGenerateDto = true;

View File

@@ -0,0 +1,14 @@
package com.czg.service.market.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.market.entity.MemberExpFlow;
/**
* 会员经验值流水表 映射层。
*
* @author zs
* @since 2025-09-12
*/
public interface MemberExpFlowMapper extends BaseMapper<MemberExpFlow> {
}

View File

@@ -0,0 +1,18 @@
package com.czg.service.market.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MemberExpFlow;
import com.czg.market.service.MemberExpFlowService;
import com.czg.service.market.mapper.MemberExpFlowMapper;
import org.springframework.stereotype.Service;
/**
* 会员经验值流水表 服务层实现。
*
* @author zs
* @since 2025-09-12
*/
@Service
public class MemberExpFlowServiceImpl extends ServiceImpl<MemberExpFlowMapper, MemberExpFlow> implements MemberExpFlowService{
}

View File

@@ -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 发放优惠券
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.market.mapper.MemberExpFlowMapper">
</mapper>