超级会员购买相关
This commit is contained in:
@@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
package com.czg.market.dto;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import java.io.Serial;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员经验值流水表 实体类。
|
||||||
|
*
|
||||||
|
* @author zs
|
||||||
|
* @since 2025-09-12
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MemberExpFlowDTO implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型 + -
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源类型 COST消费赠送 RECHARGE充值
|
||||||
|
*/
|
||||||
|
private String sourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赠送数量
|
||||||
|
*/
|
||||||
|
private Integer value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源id
|
||||||
|
*/
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -34,7 +34,7 @@ public class MemberLevelDTO {
|
|||||||
*/
|
*/
|
||||||
@Min(value = 0, message = "成长值不能小于0")
|
@Min(value = 0, message = "成长值不能小于0")
|
||||||
@NotNull(message = "成长值不为空")
|
@NotNull(message = "成长值不为空")
|
||||||
private Long experienceValue;
|
private Integer experienceValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员折扣
|
* 会员折扣
|
||||||
@@ -63,8 +63,10 @@ public class MemberLevelDTO {
|
|||||||
/**
|
/**
|
||||||
* 周期时间包含周 月 年 日
|
* 周期时间包含周 月 年 日
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "周期时间不为空", groups = MemberLevelCycleRewardGroup.class)
|
@NotNull(message = "周期时间不为空", groups = MemberLevelCycleRewardGroup.class)
|
||||||
private String cycleTime;
|
private Integer cycleTime;
|
||||||
|
@NotBlank(message = "周期单位不为空", groups = MemberLevelCycleRewardGroup.class)
|
||||||
|
private String cycleUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 赠送积分
|
* 赠送积分
|
||||||
@@ -75,7 +77,13 @@ public class MemberLevelDTO {
|
|||||||
/**
|
/**
|
||||||
* 优惠券列表
|
* 优惠券列表
|
||||||
*/
|
*/
|
||||||
private List<ShopCoupon> cycleRewardCouponList;
|
|
||||||
|
|
||||||
|
private List<ConfigCoupon> cycleRewardCouponList;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class ConfigCoupon {
|
||||||
|
@Min(value = 1, message = "数量不能小于1")
|
||||||
|
private Integer num;
|
||||||
|
private ShopCoupon coupon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
package com.czg.market.entity;
|
||||||
|
|
||||||
|
import com.mybatisflex.annotation.Column;
|
||||||
|
import com.mybatisflex.annotation.Id;
|
||||||
|
import com.mybatisflex.annotation.KeyType;
|
||||||
|
import com.mybatisflex.annotation.Table;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员经验值流水表 实体类。
|
||||||
|
*
|
||||||
|
* @author zs
|
||||||
|
* @since 2025-09-12
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Table("tb_member_exp_flow")
|
||||||
|
public class MemberExpFlow implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id(keyType = KeyType.Auto)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型 + -
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源类型 COST消费赠送 RECHARGE充值
|
||||||
|
*/
|
||||||
|
private String sourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赠送数量
|
||||||
|
*/
|
||||||
|
private Integer value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源id
|
||||||
|
*/
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Column(onInsertValue = "now()")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
private BigDecimal money;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -46,7 +46,7 @@ public class MemberLevelConfig implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 所需成长值
|
* 所需成长值
|
||||||
*/
|
*/
|
||||||
private Long experienceValue;
|
private Integer experienceValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员折扣
|
* 会员折扣
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.czg.market.service;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.service.IService;
|
||||||
|
import com.czg.market.entity.MemberExpFlow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员经验值流水表 服务层。
|
||||||
|
*
|
||||||
|
* @author zs
|
||||||
|
* @since 2025-09-12
|
||||||
|
*/
|
||||||
|
public interface MemberExpFlowService extends IService<MemberExpFlow> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.czg.market.service;
|
package com.czg.market.service;
|
||||||
|
|
||||||
|
import com.czg.constant.TableValueConstant;
|
||||||
import com.czg.market.dto.MemberConfigDTO;
|
import com.czg.market.dto.MemberConfigDTO;
|
||||||
import com.czg.market.dto.MemberLevelDTO;
|
import com.czg.market.dto.MemberLevelDTO;
|
||||||
import com.czg.market.vo.MemberConfigVO;
|
import com.czg.market.vo.MemberConfigVO;
|
||||||
@@ -40,6 +41,6 @@ public interface TbMemberConfigService extends IService<TbMemberConfig> {
|
|||||||
* 发放会员奖励
|
* 发放会员奖励
|
||||||
* @param isCost 是否是消费 true 消费 false 充值
|
* @param isCost 是否是消费 true 消费 false 充值
|
||||||
*/
|
*/
|
||||||
boolean deliver(Long shopId, Long userId, BigDecimal money, boolean isCost);
|
boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, boolean isCost);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ import jakarta.validation.constraints.NotBlank;
|
|||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class MemberConfigVO {
|
public class MemberConfigVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* id
|
* id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
package com.czg.market.vo;
|
package com.czg.market.vo;
|
||||||
|
|
||||||
|
import com.czg.market.dto.MemberLevelDTO;
|
||||||
import com.czg.market.entity.ShopCoupon;
|
import com.czg.market.entity.ShopCoupon;
|
||||||
|
import com.mybatisflex.annotation.Column;
|
||||||
|
import com.mybatisflex.annotation.Id;
|
||||||
|
import com.mybatisflex.annotation.KeyType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -11,9 +15,12 @@ import java.util.List;
|
|||||||
public class MemberLevelVO implements Serializable {
|
public class MemberLevelVO implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ID
|
* ID
|
||||||
*/
|
*/
|
||||||
|
@Id(keyType = KeyType.Auto)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,7 +31,7 @@ public class MemberLevelVO implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 所需成长值
|
* 所需成长值
|
||||||
*/
|
*/
|
||||||
private Long experienceValue;
|
private Integer experienceValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员折扣
|
* 会员折扣
|
||||||
@@ -59,7 +66,7 @@ public class MemberLevelVO implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 优惠券列表
|
* 优惠券列表
|
||||||
*/
|
*/
|
||||||
private List<ShopCoupon> cycleRewardCouponList;
|
private List<MemberLevelDTO.ConfigCoupon> cycleRewardCouponList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店铺id
|
* 店铺id
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.czg.constant;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
*/
|
||||||
|
public interface TableValueConstant {
|
||||||
|
interface MemberExpFlow {
|
||||||
|
@Getter
|
||||||
|
enum Type {
|
||||||
|
RECHARGE("RECHARGE", "充值增积分"),
|
||||||
|
PAY("PAY", "购买会员增积分"),
|
||||||
|
COST("COST", "消费增积分");
|
||||||
|
private final String code;
|
||||||
|
private final String msg;
|
||||||
|
|
||||||
|
Type(String code, String msg) {
|
||||||
|
this.code = code;
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,10 +10,11 @@ import com.zaxxer.hikari.HikariDataSource;
|
|||||||
* @author ww
|
* @author ww
|
||||||
*/
|
*/
|
||||||
public class Main {
|
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 PORT = "3306";
|
||||||
private final static String USERNAME = "cashier";
|
private final static String USERNAME = "root";
|
||||||
private final static String PASSWORD = "Cashier@1@";
|
private final static String PASSWORD = "Chaozg123.";
|
||||||
private final static String DATABASE = "czg_cashier";
|
private final static String DATABASE = "czg_cashier";
|
||||||
static String currentWorkingDirectory = System.getProperty("user.dir");
|
static String currentWorkingDirectory = System.getProperty("user.dir");
|
||||||
static String basePackage = "com.czg.";
|
static String basePackage = "com.czg.";
|
||||||
@@ -24,11 +25,11 @@ public class Main {
|
|||||||
// tableName 指定需要生成的表
|
// tableName 指定需要生成的表
|
||||||
|
|
||||||
// String packageName = "system";
|
// String packageName = "system";
|
||||||
String packageName = "account";
|
// String packageName = "account";
|
||||||
// String packageName = "product";
|
// String packageName = "product";
|
||||||
// String packageName = "order";
|
String packageName = "market";
|
||||||
|
|
||||||
String tableName = "tb_order_info";
|
String tableName = "tb_member_exp_flow";
|
||||||
String author = "zs";
|
String author = "zs";
|
||||||
//是否生成DTO实体 默认生成
|
//是否生成DTO实体 默认生成
|
||||||
boolean isGenerateDto = true;
|
boolean isGenerateDto = true;
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,18 +6,16 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.czg.constant.TableValueConstant;
|
||||||
import com.czg.market.dto.MemberConfigDTO;
|
import com.czg.market.dto.MemberConfigDTO;
|
||||||
import com.czg.market.dto.MemberLevelDTO;
|
import com.czg.market.dto.MemberLevelDTO;
|
||||||
import com.czg.account.entity.*;
|
import com.czg.account.entity.*;
|
||||||
import com.czg.account.service.*;
|
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.service.MemberOrderService;
|
||||||
import com.czg.market.vo.MemberConfigVO;
|
import com.czg.market.vo.MemberConfigVO;
|
||||||
import com.czg.market.vo.MemberLevelVO;
|
import com.czg.market.vo.MemberLevelVO;
|
||||||
import com.czg.exception.CzgException;
|
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.MemberLevelConfigService;
|
||||||
import com.czg.market.service.TbMemberConfigService;
|
import com.czg.market.service.TbMemberConfigService;
|
||||||
import com.czg.order.entity.OrderInfo;
|
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 -> {
|
levelConfigService.list(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)).forEach(item -> {
|
||||||
MemberLevelVO memberLevelVO = BeanUtil.copyProperties(item, MemberLevelVO.class, "cycleRewardCouponList");
|
MemberLevelVO memberLevelVO = BeanUtil.copyProperties(item, MemberLevelVO.class, "cycleRewardCouponList");
|
||||||
if (StrUtil.isNotBlank(item.getCycleRewardCouponList())) {
|
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);
|
memberLevelVOS.add(memberLevelVO);
|
||||||
});
|
});
|
||||||
@@ -203,7 +201,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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));
|
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getShopId, shopId).eq(ShopUser::getUserId, userId));
|
||||||
if (shopUser == null || shopUser.getIsVip() == 0) {
|
if (shopUser == null || shopUser.getIsVip() == 0) {
|
||||||
return false;
|
return false;
|
||||||
@@ -218,9 +216,27 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|||||||
shopUser.setExperience(0L);
|
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) {
|
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());
|
int points = (int) (money.floatValue() / levelConfig.getCostRewardPoints());
|
||||||
memberPointsService.addPoints(shopUser.getId(), points, "会员消费送积分", null);
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -250,7 +273,6 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|||||||
log.warn("用户不存在, 店铺id: {}, 用户id: {}", shopId, userId);
|
log.warn("用户不存在, 店铺id: {}, 用户id: {}", shopId, userId);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
boolean canOpen = false;
|
|
||||||
|
|
||||||
if (shopUser.getStartTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
if (shopUser.getStartTime() == null || shopUser.getEndTime().isBefore(DateUtil.date().toLocalDateTime())) {
|
||||||
shopUser.setStartTime(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()) {
|
if (memberOrder.getCouponList() != null && !memberOrder.getCouponList().isEmpty()) {
|
||||||
|
// TODO 发放优惠券
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user