会员积分问题修复
This commit is contained in:
@@ -64,7 +64,7 @@ public class MemberPointsLogServiceImpl extends ServiceImpl<MemberPointsLogMappe
|
||||
queryWrapper.select(MEMBER_POINTS.DEFAULT_COLUMNS)
|
||||
.select(SHOP_USER.NICK_NAME.as(MemberPointsLogDTO::getNickName), SHOP_USER.HEAD_IMG.as(MemberPointsLogDTO::getHeadImg), SHOP_USER.PHONE.as(MemberPointsLogDTO::getPhone))
|
||||
.from(MEMBER_POINTS_LOG)
|
||||
.leftJoin(SHOP_USER).on(SHOP_USER.ID.eq(MEMBER_POINTS.USER_ID));
|
||||
.leftJoin(SHOP_USER).on(SHOP_USER.ID.eq(MEMBER_POINTS.SHOP_USER_ID));
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
queryWrapper.eq(MemberPoints::getShopId, shopId);
|
||||
queryWrapper.orderBy(MemberPoints::getId, false);
|
||||
queryWrapper.orderBy(MemberPoints::getShopUserId, false);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
}
|
||||
|
||||
@Override
|
||||
public MemberPoints initMemberPoints(Long userId) {
|
||||
MemberPoints entity = super.getOne(query().eq(MemberPoints::getUserId, userId));
|
||||
public MemberPoints initMemberPoints(Long shopUserId) {
|
||||
MemberPoints entity = super.getOne(query().eq(MemberPoints::getShopUserId, shopUserId));
|
||||
if (entity == null) {
|
||||
throw new CzgException("会员信息不存在");
|
||||
}
|
||||
@@ -79,13 +79,13 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
}
|
||||
|
||||
@Override
|
||||
public MemberPoints getMemberPoints(Long userId) {
|
||||
return initMemberPoints(userId);
|
||||
public MemberPoints getMemberPoints(Long shopUserId) {
|
||||
return initMemberPoints(shopUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderDeductionPointsDTO getMemberUsablePoints(Long userId, BigDecimal orderAmount) {
|
||||
MemberPoints entity = initMemberPoints(userId);
|
||||
public OrderDeductionPointsDTO getMemberUsablePoints(Long shopUserId, BigDecimal orderAmount) {
|
||||
MemberPoints entity = initMemberPoints(shopUserId);
|
||||
Long shopId = entity.getShopId();
|
||||
Integer accountPoints = entity.getAccountPoints();
|
||||
OrderDeductionPointsDTO dto = new OrderDeductionPointsDTO();
|
||||
@@ -148,8 +148,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
}
|
||||
|
||||
@Override
|
||||
public int calcUsedPoints(Long userId, BigDecimal orderAmount, BigDecimal deductionAmount) {
|
||||
OrderDeductionPointsDTO core = getMemberUsablePoints(userId, orderAmount);
|
||||
public int calcUsedPoints(Long shopUserId, BigDecimal orderAmount, BigDecimal deductionAmount) {
|
||||
OrderDeductionPointsDTO core = getMemberUsablePoints(shopUserId, orderAmount);
|
||||
if (!core.getUsable()) {
|
||||
throw new CzgException(core.getUnusableReason());
|
||||
}
|
||||
@@ -166,8 +166,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal calcDeductionAmount(Long userId, BigDecimal orderAmount, int points) {
|
||||
OrderDeductionPointsDTO core = getMemberUsablePoints(userId, orderAmount);
|
||||
public BigDecimal calcDeductionAmount(Long shopUserId, BigDecimal orderAmount, int points) {
|
||||
OrderDeductionPointsDTO core = getMemberUsablePoints(shopUserId, orderAmount);
|
||||
if (!core.getUsable()) {
|
||||
throw new CzgException(core.getUnusableReason());
|
||||
}
|
||||
@@ -186,8 +186,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deductPoints(Long userId, int points, String content, OrderInfo orderInfo) {
|
||||
MemberPoints entity = initMemberPoints(userId);
|
||||
public boolean deductPoints(Long shopUserId, int points, String content, OrderInfo orderInfo) {
|
||||
MemberPoints entity = initMemberPoints(shopUserId);
|
||||
// 扣除账户积分
|
||||
entity.setAccountPoints(entity.getAccountPoints() - points);
|
||||
entity.setLastPointsChangeTime(LocalDateTime.now());
|
||||
@@ -196,7 +196,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
// 记录积分变动记录
|
||||
MemberPointsLog log = new MemberPointsLog();
|
||||
log.setShopId(entity.getShopId());
|
||||
log.setUserId(entity.getUserId());
|
||||
log.setUserId(entity.getShopUserId());
|
||||
log.setContent(content);
|
||||
log.setFloatType("subtract");
|
||||
log.setFloatPoints(-points);
|
||||
@@ -212,8 +212,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean addPoints(Long userId, int points, String content, OrderInfo orderInfo) {
|
||||
MemberPoints entity = initMemberPoints(userId);
|
||||
public boolean addPoints(Long shopUserId, int points, String content, OrderInfo orderInfo) {
|
||||
MemberPoints entity = initMemberPoints(shopUserId);
|
||||
// 增加账户积分
|
||||
entity.setAccountPoints(entity.getAccountPoints() + points);
|
||||
entity.setLastPointsChangeTime(LocalDateTime.now());
|
||||
@@ -221,7 +221,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
// 记录积分变动记录
|
||||
MemberPointsLog log = new MemberPointsLog();
|
||||
log.setShopId(entity.getShopId());
|
||||
log.setUserId(entity.getUserId());
|
||||
log.setUserId(entity.getShopUserId());
|
||||
log.setContent(content);
|
||||
log.setFloatType("add");
|
||||
log.setFloatPoints(points);
|
||||
@@ -236,7 +236,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void consumeAwardPoints(Long userId, OrderInfo orderInfo) {
|
||||
public void consumeAwardPoints(Long shopUserId, OrderInfo orderInfo) {
|
||||
if (orderInfo == null) {
|
||||
throw new CzgException("订单不存在");
|
||||
}
|
||||
@@ -255,7 +255,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
String rewardsGroup = basicSetting.getRewardsGroup();
|
||||
MemberPoints entity;
|
||||
try {
|
||||
entity = initMemberPoints(userId);
|
||||
entity = initMemberPoints(shopUserId);
|
||||
} catch (Exception e) {
|
||||
return;
|
||||
}
|
||||
@@ -271,6 +271,6 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
return;
|
||||
}
|
||||
BigDecimal awardPoints = NumberUtil.roundDown(NumberUtil.div(payAmount, consumeAmount), 0);
|
||||
addPoints(userId, awardPoints.intValue(), StrUtil.format("消费¥{}送{}积分", payAmount, awardPoints.intValue()), orderInfo);
|
||||
addPoints(shopUserId, awardPoints.intValue(), StrUtil.format("消费¥{}送{}积分", payAmount, awardPoints.intValue()), orderInfo);
|
||||
}
|
||||
}
|
||||
@@ -146,7 +146,7 @@ public class PointsExchangeRecordServiceImpl extends ServiceImpl<PointsExchangeR
|
||||
if (quantity <= 0) {
|
||||
throw new CzgException("兑换的商品库存不足");
|
||||
}
|
||||
MemberPoints memberPoints = memberPointsMapper.selectOneByQuery(query().eq(MemberPoints::getUserId, param.getUserId()));
|
||||
MemberPoints memberPoints = memberPointsMapper.selectOneByQuery(query().eq(MemberPoints::getShopUserId, param.getUserId()));
|
||||
if (memberPoints == null) {
|
||||
throw new CzgException("会员积分不足无法兑换此商品");
|
||||
}
|
||||
@@ -370,7 +370,7 @@ public class PointsExchangeRecordServiceImpl extends ServiceImpl<PointsExchangeR
|
||||
entity.setCancelOrRefundReason(param.getCancelOrRefundReason());
|
||||
entity.setCancelOrRefundTime(LocalDateTime.now());
|
||||
super.updateById(entity);
|
||||
MemberPoints memberPoints = memberPointsMapper.selectOneByQuery(query().eq(MemberPoints::getUserId, entity.getUserId()));
|
||||
MemberPoints memberPoints = memberPointsMapper.selectOneByQuery(query().eq(MemberPoints::getShopUserId, entity.getUserId()));
|
||||
if (memberPoints == null) {
|
||||
throw new CzgException("会员信息不存在");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user