|
|
@@ -85,6 +85,7 @@ import com.cyksj.service.telegram.TelegramService;
|
|
|
import com.cyksj.service.template.TemplateCommonService;
|
|
|
import com.cyksj.service.user.UserBenefitsService;
|
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
|
+import com.cyksj.service.user.UserService;
|
|
|
import com.cyksj.service.wechat.WeChatService;
|
|
|
import com.cyksj.task.JobManager;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
@@ -124,6 +125,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final UserMapper userMapper;
|
|
|
|
|
|
+ private final UserService userService;
|
|
|
+
|
|
|
private final WeChatService weChatService;
|
|
|
|
|
|
private final RedisService redisService;
|
|
|
@@ -242,6 +245,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final YhShopGoodsSkuMapper yhShopGoodsSkuMapper;
|
|
|
|
|
|
+ private final AccountMapper accountMapper;
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@@ -287,7 +292,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
couponUser = couponStatusRecord(payRequest.getCouponExCode(), payRequest.getCouponId(), payRequest.getUserId(), couponPopularizeDto);
|
|
|
}
|
|
|
Boolean isNoLogin = payRequest.getIsNoLogin();
|
|
|
- User user;
|
|
|
+ User user = null;
|
|
|
String payOpenId = null;
|
|
|
Long relationId = 0L;
|
|
|
Boolean isNeedTicket = checkIsNeedGroupsRelation(goodsDon);
|
|
|
@@ -301,9 +306,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
}
|
|
|
GroupsRelation relation = null;
|
|
|
+ String orderPhone = payRequest.getPhone();
|
|
|
+ if (StrUtil.isNotBlank(orderPhone)) {
|
|
|
+ user = saveOrGetOrderPhoneUser(payRequest);
|
|
|
+ userId = user.getId();
|
|
|
+ payRequest.setUserId(userId);
|
|
|
+ isNoLogin = false;
|
|
|
+ }
|
|
|
if (userId == null) {
|
|
|
user = new User();
|
|
|
user.setId(0l);
|
|
|
+ isNoLogin = true;
|
|
|
} else {
|
|
|
user = userMapper.selectById(userId);
|
|
|
if (user == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
|
|
|
@@ -499,7 +512,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
orderDon.setPayTitle(payTitle.toString());
|
|
|
//下单手机号
|
|
|
- orderDon.setPhone(payRequest.getPhone());
|
|
|
+ orderDon.setPhone(orderPhone);
|
|
|
this.saveOrUpdate(orderDon);
|
|
|
|
|
|
if (orderDon.getIsDp()) {
|
|
|
@@ -975,15 +988,19 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
OrderDetailView detail = beanSearcher.searchFirst(OrderDetailView.class, builder.build());
|
|
|
//获取对应车票订单 账号密码
|
|
|
- RenewalView renewalView = beanSearcher.searchFirst(RenewalView.class, MapUtils.builder()
|
|
|
- .field(RenewalView::getUserId, userId)
|
|
|
- .field(RenewalView::getRelationId, detail.getRelationId())
|
|
|
- .onlySelect(RenewalView::getAccount, RenewalView::getPassword)
|
|
|
- .build());
|
|
|
- if (renewalView != null) {
|
|
|
- detail.setAccount(renewalView.getAccount());
|
|
|
- detail.setPassword(renewalView.getPassword());
|
|
|
+ if (userId != null) {
|
|
|
+ List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
|
|
|
+ RenewalView renewalView = beanSearcher.searchFirst(RenewalView.class, MapUtils.builder()
|
|
|
+ .field(RenewalView::getUserId, userIdList).op(Operator.InList)
|
|
|
+ .field(RenewalView::getRelationId, detail.getRelationId())
|
|
|
+ .onlySelect(RenewalView::getAccount, RenewalView::getPassword)
|
|
|
+ .build());
|
|
|
+ if (renewalView != null) {
|
|
|
+ detail.setAccount(renewalView.getAccount());
|
|
|
+ detail.setPassword(renewalView.getPassword());
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
if (detail.getRelationId() != 0) {
|
|
|
detail.setTransport(transportMapper.selectOne(Wrappers.lambdaQuery(OrderDonTransport.class).eq(OrderDonTransport::getOrderId, detail.getId()).last(" limit 1")));
|
|
|
detail.setWaybill(waybillMapper.selectOne(Wrappers.lambdaQuery(OrderDonWaybill.class).eq(OrderDonWaybill::getOrderId, detail.getId()).last(" limit 1")));
|
|
|
@@ -1294,7 +1311,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
//ChatGPT plus 独立和Midjourney 独立有人续费了发短信
|
|
|
if (Constant.AI_goodsIds.contains(order.getGoodsId()) && sku.getNum() == 1) {
|
|
|
try {
|
|
|
- String renew_msg = String.format(Constant.AI_RENEW_MSG, goodsDon.getTitle(), sku.getSpecVal());
|
|
|
+ String accountStr = StrUtil.EMPTY;
|
|
|
+ Account 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) {
|
|
|
}
|
|
|
@@ -1303,7 +1325,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
//GPT 代充 发送短信通知
|
|
|
if (envCommonService.isPrdEnv() && order.getGoodsId() == 40l) {
|
|
|
try {
|
|
|
- String pay_msg = String.format(Constant.PAY_MSG, goodsDon.getTitle(), sku.getSpecVal());
|
|
|
+ String pay_msg = String.format(Constant.PAY_MSG, order.getUserId(), goodsDon.getTitle(), sku.getSpecVal());
|
|
|
SmsUtil.sendLuoKey2Msg(Constant.SERVICE_PHONE, pay_msg);
|
|
|
} catch (Exception e) {
|
|
|
}
|
|
|
@@ -2541,4 +2563,27 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
return sku;
|
|
|
}
|
|
|
+
|
|
|
+ public User saveOrGetOrderPhoneUser(OrderPayRequest payRequest) {
|
|
|
+ String orderPhone = payRequest.getPhone();
|
|
|
+ User user = userMapper.selectOne(Wrappers.lambdaQuery(User.class)
|
|
|
+ .eq(User::getLoginPhone, orderPhone).last("limit 1"));
|
|
|
+ if (user == null) {
|
|
|
+ user = new User();
|
|
|
+ StringBuilder name = new StringBuilder();
|
|
|
+ name.append(Constant.DEFAULT_NAME);
|
|
|
+ user.setPopularizeId(payRequest.getPopularizeId());
|
|
|
+ user.setLoginPhone(orderPhone);
|
|
|
+ user.setNickname(String.format("%s%s", name.toString(), RandomUtil.randomString(6)));
|
|
|
+ //默认头像
|
|
|
+ user.setHeadimgurl(Constant.DEFAULT_HEAD_IMG);
|
|
|
+ String registerEnv = null;
|
|
|
+ user.setRegisterEnv(StrUtil.isEmpty(registerEnv) ? User.RegisterEnv.pc.name() : registerEnv);
|
|
|
+ userMapper.insert(user);
|
|
|
+ if (StrUtil.isEmpty(user.getShowId())) {
|
|
|
+ user.setShowId(userService.getUserShowId(user.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return user;
|
|
|
+ }
|
|
|
}
|