|
@@ -9,12 +9,14 @@ import cn.hutool.extra.servlet.ServletUtil;
|
|
|
import cn.hutool.http.Header;
|
|
import cn.hutool.http.Header;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.cyksj.common.EnvCommonService;
|
|
|
import com.cyksj.common.constant.Constant;
|
|
import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.i18n.I18nMessageUtil;
|
|
import com.cyksj.common.i18n.I18nMessageUtil;
|
|
|
import com.cyksj.common.snowflake.Sequence;
|
|
import com.cyksj.common.snowflake.Sequence;
|
|
|
import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
import com.cyksj.common.util.Jsons;
|
|
|
|
|
+import com.cyksj.common.util.SmsUtil;
|
|
|
import com.cyksj.common.util.StringUtil;
|
|
import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.dto.RedisKey;
|
|
import com.cyksj.dto.RedisKey;
|
|
|
import com.cyksj.enums.GatewayApiCode;
|
|
import com.cyksj.enums.GatewayApiCode;
|
|
@@ -150,6 +152,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
private final OrderDonLocationRelateMapper orderDonLocationRelateMapper;
|
|
private final OrderDonLocationRelateMapper orderDonLocationRelateMapper;
|
|
|
|
|
|
|
|
|
|
+ private final EnvCommonService envCommonService;
|
|
|
|
|
+
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@Override
|
|
@Override
|
|
|
public OrderDon submit(OrderPayRequest payRequest) throws Exception {
|
|
public OrderDon submit(OrderPayRequest payRequest) throws Exception {
|
|
@@ -629,9 +633,13 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
public void updateCarParkAndSendMsg(GoodsDon goodsDon, GoodsDonSku sku, OrderDon order) {
|
|
public void updateCarParkAndSendMsg(GoodsDon goodsDon, GoodsDonSku sku, OrderDon order) {
|
|
|
if (goodsDon.getType() == 1) {
|
|
if (goodsDon.getType() == 1) {
|
|
|
- log.info("虚物订单orderNo:{}开始更新车票信息", order.getOrderNo());
|
|
|
|
|
//修改车位状态
|
|
//修改车位状态
|
|
|
GroupsRelation relation = groupsRelationMapper.selectById(order.getRelationId());
|
|
GroupsRelation relation = groupsRelationMapper.selectById(order.getRelationId());
|
|
|
|
|
+ if (relation == null) {
|
|
|
|
|
+ log.info("无需更新车票信息");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("虚物订单orderNo:{}开始更新车票信息", order.getOrderNo());
|
|
|
if (order.getIsDp()) {
|
|
if (order.getIsDp()) {
|
|
|
//是否已经发送优惠加购车票
|
|
//是否已经发送优惠加购车票
|
|
|
OrderDiscountPlusPurchaseSkuRelation purchaseSkuRelation = orderDiscountPlusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
OrderDiscountPlusPurchaseSkuRelation purchaseSkuRelation = orderDiscountPlusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
@@ -643,21 +651,26 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
try {
|
|
try {
|
|
|
List<Long> plusSkuIds = Jsons.parseList(plusSkuIdsStr, Long.class);
|
|
List<Long> plusSkuIds = Jsons.parseList(plusSkuIdsStr, Long.class);
|
|
|
//发送优惠加购 规格车票
|
|
//发送优惠加购 规格车票
|
|
|
- List<Long> dis_relation_ids = new ArrayList<>();
|
|
|
|
|
- plusSkuIds.forEach(plus_skuId -> {
|
|
|
|
|
|
|
+ List<Long> dis_relation_ids = null;
|
|
|
|
|
+ List<Long> plus_order_ids = null;
|
|
|
|
|
+ Address address = null;
|
|
|
|
|
+ for (Long plus_skuId : plusSkuIds) {
|
|
|
GoodsDonSku plus_sku = goodsDonSkuMapper.selectById(plus_skuId);
|
|
GoodsDonSku plus_sku = goodsDonSkuMapper.selectById(plus_skuId);
|
|
|
if (plus_sku == null) {
|
|
if (plus_sku == null) {
|
|
|
log.error("订单id:{}优惠加购规格已被删除 skuId:{},车票未发送", order.getId(), plus_skuId);
|
|
log.error("订单id:{}优惠加购规格已被删除 skuId:{},车票未发送", order.getId(), plus_skuId);
|
|
|
- return;
|
|
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (dis_relation_ids == null) {
|
|
|
|
|
+ dis_relation_ids = new ArrayList<>();
|
|
|
}
|
|
}
|
|
|
GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(plus_sku, order.getUserId());
|
|
GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(plus_sku, order.getUserId());
|
|
|
dis_relation_ids.add(relationNoOrder.getId());
|
|
dis_relation_ids.add(relationNoOrder.getId());
|
|
|
- });
|
|
|
|
|
|
|
+ }
|
|
|
//保存订单关联优惠加购车票
|
|
//保存订单关联优惠加购车票
|
|
|
orderDiscountPlusPurchaseSkuRelationMapper.update(null, Wrappers.lambdaUpdate(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
orderDiscountPlusPurchaseSkuRelationMapper.update(null, Wrappers.lambdaUpdate(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
|
- .set(OrderDiscountPlusPurchaseSkuRelation::getRelationIds, dis_relation_ids.toString())
|
|
|
|
|
- .eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, order.getId())
|
|
|
|
|
- .isNull(OrderDiscountPlusPurchaseSkuRelation::getRelationIds));
|
|
|
|
|
|
|
+ .set(CollUtil.isNotEmpty(dis_relation_ids), OrderDiscountPlusPurchaseSkuRelation::getRelationIds, Jsons.toJson(dis_relation_ids))
|
|
|
|
|
+ .set(CollUtil.isNotEmpty(plus_order_ids), OrderDiscountPlusPurchaseSkuRelation::getPlusOrderIds, Jsons.toJson(plus_order_ids))
|
|
|
|
|
+ .eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, order.getId()));
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -677,7 +690,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
if (GroupsRelation.Status.locking.equals(relation.getStatus()) || GroupsRelation.Status.validity.equals(relation.getStatus()) || GroupsRelation.Status.outside.equals(relation.getStatus())) {
|
|
if (GroupsRelation.Status.locking.equals(relation.getStatus()) || GroupsRelation.Status.validity.equals(relation.getStatus()) || GroupsRelation.Status.outside.equals(relation.getStatus())) {
|
|
|
log.info("订单号orderNo:{}开始修改车位:{}状态", order.getOrderNo(), relation.getId());
|
|
log.info("订单号orderNo:{}开始修改车位:{}状态", order.getOrderNo(), relation.getId());
|
|
|
- if (relation.getStatus() != GroupsRelation.Status.outside) {
|
|
|
|
|
|
|
+ if (relation.getNum() > groupsTrips.getNum()) {
|
|
|
|
|
+ relation.setStatus(GroupsRelation.Status.outside);
|
|
|
|
|
+ } else {
|
|
|
relation.setStatus(GroupsRelation.Status.validity);
|
|
relation.setStatus(GroupsRelation.Status.validity);
|
|
|
}
|
|
}
|
|
|
//续费后,下一次续费意愿状态为false
|
|
//续费后,下一次续费意愿状态为false
|
|
@@ -696,16 +711,24 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (donSku.getDays() != null && donSku.getDays() > 0) {
|
|
if (donSku.getDays() != null && donSku.getDays() > 0) {
|
|
|
newDate = DateUtil.offsetDay(expiryTime, donSku.getDays() * order.getNum());
|
|
newDate = DateUtil.offsetDay(expiryTime, donSku.getDays() * order.getNum());
|
|
|
} else {
|
|
} else {
|
|
|
- newDate = DateUtil.offset(expiryTime, DateField.MONTH, donSku.getMonths() * order.getNum());
|
|
|
|
|
|
|
+ //奈飞月付 按30天计算
|
|
|
|
|
+ if (sku.getId() == 4) {
|
|
|
|
|
+ newDate = DateUtil.offsetDay(expiryTime, 30 * order.getNum());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ newDate = DateUtil.offset(expiryTime, DateField.MONTH, donSku.getMonths() * order.getNum());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
relation.setExpiryTime(newDate);
|
|
relation.setExpiryTime(newDate);
|
|
|
relation.setStartTime(relation.getStartTime() == null ? new Date() : null);
|
|
relation.setStartTime(relation.getStartTime() == null ? new Date() : null);
|
|
|
} else if (GroupsTrips.Status.waiting.equals(groupsTrips.getStatus())) {
|
|
} else if (GroupsTrips.Status.waiting.equals(groupsTrips.getStatus())) {
|
|
|
log.info("车位groupsId:{}未发车,修改订单号orderNo:{}订单为已付款状态:{}", groupsTrips.getId(), order.getOrderNo());
|
|
log.info("车位groupsId:{}未发车,修改订单号orderNo:{}订单为已付款状态:{}", groupsTrips.getId(), order.getOrderNo());
|
|
|
order.setStatus(OrderDon.Status.hasPayment);
|
|
order.setStatus(OrderDon.Status.hasPayment);
|
|
|
|
|
+ if (goodsDon.getSpecialType() != null && goodsDon.getSpecialType() == GoodsDon.SpecialType.courseware) {
|
|
|
|
|
+ order.setStatus(OrderDon.Status.complete);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- //下架POE会员车队
|
|
|
|
|
- if (order.getGoodsId() != null && order.getGoodsId().equals(35l)) {
|
|
|
|
|
|
|
+ //下架POE会员车队 || GPT Plus独立规格 下架
|
|
|
|
|
+ if (order.getGoodsId() != null && Constant.DOWN_GOODS_PAY.contains(order.getGoodsId()) || goodsDonSkuMapper.selectSingleSkuIdsByGoodsId(Constant.AI_goodsIds.get(0)).contains(groupsTrips.getSkuId())) {
|
|
|
if (groupsTrips.getAccountId() != null && groupsTrips.getStatus() == GroupsTrips.Status.validity) {
|
|
if (groupsTrips.getAccountId() != null && groupsTrips.getStatus() == GroupsTrips.Status.validity) {
|
|
|
groupsTrips.setStatus(GroupsTrips.Status.down);
|
|
groupsTrips.setStatus(GroupsTrips.Status.down);
|
|
|
groupsMapper.updateById(groupsTrips);
|
|
groupsMapper.updateById(groupsTrips);
|
|
@@ -713,6 +736,30 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
//TODO 如未发车逻辑
|
|
//TODO 如未发车逻辑
|
|
|
groupsRelationMapper.updateById(relation);
|
|
groupsRelationMapper.updateById(relation);
|
|
|
|
|
+ Account account = null;
|
|
|
|
|
+ if (envCommonService.isPrdEnv() && order.getOrderType() == 2) {
|
|
|
|
|
+ //ChatGPT plus 独立和Midjourney 独立有人续费了发短信
|
|
|
|
|
+ if (Constant.AI_goodsIds.contains(order.getGoodsId()) && sku.getNum() == 1) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ String accountStr = StrUtil.EMPTY;
|
|
|
|
|
+ account = accountMapper.selectById(groupsTrips.getAccountId());
|
|
|
|
|
+ if (account != null) {
|
|
|
|
|
+ accountStr = account.getAccount();
|
|
|
|
|
+ }
|
|
|
|
|
+ String renew_msg = String.format(Constant.AI_RENEW_MSG, order.getUserId(), goodsDon.getTitle(), sku.getSpecVal(), accountStr);
|
|
|
|
|
+ SmsUtil.sendLuoKey2Msg(Constant.SERVICE_PHONE, renew_msg);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //GPT 代充 发送短信通知
|
|
|
|
|
+ if (envCommonService.isPrdEnv() && order.getGoodsId() == 40l) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ String pay_msg = String.format(Constant.PAY_MSG, order.getUserId(), goodsDon.getTitle(), sku.getSpecVal());
|
|
|
|
|
+ SmsUtil.sendLuoKey2Msg(Constant.SERVICE_PHONE, pay_msg);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|