|
@@ -164,7 +164,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void repairSuccess(Integer id, String description,Integer repairStatus) {
|
|
|
+ public void repairSuccess(Integer id, String description, Integer repairStatus) {
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
if (sysUser == null) {
|
|
|
throw new BizException("用户信息获取失败");
|
|
@@ -173,7 +173,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
if (studentRepair == null) {
|
|
|
throw new BizException("维修信息不存在");
|
|
|
}
|
|
|
- if(repairStatus != null){
|
|
|
+ if (repairStatus != null) {
|
|
|
studentRepair.setRepairStatus(1);
|
|
|
studentRepair.setFinishTime(new Date());
|
|
|
}
|
|
@@ -193,4 +193,97 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
return studentRepairDao.getRepairInfo(id);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Map payRepair(StudentRepair repairInfo) throws Exception {
|
|
|
+ if (repairInfo.getSendType().equals(1) &&
|
|
|
+ (repairInfo.getContactName() == null || repairInfo.getContactName().isEmpty()) &&
|
|
|
+ (repairInfo.getContactMobile() == null || repairInfo.getContactMobile().isEmpty()) &&
|
|
|
+ (repairInfo.getAddress() == null || repairInfo.getAddress().isEmpty())
|
|
|
+ ) {
|
|
|
+ throw new BizException("邮寄信息必填");
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ StudentRepair studentRepair = studentRepairDao.get(repairInfo.getId());
|
|
|
+ BigDecimal amount = studentRepair.getAmount();
|
|
|
+ String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
+ studentRepair.setTransNo(orderNo);
|
|
|
+ studentRepair.setRepairStatus(0);
|
|
|
+ studentRepair.setPayStatus(1);
|
|
|
+ studentRepair.setSendType(repairInfo.getSendType());
|
|
|
+ studentRepair.setContactName(repairInfo.getContactName());
|
|
|
+ studentRepair.setContactMobile(repairInfo.getContactMobile());
|
|
|
+ studentRepair.setAddress(repairInfo.getAddress());
|
|
|
+ studentRepair.setUpdateTime(date);
|
|
|
+ studentRepairDao.update(repairInfo);
|
|
|
+
|
|
|
+ String channelType = "";
|
|
|
+
|
|
|
+ StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
+ studentPaymentOrder.setUserId(studentRepair.getStudentId());
|
|
|
+ studentPaymentOrder.setGroupType(GroupType.REPAIR);
|
|
|
+ studentPaymentOrder.setOrderNo(orderNo);
|
|
|
+ studentPaymentOrder.setType(OrderTypeEnum.REPAIR);
|
|
|
+ studentPaymentOrder.setExpectAmount(amount);
|
|
|
+ studentPaymentOrder.setActualAmount(amount);
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
+ studentPaymentOrder.setMusicGroupId(studentRepair.getId().toString());
|
|
|
+ studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
+ studentPaymentOrder.setUpdateTime(date);
|
|
|
+ studentPaymentOrder.setOrganId(studentRepair.getOrganId());
|
|
|
+ studentPaymentOrder.setRoutingOrganId(studentRepair.getOrganId());
|
|
|
+
|
|
|
+ studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
+ studentPaymentOrder.setVersion(0);
|
|
|
+
|
|
|
+ if (amount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ Map<String, String> notifyMap = new HashMap<>();
|
|
|
+ notifyMap.put("tradeState", "1");
|
|
|
+ notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
|
|
|
+ notifyMap.put("channelType", channelType);
|
|
|
+ notifyMap.put("orderNo", "");
|
|
|
+ studentPaymentOrderService.updateOrder(notifyMap);
|
|
|
+ return notifyMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
|
|
|
+
|
|
|
+ Map<String, BigDecimal> classFee = new HashMap<>();
|
|
|
+ classFee.put("course", BigDecimal.ZERO);
|
|
|
+ classFee.put("instrument", BigDecimal.ZERO);
|
|
|
+ classFee.put("accessories", BigDecimal.ZERO);
|
|
|
+ classFee.put("other", amount);
|
|
|
+
|
|
|
+ Map payMap = payService.getPayMap(
|
|
|
+ amount,
|
|
|
+ orderNo,
|
|
|
+ baseApiUrl + "/api-student/studentOrder/notify",
|
|
|
+ baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
|
|
|
+ "乐器维修",
|
|
|
+ "乐器维修",
|
|
|
+ studentRepair.getStudentId(),
|
|
|
+ classFee,
|
|
|
+ studentRepair.getOrganId()
|
|
|
+ );
|
|
|
+
|
|
|
+ Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
|
|
|
+ studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
|
|
|
+ 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);
|
|
|
+ studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
+ return payMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BasicUserDto getStudentRepairer(Integer studentId, Integer organId) {
|
|
|
+ BasicUserDto repairer = studentRepairDao.getStudentMusicGroupRepairer(studentId);
|
|
|
+ if (repairer == null) {
|
|
|
+ repairer = studentRepairDao.getStudentOrganRepairer(organId);
|
|
|
+ }
|
|
|
+ return repairer;
|
|
|
+ }
|
|
|
+
|
|
|
}
|