Browse Source

整合支付代码

周箭河 5 years ago
parent
commit
83aa832025

+ 17 - 106
src/main/java/com/ym/mec/collectfee/controller/YqPayController.java

@@ -68,7 +68,7 @@ public class YqPayController extends BaseController {
         BigDecimal amount = new BigDecimal("0");
         School school = schoolService.get(order.getClassId());
         //计划招生人数有更新,更新
-        orderService.getSchoolDetail(school.getSchoolId(),order.getClassId());
+        orderService.getSchoolDetail(school.getSchoolId(), order.getClassId());
 
         //1、判断已报名人数
         CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
@@ -133,39 +133,13 @@ public class YqPayController extends BaseController {
         order.setCreateTime(new Date()); //订单提交时间
         order.setStatus(1); //订单状态
 
-        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //异步通知地址
-        String returnUrl = "http://pay.dayaedu.com/#/login?schoolId=" + school.getSchoolId() + "&classId=" + order.getClassId() + "&cityId=" + school.getCityId();//支付后返回页面
-        String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付跳转页
-        String payChannels = "{\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"fastpayXy\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
-
-        //获取支付成功跟支付中的订单数
+        //获取分佣账户
         Integer branchId = 1001;//order.getBranchId();
-        int payOrderNums = orderService.getPayOrderNums();
-        //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
-        if ((payOrderNums + 1) % 10 <= 4) { //私人账户
-            branchId = 0;
-        }
+        Account routingAccount = accountService.getRoutingAccount(branchId);
 
-        //获取分佣账户
-        Account account = accountService.getAccountByBranchId(branchId);
-        if (account == null) {
-            return failed("机构没有设置收款账户");
-        }
-        String routingMerNo = account.getSellerNo();
-        BigDecimal HasRouting = account.getHasRouting().add(order.getAmount());
-        account.setHasRouting(HasRouting);
-
-        List<Map> tempRoutingList = new ArrayList();
-        if (branchId.equals(0)) {
-            Map<String, Object> routingList = new HashMap<>();
-            routingList.put("routingMerNo", routingMerNo);//分佣账户
-           // routingList.put("routingFee", amount); //分佣金额
-            routingList.put("routingFee", new BigDecimal("2")); //分佣金额
-            tempRoutingList.add(routingList);
-        }
+        order.setAccount(routingAccount.getSellerNo());
+        order.setUAccount(routingAccount.getId().toString());
 
-        order.setUAccount(account.getId().toString());
-        order.setAccount(routingMerNo);
 
         //1、插入订单
         orderService.insert(order);
@@ -173,32 +147,13 @@ public class YqPayController extends BaseController {
         courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() + 1);
         CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
         //3、修改分佣账户已收金额
-        accountService.upByIdAndVersion(account);
-
-
-        /*订单信息*/
-        String orderBody = "大雅乐盟培训课程";
-        /*订单标题*/
-        String orderSubject = "培训订单";
-
+        BigDecimal HasRouting = routingAccount.getHasRouting().add(order.getAmount());
+        routingAccount.setHasRouting(HasRouting);
+        accountService.upByIdAndVersion(routingAccount);
 
-        order.setAmount(new BigDecimal("2")); //测试设置金额
+        order.setAmount(new BigDecimal("2")); //测试账户设置金额
 
-        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
-        resultMap.put("sellerNo", "0021677"); //收款商户号
-        resultMap.put("payChannels", payChannels); //支付方式
-        resultMap.put("orderBody", orderBody); //订单信息
-        resultMap.put("payAmount", order.getAmount()); //支付金额
-        resultMap.put("apiPayType", "1"); //*API支付类型1-即时支付,2-担保支付,3-预授权支付*/
-        resultMap.put("tradeType", "0"); //*交易类型1—充值,0—收款*
-        resultMap.put("merMerOrderNo", orderNo); //商户订单号
-        resultMap.put("orderSubject", orderSubject); //订单标题
-        resultMap.put("returnUrl", returnUrl); //前台页面地址
-        if (branchId.equals(0)) {
-            resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
-        }
-        Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
-        rqMap.put("host", payUrl);
+        Map rqMap = orderService.getPayMap(routingAccount, order, school); //获取支付map
 
         return succeed(rqMap);
     }
@@ -255,65 +210,21 @@ public class YqPayController extends BaseController {
         }
 
         School school = schoolService.get(pickCourses.get(0).getClassId());
+
         if (school == null) {
             return failed("报名学校不存在");
         }
-        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //异步通知地址
-        String returnUrl = "http://pay.dayaedu.com/#/login?schoolId=" + school.getSchoolId() + "&classId=" + pickCourses.get(0).getClassId() + "&cityId=" + school.getCityId();//支付后返回页面
-        String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付跳转页
-        String payChannels = "{\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"fastpayXy\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
 
         String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
+        //获取分佣账户
+        Integer branchId = 1001;//order.getBranchId();
+        Account routingAccount = accountService.getRoutingAccount(branchId);
 
-        //获取支付成功跟支付中的订单数
-        Integer branchId = 1001;//renewals.getBranchId();
-        int payOrderNums = orderService.getPayOrderNums();
-        //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
-        if ((payOrderNums + 1) % 10 <= 4) { //私人账户
-            branchId = 0;
-        }
+        Order order = renewalsService.addRenewalsOrder(renewals, amount, orderNo, pickCourses, routingAccount, remark);
 
-        //获取分佣账户
-        Account account = accountService.getAccountByBranchId(branchId);
-        if (account == null) {
-            return failed("机构没有设置收款账户");
-        }
-        String routingMerNo = account.getSellerNo();
-        BigDecimal HasRouting = account.getHasRouting().add(amount);
-        account.setHasRouting(HasRouting);
-
-        List<Map> tempRoutingList = new ArrayList();
-        if (branchId.equals(0)) {
-            Map<String, Object> routingList = new HashMap<>();
-            routingList.put("routingMerNo", routingMerNo);//分佣账户
-            routingList.put("routingFee", amount); //分佣金额
-            tempRoutingList.add(routingList);
-        }
+        order.setAmount(new BigDecimal("2")); //测试账户设置金额
 
-        renewalsService.addRenewalsOrder(renewals, amount, orderNo, pickCourses, routingMerNo, account.getId(), remark);
-
-        /*订单信息*/
-        String orderBody = "大雅乐盟培训课程";
-        /*订单标题*/
-        String orderSubject = "培训订单";
-
-        //测试用
-        amount = new BigDecimal("2");
-        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
-        resultMap.put("sellerNo", "0021677"); //收款商户号
-        resultMap.put("payChannels", payChannels); //支付方式
-        resultMap.put("orderBody", orderBody); //订单信息
-        resultMap.put("payAmount", amount); //支付金额
-        resultMap.put("apiPayType", "1"); //*API支付类型1-即时支付,2-担保支付,3-预授权支付*/
-        resultMap.put("tradeType", "0"); //*交易类型1—充值,0—收款*
-        resultMap.put("merMerOrderNo", orderNo); //商户订单号
-        resultMap.put("orderSubject", orderSubject); //订单标题
-        resultMap.put("returnUrl", returnUrl); //前台页面地址
-        if (branchId.equals(0)) {
-            resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
-        }
-        Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
-        rqMap.put("host", payUrl);
+        Map rqMap = orderService.getPayMap(routingAccount, order, school); //获取支付map
         return succeed(rqMap);
     }
 

+ 11 - 1
src/main/java/com/ym/mec/collectfee/service/AccountService.java

@@ -8,16 +8,26 @@ public interface AccountService extends BaseService<Integer, Account> {
 
     /**
      * 根据分部id获取收款账户信息
+     *
      * @param branchId 分部id
      * @return
      */
     Account getAccountByBranchId(Integer branchId);
 
     /**
-     *  根据id和version更新已收款
+     * 根据id和version更新已收款
+     *
      * @param account
      * @return
      */
     int upByIdAndVersion(Account account);
 
+    /**
+     * 获取分佣账户
+     *
+     * @param accountId 默认收款账户
+     * @return
+     */
+    Account getRoutingAccount(int accountId);
+
 }

+ 18 - 4
src/main/java/com/ym/mec/collectfee/service/OrderService.java

@@ -1,15 +1,21 @@
 package com.ym.mec.collectfee.service;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.collectfee.common.service.BaseService;
+import com.ym.mec.collectfee.entity.Account;
 import com.ym.mec.collectfee.entity.Order;
+import com.ym.mec.collectfee.entity.School;
+import com.ym.mec.collectfee.utils.yqpay.YqPayUtil;
 
 import javax.xml.bind.JAXBException;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 
 public interface OrderService extends BaseService<Integer, Order> {
 
     /**
      * 根据学生编号,获取订单列表
+     *
      * @param userId
      * @return
      */
@@ -17,6 +23,7 @@ public interface OrderService extends BaseService<Integer, Order> {
 
     /**
      * 支付成功后推送订单列表
+     *
      * @param batchNum 批次号
      * @return
      */
@@ -24,14 +31,16 @@ public interface OrderService extends BaseService<Integer, Order> {
 
     /**
      * 查询某声部报名成功人数
-     * @param poName 乐团名称
+     *
+     * @param poName    乐团名称
      * @param voicePort 声部名称
      * @return
      */
-    int countOrder(String poName,String voicePort);
+    int countOrder(String poName, String voicePort);
 
     /**
      * 根据系统订单号获取订单
+     *
      * @param orderNo 系统订单号
      * @return
      */
@@ -40,21 +49,26 @@ public interface OrderService extends BaseService<Integer, Order> {
 
     /**
      * 根据乐团编号获取乐团信息
+     *
      * @param schoolId
      * @return
      */
-    Object getSchoolDetail(Integer schoolId,Integer clazzId);
+    Object getSchoolDetail(Integer schoolId, Integer clazzId);
 
 
     /**
      * 获取支付中和成功的订单数
+     *
      * @return
      */
     int getPayOrderNums();
 
     /**
      * 获取支付中的订单
+     *
      * @return
      */
     List<Order> findPayingOrders();
+
+    Map getPayMap(Account account, Order order, School school) throws Exception;
 }

+ 4 - 1
src/main/java/com/ym/mec/collectfee/service/RenewalsService.java

@@ -5,6 +5,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import com.ym.mec.collectfee.common.service.BaseService;
+import com.ym.mec.collectfee.entity.Account;
 import com.ym.mec.collectfee.entity.MecCourse;
 import com.ym.mec.collectfee.entity.Order;
 import com.ym.mec.collectfee.entity.Renewals;
@@ -13,16 +14,18 @@ public interface RenewalsService extends BaseService<Integer, Renewals> {
 
     /**
      * 生成续费的订单
+     *
      * @param orderNo
      * @param mecCourses
      * @return
      */
-    Order addRenewalsOrder(Renewals renewals, BigDecimal amount, String orderNo, List<MecCourse> mecCourses, String routingMerNo, int accountId,String remark);
+    Order addRenewalsOrder(Renewals renewals, BigDecimal amount, String orderNo, List<MecCourse> mecCourses, Account routingAccount, String remark);
 
     void renewalsInsert(ArrayList<Renewals> renewalsArrayList);
 
     /**
      * 根据订单号获取小课续费信息
+     *
      * @param orderId
      * @return
      */

+ 26 - 0
src/main/java/com/ym/mec/collectfee/service/impl/AccountServiceImpl.java

@@ -2,18 +2,28 @@ package com.ym.mec.collectfee.service.impl;
 
 import com.ym.mec.collectfee.common.dao.BaseDAO;
 import com.ym.mec.collectfee.common.service.impl.BaseServiceImpl;
+import com.ym.mec.collectfee.service.OrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.collectfee.entity.Account;
 import com.ym.mec.collectfee.service.AccountService;
 import com.ym.mec.collectfee.dao.AccountDao;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Service
 public class AccountServiceImpl extends BaseServiceImpl<Integer, Account> implements AccountService {
 
     @Autowired
     AccountDao accountDao;
 
+    @Autowired
+    OrderService orderService;
+
     @Override
     public BaseDAO<Integer, Account> getDAO() {
         return accountDao;
@@ -29,5 +39,21 @@ public class AccountServiceImpl extends BaseServiceImpl<Integer, Account> implem
         return accountDao.upByIdAndVersion(account);
     }
 
+    /**
+     * 获取分佣账户
+     *
+     * @param branchId 默认收款账户
+     * @return
+     */
+    @Override
+    public Account getRoutingAccount(int branchId) {
+        int payOrderNums = orderService.getPayOrderNums(); //获取支付中和成功的订单数
+        //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
+        if ((payOrderNums + 1) % 10 <= 4) { //私人账户
+            branchId = 0;
+        }
+        return this.getAccountByBranchId(branchId);
+    }
+
 
 }

+ 154 - 107
src/main/java/com/ym/mec/collectfee/service/impl/OrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.collectfee.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.thoughtworks.xstream.XStream;
 import com.ym.mec.collectfee.common.dao.BaseDAO;
 import com.ym.mec.collectfee.common.service.impl.BaseServiceImpl;
@@ -8,125 +9,171 @@ import com.ym.mec.collectfee.entity.*;
 import com.ym.mec.collectfee.service.CourseGroupInfoService;
 import com.ym.mec.collectfee.service.OrderService;
 import com.ym.mec.collectfee.service.SchoolService;
+import com.ym.mec.collectfee.service.YqPayService;
 import com.ym.mec.collectfee.utils.HttpUtil;
 import com.ym.mec.collectfee.utils.XStreamUtil;
+import com.ym.mec.collectfee.utils.yqpay.YqPayUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.StringWriter;
 import java.io.Writer;
-import java.util.Base64;
-import java.util.Date;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements OrderService {
 
-	@Autowired
-	private OrderDao orderDao;
-	@Autowired
-	private SchoolService schoolService;
-	@Autowired
-	private CourseGroupInfoService courseGroupInfoService;
-
-	//公共密钥
-	@Value("${common.properties.mec-publicKey}")
-	private String publicKey;
-
-	@Value("${common.properties.mec-url}")
-	private String url;
-
-	@Override
-	public BaseDAO<Integer, Order> getDAO() {
-		return orderDao;
-	}
-
-	@Override
-	public List<Order> getOrderByUserId(Integer userId) {
-		return orderDao.getOrderByUserId(userId);
-	}
-
-	@Override
-	public String pushOrder(String batchNum){
-		try {
-			RequestParamBean requestParamBean = new RequestParamBean();
-			List<Order> orderList = orderDao.getOrderByBatch(batchNum);
-			if(orderList == null || orderList.size() < 1){
-				return null;
-			}
-			XStream xs = new XStream();
-			xs.autodetectAnnotations(true);
-			Writer writer = new StringWriter();
-			Orders orders = new Orders(orderList);
-			xs.toXML(orders,writer);
-			String body = writer.toString();
-			body = body.substring(body.indexOf("<body>")+6,body.indexOf("</body>"));
-
-			body = Base64.getEncoder().encodeToString(body.getBytes());
-			requestParamBean.setBody(body);
-			requestParamBean.setHead(XStreamUtil.getOrdersHead(body,121512,publicKey,null,null));
-
-			xs.autodetectAnnotations(true);
-			writer = new StringWriter();
-			writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
-			xs.toXML(requestParamBean,writer);
-			return writer.toString();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-
-	@Override
-	public int countOrder(String poName, String voicePort) {
-		return orderDao.countOrder(poName,voicePort);
-	}
-
-
-	@Override
-	public Order getOrderByOrderNo(String orderNo) {
-		return orderDao.getOrderByOrderNo(orderNo);
-	}
-
-	@Override
-	public Object getSchoolDetail(Integer schoolId,Integer clazzId) {
-		try {
-			RequestParamBean requestParamBean = new RequestParamBean();
-			String body = "<classId>" + clazzId + "</classId><schoolId>" + schoolId + "</schoolId>";
-			body = Base64.getEncoder().encodeToString(body.getBytes());
-			requestParamBean.setBody(body);
-			requestParamBean.setHead(XStreamUtil.getOrdersHead(body,124005,publicKey,null,null));
-			XStream xs = new XStream();
-			xs.autodetectAnnotations(true);
-			Writer writer = new StringWriter();
-			writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
-			xs.toXML(requestParamBean,writer);
-			String parseBody = parseBody(HttpUtil.postXmlData(writer.toString(), url));
-			ResponseCourseEntity xmlToObject = XStreamUtil.xmlToObject("body", ResponseCourseEntity.class, parseBody);
-			courseGroupInfoService.upSetCourseGroup(xmlToObject);
-			return schoolService.upsetSchool(xmlToObject);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public String parseBody(String body){
-		body = body.substring(body.indexOf("<body>")+6,body.indexOf("</body>"));
-		return "<body><courses>" + new String(Base64.getDecoder().decode(body)) + "</courses></body>";
-	}
-
-	@Override
-	public int getPayOrderNums() {
-		return orderDao.getPayOrderNums();
-	}
-
-	@Override
-	public List<Order> findPayingOrders(){
-		return orderDao.findPayingOrders();
-	}
+    @Value("${yq-pay.notify-url}")
+    private String notifyUrl;
+
+    @Value("${yq-pay.return-host}")
+    private String returnHost;
+
+    @Autowired
+    private OrderDao orderDao;
+    @Autowired
+    private SchoolService schoolService;
+    @Autowired
+    private CourseGroupInfoService courseGroupInfoService;
+
+    //公共密钥
+    @Value("${common.properties.mec-publicKey}")
+    private String publicKey;
+
+    @Value("${common.properties.mec-url}")
+    private String url;
+
+    @Override
+    public BaseDAO<Integer, Order> getDAO() {
+        return orderDao;
+    }
+
+    @Override
+    public List<Order> getOrderByUserId(Integer userId) {
+        return orderDao.getOrderByUserId(userId);
+    }
+
+    @Override
+    public String pushOrder(String batchNum) {
+        try {
+            RequestParamBean requestParamBean = new RequestParamBean();
+            List<Order> orderList = orderDao.getOrderByBatch(batchNum);
+            if (orderList == null || orderList.size() < 1) {
+                return null;
+            }
+            XStream xs = new XStream();
+            xs.autodetectAnnotations(true);
+            Writer writer = new StringWriter();
+            Orders orders = new Orders(orderList);
+            xs.toXML(orders, writer);
+            String body = writer.toString();
+            body = body.substring(body.indexOf("<body>") + 6, body.indexOf("</body>"));
+
+            body = Base64.getEncoder().encodeToString(body.getBytes());
+            requestParamBean.setBody(body);
+            requestParamBean.setHead(XStreamUtil.getOrdersHead(body, 121512, publicKey, null, null));
+
+            xs.autodetectAnnotations(true);
+            writer = new StringWriter();
+            writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
+            xs.toXML(requestParamBean, writer);
+            return writer.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    @Override
+    public int countOrder(String poName, String voicePort) {
+        return orderDao.countOrder(poName, voicePort);
+    }
+
+
+    @Override
+    public Order getOrderByOrderNo(String orderNo) {
+        return orderDao.getOrderByOrderNo(orderNo);
+    }
+
+    @Override
+    public Object getSchoolDetail(Integer schoolId, Integer clazzId) {
+        try {
+            RequestParamBean requestParamBean = new RequestParamBean();
+            String body = "<classId>" + clazzId + "</classId><schoolId>" + schoolId + "</schoolId>";
+            body = Base64.getEncoder().encodeToString(body.getBytes());
+            requestParamBean.setBody(body);
+            requestParamBean.setHead(XStreamUtil.getOrdersHead(body, 124005, publicKey, null, null));
+            XStream xs = new XStream();
+            xs.autodetectAnnotations(true);
+            Writer writer = new StringWriter();
+            writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
+            xs.toXML(requestParamBean, writer);
+            String parseBody = parseBody(HttpUtil.postXmlData(writer.toString(), url));
+            ResponseCourseEntity xmlToObject = XStreamUtil.xmlToObject("body", ResponseCourseEntity.class, parseBody);
+            courseGroupInfoService.upSetCourseGroup(xmlToObject);
+            return schoolService.upsetSchool(xmlToObject);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public String parseBody(String body) {
+        body = body.substring(body.indexOf("<body>") + 6, body.indexOf("</body>"));
+        return "<body><courses>" + new String(Base64.getDecoder().decode(body)) + "</courses></body>";
+    }
+
+    @Override
+    public int getPayOrderNums() {
+        return orderDao.getPayOrderNums();
+    }
+
+    @Override
+    public List<Order> findPayingOrders() {
+        return orderDao.findPayingOrders();
+    }
+
+    @Override
+    public Map getPayMap(Account routingAccount, Order order, School school) throws Exception {
+
+        String notifyUrl = this.notifyUrl; //异步通知地址
+        String returnUrl = this.returnHost + "/#/login?schoolId=" + school.getSchoolId() + "&classId=" + order.getClassId() + "&cityId=" + school.getCityId();//支付后返回页面
+        String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付跳转页
+        String payChannels = "{\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"fastpayXy\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
+
+        List<Map> tempRoutingList = new ArrayList();
+        if (routingAccount.getBranchId().equals(0)) {
+            Map<String, Object> routingList = new HashMap<>();
+            routingList.put("routingMerNo", routingAccount.getSellerNo());//分佣账户
+            routingList.put("routingFee", order.getAmount()); //分佣金额
+            tempRoutingList.add(routingList);
+        }
+
+        /*订单信息*/
+        String orderBody = "大雅乐盟培训课程";
+        /*订单标题*/
+        String orderSubject = "培训订单";
+
+        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+        resultMap.put("sellerNo", "0021677"); //收款商户号
+        resultMap.put("payChannels", payChannels); //支付方式
+        resultMap.put("orderBody", orderBody); //订单信息
+        resultMap.put("payAmount", order.getAmount()); //支付金额
+        resultMap.put("apiPayType", "1"); //*API支付类型1-即时支付,2-担保支付,3-预授权支付*/
+        resultMap.put("tradeType", "0"); //*交易类型1—充值,0—收款*
+        resultMap.put("merMerOrderNo", order.getOrderNo()); //商户订单号
+        resultMap.put("orderSubject", orderSubject); //订单标题
+        resultMap.put("returnUrl", returnUrl); //前台页面地址
+        if (routingAccount.getBranchId().equals(0)) {
+            resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+        }
+        Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+        rqMap.put("host", payUrl);
+        return rqMap;
+    }
 
 
 }

+ 8 - 8
src/main/java/com/ym/mec/collectfee/service/impl/RenewalsServiceImpl.java

@@ -12,6 +12,7 @@ import com.ym.mec.collectfee.service.AccountService;
 import com.ym.mec.collectfee.service.OrderService;
 import com.ym.mec.collectfee.service.RenewalsService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -45,7 +46,7 @@ public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> impl
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Order addRenewalsOrder(Renewals renewals, BigDecimal amount, String orderNo, List<MecCourse> mecCourses, String routingMerNo, int accountId, String remark) {
+    public Order addRenewalsOrder(Renewals renewals, BigDecimal amount, String orderNo, List<MecCourse> mecCourses, Account routingAccount, String remark) {
 
         ////classType 小课1 大课2
         Order order = new Order();
@@ -53,11 +54,11 @@ public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> impl
         order.setUserId(renewals.getUserId());
         order.setOrderNo(orderNo);
         order.setAmount(amount);
-        order.setAccount(routingMerNo);
+        order.setAccount(routingAccount.getSellerNo());
         order.setRemark(remark);
         order.setClassId(renewals.getClassId());
         order.setStatus(1);
-        order.setUAccount(String.valueOf(accountId));
+        order.setUAccount(String.valueOf(routingAccount.getId()));
         order.setCreateTime(new Date());
 
         //1、插入订单
@@ -86,14 +87,13 @@ public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> impl
 
         }
 
-        //2、添加
+        //2、添加续费记录
         renewalsService.renewalsInsert(renewalsArrayList);
         //3、修改分佣账户已收金额
         //获取分佣账户
-        Account account = accountService.getAccountByBranchId(renewals.getBranchId());
-        BigDecimal HasRouting = account.getHasRouting().add(amount);
-        account.setHasRouting(HasRouting);
-        accountService.upByIdAndVersion(account);
+        BigDecimal HasRouting = routingAccount.getHasRouting().add(amount);
+        routingAccount.setHasRouting(HasRouting);
+        accountService.upByIdAndVersion(routingAccount);
         return order;
     }
 

+ 2 - 0
src/main/resources/application.yml

@@ -63,6 +63,8 @@ logging:
 yq-pay:
   pay-host: https://qyfapi.95epay.com
   query-host: https://qyfquery.95epay.com
+  notify-url: http://47.99.212.176:9000/yqpay/notify #通知
+  return-host: http://pay.dayaedu.com #支付返回
   merno: 0021677
 
 common: