|
@@ -77,11 +77,17 @@ public class YqPayController extends BaseController {
|
|
//计划招生人数有更新,更新
|
|
//计划招生人数有更新,更新
|
|
orderService.getSchoolDetail(school.getSchoolId());
|
|
orderService.getSchoolDetail(school.getSchoolId());
|
|
|
|
|
|
|
|
+ Order userOrder = orderService.findOrderByStatus(order.getUserId(), 2);
|
|
|
|
+ if (userOrder != null) {
|
|
|
|
+ return failed("您已支付成功,请勿重复支付");
|
|
|
|
+ }
|
|
|
|
+
|
|
//判断用户是否已存在订单
|
|
//判断用户是否已存在订单
|
|
- Order userOrder = orderService.findOrderByStatus(order.getUserId(), 1);
|
|
|
|
|
|
+ userOrder = orderService.findOrderByStatus(order.getUserId(), 1);
|
|
if (userOrder != null) {
|
|
if (userOrder != null) {
|
|
- return failed("您有待支付的订单,请稍后重试");
|
|
|
|
|
|
+ return failed(HttpStatus.CONTINUE, "您有待支付的订单,否重新支付");
|
|
}
|
|
}
|
|
|
|
+
|
|
//1、判断已报名人数
|
|
//1、判断已报名人数
|
|
CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
|
|
CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
|
|
if (courseGroupInfo.getRegNum().compareTo(courseGroupInfo.getPlanNum()) >= 0) {
|
|
if (courseGroupInfo.getRegNum().compareTo(courseGroupInfo.getPlanNum()) >= 0) {
|
|
@@ -154,7 +160,7 @@ public class YqPayController extends BaseController {
|
|
|
|
|
|
//获取分佣账户
|
|
//获取分佣账户
|
|
Integer branchId = 1001;//order.getBranchId();
|
|
Integer branchId = 1001;//order.getBranchId();
|
|
- Account routingAccount = accountService.getRoutingAccount(branchId,amount);
|
|
|
|
|
|
+ Account routingAccount = accountService.getRoutingAccount(branchId, amount);
|
|
|
|
|
|
order.setAccount(routingAccount.getSellerNo());
|
|
order.setAccount(routingAccount.getSellerNo());
|
|
order.setUAccount(routingAccount.getId().toString());
|
|
order.setUAccount(routingAccount.getId().toString());
|
|
@@ -177,6 +183,119 @@ public class YqPayController extends BaseController {
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 重新支付订单
|
|
|
|
+ *
|
|
|
|
+ * @param order
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
|
|
+ public Object rePay(@ModelAttribute @Validated Order order) throws Exception {
|
|
|
|
+ BigDecimal amount = new BigDecimal("0");
|
|
|
|
+ School school = schoolService.get(order.getClassId());
|
|
|
|
+
|
|
|
|
+ Order userOrder = orderService.findOrderByStatus(order.getUserId(), 2);
|
|
|
|
+ if (userOrder != null) {
|
|
|
|
+ return failed("您已支付成功,请勿重复支付");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //判断用户是否已存在订单
|
|
|
|
+ userOrder = orderService.findOrderByStatus(order.getUserId(), 1);
|
|
|
|
+ if (userOrder == null) {
|
|
|
|
+ return failed("您没有支付中的订单,请勿非法请求");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CourseGroupInfo courseGroupInfo = CourseGroupInfoService.get(order.getCourseId());
|
|
|
|
+
|
|
|
|
+ //课程组价格
|
|
|
|
+ BigDecimal courseFee = courseGroupInfo.getFeeAmount();
|
|
|
|
+ amount = amount.add(courseFee);
|
|
|
|
+
|
|
|
|
+ //获取乐器的价格
|
|
|
|
+ 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);
|
|
|
|
+
|
|
|
|
+ if (order.getInstrument() != null && !order.getInstrument().isEmpty()) {
|
|
|
|
+ instrumentPrice = new BigDecimal(instrument.getInstruments().get(instrumentId).get("referencePrice"));
|
|
|
|
+ instrumentName = (String) instrument.getInstruments().get(instrumentId).get("index") + "-" +
|
|
|
|
+ (String) instrument.getInstruments().get(instrumentId).get("name");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //2 版本为3.0( 26),不收乐器费用,收押金800放乐器费用
|
|
|
|
+ if (courseGroupInfo.getFeeType().equals(26)) {
|
|
|
|
+ instrumentPrice = new BigDecimal("800");
|
|
|
|
+ }
|
|
|
|
+ amount = amount.add(instrumentPrice);
|
|
|
|
+
|
|
|
|
+ //辅件价格
|
|
|
|
+ String adjunctIds = order.getAdjunct();
|
|
|
|
+ BigDecimal adjunctPrice = new BigDecimal("0");//辅件价格
|
|
|
|
+ String adjunctName = "";//辅件名称
|
|
|
|
+ if (adjunctIds != null && !adjunctIds.isEmpty()) {
|
|
|
|
+ String[] adjunctIdArr = adjunctIds.split(",");
|
|
|
|
+ for (String adjunctId : adjunctIdArr) {
|
|
|
|
+ adjunctPrice = adjunctPrice.add(new BigDecimal(instrument.getAuxiliaries().get(adjunctId).get("referencePrice")));
|
|
|
|
+ adjunctName += (String) instrument.getAuxiliaries().get(adjunctId).get("name") + "|";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ amount = amount.add(adjunctPrice);
|
|
|
|
+
|
|
|
|
+ ApplyInfo applyInfo = applyInfoService.get(order.getUserId());
|
|
|
|
+
|
|
|
|
+ order.setPoName(school.getName());
|
|
|
|
+ order.setVoicyPart(courseGroupInfo.getSubName());
|
|
|
|
+ order.setGroupId(courseGroupInfo.getId());
|
|
|
|
+ order.setAmount(amount);
|
|
|
|
+ order.setRemark(instrumentName);
|
|
|
|
+ order.setTuiFee(courseFee);
|
|
|
|
+ order.setGoodsFee(instrumentPrice);
|
|
|
|
+ order.setSdName(adjunctName + "教材|琴谱");
|
|
|
|
+ order.setSdFee(adjunctPrice);
|
|
|
|
+ order.setType(1);
|
|
|
|
+ order.setUserName(applyInfo.getName());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
|
|
|
|
+ order.setOrderNo(orderNo);
|
|
|
|
+ order.setCreateTime(new Date()); //订单提交时间
|
|
|
|
+ order.setStatus(1); //订单状态
|
|
|
|
+
|
|
|
|
+ //获取分佣账户
|
|
|
|
+ int accountId = Integer.parseInt(userOrder.getUAccount());
|
|
|
|
+ Account routingAccount = accountService.get(accountId);
|
|
|
|
+
|
|
|
|
+ order.setAccount(userOrder.getAccount());
|
|
|
|
+ order.setUAccount(userOrder.getUAccount());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //1.关闭订单
|
|
|
|
+ HashMap<String, Object> upMap = new HashMap<>();
|
|
|
|
+ upMap.put("status",0);
|
|
|
|
+ upMap.put("oldStatus",1);
|
|
|
|
+ upMap.put("id",userOrder.getId());
|
|
|
|
+ orderService.updateByIdAndStatus(upMap);
|
|
|
|
+ //2、插入订单
|
|
|
|
+ orderService.insert(order);
|
|
|
|
+ //3、修改已报名人数
|
|
|
|
+ courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() + 1);
|
|
|
|
+ CourseGroupInfoService.upByIdAndVersion(courseGroupInfo);
|
|
|
|
+ //4、修改分佣账户已收金额
|
|
|
|
+ BigDecimal HasRouting = routingAccount.getHasRouting().add(order.getAmount()).subtract(userOrder.getAmount());
|
|
|
|
+ routingAccount.setHasRouting(HasRouting);
|
|
|
|
+ accountService.upByIdAndVersion(routingAccount);
|
|
|
|
+
|
|
|
|
+ Map rqMap = orderService.getPayMap(routingAccount, order, school); //获取支付map
|
|
|
|
+
|
|
|
|
+ return succeed(rqMap);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 续费支付
|
|
* 续费支付
|
|
*
|
|
*
|
|
* @return String
|
|
* @return String
|
|
@@ -228,7 +347,7 @@ public class YqPayController extends BaseController {
|
|
String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
|
|
String orderNo = GenerateNum.getInstance().GenerateOrderNo(); //自己系统订单号
|
|
//获取分佣账户
|
|
//获取分佣账户
|
|
Integer branchId = 1001;//order.getBranchId();
|
|
Integer branchId = 1001;//order.getBranchId();
|
|
- Account routingAccount = accountService.getRoutingAccount(branchId,amount);
|
|
|
|
|
|
+ Account routingAccount = accountService.getRoutingAccount(branchId, amount);
|
|
|
|
|
|
Order order = renewalsService.addRenewalsOrder(renewals, amount, orderNo, pickCourses, routingAccount, remark);
|
|
Order order = renewalsService.addRenewalsOrder(renewals, amount, orderNo, pickCourses, routingAccount, remark);
|
|
|
|
|