Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/collect_fee

孙镇亮 6 years ago
parent
commit
70af814fc7

+ 46 - 30
src/main/java/com/ym/mec/collectfee/controller/YqPayController.java

@@ -68,7 +68,7 @@ public class YqPayController extends BaseController {
         BigDecimal amount = new BigDecimal("0");
         //1、判断已报名人数
         CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
-        if (courseGroupInfo.getRegNum() >= courseGroupInfo.getPlanNum()) {
+        if (courseGroupInfo.getRegNum().compareTo(courseGroupInfo.getPlanNum()) >= 0) {
             return failed("乐团人数暂时已满,请稍后再试");
         }
 
@@ -76,12 +76,12 @@ public class YqPayController extends BaseController {
         BigDecimal courseFee = courseGroupInfo.getFeeAmount();
         amount = amount.add(courseFee);
 
-        ClassPathResource classPathResource = new ClassPathResource("instruments.json");
+        //获取乐器的价格
+        ClassPathResource classPathResource = new ClassPathResource("instruments.json"); //解析乐器数据
 
         BigDecimal instrumentPrice = new BigDecimal("0");//乐器价格
         String instrumentName = "";//乐器名称
 
-        //获取乐器的价格
         String instrumentId = order.getInstrument();
         String jsonString = IOUtils.toString(new InputStreamReader(classPathResource.getInputStream(), "UTF-8"));
         Instrument instrument = JSONObject.parseObject(jsonString, Instrument.class);
@@ -109,8 +109,8 @@ public class YqPayController extends BaseController {
                 adjunctName += (String) instrument.getAuxiliaries().get(adjunctId).get("name") + "|";
             }
         }
-
         amount = amount.add(adjunctPrice);
+
         order.setGroupId(courseGroupInfo.getId());
         order.setAmount(amount);
         order.setRemark(instrumentName);
@@ -120,19 +120,19 @@ public class YqPayController extends BaseController {
         order.setSdFee(adjunctPrice);
 
 
-        School school = schoolService.get(order.getClassId());
-        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //异步通知地址
-        String returnUrl = "http://pay.dayaedu.com/#/login?schoolId=" + school.getId() + "&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}";//支付方式配置
-
         String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
         order.setOrderNo(orderNo);
         order.setCreateTime(new Date()); //订单提交时间
         order.setStatus(1); //订单状态
 
+        School school = schoolService.get(order.getClassId());
+        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}";//支付方式配置
+
         //获取支付成功跟支付中的订单数
-        int branchId = order.getBranchId();
+        Integer branchId = 1001;//order.getBranchId();
         int payOrderNums = orderService.getPayOrderNums();
         //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
         if ((payOrderNums + 1) % 10 <= 4) { //私人账户
@@ -148,11 +148,13 @@ public class YqPayController extends BaseController {
         BigDecimal HasRouting = account.getHasRouting().add(order.getAmount());
         account.setHasRouting(HasRouting);
 
-        Map<String, Object> routingList = new LinkedHashMap<String, Object>();
-        routingList.put("routingMerNo", routingMerNo);//分佣账户
-        routingList.put("routingFee", order.getAmount()); //分佣金额
         List<Map> tempRoutingList = new ArrayList();
-        tempRoutingList.add(routingList);
+        if (branchId.equals(0)) {
+            Map<String, Object> routingList = new HashMap<>();
+            routingList.put("routingMerNo", routingMerNo);//分佣账户
+            routingList.put("routingFee", amount); //分佣金额
+            tempRoutingList.add(routingList);
+        }
 
         order.setUAccount(account.getId().toString());
         order.setAccount(routingMerNo);
@@ -184,7 +186,9 @@ public class YqPayController extends BaseController {
         resultMap.put("merMerOrderNo", orderNo); //商户订单号
         resultMap.put("orderSubject", orderSubject); //订单标题
         resultMap.put("returnUrl", returnUrl); //前台页面地址
-        resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+        if (branchId.equals(0)) {
+            resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+        }
         Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
         rqMap.put("host", payUrl);
 
@@ -254,7 +258,7 @@ public class YqPayController extends BaseController {
         String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
 
         //获取支付成功跟支付中的订单数
-        int branchId = renewals.getBranchId();
+        Integer branchId = 1001;//renewals.getBranchId();
         int payOrderNums = orderService.getPayOrderNums();
         //分佣账户(1、每10笔,前四笔收入私户 2、私户每个商户最多收款400万)
         if ((payOrderNums + 1) % 10 <= 4) { //私人账户
@@ -270,11 +274,13 @@ public class YqPayController extends BaseController {
         BigDecimal HasRouting = account.getHasRouting().add(amount);
         account.setHasRouting(HasRouting);
 
-        Map<String, Object> routingList = new LinkedHashMap<String, Object>();
-        routingList.put("routingMerNo", routingMerNo);//分佣账户
-        routingList.put("routingFee", amount); //分佣金额
         List<Map> tempRoutingList = new ArrayList();
-        tempRoutingList.add(routingList);
+        if (branchId.equals(0)) {
+            Map<String, Object> routingList = new HashMap<>();
+            routingList.put("routingMerNo", routingMerNo);//分佣账户
+            routingList.put("routingFee", amount); //分佣金额
+            tempRoutingList.add(routingList);
+        }
 
         renewalsService.addRenewalsOrder(renewals, amount, orderNo, pickCourses, routingMerNo, account.getId(), remark);
 
@@ -295,7 +301,9 @@ public class YqPayController extends BaseController {
         resultMap.put("merMerOrderNo", orderNo); //商户订单号
         resultMap.put("orderSubject", orderSubject); //订单标题
         resultMap.put("returnUrl", returnUrl); //前台页面地址
-        resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+        if (branchId.equals(0)) {
+            resultMap.put("tempRoutingList", JSON.toJSONString(tempRoutingList));//分账设置
+        }
         Map rqMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
         rqMap.put("host", payUrl);
         return succeed(rqMap);
@@ -453,9 +461,9 @@ public class YqPayController extends BaseController {
                 order.setPay(notifyMsg.getPayAmount());
                 order.setPayTime(new Date());
             }
-            orderService.update(order);
-            ApplyInfo applyInfo = applyInfoService.get(order.getUserId());
-            applyInfoService.userRegister(applyInfo.getPatriarchPhone(), order.getId()); //推送mec
+            //orderService.update(order);
+            //ApplyInfo applyInfo = applyInfoService.get(order.getUserId());
+            //applyInfoService.userRegister(applyInfo.getPatriarchPhone(), order.getId()); //推送mec
 
             msg.setCode("000000");
             msg.setMsg("success");
@@ -534,11 +542,19 @@ public class YqPayController extends BaseController {
                 applyInfoService.pushRenew(renewBean);
             }
         }
-        //失败减去已收款金额,减去报名人数
-        if (status == 0 && order.getTuiFee() != null) {
-            CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getGroupId());
-            courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() - 1);
-            CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
+        if (status == 0) {
+            //失败减去已收款金额
+            Account account = accountService.getAccountByBranchId(Integer.parseInt(order.getUAccount()));
+            BigDecimal HasRouting = account.getHasRouting().subtract(order.getAmount());
+            account.setHasRouting(HasRouting);
+            accountService.upByIdAndVersion(account);
+
+            //减去报名人数
+            if (order.getTuiFee() != null) {
+                CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getGroupId());
+                courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() - 1);
+                CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
+            }
         }
         orderService.update(order);
     }

+ 1 - 1
src/main/java/com/ym/mec/collectfee/dao/ApplyInfoDao.java

@@ -43,7 +43,7 @@ public interface ApplyInfoDao extends BaseDAO<Integer, ApplyInfo> {
      * @param userId
      * @param subId
      */
-    void updateUserSub(@Param("userId") Integer userId, @Param("subId")Integer subId, @Param("courseId")Integer courseId, @Param("updateTime") Date updateTime);
+    int updateUserSub(@Param("userId") Integer userId, @Param("subId")Integer subId, @Param("courseId")Integer courseId, @Param("updateTime") Date updateTime);
 
     List<String> findUserByClass(@Param("classId") Integer classId,@Param("status") Integer status);
 }

+ 0 - 8
src/main/java/com/ym/mec/collectfee/entity/Order.java

@@ -192,14 +192,6 @@ public class Order {
 		this.amount = amount;
 	}
 
-	public String getuAccount() {
-		return uAccount;
-	}
-
-	public void setuAccount(String uAccount) {
-		this.uAccount = uAccount;
-	}
-
 	public BigDecimal getPay() {
 		return pay;
 	}

+ 5 - 33
src/main/resources/config/mybatis/ApplyInfoMapper.xml

@@ -132,7 +132,7 @@
 	</update>
 
     <update id="updateUserSub">
-            UPDATE apply_info SET sub_id_ = #{subId},course_id_ = #{courseId},update_time_ = #{updateTime} WHERE id_ = ${userId}
+            UPDATE apply_info SET sub_id_ = #{subId},course_id_ = #{courseId},update_time_ = #{updateTime} WHERE id_ = ${userId} AND status_ = 1
     </update>
 
     <!-- 根据主键删除一条记录 -->
@@ -184,23 +184,9 @@
 
 	<select id="queryUserPage" resultMap="ApplyInfoPage" parameterType="map">
 		SELECT ao.*,cgi.sub_name_ sub_name_ FROM (SELECT ai.*,o.amount amount_ FROM apply_info ai
-		LEFT JOIN `order` o ON ai.id_ = o.user_id
-		<where>
-			o.tui_fee IS NOT NULL AND o.`status` = 2
-			<if test="musicTeamId != null">
-				AND ai.class_id_ = #{musicTeamId}
-			</if>
-			<if test="name != null and name != ''">
-				AND ai.name_ = #{name}
-			</if>
-			<if test="status != null">
-				AND ai.status_ = #{status}
-			</if>
-			<if test="subId != null">
-				AND ai.sub_id_ = #{subId}
-			</if>
-		</where>
-		) ao LEFT JOIN course_group_info cgi ON ao.course_id_ = cgi.id_
+		LEFT JOIN (SELECT * FROM `order` WHERE id IN (SELECT DISTINCT(user_id) FROM `order` WHERE class_id = #{musicTeamId})) o
+		ON ai.id_ = o.user_id <include refid="studentsPage"/>) ao
+		LEFT JOIN course_group_info cgi ON ao.course_id_ = cgi.id_
 		ORDER BY ao.update_time_ DESC
 		<include refid="global.limit"/>
 	</select>
@@ -209,21 +195,7 @@
 		SELECT count(DISTINCT ai.id_) FROM apply_info ai
 		LEFT JOIN course_group_info cgi ON ai.sub_id_ = cgi.sub_id_
 		LEFT JOIN `order` o ON ai.id_ = o.user_id
-		<where>
-			AND o.tui_fee IS NOT NULL AND o.`status` = 2
-			<if test="musicTeamId != null">
-				AND ai.class_id_ = #{musicTeamId}
-			</if>
-			<if test="name != null and name != ''">
-				AND ai.name_ = #{name}
-			</if>
-			<if test="status != null">
-				AND ai.status_ = #{status}
-			</if>
-			<if test="subId != null">
-				AND ai.sub_id_ = #{subId}
-			</if>
-		</where>
+		<include refid="studentsPage"/>
 	</select>
 
 	<select id="findByUserId" resultMap="ApplyInfo">