微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
7.3 KiB

package com.ynxbd.common.action;
import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.action.pay.PEnum;
import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.PayCasebook;
import com.ynxbd.common.bean.xbd.MRHistory;
import com.ynxbd.common.bean.xbd.MedicalRecord;
import com.ynxbd.common.dao.CasebookDao;
import com.ynxbd.common.helper.common.CodeHelper;
import com.ynxbd.common.helper.common.ImageHelper;
import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.xbd.XBDHttpHelper;
import com.ynxbd.common.helper.xbd.XBDEnum;
import com.ynxbd.common.helper.xbd.XBDHelper;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.service.CasebookService;
import com.ynxbd.common.service.PayService;
import lombok.extern.slf4j.Slf4j;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
/**
* @author 李进才
* @ClassName XBDAction
* @Description description
* @date 2023/3/30 16:50
*/
@Slf4j
@Namespace("/xbd")
public class XBDAction extends BaseAction {
/**
* 获取智能云胶片的地址
* @param info patientId
* @return 路径
*/
@Action("cloudFilm")
public Result cloudFilm (String info){
return Result.success(XBDHelper.outTeamDao.getCloudFilmPath(info));
}
/**
* 获取该病人已归档可以翻拍的病历
* @param patientId 病人id
* @return 可以翻拍的病历列表
*/
@Action("getMedicalRecordList")
public Result getMedicalRecordList(String patientId){
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetBA.Name,params->{
params.put("patientID",patientId);
params.put("flagFP",0);
params.put("flagSH",1);
});
return Result.success(JsonHelper.parseArray(jsonString, MedicalRecord.class));
}
/**
* 获取该病人需要翻拍病历干啥的列表(用途)->直接绑定翻拍的病历类型
* @return 用途列表
*/
@Action("getMRTemplateList")
public Result getMRTemplateList(){
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetTemplate.Name);
return Result.success(JsonHelper.parseArray(jsonString));
}
/**
* 新增预约
* @param zyNum 住院号
* @param applyName 申请人姓名
* @param useToNo 模版ID
* @param useToName 模版名称
* @param getWay 0:自提 1:邮寄
* @param address 地址
* @param phone 联系电话
* @param ptImg1 身份证正面
* @param ptImg2 身份证反面
* @param applyImg 住院证明照片
* @return 成功行数
*/
@Action("addMRReserve")
public Result addMRReserve(String openId,String patientId, String zyNum, String applyName, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String applyImg) {
try{
log.info("[病历复印]patientId-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}",patientId,zyNum,applyName,useToNo,useToName,getWay,address,phone);
String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetAppointment.Name,params -> {
params.put("ZYNum", zyNum);
params.put("ApplyName", applyName);
params.put("UseToNo", useToNo);
params.put("UseToName", useToName);
params.put("GetWay", getWay);
params.put("Address", address);
params.put("Phone", phone);
params.put("ptImg1", ptImg1);
params.put("ptImg2", ptImg2);
params.put("applyImg", applyImg);
});
PayCasebook payCasebook = new PayCasebook();
payCasebook.setZyNum(zyNum);
payCasebook.setApplyName(applyName);
payCasebook.setUseToNo(useToNo);
payCasebook.setUseToName(useToName);
payCasebook.setGetWay(getWay);
payCasebook.setAddress(address);
payCasebook.setPhone(phone);
if(!new CasebookService().addApply(payCasebook,openId,patientId)){
log.info("[病历复印]下单信息存储失败 patientId={},openId-{},patientId-{}", patientId,openId,patientId);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
}
return Result.success(JsonHelper.parseObject(jsonString));
}
catch (Exception e) {
log.error("[病历复印申请]预约失败,error-{}",e.toString());
return Result.error(ResultEnum.ERROR);
}
}
/**
* 获取该病人的病历翻拍历史
* @param patientId 病人Id
* @return 历史记录
*/
@Action("getMRHistory")
public Result getMRHistory(String patientId){
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name,params->{
params.put("patientID",patientId);
params.put("BorrowNo",-1);
});
return Result.success(JsonHelper.parseArray(jsonString, MRHistory.class));
}
/**
* 病案复印唤起支付
* @param payCode wx:微信
* @param openid 患者openId
* @param patientId 患者patientId
* @param treatNum 住院号
* @param totalFee 总费用
* @param applyId 申请单Id
* @return 支付回调参数
*/
@Action("caseBookPay")
public Result caseBookPay( String payCode, String openid, String patientId, String treatNum, String totalFee,String applyId){
log.info("[病案复印] 唤起支付, payCode-{},openid-{},patientId-{},treatNum-{},totalFee-{}",payCode,openid,patientId,treatNum,totalFee);
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR);
}
String ip = request.getRemoteAddr();
return new CasebookService().placeOrder(merchantEnum,ip,openid,patientId,treatNum,totalFee,applyId);
}
// /**
// * 病人修改病历的地址
// * @param id 申请单号
// * @param getWay 收货方式(0.自提 1.邮寄 2.电子版)
// * @param address 地址
// * @return 是否修改成功
// */
// @Action("changeMRAddress")
// public Result changeMRAddress(Integer id,String getWay,String address) {
// String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_ChangeAddress.Name,params-> {
// params.put("Id",id);
// params.put("getWay",getWay);
// params.put("address",address);
// });
// return Result.success(JsonHelper.parseObject(jsonString));
// }
//
// /**
// * 停止未通过审核的病历预约
// * @param id 申请单号
// * @param delNote 删除理由
// * @return 是否成功
// */
// @Action("stopMRReserve")
// public Result stopMRReserve(Integer id,String delNote){
// String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_StopAppointment.Name,params-> {
// params.put("Id",id);
// params.put("delNote",delNote);
// });
// return Result.success(JsonHelper.parseObject(jsonString));
// }
}