|
@@ -57,6 +57,9 @@ import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubRewardsMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubWaitingMapper;
|
|
import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubWaitingMapper;
|
|
|
import com.cyksj.mapper.market.task.TaskTypeMapper;
|
|
import com.cyksj.mapper.market.task.TaskTypeMapper;
|
|
|
import com.cyksj.mapper.market.task.UserBindDetailMapper;
|
|
import com.cyksj.mapper.market.task.UserBindDetailMapper;
|
|
|
|
|
+import com.cyksj.mapper.mirrorshop.UserMirrorShopMapper;
|
|
|
|
|
+import com.cyksj.mapper.mirrorshop.UserMirrorShopOrderRelateMapper;
|
|
|
|
|
+import com.cyksj.mapper.mirrorshop.UserMirrorShopUserDistributeSharedMapper;
|
|
|
import com.cyksj.mapper.renew.RenewUpgradePackageMapper;
|
|
import com.cyksj.mapper.renew.RenewUpgradePackageMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
|
|
import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
|
|
|
import com.cyksj.model.dto.*;
|
|
import com.cyksj.model.dto.*;
|
|
@@ -331,6 +334,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
private final OrderDonIndependentRenewRecordMapper independentRenewRecordMapper;
|
|
private final OrderDonIndependentRenewRecordMapper independentRenewRecordMapper;
|
|
|
|
|
|
|
|
|
|
+ private final UserMirrorShopMapper userMirrorShopMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final UserMirrorShopUserDistributeSharedMapper userMirrorShopUserDistributeSharedMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final UserMirrorShopOrderRelateMapper userMirrorShopOrderRelateMapper;
|
|
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@@ -346,7 +355,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
AtomicBoolean isGiftCardPay = new AtomicBoolean(false);
|
|
AtomicBoolean isGiftCardPay = new AtomicBoolean(false);
|
|
|
//若存在店铺id,校验店铺状态
|
|
//若存在店铺id,校验店铺状态
|
|
|
String customId = payRequest.getCustomId();
|
|
String customId = payRequest.getCustomId();
|
|
|
- Long yhsId = yhShopFrontService.checkShopCustomIdAndReturnShopId(customId);
|
|
|
|
|
|
|
+ Long yhsId = 0l;
|
|
|
|
|
+ if (payRequest.getCmt() == 1) {
|
|
|
|
|
+ yhsId = yhShopFrontService.checkShopCustomIdAndReturnShopId(customId);
|
|
|
|
|
+ }
|
|
|
if (CollUtil.isNotEmpty(giftCards)) {
|
|
if (CollUtil.isNotEmpty(giftCards)) {
|
|
|
goodsId = payRequest.getGoodsId();
|
|
goodsId = payRequest.getGoodsId();
|
|
|
isGiftCardPay.set(true);
|
|
isGiftCardPay.set(true);
|
|
@@ -655,7 +667,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
|
}
|
|
}
|
|
|
//记录文章下单量
|
|
//记录文章下单量
|
|
|
- if (payRequest.getInfoId() != null){
|
|
|
|
|
|
|
+ if (payRequest.getInfoId() != null) {
|
|
|
InformationClickUserRecord informationClickUserRecord = new InformationClickUserRecord();
|
|
InformationClickUserRecord informationClickUserRecord = new InformationClickUserRecord();
|
|
|
informationClickUserRecord.setInfoId(payRequest.getInfoId());
|
|
informationClickUserRecord.setInfoId(payRequest.getInfoId());
|
|
|
informationClickUserRecord.setOrderId(orderDon.getId());
|
|
informationClickUserRecord.setOrderId(orderDon.getId());
|
|
@@ -677,10 +689,25 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
//记录补贴订单关联
|
|
//记录补贴订单关联
|
|
|
recordOrderDonSubsidyRelate(orderId, payRequest.getSubsidyId());
|
|
recordOrderDonSubsidyRelate(orderId, payRequest.getSubsidyId());
|
|
|
//试用车票跳转记录
|
|
//试用车票跳转记录
|
|
|
- recordOrderTrialTicketJumpPay(orderId,payRequest.getIsTrial());
|
|
|
|
|
|
|
+ recordOrderTrialTicketJumpPay(orderId, payRequest.getIsTrial());
|
|
|
//记录用户推广海报下单记录
|
|
//记录用户推广海报下单记录
|
|
|
recordPosterUserOrder(orderId, payRequest.getRid());
|
|
recordPosterUserOrder(orderId, payRequest.getRid());
|
|
|
|
|
+ //记录用户镜像店铺订单
|
|
|
|
|
+ recordUserMirrorShopOrderRelate(orderId, payRequest.getCmt(), payRequest.getCustomId());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ private void recordUserMirrorShopOrderRelate(Long orderId, Integer cmt, String customId) {
|
|
|
|
|
+ if (cmt == 2 && StrUtil.isNotBlank(customId)) {
|
|
|
|
|
+ UserMirrorShop userMirrorShop = userMirrorShopMapper.selectOne(Wrappers.lambdaQuery(UserMirrorShop.class)
|
|
|
|
|
+ .eq(UserMirrorShop::getCustomId, customId).last("limit 1"));
|
|
|
|
|
+ if (userMirrorShop == null || !userMirrorShop.getStatus()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ UserMirrorShopOrderRelate userMirrorShopOrderRelate = new UserMirrorShopOrderRelate();
|
|
|
|
|
+ userMirrorShopOrderRelate.setOrderId(orderId);
|
|
|
|
|
+ userMirrorShopOrderRelate.setMpId(userMirrorShop.getId());
|
|
|
|
|
+ userMirrorShopOrderRelateMapper.insert(userMirrorShopOrderRelate);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private Boolean checkIsNeedGroupsRelation(GoodsDon goodsDon) {
|
|
private Boolean checkIsNeedGroupsRelation(GoodsDon goodsDon) {
|
|
@@ -930,8 +957,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
throw new BusinessRuntimeException("缺少必填参数");
|
|
throw new BusinessRuntimeException("缺少必填参数");
|
|
|
}
|
|
}
|
|
|
String customId = payRequest.getCustomId();
|
|
String customId = payRequest.getCustomId();
|
|
|
- //若存在店铺id,校验店铺状态
|
|
|
|
|
- Long yhsId = yhShopFrontService.checkShopCustomIdAndReturnShopId(customId);
|
|
|
|
|
|
|
+ Long yhsId = 0l;
|
|
|
|
|
+ if (payRequest.getCmt() == 1) {
|
|
|
|
|
+ //若存在店铺id,校验店铺状态
|
|
|
|
|
+ yhsId = yhShopFrontService.checkShopCustomIdAndReturnShopId(customId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//是否有其他规格的续费订单 若有请先关闭
|
|
//是否有其他规格的续费订单 若有请先关闭
|
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, user);
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, user);
|
|
|
Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
@@ -1124,9 +1155,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
OrderDon updateOrder = orderDonMapper.selectById(orderDon.getId());
|
|
OrderDon updateOrder = orderDonMapper.selectById(orderDon.getId());
|
|
|
//mj镜像续费订单
|
|
//mj镜像续费订单
|
|
|
- if(orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26){
|
|
|
|
|
|
|
+ if (orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26) {
|
|
|
GroupsRelation groupsRelation = groupsRelationMapper.selectById(orderDon.getRelationId());
|
|
GroupsRelation groupsRelation = groupsRelationMapper.selectById(orderDon.getRelationId());
|
|
|
- if(groupsRelation != null){
|
|
|
|
|
|
|
+ if (groupsRelation != null) {
|
|
|
Date expiryTime = groupsRelation.getExpiryTime();
|
|
Date expiryTime = groupsRelation.getExpiryTime();
|
|
|
|
|
|
|
|
//mj续费订单当天过期直接加次数
|
|
//mj续费订单当天过期直接加次数
|
|
@@ -1185,7 +1216,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public AliPayParams aliPay(AlipayOrderDonReq re, String productCode, String qrPayMode) throws Exception {
|
|
public AliPayParams aliPay(AlipayOrderDonReq re, String productCode, String qrPayMode) throws Exception {
|
|
|
- return aliPayCommonService.unifiedPay(re,productCode, qrPayMode);
|
|
|
|
|
|
|
+ return aliPayCommonService.unifiedPay(re, productCode, qrPayMode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -1429,7 +1460,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDon.setType(UpgradeOrderDon.Type.BALANCE);
|
|
orderDon.setType(UpgradeOrderDon.Type.BALANCE);
|
|
|
orderDon.setPayTime(DateTime.now());
|
|
orderDon.setPayTime(DateTime.now());
|
|
|
}
|
|
}
|
|
|
- unifiedHandlerUpgradeOrderNotify(orderDon,upgradePackage);
|
|
|
|
|
|
|
+ unifiedHandlerUpgradeOrderNotify(orderDon, upgradePackage);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void updateCarParkAndSendMsg(GoodsDon goodsDon, GoodsDonSku sku, OrderDon order) {
|
|
public void updateCarParkAndSendMsg(GoodsDon goodsDon, GoodsDonSku sku, OrderDon order) {
|
|
@@ -1840,7 +1871,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
throw BusinessRuntimeException.getInstance("该优惠码只适用于新用户");
|
|
throw BusinessRuntimeException.getInstance("该优惠码只适用于新用户");
|
|
|
}
|
|
}
|
|
|
CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
|
|
CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
|
|
|
- if (couponNewUserView != null) throw BusinessRuntimeException.getInstance("该优惠码只适用于新用户");
|
|
|
|
|
|
|
+ if (couponNewUserView != null)
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("该优惠码只适用于新用户");
|
|
|
}
|
|
}
|
|
|
if (userDistributeShared != null && !userDistributeShared.getSharedId().equals(exists.getUserId())) {
|
|
if (userDistributeShared != null && !userDistributeShared.getSharedId().equals(exists.getUserId())) {
|
|
|
throw BusinessRuntimeException.getInstance("您已有推广,无法使用其他人推广码");
|
|
throw BusinessRuntimeException.getInstance("您已有推广,无法使用其他人推广码");
|
|
@@ -2034,10 +2066,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * @param orderDon 续费订单
|
|
|
|
|
- * @param afterSku 续费之后的规格
|
|
|
|
|
|
|
+ * @param orderDon 续费订单
|
|
|
|
|
+ * @param afterSku 续费之后的规格
|
|
|
*/
|
|
*/
|
|
|
- private void changeTicketAndRecord(OrderDon orderDon,GoodsDonSku afterSku) {
|
|
|
|
|
|
|
+ private void changeTicketAndRecord(OrderDon orderDon, GoodsDonSku afterSku) {
|
|
|
Long preSkuId = orderDon.getSkuId();
|
|
Long preSkuId = orderDon.getSkuId();
|
|
|
Long preRelationId = orderDon.getRelationId();
|
|
Long preRelationId = orderDon.getRelationId();
|
|
|
Long orderId = orderDon.getId();
|
|
Long orderId = orderDon.getId();
|
|
@@ -2577,9 +2609,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//mj镜像续费订单
|
|
//mj镜像续费订单
|
|
|
- if(orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26){
|
|
|
|
|
|
|
+ if (orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26) {
|
|
|
GroupsRelation groupsRelation = groupsRelationMapper.selectById(orderDon.getRelationId());
|
|
GroupsRelation groupsRelation = groupsRelationMapper.selectById(orderDon.getRelationId());
|
|
|
- if(groupsRelation != null){
|
|
|
|
|
|
|
+ if (groupsRelation != null) {
|
|
|
Date expiryTime = groupsRelation.getExpiryTime();
|
|
Date expiryTime = groupsRelation.getExpiryTime();
|
|
|
|
|
|
|
|
//mj续费订单当天过期直接加次数
|
|
//mj续费订单当天过期直接加次数
|
|
@@ -2611,7 +2643,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
userBenefitsService.recordBalanceBySource(orderDon.getUserId(), orderDon.getBalance().negate(), UserBalanceSourceRecord.Source.payment, orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.payment.getDesc());
|
|
userBenefitsService.recordBalanceBySource(orderDon.getUserId(), orderDon.getBalance().negate(), UserBalanceSourceRecord.Source.payment, orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.payment.getDesc());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- TASK_POOL.execute(()->{
|
|
|
|
|
|
|
+ TASK_POOL.execute(() -> {
|
|
|
try {
|
|
try {
|
|
|
//发放积分
|
|
//发放积分
|
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0 && orderDon.getIsDistribute()) {
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0 && orderDon.getIsDistribute()) {
|
|
@@ -2671,17 +2703,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- TASK_POOL.execute(()->{
|
|
|
|
|
|
|
+ TASK_POOL.execute(() -> {
|
|
|
try {
|
|
try {
|
|
|
orderDonPostService.postData(orderDon.getId(), orderDon.getGoodsId(), orderDon.getPopularizeId());
|
|
orderDonPostService.postData(orderDon.getId(), orderDon.getGoodsId(), orderDon.getPopularizeId());
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
- log.error("回传错误 {}",StringUtil.getErrorText(e));
|
|
|
|
|
|
|
+ log.error("回传错误 {}", StringUtil.getErrorText(e));
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
//虚拟物品购买推送电报消息
|
|
//虚拟物品购买推送电报消息
|
|
|
- if(goodsDon.getType() == 1){
|
|
|
|
|
- TASK_POOL.execute(()->{
|
|
|
|
|
|
|
+ if (goodsDon.getType() == 1) {
|
|
|
|
|
+ TASK_POOL.execute(() -> {
|
|
|
sendTelegramMsg(orderDon, goodsDon, sku);
|
|
sendTelegramMsg(orderDon, goodsDon, sku);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -2740,18 +2772,18 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void mjRenewOrder(OrderDon orderDon){
|
|
|
|
|
|
|
+ private void mjRenewOrder(OrderDon orderDon) {
|
|
|
if (orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26) {
|
|
if (orderDon.getOrderType() == 2 && orderDon.getGoodsId() == 26) {
|
|
|
GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(orderDon.getSkuId());
|
|
GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(orderDon.getSkuId());
|
|
|
- if (goodsDonSku.getIsMirror()){
|
|
|
|
|
- midjourneyUserMapper.update(null, Wrappers.lambdaUpdate(MidjourneyUser.class)
|
|
|
|
|
- .set(MidjourneyUser::getMjFastNum, goodsDonSku.getMjFastNum())
|
|
|
|
|
- .set(MidjourneyUser::getMjRelaxNum, goodsDonSku.getMjRelaxNum())
|
|
|
|
|
- .eq(MidjourneyUser::getRelationId, orderDon.getRelationId()));
|
|
|
|
|
- MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class).eq(MidjourneyUser::getRelationId, orderDon.getRelationId()));
|
|
|
|
|
- log.info("恢复midjourney镜像使用次数: {}", midjourneyUser.getId());
|
|
|
|
|
- redisService.del(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId());
|
|
|
|
|
- redisService.del(RedisService.key.MIDJOURNEY_RELAX_LIMIT.getName() + midjourneyUser.getId());
|
|
|
|
|
|
|
+ if (goodsDonSku.getIsMirror()) {
|
|
|
|
|
+ midjourneyUserMapper.update(null, Wrappers.lambdaUpdate(MidjourneyUser.class)
|
|
|
|
|
+ .set(MidjourneyUser::getMjFastNum, goodsDonSku.getMjFastNum())
|
|
|
|
|
+ .set(MidjourneyUser::getMjRelaxNum, goodsDonSku.getMjRelaxNum())
|
|
|
|
|
+ .eq(MidjourneyUser::getRelationId, orderDon.getRelationId()));
|
|
|
|
|
+ MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class).eq(MidjourneyUser::getRelationId, orderDon.getRelationId()));
|
|
|
|
|
+ log.info("恢复midjourney镜像使用次数: {}", midjourneyUser.getId());
|
|
|
|
|
+ redisService.del(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId());
|
|
|
|
|
+ redisService.del(RedisService.key.MIDJOURNEY_RELAX_LIMIT.getName() + midjourneyUser.getId());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -2837,7 +2869,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
plusOrderIds.add(orderDon.getId());
|
|
plusOrderIds.add(orderDon.getId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void saveTransportByAddress(Address address,Long orderId) {
|
|
|
|
|
|
|
+ public void saveTransportByAddress(Address address, Long orderId) {
|
|
|
OrderDonTransport transport = new OrderDonTransport();
|
|
OrderDonTransport transport = new OrderDonTransport();
|
|
|
transport.setOrderId(orderId);
|
|
transport.setOrderId(orderId);
|
|
|
transport.setReceiver(address.getReceiver());
|
|
transport.setReceiver(address.getReceiver());
|
|
@@ -3271,41 +3303,41 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
.select(UserDistributeSubWaiting::getLevel).last("limit 1")).stream().map(UserDistributeSubWaiting::getLevel).collect(Collectors.toList());
|
|
.select(UserDistributeSubWaiting::getLevel).last("limit 1")).stream().map(UserDistributeSubWaiting::getLevel).collect(Collectors.toList());
|
|
|
List<UserDistributeSubRewards> userDistributeSubRewards = userDistributeSubRewardsMapper.selectList(Wrappers.lambdaQuery(UserDistributeSubRewards.class)
|
|
List<UserDistributeSubRewards> userDistributeSubRewards = userDistributeSubRewardsMapper.selectList(Wrappers.lambdaQuery(UserDistributeSubRewards.class)
|
|
|
.notIn(CollUtil.isNotEmpty(existLevels), UserDistributeSubRewards::getLevel, existLevels));
|
|
.notIn(CollUtil.isNotEmpty(existLevels), UserDistributeSubRewards::getLevel, existLevels));
|
|
|
- for (UserDistributeSubRewards userDistributeSubReward : userDistributeSubRewards) {
|
|
|
|
|
- log.info("当前级别:{}对应的目标金额是{}", userDistributeSubReward.getLevel(), userDistributeSubReward.getTargetAmount().divide(BigDecimal.valueOf(100)));
|
|
|
|
|
- Integer rewardLevel = userDistributeSubReward.getLevel();
|
|
|
|
|
- Integer months = userDistributeSubReward.getMonths();
|
|
|
|
|
- BigDecimal targetAmount = userDistributeSubReward.getTargetAmount();
|
|
|
|
|
- //是否达到目标额
|
|
|
|
|
- BigDecimal subOrderMoney = Optional.ofNullable(orderDonMapper.selectSubChannelOrderMoney(subUserId, userDistributeSub.getCreatedTime(), DateUtil.offsetMonth(userDistributeSub.getCreatedTime(), months))).orElse(BigDecimal.ZERO);
|
|
|
|
|
- if (subOrderMoney.compareTo(BigDecimal.ZERO) > 0 && subOrderMoney.compareTo(targetAmount) >= 0) {
|
|
|
|
|
- try {
|
|
|
|
|
- UserDistributeSubWaiting waiting = Optional.ofNullable(userDistributeSubWaitingMapper.selectOne(Wrappers.lambdaQuery(UserDistributeSubWaiting.class)
|
|
|
|
|
- .eq(UserDistributeSubWaiting::getUserId, userId)
|
|
|
|
|
- .eq(UserDistributeSubWaiting::getSubUserId, subUserId)
|
|
|
|
|
- .eq(UserDistributeSubWaiting::getLevel, rewardLevel)
|
|
|
|
|
- .last("limit 1"))).orElse(new UserDistributeSubWaiting());
|
|
|
|
|
- if (waiting.getId() != null) {
|
|
|
|
|
- if (waiting.getSendStatus() == UserDistributeSubWaiting.Status.close) {
|
|
|
|
|
- userDistributeSubWaitingMapper.update(null, Wrappers.lambdaUpdate(UserDistributeSubWaiting.class)
|
|
|
|
|
- .set(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting)
|
|
|
|
|
- .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.close)
|
|
|
|
|
- .eq(UserDistributeSubWaiting::getId, waiting.getId()));
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- waiting.setMoney(userDistributeSubReward.getMoney());
|
|
|
|
|
- waiting.setUserId(userId);
|
|
|
|
|
- waiting.setSubUserId(subUserId);
|
|
|
|
|
- waiting.setSendStatus(UserDistributeSubWaiting.Status.waiting);
|
|
|
|
|
- waiting.setSendTime(DateUtil.offsetDay(DateTime.now(), 3));
|
|
|
|
|
- waiting.setLevel(rewardLevel);
|
|
|
|
|
- userDistributeSubWaitingMapper.insert(waiting);
|
|
|
|
|
|
|
+ for (UserDistributeSubRewards userDistributeSubReward : userDistributeSubRewards) {
|
|
|
|
|
+ log.info("当前级别:{}对应的目标金额是{}", userDistributeSubReward.getLevel(), userDistributeSubReward.getTargetAmount().divide(BigDecimal.valueOf(100)));
|
|
|
|
|
+ Integer rewardLevel = userDistributeSubReward.getLevel();
|
|
|
|
|
+ Integer months = userDistributeSubReward.getMonths();
|
|
|
|
|
+ BigDecimal targetAmount = userDistributeSubReward.getTargetAmount();
|
|
|
|
|
+ //是否达到目标额
|
|
|
|
|
+ BigDecimal subOrderMoney = Optional.ofNullable(orderDonMapper.selectSubChannelOrderMoney(subUserId, userDistributeSub.getCreatedTime(), DateUtil.offsetMonth(userDistributeSub.getCreatedTime(), months))).orElse(BigDecimal.ZERO);
|
|
|
|
|
+ if (subOrderMoney.compareTo(BigDecimal.ZERO) > 0 && subOrderMoney.compareTo(targetAmount) >= 0) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ UserDistributeSubWaiting waiting = Optional.ofNullable(userDistributeSubWaitingMapper.selectOne(Wrappers.lambdaQuery(UserDistributeSubWaiting.class)
|
|
|
|
|
+ .eq(UserDistributeSubWaiting::getUserId, userId)
|
|
|
|
|
+ .eq(UserDistributeSubWaiting::getSubUserId, subUserId)
|
|
|
|
|
+ .eq(UserDistributeSubWaiting::getLevel, rewardLevel)
|
|
|
|
|
+ .last("limit 1"))).orElse(new UserDistributeSubWaiting());
|
|
|
|
|
+ if (waiting.getId() != null) {
|
|
|
|
|
+ if (waiting.getSendStatus() == UserDistributeSubWaiting.Status.close) {
|
|
|
|
|
+ userDistributeSubWaitingMapper.update(null, Wrappers.lambdaUpdate(UserDistributeSubWaiting.class)
|
|
|
|
|
+ .set(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting)
|
|
|
|
|
+ .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.close)
|
|
|
|
|
+ .eq(UserDistributeSubWaiting::getId, waiting.getId()));
|
|
|
}
|
|
}
|
|
|
- log.info("分销用户:{}下级渠道:{}达到:{}销售额,发送奖励成功", userId, subUserId, UserDistributeSubRewards.RewardLevel.values()[rewardLevel].getMsg());
|
|
|
|
|
- } catch (DuplicateKeyException e) {
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ waiting.setMoney(userDistributeSubReward.getMoney());
|
|
|
|
|
+ waiting.setUserId(userId);
|
|
|
|
|
+ waiting.setSubUserId(subUserId);
|
|
|
|
|
+ waiting.setSendStatus(UserDistributeSubWaiting.Status.waiting);
|
|
|
|
|
+ waiting.setSendTime(DateUtil.offsetDay(DateTime.now(), 3));
|
|
|
|
|
+ waiting.setLevel(rewardLevel);
|
|
|
|
|
+ userDistributeSubWaitingMapper.insert(waiting);
|
|
|
}
|
|
}
|
|
|
|
|
+ log.info("分销用户:{}下级渠道:{}达到:{}销售额,发送奖励成功", userId, subUserId, UserDistributeSubRewards.RewardLevel.values()[rewardLevel].getMsg());
|
|
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -3555,7 +3587,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
payRequest.setDonMoney(upgradePackage.getPrice());
|
|
payRequest.setDonMoney(upgradePackage.getPrice());
|
|
|
}
|
|
}
|
|
|
MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class).eq(MidjourneyUser::getRelationId, payRequest.getRelationId()));
|
|
MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class).eq(MidjourneyUser::getRelationId, payRequest.getRelationId()));
|
|
|
- if (midjourneyUser == null){
|
|
|
|
|
|
|
+ if (midjourneyUser == null) {
|
|
|
throw BusinessRuntimeException.getInstance("车票未激活Midjourney账号,请先激活");
|
|
throw BusinessRuntimeException.getInstance("车票未激活Midjourney账号,请先激活");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -3577,7 +3609,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
upgradeOrderDon.setType(UpgradeOrderDon.Type.ALI_PAY);
|
|
upgradeOrderDon.setType(UpgradeOrderDon.Type.ALI_PAY);
|
|
|
upgradeOrderDonMapper.insert(upgradeOrderDon);
|
|
upgradeOrderDonMapper.insert(upgradeOrderDon);
|
|
|
|
|
|
|
|
- deductUpgradeBalancePayOrderMoney(upgradeOrderDon, payRequest.getBalance(),user );
|
|
|
|
|
|
|
+ deductUpgradeBalancePayOrderMoney(upgradeOrderDon, payRequest.getBalance(), user);
|
|
|
|
|
|
|
|
if (upgradeOrderDon.getStatus() == UpgradeOrderDon.Status.noPayment) {
|
|
if (upgradeOrderDon.getStatus() == UpgradeOrderDon.Status.noPayment) {
|
|
|
jobManager.addJob(EXPIRY_TIME, () -> {
|
|
jobManager.addJob(EXPIRY_TIME, () -> {
|
|
@@ -3643,7 +3675,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public AliPayParams aliPayUpgrade(AlipayOrderDonReq re, String productCode, String qrPayMode) throws Exception {
|
|
public AliPayParams aliPayUpgrade(AlipayOrderDonReq re, String productCode, String qrPayMode) throws Exception {
|
|
|
- return aliPayCommonService.unifiedPayUpgrade(re,productCode,qrPayMode);
|
|
|
|
|
|
|
+ return aliPayCommonService.unifiedPayUpgrade(re, productCode, qrPayMode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -3695,7 +3727,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//回调
|
|
//回调
|
|
|
- unifiedHandlerUpgradeOrderNotify(orderDon,upgradePackage );
|
|
|
|
|
|
|
+ unifiedHandlerUpgradeOrderNotify(orderDon, upgradePackage);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -3704,7 +3736,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
*/
|
|
*/
|
|
|
public void unifiedHandlerUpgradeOrderNotify(UpgradeOrderDon orderDon, UpgradePackage upgradePackage) {
|
|
public void unifiedHandlerUpgradeOrderNotify(UpgradeOrderDon orderDon, UpgradePackage upgradePackage) {
|
|
|
orderDon.setStatus(UpgradeOrderDon.Status.complete);
|
|
orderDon.setStatus(UpgradeOrderDon.Status.complete);
|
|
|
- int isSuccess = upgradeOrderDonMapper.update(null,Wrappers.lambdaUpdate(UpgradeOrderDon.class)
|
|
|
|
|
|
|
+ int isSuccess = upgradeOrderDonMapper.update(null, Wrappers.lambdaUpdate(UpgradeOrderDon.class)
|
|
|
.set(UpgradeOrderDon::getStatus, orderDon.getStatus())
|
|
.set(UpgradeOrderDon::getStatus, orderDon.getStatus())
|
|
|
.in(UpgradeOrderDon::getStatus, List.of(UpgradeOrderDon.Status.noPayment, UpgradeOrderDon.Status.close))
|
|
.in(UpgradeOrderDon::getStatus, List.of(UpgradeOrderDon.Status.noPayment, UpgradeOrderDon.Status.close))
|
|
|
.eq(UpgradeOrderDon::getId, orderDon.getId()));
|
|
.eq(UpgradeOrderDon::getId, orderDon.getId()));
|
|
@@ -3729,7 +3761,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
Object fastNum = redisService.get(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId());
|
|
Object fastNum = redisService.get(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId());
|
|
|
if (fastNum == null) {
|
|
if (fastNum == null) {
|
|
|
redisService.set(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId(), midjourneyUser.getMjFastNum() + upgradePackage.getNum().longValue(), RedisService.key.MIDJOURNEY_FAST_LIMIT.getTimeout());
|
|
redisService.set(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId(), midjourneyUser.getMjFastNum() + upgradePackage.getNum().longValue(), RedisService.key.MIDJOURNEY_FAST_LIMIT.getTimeout());
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
redisService.incr(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId(), upgradePackage.getNum().longValue());
|
|
redisService.incr(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId(), upgradePackage.getNum().longValue());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -3848,7 +3880,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
return orderDon.getStatus();
|
|
return orderDon.getStatus();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private UpgradeOrderDon.Status updateUpgradeNoPayment(UpgradeOrderDon orderDon,UpgradePackage upgradePackage) {
|
|
|
|
|
|
|
+ private UpgradeOrderDon.Status updateUpgradeNoPayment(UpgradeOrderDon orderDon, UpgradePackage upgradePackage) {
|
|
|
unifiedHandlerUpgradeOrderNotify(orderDon, upgradePackage);
|
|
unifiedHandlerUpgradeOrderNotify(orderDon, upgradePackage);
|
|
|
return orderDon.getStatus();
|
|
return orderDon.getStatus();
|
|
|
}
|
|
}
|
|
@@ -3856,13 +3888,13 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public UpgradeOrderDetailView getUpgradeOrderDetail(Long orderId, Long userId) {
|
|
public UpgradeOrderDetailView getUpgradeOrderDetail(Long orderId, Long userId) {
|
|
|
- MapBuilder builder = MapUtils.builder()
|
|
|
|
|
- .field(OrderDonView::getId, orderId)
|
|
|
|
|
- .orderBy(OrderDonView::getId).desc();
|
|
|
|
|
- if (userId != null) {
|
|
|
|
|
- builder.field(UpgradeOrderDetailView::getUserId, userId);
|
|
|
|
|
- }
|
|
|
|
|
- return beanSearcher.searchFirst(UpgradeOrderDetailView.class, builder.build());
|
|
|
|
|
|
|
+ MapBuilder builder = MapUtils.builder()
|
|
|
|
|
+ .field(OrderDonView::getId, orderId)
|
|
|
|
|
+ .orderBy(OrderDonView::getId).desc();
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ builder.field(UpgradeOrderDetailView::getUserId, userId);
|
|
|
|
|
+ }
|
|
|
|
|
+ return beanSearcher.searchFirst(UpgradeOrderDetailView.class, builder.build());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -3945,7 +3977,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
/**
|
|
/**
|
|
|
* 试用车票跳转购买正式车票订单记录
|
|
* 试用车票跳转购买正式车票订单记录
|
|
|
*/
|
|
*/
|
|
|
- public void recordOrderTrialTicketJumpPay(Long orderId,Boolean isTrial) {
|
|
|
|
|
|
|
+ public void recordOrderTrialTicketJumpPay(Long orderId, Boolean isTrial) {
|
|
|
if (isTrial != null && isTrial) {
|
|
if (isTrial != null && isTrial) {
|
|
|
UserTrialTicketJumpPayRecord userTrialTicketJumpPayRecord = new UserTrialTicketJumpPayRecord();
|
|
UserTrialTicketJumpPayRecord userTrialTicketJumpPayRecord = new UserTrialTicketJumpPayRecord();
|
|
|
userTrialTicketJumpPayRecord.setOrderId(orderId);
|
|
userTrialTicketJumpPayRecord.setOrderId(orderId);
|