|
@ -193,14 +193,21 @@ public class PayService {
|
|
|
resJson.put("id",id);
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.findOne(id);
|
|
|
String type = businessOrderDO.getOrderCategory();
|
|
|
Integer status = businessOrderDO.getStatus();
|
|
|
resJson.put("orderCategory",type);
|
|
|
resJson.put("orderNo",businessOrderDO.getOrderNo());
|
|
|
resJson.put("payPrice",businessOrderDO.getPayPrice());
|
|
|
resJson.put("payTime", DateUtil.dateToStrLong(businessOrderDO.getPayTime()));
|
|
|
resJson.put("createTime",DateUtil.dateToStrLong(businessOrderDO.getCreateTime()));
|
|
|
resJson.put("status",businessOrderDO.getStatus());
|
|
|
resJson.put("updateTime",DateUtil.dateToStrLong(businessOrderDO.getUpdateTime()));
|
|
|
|
|
|
long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000;
|
|
|
if(time<0&&status==0){
|
|
|
cancleOrder(id);
|
|
|
status = 2;
|
|
|
}
|
|
|
resJson.put("status",status);
|
|
|
resJson.put("time",time);
|
|
|
//项目
|
|
|
if("3".equals(type)){
|
|
|
List<BaseDoorCoachFeeDetailDO> feeDetailDOList = doorCoachFeeDetailDao.findByOrderId(businessOrderDO.getRelationCode());
|
|
|
resJson.put("fees",feeDetailDOList);
|
|
@ -208,12 +215,60 @@ public class PayService {
|
|
|
List<LifeCareFeeDetailDO> feeDetailDOList = lifeCareFeeDetailDao.findByOrderId(businessOrderDO.getRelationCode());
|
|
|
resJson.put("fees",feeDetailDOList);
|
|
|
}
|
|
|
//退款信息
|
|
|
if(status>2){
|
|
|
BusinessOrderRefundDO refundDO = orderRefundDao.selectByOrderNo(businessOrderDO.getOrderNo());
|
|
|
resJson.put("refundDO",refundDO);
|
|
|
}
|
|
|
|
|
|
return resJson;
|
|
|
}
|
|
|
|
|
|
public void applyRefund(Integer id,String content,String imgs){
|
|
|
/**
|
|
|
* 申请退款
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String applyRefund(Integer id,String description,String enclosure){
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.findOne(id);
|
|
|
String type = businessOrderDO.getOrderCategory();
|
|
|
String orderId = businessOrderDO.getRelationCode();
|
|
|
if(businessOrderDO.getStatus()!=1){
|
|
|
return "订单为已支付状态时,才可申请退款";
|
|
|
}
|
|
|
if("3".equals(type)){
|
|
|
BaseDoorCoachOrderDO orderDO = baseDoorCoachOrderDao.findOne(orderId);
|
|
|
if(!"6".equals(orderDO.getStatus())){
|
|
|
return "工单为已完成状态时,才可申请退款";
|
|
|
}
|
|
|
}else if("4".equals(type)){
|
|
|
LifeCareOrderDO orderDO = lifeCareOrderDao.findOne(orderId);
|
|
|
if(!"2".equals(orderDO.getStatus())){
|
|
|
return "工单为已完成状态时,才可申请退款";
|
|
|
}
|
|
|
}
|
|
|
BusinessOrderRefundDO orderRefundDO = orderRefundDao.selectByOrderNo(businessOrderDO.getOrderNo());
|
|
|
if (orderRefundDO!=null){
|
|
|
return "请勿重复申请退款";
|
|
|
}
|
|
|
orderRefundDO = new BusinessOrderRefundDO();
|
|
|
orderRefundDO.setCreateTime(new Date());
|
|
|
orderRefundDO.setUpdateTime(new Date());
|
|
|
orderRefundDO.setStatus(1);
|
|
|
orderRefundDO.setOrderNo(businessOrderDO.getOrderNo());
|
|
|
orderRefundDO.setOrderPrice(businessOrderDO.getPayPrice());
|
|
|
orderRefundDO.setRefundPrice(businessOrderDO.getPayPrice());
|
|
|
orderRefundDO.setOutRefundNo("CARE"+businessOrderDO.getOrderType()+System.currentTimeMillis()+(int)(Math.random()*900)+100);
|
|
|
orderRefundDO.setPatient(businessOrderDO.getPatient());
|
|
|
orderRefundDO.setPatientName(businessOrderDO.getPatientName());
|
|
|
orderRefundDO.setRefundDesc(description);
|
|
|
orderRefundDO.setEnclosure(enclosure);
|
|
|
orderRefundDao.save(orderRefundDO);
|
|
|
|
|
|
businessOrderDO.setStatus(3);
|
|
|
businessOrderDao.save(businessOrderDO);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -239,6 +294,7 @@ public class PayService {
|
|
|
lifeCareOrderDao.save(orderDO);
|
|
|
}
|
|
|
}
|
|
|
businessOrderDO.setStatus(2);
|
|
|
businessOrderDO.setUpdateTime(new Date());
|
|
|
businessOrderDao.save(businessOrderDO);
|
|
|
}else{
|
|
@ -407,10 +463,14 @@ public class PayService {
|
|
|
businessOrderDao.save(orderDO);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 退款成功处理
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void wxRefundNotify(BusinessOrderDO orderDO) {
|
|
|
public void refundNotify(BusinessOrderRefundDO orderDO) {
|
|
|
log.error("【支付通知】请求,payWater:{}", orderDO);
|
|
|
String type = orderDO.getOrderCategory();
|
|
|
String type = "";
|
|
|
//防止重复支付
|
|
|
if (orderDO.getStatus()!=0) {
|
|
|
return;
|
|
@ -424,20 +484,20 @@ public class PayService {
|
|
|
break;
|
|
|
case "3":
|
|
|
//desc = "上门辅导";
|
|
|
doorCoachOrderService.refundOrderAfter(orderDO.getRelationCode());
|
|
|
// doorCoachOrderService.payOrderAfter(orderDO.getRelationCode());
|
|
|
break;
|
|
|
case "4":
|
|
|
//desc = "生活照料服务";
|
|
|
lifeCareOrderService.refundOrderAfter(orderDO.getRelationCode());
|
|
|
// lifeCareOrderService.payOrderAfter(orderDO.getRelationCode());
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
orderDO.setStatus(4);
|
|
|
businessOrderDao.save(orderDO);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 微信navite统一下单接口
|
|
|
*
|
|
@ -456,6 +516,11 @@ public class PayService {
|
|
|
if (businessOrderDO.getStatus()!=0) {
|
|
|
return ObjEnvelop.getError("待支付订单才能支付",-1);
|
|
|
}
|
|
|
long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000;
|
|
|
if(time<=0){
|
|
|
cancleOrder(businessOrderDO.getId());
|
|
|
return ObjEnvelop.getError("支付超时,订单已关闭",-1);
|
|
|
}
|
|
|
businessOrderDO.setOrderNo(getOrderNo());
|
|
|
String noceStr = WxpayUtil.getNonceStr();
|
|
|
// 组装统一下单信息
|
|
@ -526,6 +591,11 @@ public class PayService {
|
|
|
if (businessOrderDO.getStatus()!=0) {
|
|
|
return ObjEnvelop.getError("待支付订单才能支付",-1);
|
|
|
}
|
|
|
long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000;
|
|
|
if(time<=0){
|
|
|
cancleOrder(businessOrderDO.getId());
|
|
|
return ObjEnvelop.getError("支付超时,订单已关闭",-1);
|
|
|
}
|
|
|
BasePatientDO patientDO = patientDao.findById(businessOrderDO.getPatient());
|
|
|
businessOrderDO.setOrderNo(getOrderNo());
|
|
|
|