zhs 3 年 前
コミット
3002c7386f

+ 5 - 5
src/main/java/com/travel/config/SaticScheduleTask.java

@@ -76,7 +76,7 @@ public class SaticScheduleTask {
     /**
      * 定制单哪些超出出行时间 修改状态  每天0:01触发方法
      */
-    @Scheduled(cron = "0 01 0 * * ?")
+    @Scheduled(cron = "0 30 0 * * ?")
     public void updatePrivate(){
         try{
             //查询有多少个超时定制单
@@ -107,7 +107,7 @@ public class SaticScheduleTask {
     /**
      * 查询那些付过费的报价单已经行程开始
      */
-    @Scheduled(cron = "0 01 0 * * ?")
+    @Scheduled(cron = "0 30 0 * * ?")
     public void updatePrivateThree(){
         try{
             //查询有多少个付过费且到达开始时间的定制单
@@ -126,7 +126,7 @@ public class SaticScheduleTask {
     /**
      * 判断哪些行程开始的订单已经结束
      */
-    @Scheduled(cron = "0 01 0 * * ?")
+    @Scheduled(cron = "0 30 0 * * ?")
     public void updatePrivateFour(){
         try{
             //查询有多少个行程开始且已经到达结束时间的订制单
@@ -143,9 +143,9 @@ public class SaticScheduleTask {
     }
 
     /**
-     * 当前时间小于等于结束时间后的七天的报价单金额存入供应商余额  每天的凌晨一点触发
+     * 当前时间小于等于结束时间后的七天的报价单金额存入供应商余额  每天的凌晨一点三十触发
      */
-    @Scheduled(cron = "0 01 1 * * ?")
+    @Scheduled(cron = "0 30 1 * * ?")
     public void updatePrivateFourSomeFarm(){
         //查询那些行程结束且已到达给供应商付款的时间的定制单
         List<PrivateOrder> list1 = privateOrderService.updatePrivateFourSomeFarm();

+ 0 - 16
src/main/java/com/travel/controller/PersonalController.java

@@ -36,22 +36,6 @@ public class PersonalController {
     @Autowired
     private LoginService  loginService;
 
-
-    //雪花算法
-    private SnowflakeUtil snowflakeUtil = new SnowflakeUtil(1, 1, 1);
-    //私人订制
-    @Autowired
-    private PrivateOrderService privateOrderService;
-    //订单
-    @Autowired
-    private WxPayService wxPayService;
-    //系统配置
-    @Autowired
-    private IndexService indexService;
-    //佣金
-    @Autowired
-    private CommissionService commissionService;
-
     /**
      * 登录判断
      * @param request 参数

+ 9 - 6
src/main/java/com/travel/controller/ZfbCashController.java

@@ -1,5 +1,6 @@
 package com.travel.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.AlipayClient;
 import com.alipay.api.CertAlipayRequest;
@@ -94,7 +95,6 @@ public class ZfbCashController extends ZfbPayUtils {
         model.setOrderTitle("供应商" + supplier.getName() + "提现" + caSh.getMoney() + "元");//转账业务的标题,用于在支付宝用户的账单里显示。
         requestVal.setBizModel(model);
         AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(requestVal);
-        System.out.println(response.getBody());
         if (response.isSuccess()) {
             WxWithdrawal wxWithdrawal = new WxWithdrawal()
                     .setUuid(uuid)
@@ -105,7 +105,9 @@ public class ZfbCashController extends ZfbPayUtils {
             zfbPayService.minusBalanceOf(wxWithdrawal);//余额 - 提现额度
             return "提现成功";
         } else {
-            return "提现失败请联系途丫管理员";
+            JSONObject json = JSONObject.parseObject(response.getBody());
+            JSONObject jsonObject = JSONObject.parseObject(String.valueOf(json.get("alipay_fund_trans_uni_transfer_response")));
+            return String.valueOf(jsonObject.get("sub_msg"));
         }
     }
 
@@ -154,16 +156,15 @@ public class ZfbCashController extends ZfbPayUtils {
         model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");//是否展示付款方别名
         model.setBizScene("DIRECT_TRANSFER");//业务场景。单笔无密转账固定为 DIRECT_TRANSFER。
         Participant payeeInfo = new Participant();//收款方信息
-        payeeInfo.setIdentity(caSh.getIdentity());//收款账号
+        payeeInfo.setIdentity(user1.getPhone());//收款账号
         payeeInfo.setIdentityType("ALIPAY_LOGON_ID");//收款类型 ALIPAY_LOGON_ID支付宝登录账号 ALIPAY_USER_ID 支付宝会员ID
-        payeeInfo.setName(caSh.getName());//真实姓名
+        payeeInfo.setName(user1.getName());//真实姓名
         model.setPayeeInfo(payeeInfo);
         model.setTransAmount(caSh.getMoney());//提现金额
         model.setProductCode("TRANS_ACCOUNT_NO_PWD");//销售产品码。单笔无密转账固定为 TRANS_ACCOUNT_NO_PWD
         model.setOrderTitle("用户" + user1.getName() + "提现" + caSh.getMoney() + "元");//转账业务的标题,用于在支付宝用户的账单里显示。
         requestVal.setBizModel(model);
         AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(requestVal);
-        System.out.println(response.getBody());
         if (response.isSuccess()) {
             WxWithdrawal wxWithdrawal = new WxWithdrawal()
                     .setUuid(uuid)
@@ -174,7 +175,9 @@ public class ZfbCashController extends ZfbPayUtils {
             zfbPayService.minusBalanceOf(wxWithdrawal);//余额 - 提现额度
             return "提现成功";
         } else {
-            return "提现失败请联系途丫管理员";
+            JSONObject json = JSONObject.parseObject(response.getBody());
+            JSONObject jsonObject = JSONObject.parseObject(String.valueOf(json.get("alipay_fund_trans_uni_transfer_response")));
+            return String.valueOf(jsonObject.get("sub_msg"));
         }
     }
 

+ 21 - 13
src/main/java/com/travel/controller/ZfbPayController.java

@@ -3,6 +3,8 @@ package com.travel.controller;
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.internal.util.AlipaySignature;
 import com.alipay.api.request.AlipayTradePagePayRequest;
+import com.alipay.api.request.AlipayTradePrecreateRequest;
+import com.alipay.api.response.AlipayTradePrecreateResponse;
 import com.travel.model.BuyOfferNum;
 import com.travel.model.Supplier;
 import com.travel.model.SupplierRelease;
@@ -50,7 +52,7 @@ public class ZfbPayController extends ZfbPayUtils {
      */
     @RequestMapping("/toPay")
     @ResponseBody
-    public String toPay(String price, String attach) throws Exception {
+    public Map<String, Object> toPay(String price, String attach) throws Exception {
         //获得初始化的alipayConfig参数 //证书模式
         CertAlipayRequest alipayConfig  = new CertAlipayRequest();
         alipayConfig.setPrivateKey(MERCHANTPRIVATEKEY);//应用秘钥
@@ -71,19 +73,25 @@ public class ZfbPayController extends ZfbPayUtils {
         String content = "{\"out_trade_no\":\""+ out_trade_no +"\","
                 + "\"total_amount\":\""+ price +"\","                + "\"subject\":\"途丫-"+ out_trade_no +"\","
                 + "\"timeout_express\":\""+ timeout +"\","
-                + "\"body\":\""+ attach +"\","
-                + "\"qr_pay_mode\":\"2\","
-                + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}";
-        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
+                + "\"body\":\""+ attach +"\"}";
+        AlipayTradePrecreateRequest alipayRequest = new AlipayTradePrecreateRequest();
         alipayRequest.setNotifyUrl(NOTIFYURL);
         alipayRequest.setBizContent(content);
-        //请求
-        String result = "";
-        //请求
-        String head = "<html><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'></head><body>";
-        result = alipayClient.pageExecute(alipayRequest).getBody();
-        String bottom = "</body></html>";
-        return head + result + bottom;
+        AlipayTradePrecreateResponse response = alipayClient.certificateExecute(alipayRequest);
+        //返回前端生成二维码
+        Map<String, Object> resultMap = new HashMap<>();
+//        ZFBPay wxPay = new ZFBPay()
+//                .setUuid(snowflakeUtil.nextId() + "")
+//                .setMchId(APPID)
+//                .setReleaseUuid(attach)
+//                .setCodeUrl(response.getQrCode())
+//                .setOutTradeNo(out_trade_no)
+//                .setTotalFee(price)
+//                .setBody("途丫-" + out_trade_no);
+//        zfbPayService.pay(wxPay);
+        resultMap.put("out_trade_no", out_trade_no);//订单编号
+        resultMap.put("code_url", response.getQrCode());//支付路径
+        return resultMap;
     }
 
     /**
@@ -282,7 +290,7 @@ public class ZfbPayController extends ZfbPayUtils {
                                 supplierRelease2.setOrderType("2");
                                 zfbPayService.updatePrivateType(supplierRelease2);
                                 Map<String, Object> mapCommis = indexService.getSitesInfo();//查询系统配置
-                                String amount = AmountUtil.moneyMul(wxPay.getTotalFee(), (String) mapCommis.get("percentageFee"));//手续费
+                                String amount = AmountUtil.moneyMul(wxPay.getTotalFee(), String.valueOf(mapCommis.get("percentage_fee")));//手续费
                                 //实际金额 - 手续费 = 供应商收入
                                 String poundage = AmountUtil.moneySub(wxPay.getTotalFee(), amount);
                                 //用户购买报价单后将供应商收入存入供应商余额

+ 4 - 0
src/main/java/com/travel/mapper/ZFBPayMapper.java

@@ -48,4 +48,8 @@ public interface ZFBPayMapper {
     void addSupplierBalanceOf(Supplier supplier);
 
     void subtractBalance(@Param("bigDecimal2")String bigDecimal2, @Param("code")String code);
+
+    void deletePay(ZFBPay wxPay);
+
+    void pay(ZFBPay wxPay);
 }

+ 2 - 0
src/main/java/com/travel/service/ZFBPayService.java

@@ -35,4 +35,6 @@ public interface ZFBPayService {
     void minusBalanceOf(WxWithdrawal wxWithdrawal);
 
     void addSupplierBalanceOf(Supplier supplier);
+
+    void pay(ZFBPay wxPay);
 }

+ 7 - 0
src/main/java/com/travel/service/impl/ZFBPayServiceImpl.java

@@ -189,6 +189,13 @@ public class ZFBPayServiceImpl extends ZfbPayUtils implements ZFBPayService {
         zfbPayMapper.addSupplierBalanceOf(supplier);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void pay(ZFBPay wxPay) {
+        zfbPayMapper.deletePay(wxPay);
+        zfbPayMapper.pay(wxPay);
+    }
+
     /**
      * 支付宝退款
      * @param money 金额

+ 2 - 2
src/main/resources/config/mapping/PrivateOrderMapper.xml

@@ -116,7 +116,7 @@
             a.*
         FROM
             bus_private_ordering a
-            JOIN ( SELECT demand_uuid FROM bus_private_ordering_type WHERE order_type = '0' OR order_type = '1' OR order_type = '6' OR order_type = '7' OR order_type = '14') b ON a.uuid = b.demand_uuid
+            JOIN ( SELECT demand_uuid FROM bus_private_ordering_type WHERE order_type = '0' OR order_type = '1' OR order_type = '6' OR order_type = '7') b ON a.uuid = b.demand_uuid
         WHERE a.start_time <![CDATA[ < ]]> SYSDATETIME()
     </select>
     <!-- 查询那些定制单已经行程开始 -->
@@ -143,7 +143,7 @@
             a.*,b.code as supplieName
         FROM
             bus_private_ordering a
-            JOIN ( SELECT demand_uuid,code FROM bus_private_ordering_type WHERE order_type = '4' or order_type = '13' OR order_type = '14' ) b ON a.uuid = b.demand_uuid
+            JOIN ( SELECT demand_uuid,code FROM bus_private_ordering_type WHERE order_type = '4' or order_type = '13' ) b ON a.uuid = b.demand_uuid
         WHERE CONVERT(date, DateAdd(Day, 7 , a.end_time), 120) <![CDATA[ <= ]]> CONVERT(date, SYSDATETIME(), 120)
     </select>
     <!-- 查询定制单状态里是否存在这一项 -->

+ 9 - 0
src/main/resources/config/mapping/ZFBPayMapper.xml

@@ -131,4 +131,13 @@
         WHERE
             code = #{code}
     </update>
+    <!-- 支付 -->
+    <insert id="pay" parameterType="ZFBPay">
+        insert into bus_pay(uuid,release_uuid,fee_type,mch_id,nonce_str,out_trade_no,total_fee,trade_type,prepay_id,open_id,time_end,jdrq,code_url,body)
+        values(#{uuid},#{releaseUuid},#{feeType},#{mchId},#{nonceStr},#{outTradeNo},#{totalFee},#{tradeType},#{prepayId},#{openId},#{timeEnd},CONVERT(VARCHAR(100), SYSDATETIME(), 20),#{codeUrl},#{body})
+    </insert>
+    <!-- 删除支付信息 -->
+    <delete id="deletePay" parameterType="ZFBPay">
+        delete from bus_pay where release_uuid = #{releaseUuid}
+    </delete>
 </mapper>