he2802 1 year ago
parent
commit
aaa90473c6

+ 10 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderHandleController.java

@@ -2,6 +2,7 @@ package com.zhongzheng.controller.order;
 
 import java.util.List;
 import java.util.Arrays;
+import java.util.Map;
 
 import cn.hutool.core.lang.Validator;
 import com.zhongzheng.common.core.domain.model.LoginUser;
@@ -114,4 +115,13 @@ public class OrderHandleController extends BaseController {
         List<OrderHandleGoodsVo> list = iOrderHandleService.selectOrderGoodsList(bo);
         return getDataTable(list);
     }
+
+    @ApiOperation("经办订单继续支付")
+    @PreAuthorize("@ss.hasPermi('system:handle:list')")
+    @GetMapping("/resumePay")
+    public AjaxResult<Map<String, String>> resumePay(OrderHandleAddBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setCreateUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success("支付结果",iOrderHandleService.resumePayOrder(bo));
+    }
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderHandleAddBo.java

@@ -72,4 +72,13 @@ public class OrderHandleAddBo {
     private List<OrderHandleItemAddBo> userGoodsList;
 
     private Long overTime;
+
+    private String companyName;
+
+    private String companyTel;
+
+    private String companyRemark;
+
+    private String companyPayImg;
+
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderHandleEditBo.java

@@ -80,4 +80,11 @@ public class OrderHandleEditBo {
     @ApiModelProperty("支付价格(成交价)")
     private BigDecimal payPrice;
     private Long overTime;
+    private String companyName;
+
+    private String companyTel;
+
+    private String companyRemark;
+
+    private String companyPayImg;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderPayAddBo.java

@@ -44,4 +44,5 @@ public class OrderPayAddBo {
     /** 微信流水号 */
     @ApiModelProperty("微信流水号")
     private String transid;
+    private Integer orderFrom;
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderHandle.java

@@ -61,4 +61,11 @@ private static final long serialVersionUID=1L;
     /** 支付价格(成交价) */
     private BigDecimal payPrice;
     private Long overTime;
+    private String companyName;
+
+    private String companyTel;
+
+    private String companyRemark;
+
+    private String companyPayImg;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderPay.java

@@ -44,4 +44,6 @@ private static final long serialVersionUID=1L;
     private BigDecimal payPrice;
     /** 微信流水号 */
     private String transid;
+
+    private Integer orderFrom;
 }

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderHandleService.java

@@ -1,10 +1,7 @@
 package com.zhongzheng.modules.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.order.bo.OrderHandleAddBo;
-import com.zhongzheng.modules.order.bo.OrderHandleEditBo;
-import com.zhongzheng.modules.order.bo.OrderHandleQueryBo;
-import com.zhongzheng.modules.order.bo.OrderInputQueryBo;
+import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.OrderHandle;
 import com.zhongzheng.modules.order.domain.OrderInput;
 import com.zhongzheng.modules.order.vo.OrderHandleGoodsVo;
@@ -13,6 +10,7 @@ import com.zhongzheng.modules.order.vo.OrderInputVo;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 经办录单Service接口
@@ -47,6 +45,8 @@ public interface IOrderHandleService extends IService<OrderHandle> {
 
 	String submitOrder(OrderHandleAddBo bo);
 
+	Map<String, String> resumePayOrder(OrderHandleAddBo bo);
+
 	/**
 	 * 根据编辑业务对象修改经办录单
 	 * @param bo 经办录单编辑业务对象

+ 79 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderHandleServiceImpl.java

@@ -3,18 +3,24 @@ package com.zhongzheng.modules.order.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.course.domain.CourseBusiness;
 import com.zhongzheng.modules.order.bo.*;
+import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderHandle;
 import com.zhongzheng.modules.order.domain.OrderInput;
 import com.zhongzheng.modules.order.mapper.OrderHandleMapper;
 import com.zhongzheng.modules.order.service.IOrderHandleService;
+import com.zhongzheng.modules.order.service.IOrderPayService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderHandleGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderHandleVo;
 import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.user.vo.UserVo;
+import com.zhongzheng.modules.wx.service.IWxPayService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,9 +29,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -44,6 +49,12 @@ public class OrderHandleServiceImpl extends ServiceImpl<OrderHandleMapper, Order
     @Autowired
     private IOrderService iOrderService;
 
+    @Autowired
+    private IWxPayService iWxPayService;
+
+    @Autowired
+    private IOrderPayService iOrderPayService;
+
     @Override
     public OrderHandleVo queryById(Long id){
         OrderHandle db = this.baseMapper.selectById(id);
@@ -145,6 +156,71 @@ public class OrderHandleServiceImpl extends ServiceImpl<OrderHandleMapper, Order
         return handleOrderSn;
     }
 
+    @Override
+    public Map<String, String> resumePayOrder(OrderHandleAddBo bo) {
+        if (Validator.isEmpty(bo.getHandleOrderSn())) {
+            throw new CustomException("录单单号为空");
+        }
+        if (Validator.isEmpty(bo.getPayType())) {
+            throw new CustomException("支付方式缺失");
+        }
+        OrderHandle orderHandle = queryBySn(bo.getHandleOrderSn());
+        if (Validator.isEmpty(orderHandle)) {
+            throw new CustomException("录单单号不存在");
+        }
+        if (orderHandle.getPayStauts()!=0) {
+            throw new CustomException("非支付状态");
+        }
+        if (orderHandle.getOverTime()<DateUtils.getNowTime()) {
+            throw new CustomException("已超时关闭");
+        }
+        UserVo userVo = iUserService.queryById(bo.getCreateUserId());
+        if(bo.getPayType()==1){
+            Map<String, String> payResult = new HashMap<>();
+            if (orderHandle.getPayPrice().compareTo(BigDecimal.ZERO) != 0) {
+                OrderPayAddBo payAddBo = new OrderPayAddBo();
+                //生成支付单号
+                String pay_no = DateUtils.getPayOrderSn();
+                payAddBo.setPaySn(pay_no);
+                payAddBo.setOrderSn(orderHandle.getHandleOrderSn());
+                payAddBo.setStatus(0);
+                payAddBo.setPayPrice(orderHandle.getPayPrice());
+                payAddBo.setOrderFrom(2);
+                iOrderPayService.insertByAddBo(payAddBo);
+                String body = "中正云-订单:"+orderHandle.getHandleOrderSn();
+                payResult = iWxPayService.paymentPc(pay_no, userVo.getOpenId(), body, orderHandle.getPayPrice());
+                payResult.put("orderSn", orderHandle.getHandleOrderSn());
+                return payResult;
+            }
+        }
+        else if(bo.getPayType()==2){
+            if(Validator.isEmpty(bo.getCompanyName())||Validator.isEmpty(bo.getCompanyTel())||Validator.isEmpty(bo.getCompanyPayImg())){
+                throw new CustomException("对公凭证缺失");
+            }
+            LambdaUpdateWrapper<OrderHandle> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+            objectLambdaUpdateWrapper.eq(OrderHandle::getId, orderHandle.getId());
+            objectLambdaUpdateWrapper.set(OrderHandle::getCompanyName, bo.getCompanyName());
+            objectLambdaUpdateWrapper.set(OrderHandle::getCompanyTel,bo.getCompanyTel());
+            objectLambdaUpdateWrapper.set(OrderHandle::getCompanyRemark,bo.getCompanyRemark());
+            objectLambdaUpdateWrapper.set(OrderHandle::getCompanyPayImg,bo.getCompanyPayImg());
+            objectLambdaUpdateWrapper.set(OrderHandle::getUpdateTime,DateUtils.getNowTime());
+            objectLambdaUpdateWrapper.set(OrderHandle::getPayStauts,2);
+            objectLambdaUpdateWrapper.set(OrderHandle::getPayType,2);
+            this.update(null, objectLambdaUpdateWrapper);
+
+            LambdaUpdateWrapper<Order> objectLambdaUpdateWrapper2 = Wrappers.lambdaUpdate();
+            objectLambdaUpdateWrapper2.eq(Order::getHandleOrderSn, orderHandle.getHandleOrderSn());
+            objectLambdaUpdateWrapper2.set(Order::getPayType, 7);
+            objectLambdaUpdateWrapper2.set(Order::getUpdateTime,DateUtils.getNowTime());
+            iOrderService.update(null, objectLambdaUpdateWrapper2);
+
+            Map<String, String> payResult = new HashMap<>();
+            return payResult;
+        }
+
+        return null;
+    }
+
     @Override
     public Boolean updateByEditBo(OrderHandleEditBo bo) {
         OrderHandle update = BeanUtil.toBean(bo, OrderHandle.class);

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderHandleVo.java

@@ -102,4 +102,12 @@ public class OrderHandleVo {
 
 	private Long overTime;
 
+	private String companyName;
+
+	private String companyTel;
+
+	private String companyRemark;
+
+	private String companyPayImg;
+
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.wx.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Validator;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -316,6 +317,12 @@ public class WxPayServiceImpl implements IWxPayService {
             data.put("spbill_create_ip", IpUtils.getIpAddr(ServletUtils.getRequest()));
             data.put("notify_url", notifyUrl);
             data.put("trade_type", "NATIVE");
+            Calendar calendar = Calendar .getInstance();
+            calendar.setTime(new Date());
+            calendar.add(calendar.MINUTE, 10);
+            Date date = calendar.getTime();
+            String time_expire = DateUtil.format(date,"yyyy-MM-dd'T' HH:mm:ssXXX");
+            data.put("time_expire", time_expire);
             String TenantId = ServletUtils.getRequest().getHeader("TenantId");
             data.put("attach", TenantId);
             Map<String, String> resp = wxpay.unifiedOrder(data);
@@ -335,6 +342,8 @@ public class WxPayServiceImpl implements IWxPayService {
             String urlBase64 = "data:image/jpeg;base64,"
                     + encoder1.encodeToString(outputStream.toByteArray());
             result.put("urlBase64", urlBase64);
+            Integer overTime = (int)calendar.getTimeInMillis()/1000;
+            result.put("overTime", overTime.toString());
             return result;
         } catch (Exception e) {
             e.printStackTrace();