|
@ -97,6 +97,8 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
@Autowired
|
|
|
private DoctorServicePermissionsService doctorServicePermissionsService;
|
|
|
|
|
|
//是否开启支付 false 不需要支付
|
|
|
public static final boolean isNeedPay = false;
|
|
|
|
|
|
/**
|
|
|
* 记录完成情况
|
|
@ -450,16 +452,19 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
if(orderDO.getStatus() != LifeCareOrderDO.Status.waitForPay.getType()){
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
String failMsg = "无法取消工单,已支付的工单需要到我的订单中进行申请退款," + orderId;
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
if(isNeedPay){
|
|
|
if(orderDO.getStatus() != LifeCareOrderDO.Status.waitForPay.getType()){
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
String failMsg = "无法取消工单,已支付的工单需要到我的订单中进行申请退款," + orderId;
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(orderDO.getId());
|
|
|
businessOrderDO.setStatus(2);
|
|
|
businessOrderDao.save(businessOrderDO);
|
|
|
}
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(orderDO.getId());
|
|
|
businessOrderDO.setStatus(2);
|
|
|
businessOrderDao.save(businessOrderDO);
|
|
|
|
|
|
// if(orderDO.getStatus().equals(LifeCareOrderDO.Status.complete.getType())){
|
|
|
// result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
// String failMsg = "只有医生服务前的工单才可取消";
|
|
@ -489,16 +494,19 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
lifeCareCancelLogDao.save(cancelLogDO);
|
|
|
|
|
|
// 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消)
|
|
|
// String first = "key1,您好,您的上门预约服务已退回,点击查看原因";
|
|
|
// BasePatientDO patient = patientDao.findById(orderDO.getPatient());
|
|
|
// first = first.replace("key1", null != patient.getName() ? patient.getName() : "");
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("id", orderDO.getId());
|
|
|
// List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patient.getId());
|
|
|
// if(basePatientWechatDos.size()>0){
|
|
|
// String openId = basePatientWechatDos.get(0).getOpenid();
|
|
|
// messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",openId,first,null,null,30,json, DateUtil.dateToChineseDate(new Date()),"生活照料已取消");
|
|
|
// }
|
|
|
if(!isNeedPay){
|
|
|
String first = "key1,您好,您的上门预约服务已退回,点击查看原因";
|
|
|
BasePatientDO patient = patientDao.findById(orderDO.getPatient());
|
|
|
first = first.replace("key1", null != patient.getName() ? patient.getName() : "");
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("id", orderDO.getId());
|
|
|
List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patient.getId());
|
|
|
if(basePatientWechatDos.size()>0){
|
|
|
String openId = basePatientWechatDos.get(0).getOpenid();
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",openId,first,null,null,30,json, DateUtil.dateToChineseDate(new Date()),"生活照料已取消");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, "工单服务已取消!");
|
|
|
return result;
|
|
@ -520,19 +528,37 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
try {
|
|
|
jsonObjectParam = JSONObject.parseObject(jsonData);
|
|
|
orderDO = EntityUtils.jsonToEntity(jsonObjectParam.get("order").toString(), LifeCareOrderDO.class);
|
|
|
//存在未支付的订单不能发起
|
|
|
|
|
|
boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
|
|
|
new Integer[]{
|
|
|
BaseDoorCoachOrderDO.Status.waitForPay.getType()
|
|
|
});
|
|
|
if(isNeedPay){
|
|
|
//存在未支付的订单不能发起
|
|
|
boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
|
|
|
new Integer[]{
|
|
|
LifeCareOrderDO.Status.waitForPay.getType(),
|
|
|
LifeCareOrderDO.Status.waitForAccept.getType(),
|
|
|
LifeCareOrderDO.Status.signIn.getType()
|
|
|
});
|
|
|
|
|
|
if(bool){
|
|
|
String failMsg = "当前服务对象存在未支付或未完成,无法再次申请!";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
}else{
|
|
|
boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
|
|
|
new Integer[]{
|
|
|
LifeCareOrderDO.Status.waitForAccept.getType(),
|
|
|
LifeCareOrderDO.Status.signIn.getType()
|
|
|
});
|
|
|
|
|
|
if(bool){
|
|
|
String failMsg = "当前服务对象存在未完成,无法再次申请!";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
if(bool){
|
|
|
String failMsg = "当前服务对象存在未支付或未完成,无法再次申请!";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
logger.error(failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
Integer type = orderDO.getType();
|
|
|
if (type==1||type==2){
|
|
@ -547,12 +573,14 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
orderDO.setProxyPatient(proxyPatient);
|
|
|
orderDO.setProxyPatientName(doctorDO.getName());
|
|
|
orderDO.setProxyPatientPhone(doctorDO.getMobile());
|
|
|
List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,orderDO.getPatient());
|
|
|
if (basePatientWechatDos.size()>0){
|
|
|
JSONObject json = new JSONObject();
|
|
|
String openId = basePatientWechatDos.get(0).getOpenid();
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","shzldzf",openId,null,null,"请在30分钟内完成支付",3,json,
|
|
|
DateUtil.dateToChineseDate(new Date()),"助老员已为您代预约生活照料","待支付");
|
|
|
if(isNeedPay){
|
|
|
List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,orderDO.getPatient());
|
|
|
if (basePatientWechatDos.size()>0){
|
|
|
JSONObject json = new JSONObject();
|
|
|
String openId = basePatientWechatDos.get(0).getOpenid();
|
|
|
messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","shzldzf",openId,null,null,"请在30分钟内完成支付",3,json,
|
|
|
DateUtil.dateToChineseDate(new Date()),"助老员已为您代预约生活照料","待支付");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(agent)){
|
|
@ -597,7 +625,12 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
}
|
|
|
orderDO.setNumber(orderNoService.getOrderNo(1));
|
|
|
orderDO.setCreateTime(new Date());
|
|
|
orderDO.setStatus(0);//待付款状态
|
|
|
if(isNeedPay){
|
|
|
orderDO.setStatus(0);//待付款状态
|
|
|
}else {
|
|
|
orderDO.setStatus(1);//待(医生)接单
|
|
|
}
|
|
|
|
|
|
|
|
|
try {
|
|
|
BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
|
|
@ -628,7 +661,9 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
result.put(ResponseContant.resultMsg, orderDO);
|
|
|
|
|
|
//发起支付订单
|
|
|
payService.submitOrder(orderDO.getPatient(),"4",orderDO.getId(),orderDO.getTotalFee().doubleValue());
|
|
|
if (isNeedPay){
|
|
|
payService.submitOrder(orderDO.getPatient(),"4",orderDO.getId(),orderDO.getTotalFee().doubleValue());
|
|
|
}
|
|
|
|
|
|
//给签约医生发送预约短信
|
|
|
String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack \n" +
|
|
@ -640,9 +675,11 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
for (BaseDoctorDO doctorDO:doctorDOS){
|
|
|
try {
|
|
|
if (StringUtils.isNotBlank(doctorDO.getMobile())){
|
|
|
messageUtil.sendTXYSJson("1099805",doctorDO.getMobile(),orderDO.getPatientName());
|
|
|
messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),orderDO.getPatientName(),"生活照料");
|
|
|
}
|
|
|
}catch (Exception e){}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return result;
|