Prechádzať zdrojové kódy

增加分润财务订单

周箭河 5 rokov pred
rodič
commit
af92e409b7

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentRouteOrderDao.java

@@ -2,9 +2,9 @@ package com.ym.mec.biz.dal.dao;
 
 
 import com.ym.mec.biz.dal.dto.StudentPaymentRouteOrderDto;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -23,4 +23,8 @@ public interface StudentPaymentRouteOrderDao extends BaseDAO<Long, StudentPaymen
      * @return
      */
     BigDecimal getChargeAmount(Map<String, Object> params);
+
+    int batchAdd(@Param("routeOrders") List<StudentPaymentRouteOrder> routeOrders);
+
+    List<StudentPaymentRouteOrder> getRouteOrders(@Param("orderNo") String orderNo);
 }

+ 5 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentRouteOrderDto.java

@@ -29,7 +29,7 @@ public class StudentPaymentRouteOrderDto extends StudentPaymentOrder {
     /**
      * 备注
      */
-    private String memo;
+    private String feeFlag;
 
     public Long getOrderId() {
         return orderId;
@@ -63,13 +63,11 @@ public class StudentPaymentRouteOrderDto extends StudentPaymentOrder {
         this.merNo = merNo;
     }
 
-
-    public String getMemo() {
-        return memo;
+    public String getFeeFlag() {
+        return feeFlag;
     }
 
-    public void setMemo(String memo) {
-        this.memo = memo;
+    public void setFeeFlag(String feeFlag) {
+        this.feeFlag = feeFlag;
     }
-
 }

+ 13 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentRouteOrder.java

@@ -22,14 +22,14 @@ public class StudentPaymentRouteOrder {
     private String merNo;
 
     /**
-    * 原始编号订单号
-    */
-    private Long orderId;
+     * 原始订单号
+     */
+    private String orderNo;
 
     /**
-    * 备注
+    * 是否承担手续费Y-是 N-否
     */
-    private String memo;
+    private String feeFlag;
 
     private Date createTime;
 
@@ -67,12 +67,12 @@ public class StudentPaymentRouteOrder {
         this.merNo = merNo;
     }
 
-    public String getMemo() {
-        return memo;
+    public String getFeeFlag() {
+        return feeFlag;
     }
 
-    public void setMemo(String memo) {
-        this.memo = memo;
+    public void setFeeFlag(String feeFlag) {
+        this.feeFlag = feeFlag;
     }
 
     public Date getCreateTime() {
@@ -91,11 +91,11 @@ public class StudentPaymentRouteOrder {
         this.updateTime = updateTime;
     }
 
-    public Long getOrderId() {
-        return orderId;
+    public String getOrderNo() {
+        return orderNo;
     }
 
-    public void setOrderId(Long orderId) {
-        this.orderId = orderId;
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
     }
 }

+ 3 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -353,7 +353,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         classFee.put("accessories", BigDecimal.ZERO);
         classFee.put("other", amount);
 
-        String receiver = "daya";
+        String receiver = "sporadic";
 
         Map payMap = payService.getPayMap(
                 amount,
@@ -362,8 +362,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 chargeInfo.getTitle(),
                 chargeInfo.getTitle(),
-                userId,
-                classFee,
                 chargeInfo.getOrganId(),
                 receiver
         );
@@ -372,8 +370,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setOrganId(chargeInfo.getOrganId());
         //studentPaymentOrder.setRoutingOrganId(chargeInfo.getOrganId());
         studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
+        //studentPaymentOrder.setComAmount(routingFee.get("COM"));
+        //studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);

+ 30 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -2,9 +2,12 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentRouteOrderDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.PayChannelDto;
 import com.ym.mec.biz.dal.dto.RouteScaleDto;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.biz.dal.entity.SysAccount;
 import com.ym.mec.biz.dal.entity.SysPaymentConfig;
 import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
@@ -49,6 +52,8 @@ public class PayServiceImpl implements PayService {
     private SysPaymentConfigService sysPaymentConfigService;
     @Autowired
     private RedisTemplate<String, String> redisTemplate;
+    @Autowired
+    private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
 
 
     public static void main(String[] args) {
@@ -246,7 +251,7 @@ public class PayServiceImpl implements PayService {
         //根据金额获取分润
         PayChannelDto payChannelDto = getAmountChannel(amount);
         //零星支付,收到指定
-        if (payChannelDto == null && receiver != null) {
+        if (payChannelDto == null && receiver != null && receiver.equals("")) {
             payChannelDto = getSporadicChannel(amount);
         }
         //比例或者笔数分佣
@@ -347,7 +352,7 @@ public class PayServiceImpl implements PayService {
                 routingList.put("organId", routeScaleDto.getOrganId());
                 routingList.put("member_id", routeScaleDto.getMerNo());//分佣账户
                 routingList.put("amount", routingFee);//分佣金额
-                routingList.put("fee_flag", "Y"); //承担手续费
+                routingList.put("fee_flag", routeScaleDto.getFeeFlag()); //承担手续费
             }
             tempRoutingList.add(routingList);
         }
@@ -448,6 +453,29 @@ public class PayServiceImpl implements PayService {
         String routingMerNos;
 
         List<Map<String, Object>> tempRoutingList = payChannelDto.getTempRoutingList();
+        List<StudentPaymentRouteOrder> RouteOrders = new ArrayList<>();
+        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        for (Map<String, Object> routing : tempRoutingList) {
+            StudentPaymentRouteOrder studentPaymentRouteOrder = new StudentPaymentRouteOrder();
+            studentPaymentRouteOrder.setOrderNo(orderNo);
+            studentPaymentRouteOrder.setRoutingOrganId((Integer) routing.get("organId"));
+            BigDecimal routeAmount;
+            String merNo;
+            if (payChannelDto.getPayType().equals(PaymentChannelEnum.YQPAY)) {
+                routeAmount = (BigDecimal) routing.get("routingFee");
+                merNo = (String) routing.get("routingMerNo");
+            } else {
+                routeAmount = (BigDecimal) routing.get("amount");
+                merNo = (String) routing.get("member_id");
+                studentPaymentRouteOrder.setFeeFlag((String) routing.get("fee_flag"));
+            }
+            studentPaymentRouteOrder.setRouteAmount(routeAmount);
+            studentPaymentRouteOrder.setMerNo(merNo);
+            RouteOrders.add(studentPaymentRouteOrder);
+        }
+        if(studentPaymentRouteOrderDao.batchAdd(RouteOrders) <=0){
+            throw new BizException("调用支付接口失败");
+        }
 
         if (payChannelDto.getPayType().equals(PaymentChannelEnum.YQPAY)) {
             if (tempRoutingList.size() == 1 && YqPayUtil.merNo.equals(tempRoutingList.get(0).get("routingMerNo").toString())) {

+ 21 - 11
mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml

@@ -8,8 +8,8 @@
         <result column="routing_organ_id_" property="routingOrganId"/>
         <result column="route_amount_" property="routeAmount"/>
         <result column="mer_no_" property="merNo"/>
-        <result column="order_id_" property="orderId"/>
-        <result column="memo_" property="memo"/>
+        <result column="order_no_" property="orderNo"/>
+        <result column="fee_flag_" property="feeFlag"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
@@ -21,12 +21,13 @@
         <result column="routing_organ_id_" property="routingOrganId"/>
         <result column="route_amount_" property="routeAmount"/>
         <result column="mer_no_" property="merNo"/>
-        <result column="order_id_" property="orderId"/>
+        <result column="order_no_" property="orderNo"/>
+        <result column="fee_flag_" property="feeFlag"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
-        id_, routing_organ_id_, route_amount_, mer_no_, order_id_, memo_, create_time_, update_time_
+        id_, routing_organ_id_, route_amount_, mer_no_, order_no_, fee_flag_, create_time_, update_time_
     </sql>
     <select id="get" parameterType="java.lang.Long" resultMap="StudentPaymentRouteOrder">
         <!--@mbg.generated-->
@@ -44,10 +45,10 @@
             parameterType="com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder" useGeneratedKeys="true">
         <!--@mbg.generated-->
         insert into student_payment_route_order (routing_organ_id_, route_amount_, mer_no_,
-        order_id_, memo_, create_time_,
+        order_no_, fee_flag_, create_time_,
         update_time_)
         values (#{routingOrganId}, #{routeAmount}, #{merNo},
-        #{orderId}, #{memo}, #{createTime},
+        #{orderNo}, #{feeFlag}, #{createTime},
         #{updateTime})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder">
@@ -66,9 +67,6 @@
             <if test="orderNo != null">
                 order_no_ = #{orderNo},
             </if>
-            <if test="memo != null">
-                memo_ = #{memo},
-            </if>
             <if test="createTime != null">
                 create_time_ = #{createTime},
             </if>
@@ -79,10 +77,19 @@
         where id_ = #{id,jdbcType=BIGINT}
     </update>
 
+    <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+        INSERT INTO student_payment_route_order
+        (order_no_,routing_organ_id_, route_amount_, mer_no_,fee_flag_)
+        VALUE
+        <foreach collection="routeOrders" item="routeOrder" separator=",">
+            (#{routeOrder.orderNo},#{routeOrder.routingOrganId},#{routeOrder.routeAmount},#{routeOrder.merNo},#{routeOrder.feeFlag})
+        </foreach>
+    </insert>
 
     <select id="queryPageOrder" parameterType="map" resultMap="StudentPaymentRouteOrderDto">
         SELECT spo.*,spro.*,u.username_,u.phone_ FROM student_payment_order spo
-        LEFT JOIN student_payment_route_order spro ON spo.id_ = spro.order_id_
+        LEFT JOIN student_payment_route_order spro ON spo.id_ = spro.order_no_
         left join sys_user u on spo.user_id_ = u.id_
         <include refid="queryPaymentOrder"/>
         ORDER BY spo.id_ DESC
@@ -103,7 +110,7 @@
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int" parameterType="map">
         SELECT COUNT(spo.id_) FROM student_payment_order spo
-        LEFT JOIN student_payment_route_order spro ON spo.id_ = spro.order_id_
+        LEFT JOIN student_payment_route_order spro ON spo.order_no_ = spro.order_no_
         LEFT JOIN sys_user u on spo.user_id_ = u.id_
         <include refid="queryPaymentOrder"/>
     </select>
@@ -165,5 +172,8 @@
             </if>
         </where>
     </sql>
+    <select id="getRouteOrders" resultMap="StudentPaymentRouteOrder">
+        SELECT * FROM student_payment_route_order WHERE order_no_=#{orderNo}
+    </select>
 
 </mapper>

+ 3 - 3
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -73,9 +73,9 @@ public class SporadicChargeInfoController extends BaseController {
             if (sysUser == null || sysUser.getId() == null) {
                 return failed("用户不存在");
             }
-            if (!sysUser.getUserType().contains("STUDENT")) {
-                return failed("用户信息异常");
-            }
+//            if (!sysUser.getUserType().contains("STUDENT")) {
+//                return failed("用户信息异常");
+//            }
             sporadicPayDto.setUserId(sysUser.getId());
         }
         if (sporadicPayDto.getIsRepeatPay() == false) {

+ 21 - 15
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
@@ -35,11 +36,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherCourseStatisticsDao;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.controller.BaseController;
@@ -82,6 +78,8 @@ public class StudentOrderController extends BaseController {
     private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
     @Autowired
     private TenantPaymentOrderService tenantPaymentOrderService;
+    @Autowired
+    private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
 
     @PostMapping("/notify")
     public Msg notify(@ModelAttribute Msg msg) throws Exception {
@@ -205,13 +203,19 @@ public class StudentOrderController extends BaseController {
         paymentParams.put("goods_desc", orderBody);
         paymentParams.put("time_expire", timeExpire);
 
-        if(!merNos.equals(ConfigInit.merNo)) {
-            List<Map<String, Object>> divMembers = new ArrayList<>();
+        List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(orderNo);
+        List<Map<String, Object>> divMembers = new ArrayList<>();
+        for (StudentPaymentRouteOrder routeOrder : routeOrders) {
             Map<String, Object> divMember = new HashMap<>();
-            divMember.put("member_id", merNos);//分佣账户
-            divMember.put("amount", amount);//分佣金额
-            divMember.put("fee_flag", "Y"); //承担手续费
+            divMember.put("member_id", routeOrder.getMerNo());//分佣账户
+            divMember.put("amount", routeOrder.getRouteAmount());//分佣金额
+            divMember.put("fee_flag",routeOrder.getFeeFlag());
+            if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
+                divMember.put("member_id", 0);
+            }
             divMembers.add(divMember);
+        }
+        if (divMembers.size() > 0) {
             paymentParams.put("div_members", JSON.toJSONString(divMembers));
         }
 
@@ -694,16 +698,18 @@ public class StudentOrderController extends BaseController {
         practice4Organs = practice4Organs.stream().sorted(Comparator.comparingDouble(Practice4OrganDto::getScale).reversed()).collect(Collectors.toList());
         return succeed(practice4Organs);
     }
-@Autowired
-PayService payService;
+
+    @Autowired
+    PayService payService;
+
     @GetMapping("/test")
-    public HttpResponseResult test(){
+    public HttpResponseResult test() {
         String baseApiUrl = "http://dev.dayaedu.com";
         Map<String, Object> payMap = new HashMap<>();
         try {
             payMap = payService.getPayMap(
-                    BigDecimal.TEN,
-                    "5435253245",
+                    new BigDecimal("50"),
+                    "20070915150900001",
                     baseApiUrl + "/api-student/studentOrder/notify",
                     baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=5435253245",
                     "对外课程组购买",