Browse Source

修复下单端系统派单

master
前端-胡立永 1 month ago
parent
commit
56871e5ae9
4 changed files with 39 additions and 17 deletions
  1. +5
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallOrderController.java
  2. +29
    -15
      ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IApiMallOrderServiceImpl.java
  3. +3
    -0
      ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/OrderPayRequest.java
  4. +2
    -1
      ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java

+ 5
- 1
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallOrderController.java View File

@ -299,9 +299,13 @@ public class ApiMallOrderController extends BaseController {
String redisValue = req.getPayId()+"_"+System.currentTimeMillis(); String redisValue = req.getPayId()+"_"+System.currentTimeMillis();
try { try {
redisService.lock(redisKey, redisValue, 60); redisService.lock(redisKey, redisValue, 60);
Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO);
Member member = memberWechatService.isRegister(req.getOpenId());
Long memberId = member.getId(); Long memberId = member.getId();
req.setMemberId(memberId); req.setMemberId(memberId);
req.setWechatType(2);
return ResponseEntity.ok(service.orderPay(req)); return ResponseEntity.ok(service.orderPay(req));
}catch (Exception e){ }catch (Exception e){
log.error("支付方法异常", e); log.error("支付方法异常", e);


+ 29
- 15
ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IApiMallOrderServiceImpl.java View File

@ -41,6 +41,7 @@ import com.ruoyi.applet.utils.WechatRefundUtil;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisService; import com.ruoyi.common.core.redis.RedisService;
import com.ruoyi.common.utils.IDGenerator;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.config.LocalDataUtil; import com.ruoyi.framework.config.LocalDataUtil;
@ -430,8 +431,7 @@ public class IApiMallOrderServiceImpl implements IApiMallOrderService {
refundHistory.setCreateTime(LocalDateTime.now()); refundHistory.setCreateTime(LocalDateTime.now());
refundHistory.setUpdateTime(LocalDateTime.now()); refundHistory.setUpdateTime(LocalDateTime.now());
// 这里需要注入WechatPaymentHistoryMapper暂时注释
// wechatPaymentHistoryMapper.insert(refundHistory);
wechatPaymentHistoryMapper.insert(refundHistory);
log.info("退款历史记录已创建:{}", refundHistory); log.info("退款历史记录已创建:{}", refundHistory);
} catch (Exception e) { } catch (Exception e) {
log.error("记录退款历史失败", e); log.error("记录退款历史失败", e);
@ -462,26 +462,34 @@ public class IApiMallOrderServiceImpl implements IApiMallOrderService {
QueryWrapper<MemberWechat> memberWechatQw = new QueryWrapper<>(); QueryWrapper<MemberWechat> memberWechatQw = new QueryWrapper<>();
memberWechatQw.eq("member_id", req.getMemberId()); memberWechatQw.eq("member_id", req.getMemberId());
MemberWechat memberWechat = memberWechatMapper.selectOne(memberWechatQw); MemberWechat memberWechat = memberWechatMapper.selectOne(memberWechatQw);
if (memberWechat == null || StrUtil.isBlank(memberWechat.getOpenid())){
if (memberWechat == null || StrUtil.isBlank(memberWechat.getRoutineOpenid())){
throw new RuntimeException("获取用户openId失败"); throw new RuntimeException("获取用户openId失败");
} }
Order order = orderList.get(0);
QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>(); QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
orderItemQw.eq("order_id", orderList.get(0).getId());
orderItemQw.eq("order_id", order.getId());
List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw); List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw);
String orderDesc = orderItemList.get(0).getProductName().substring(0, Math.min(40, orderItemList.get(0).getProductName().length())); String orderDesc = orderItemList.get(0).getProductName().substring(0, Math.min(40, orderItemList.get(0).getProductName().length()));
//保存微信支付历史 //保存微信支付历史
LocalDateTime optDate = LocalDateTime.now(); LocalDateTime optDate = LocalDateTime.now();
QueryWrapper<WechatPaymentHistory> wxPaymentQw = new QueryWrapper<>(); QueryWrapper<WechatPaymentHistory> wxPaymentQw = new QueryWrapper<>();
wxPaymentQw.eq("order_id", orderList.get(0).getPayId());
wxPaymentQw.eq("order_id", order.getPayId());
wxPaymentQw.eq("op_type", Constants.PaymentOpType.PAY); wxPaymentQw.eq("op_type", Constants.PaymentOpType.PAY);
WechatPaymentHistory wechatPaymentHistory = wechatPaymentHistoryMapper.selectOne(wxPaymentQw);
if (wechatPaymentHistory == null){
wechatPaymentHistory = new WechatPaymentHistory();
wechatPaymentHistory.setOrderId(orderList.get(0).getPayId());
// WechatPaymentHistory wechatPaymentHistory = wechatPaymentHistoryMapper.selectOne(wxPaymentQw);
// if (wechatPaymentHistory == null){
Long payId = IDGenerator.generateId();
WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory();
wechatPaymentHistory.setId(payId);
wechatPaymentHistory.setOrderId(order.getId());
wechatPaymentHistory.setMemberId(req.getMemberId()); wechatPaymentHistory.setMemberId(req.getMemberId());
wechatPaymentHistory.setOpenid(memberWechat.getOpenid());
wechatPaymentHistory.setOpenid(memberWechat.getRoutineOpenid());
wechatPaymentHistory.setTitle(orderItemList.get(0).getProductName()); wechatPaymentHistory.setTitle(orderItemList.get(0).getProductName());
wechatPaymentHistory.setMoney(orderList.get(0).getPayAmount());
wechatPaymentHistory.setMoney(order.getPayAmount());
wechatPaymentHistory.setOpType(Constants.PaymentOpType.PAY); wechatPaymentHistory.setOpType(Constants.PaymentOpType.PAY);
wechatPaymentHistory.setPaymentStatus(0); wechatPaymentHistory.setPaymentStatus(0);
wechatPaymentHistory.setCreateBy(req.getMemberId()); wechatPaymentHistory.setCreateBy(req.getMemberId());
@ -489,10 +497,16 @@ public class IApiMallOrderServiceImpl implements IApiMallOrderService {
wechatPaymentHistory.setUpdateBy(req.getMemberId()); wechatPaymentHistory.setUpdateBy(req.getMemberId());
wechatPaymentHistory.setUpdateTime(optDate); wechatPaymentHistory.setUpdateTime(optDate);
wechatPaymentHistoryMapper.insert(wechatPaymentHistory); wechatPaymentHistoryMapper.insert(wechatPaymentHistory);
}else {
wechatPaymentHistory.setMoney(orderList.get(0).getPayAmount());
wechatPaymentHistoryMapper.updateById(wechatPaymentHistory);
}
req.setPayId(payId);
order.setPayId(payId);
orderMapper.updateById(order);
// }else {
// wechatPaymentHistory.setMoney(order.getPayAmount());
// wechatPaymentHistoryMapper.updateById(wechatPaymentHistory);
// }
//请开启微信支付 wechat.enabled=true //请开启微信支付 wechat.enabled=true
//调用wx的jsapi拿prepayId返回签名等信息 //调用wx的jsapi拿prepayId返回签名等信息
String openId = memberWechat.getOpenid(); String openId = memberWechat.getOpenid();


+ 3
- 0
ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/OrderPayRequest.java View File

@ -18,4 +18,7 @@ public class OrderPayRequest {
@ApiModelProperty(value = "微信支付方式 1:公众号 2:小程序") @ApiModelProperty(value = "微信支付方式 1:公众号 2:小程序")
private Integer wechatType = 1; private Integer wechatType = 1;
@ApiModelProperty(value = "openId", hidden = true)
private String openId;
} }

+ 2
- 1
ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java View File

@ -1499,7 +1499,8 @@ public class H5OrderService {
//2保存微信支付历史 //2保存微信支付历史
LocalDateTime optDate = LocalDateTime.now(); LocalDateTime optDate = LocalDateTime.now();
WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory(); WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory();
wechatPaymentHistory.setOrderId(payId);
wechatPaymentHistory.setId(payId);
wechatPaymentHistory.setOrderId(bondTransaction.getId());
wechatPaymentHistory.setMemberId(staff.getId()); wechatPaymentHistory.setMemberId(staff.getId());
wechatPaymentHistory.setOpenid(openId); wechatPaymentHistory.setOpenid(openId);
wechatPaymentHistory.setTitle("保证金缴纳"); wechatPaymentHistory.setTitle("保证金缴纳");


Loading…
Cancel
Save