Merge branch 'prod' into test

This commit is contained in:
张松
2025-11-13 11:10:10 +08:00
13 changed files with 64 additions and 36 deletions

View File

@@ -135,6 +135,7 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
userInfo.setAmount(BigDecimal.ZERO);
}
userFlow.setUserId(userInfo.getUserId());
userFlow.setShopUserId(shopUserEditDTO.getId());
userFlow.setShopId(userInfo.getSourceShopId());
userFlow.setAmount(shopUserEditDTO.getType() == 0 ? shopUserEditDTO.getMoney().negate() : shopUserEditDTO.getMoney());
userFlow.setBalance(shopUserEditDTO.getType() == 0 ? userInfo.getAmount().subtract(shopUserEditDTO.getMoney()) : userInfo.getAmount().add(shopUserEditDTO.getMoney()));

View File

@@ -179,6 +179,9 @@ public class UShopUserServiceImpl implements UShopUserService {
if (StrUtil.isBlank(shopUser.getCode())) {
shopUser.setCode(generateCode(shopId));
}
if (StrUtil.isBlank(shopUser.getBirthDay())) {
shopUser.setBirthDay(null);
}
shopUser.setJoinTime(shopUser.getJoinTime() == null ? DateUtil.date().toLocalDateTime() : shopUser.getJoinTime());
@@ -229,6 +232,7 @@ public class UShopUserServiceImpl implements UShopUserService {
shopUserDetailDTO.setFreeDineConfig(freeDineConfigService.getConfig(shopInfoService.getMainIdByShopId(shopId)));
shopUserDetailDTO.setPayPwd(userInfo.getPayPwd());
shopUserDetailDTO.setUsePayPwd(userInfo.getUsePayPwd());
return shopUserDetailDTO;
}

View File

@@ -546,10 +546,10 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
ShopUser shopUserInfo = shopUserService.getById(shopUserId);
Long mainShopId = shopInfoService.getMainIdByShopId(shopId);
// BigDecimal finalAmount = shopInfoService.updateAmount(shopId, amount);
// distributionAmountFlowService.save(new MkDistributionAmountFlow()
// .setType(TableValueConstant.DistributionAmountFlow.Type.OPEN.getCode())
// .setMainShopId(mainShopId).setShopId(shopId).setAmount(finalAmount).setChangeAmount(amount).setSourceId(sourceId)
// .setRemark("分销员购买"));
distributionAmountFlowService.save(new MkDistributionAmountFlow()
.setType(TableValueConstant.DistributionAmountFlow.Type.OPEN.getCode())
.setMainShopId(mainShopId).setShopId(shopId).setAmount(amount).setChangeAmount(amount).setSourceId(sourceId)
.setRemark("分销员购买"));
try {
addDistributionUser(new MkDistributionUser().setShopId(shopId)
.setUserId(shopUserInfo.getUserId())

View File

@@ -31,6 +31,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -281,19 +282,32 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
return memberLevelVOS;
}
static void main() {
Integer expVal = 10;
TableValueConstant.MemberExpFlow.Type type = TableValueConstant.MemberExpFlow.Type.PAY;
long exp = 0;
switch (type) {
case PAY -> {
exp = expVal;
}
}
System.out.println(exp);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) {
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getSourceShopId, shopInfoService.getMainIdByShopId(shopId)).eq(ShopUser::getUserId, userId));
public boolean deliver(ShopUser shopUser, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) {
if (shopUser == null || shopUser.getIsVip() == 0) {
return false;
}
if (shopUser.getMemberLevelId() == null) {
log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopId, userId);
log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopUser.getMainShopId(), shopUser.getUserId());
}
MemberConfigVO memberConfig = detail(shopId);
MemberConfigVO memberConfig = detail(shopUser.getMainShopId());
if (memberConfig == null) {
log.warn("会员配置不存在, 店铺id: {}", shopId);
log.warn("会员配置不存在, 店铺id: {}", shopUser.getMainShopId());
return false;
}
@@ -304,11 +318,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
MemberLevelVO levelVO = levelConfigService.detail(shopUser.getMemberLevelId());
if (levelVO == null) {
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopId, shopUser.getMemberLevelId());
log.warn("会员等级配置不存在, 店铺id: {}, 等级id: {}", shopUser.getMainShopId(), shopUser.getMemberLevelId());
return false;
}
log.info("会员奖励发放,类型: {} 金额: {}, userId: {}", type.getCode(), money, userId);
log.info("会员奖励发放,类型: {} 金额: {}, userId: {}, 经验值: {}", type.getCode(), money, shopUser.getUserId(), expVal);
long exp = 0;
switch (type) {
@@ -338,10 +352,10 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
if (levelVO.getCycleRewardCouponList() != null && !levelVO.getCycleRewardCouponList().isEmpty()) {
levelVO.getCycleRewardCouponList().forEach(item -> {
shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getCoupon().getId())
shopCouponRecordService.grant(shopUser.getMainShopId(), new MkRewardCouponDTO().setCouponId(item.getCoupon().getId())
.setNum(item.getNum())
.setUserId(shopUser.getUserId())
.setShopId(shopId));
.setShopId(shopUser.getMainShopId()));
});
// couponGiftService.addCouponGift(memberOrderId, "会员开通赠券", 1, giftDTOS);
@@ -356,8 +370,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
MemberExpFlow expFlow = new MemberExpFlow();
expFlow.setContent(type.getMsg() + exp);
expFlow.setType("+");
expFlow.setUserId(userId);
expFlow.setShopId(shopId);
expFlow.setUserId(shopUser.getUserId());
expFlow.setShopId(shopUser.getMainShopId());
expFlow.setMoney(money);
expFlow.setValue(exp);
expFlow.setSourceId(sourceId);
@@ -365,7 +379,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
shopUser.setExperience(shopUser.getExperience() + exp);
// 修改会员等级
MemberLevelConfig nextConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)
MemberLevelConfig nextConfig = levelConfigService.getOne(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopUser.getMainShopId())
.gt(MemberLevelConfig::getExperienceValue, levelVO.getExperienceValue()).orderBy(MemberLevelConfig::getExperienceValue, true).limit(1));
if (nextConfig != null && shopUser.getExperience() >= nextConfig.getExperienceValue()) {
shopUser.setMemberLevelId(nextConfig.getId());
@@ -373,7 +387,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
shopUserService.updateInfo(shopUser);
}
log.info("用户id: {}, 增加经验值: {}, 当前经验值: {}, 当前等级: {}", userId, exp, shopUser.getExperience(), shopUser.getMemberLevelId());
log.info("用户id: {}, 增加经验值: {}, 当前经验值: {}, 当前等级: {}", shopUser.getUserId(), exp, shopUser.getExperience(), shopUser.getMemberLevelId());
return true;
}
@@ -430,7 +444,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
@Override
@Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public boolean joinMember(Long shopId, Long userId, Long memberOrderId) {
MemberConfigVO memberConfigVO = detail(shopId);
ShopUser shopUser = shopUserService.getShopUserInfo(shopId, userId);
@@ -459,7 +473,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
if (!OrderStatusEnums.UNPAID.getCode().equals(memberOrder.getStatus())) {
log.warn("会员购买支付失败会员订单状态不为待支付会员订单id{}", memberOrderId);
// return false;
return false;
}
switch (memberOrder.getCircleUnit()) {
@@ -501,10 +515,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
}
memberOrder.setPayAmount(memberOrder.getAmount());
memberOrder.setStatus(OrderStatusEnums.DONE.getCode());
memberOrderService.updateById(memberOrder);
if (memberOrder.getReward() != null) {
deliver(shopId, userId, TableValueConstant.MemberExpFlow.Type.PAY, memberOrder.getPayAmount(), memberOrder.getReward(), memberOrderId);
deliver(shopUser, TableValueConstant.MemberExpFlow.Type.PAY, memberOrder.getAmount(), memberOrder.getReward(), memberOrderId);
}
if (shopUser.getMemberLevelId() == null || shopUser.getMemberLevelId() == 0) {
shopUser.setMemberLevelId(levelConfig.getId());

View File

@@ -1050,7 +1050,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
}
if (StrUtil.isNotBlank(payment.getTradeNumber())) {
log.info("订单处理过payment id{}", payment.getId());
// return;
return;
}
payment.setTradeNumber(czgCallBackDto.getPayOrderId());
payment.setRespJson(resultJson.toString());
@@ -1068,7 +1068,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
// 会员加入
memberConfigService.joinMemberByCondition(orderInfo.getShopId(), orderInfo.getUserId());
// 会员消费赠送成长值
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getPayAmount(), null, orderInfo.getId());
ShopUser shopUser = shopUserService.getShopUserInfo(orderInfo.getShopId(), orderInfo.getUserId());
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getPayAmount(), null, orderInfo.getId());
// 分销员升级等级
distributionUserService.costUpgradeLevelBefore(orderInfo.getUserId(), orderInfo.getShopId());
// 分销奖励
@@ -1134,7 +1135,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
// 发放成长值
// 会员消费赠送成长值
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(),
memberConfigService.deliver(shopUser,
TableValueConstant.MemberExpFlow.Type.RECHARGE,
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), null, orderInfo.getId());
if (TransactionSynchronizationManager.isSynchronizationActive()) {
@@ -1170,9 +1171,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
} else if ("memberPay".equals(payment.getPayType())) {
ShopUser shopUser = shopUserService.getById(payment.getSourceId());
memberConfigService.joinMember(payment.getShopId(), shopUser.getUserId(), payment.getRelatedId());
// 充值赠送积分
memberConfigService.deliver(shopUser.getMainShopId(), shopUser.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, payment.getAmount(), null, payment.getId());
// memberConfigService.deliver(shopUser.getMainShopId(), shopUser.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, payment.getAmount(), null, payment.getId());
// 分销员开通
} else if ("distribution".equals(payment.getPayType())) {

View File

@@ -246,7 +246,7 @@ public class PayServiceImpl implements PayService {
LocalDateTime.now(), flowId, PayEnums.VIP_PAY);
log.info("发放经验值");
memberConfigService.deliver(orderInfo.getShopId(), orderInfo.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
return CzgResult.success();
}