123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- //package thyyxxk.wxservice_server.controller.api;
- //
- //import com.alibaba.fastjson.JSONArray;
- //import com.alibaba.fastjson.JSONObject;
- //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- //import lombok.extern.slf4j.Slf4j;
- //import org.springframework.beans.factory.annotation.Autowired;
- //import org.springframework.http.HttpEntity;
- //import org.springframework.http.HttpHeaders;
- //import org.springframework.http.MediaType;
- //import org.springframework.web.bind.annotation.*;
- //import org.springframework.web.client.RestTemplate;
- //import thyyxxk.wxservice_server.config.auth.PassToken;
- //import thyyxxk.wxservice_server.config.exception.ExceptionEnum;
- //import thyyxxk.wxservice_server.config.properties.ApiAddr;
- //import thyyxxk.wxservice_server.dao.api.PowersiPluginDao;
- //import thyyxxk.wxservice_server.entity.ResultVo;
- //import thyyxxk.wxservice_server.entity.assessment.PushQuestionnaireVisit;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.InsuinfoRequest;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.OrdState;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.CommonRequest;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.OrderQueryRequest;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.PowersiMipSetlinfo;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.RevokeSettleRequest;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.BillInfo;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.CommonResponse;
- //import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.Upload6201;
- //import thyyxxk.wxservice_server.factory.thmz.ThmzService;
- //import thyyxxk.wxservice_server.factory.thmz.model.QueryReceiptRequest;
- //import thyyxxk.wxservice_server.factory.thmz.model.SaveMzPayRequest;
- //import thyyxxk.wxservice_server.service.IdCardAnalyzeService;
- //import thyyxxk.wxservice_server.service.PushWxMessageService;
- //import thyyxxk.wxservice_server.utils.*;
- //import thyyxxk.wxservice_server.utils.mip.DataHandler;
- //
- //import java.io.IOException;
- //import java.math.BigDecimal;
- //import java.util.*;
- //
- //@Slf4j
- //@RestController
- //@RequestMapping("/api/mobilePayPlugin")
- //public class PowersiMiPayPlugin {
- // private final PowersiPluginDao dao;
- // private final IdCardAnalyzeService idCardAnalyzeService;
- // private final ThmzService thmzService;
- // private final PushWxMessageService messageService;
- // private final RestTemplate template;
- // private final String hisMipApi;
- //
- // private final DataHandler dataHandler = DataHandler.newInstance();
- //
- // @Autowired
- // public PowersiMiPayPlugin(PowersiPluginDao dao, IdCardAnalyzeService idCardAnalyzeService, ThmzService thmzService, PushWxMessageService messageService, RestTemplate template, ApiAddr apiAddr) throws IOException {
- // this.dao = dao;
- // this.idCardAnalyzeService = idCardAnalyzeService;
- // this.thmzService = thmzService;
- // this.messageService = messageService;
- // this.template = template;
- // this.hisMipApi = apiAddr.getHisMipApi();
- // }
- //
- // @PostMapping("/lockOrder")
- // public ResultVo<String> lockOrder(@RequestBody InsuinfoRequest request) {
- // String openid = TokenUtil.getInstance().getUserOpenid();
- // dao.lockOrder(request.getHisOrdNum(), openid,1);
- // return ResultVoUtil.success(openid);
- // }
- //
- // @PostMapping("/lockYbOrder")
- // public ResultVo<String> lockYbOrder(@RequestBody InsuinfoRequest request) {
- // String openid = TokenUtil.getInstance().getUserOpenid();
- // dao.lockYbOrder(request.getHisOrdNum(), openid,1);
- // return ResultVoUtil.success(openid);
- // }
- //
- // @PostMapping("/unlockOrder")
- // public ResultVo<String> unlockOrder(@RequestBody InsuinfoRequest request) {
- // dao.unlockOrder(request.getHisOrdNum(), null);
- // return ResultVoUtil.success("操作成功。");
- // }
- //
- // private JSONObject decryptRequest(JSONObject body) throws Exception {
- // body.put("code", 0);
- // JSONObject decrypt = dataHandler.processRspData(body.toJSONString());
- // return decrypt.getJSONObject("data");
- // }
- //
- // @PassToken
- // @PostMapping("/patientInquiry")
- // public CommonResponse patientInquiry(@RequestBody JSONObject body) throws Exception {
- // JSONObject request = decryptRequest(body);
- // List<String> patNos = dao.selectPatientCount(request.getString("idNo"));
- // if (patNos.isEmpty()) {
- // return new CommonResponse("未查询到建档信息。");
- // }
- // return new CommonResponse();
- // }
- //
- // @PassToken
- // @PostMapping("/patientCreate")
- // public CommonResponse patientCreate(@RequestBody JSONObject body) throws Exception {
- // JSONObject request = decryptRequest(body);
- // return idCardAnalyzeService.createCardFromPowersiPlugin(request);
- // }
- //
- // @PassToken
- // @PostMapping("/billListInquiry")
- // public JSONObject billListInquiry(@RequestBody JSONObject body) throws Exception {
- // JSONObject request = decryptRequest(body);
- // List<String> patNoList = dao.selectPatientCount(request.getString("idNo"));
- // if (patNoList.isEmpty()) {
- // JSONObject res = new JSONObject();
- // res.put("code", -1);
- // res.put("success", false);
- // res.put("message", "没有患者的建档信息。");
- // return res;
- // }
- // List<BillInfo> list = new ArrayList<>();
- // for (String patNo : patNoList) {
- // QueryReceiptRequest receiptRequest =
- // QueryReceiptRequest.builder().patCardNo(patNo).build();
- // ResultVo<List<Map<String, Object>>> vo =
- // thmzService.getMzChargeDetailForUnPaid(receiptRequest);
- // if (vo.getCode() != ExceptionEnum.SUCCESS.getCode()) {
- // continue;
- // }
- // List<Map<String, Object>> feeList = vo.getData();
- // for (Map<String, Object> billItem : feeList) {
- // BillInfo billInfo = new BillInfo(billItem);
- // if (billInfo.getVipFlag() != 0) {
- // continue;
- // }
- // billInfo.setIdNo(request.getString("idNo"));
- // billInfo.setIdType(request.getString("idType"));
- // billInfo.setDeptId(dao.selectDeptId(billInfo.getDeptName()));
- // list.add(billInfo);
- // }
- // }
- // if (list.isEmpty()) {
- // JSONObject res = new JSONObject();
- // res.put("code", -1);
- // res.put("success", false);
- // res.put("message", "没有患者的待缴费信息。");
- // return res;
- // }
- // String listRef = JSONArray.toJSONString(list);
- // JSONObject temp = new JSONObject();
- // temp.put("billInfo", JSONArray.parseArray(listRef));
- // String raw = dataHandler.buildReqData(temp);
- // JSONObject response = JSONObject.parseObject(raw);
- // response.put("code", 0);
- // response.put("success", true);
- // response.put("message", "OK");
- // return response;
- // }
- //
- // @PassToken
- // @PostMapping("/billDetailInquiry")
- // public JSONObject billDetailInquiry(@RequestBody JSONObject body) throws Exception {
- // JSONObject request = decryptRequest(body);
- // String bizId = request.getString("bizId");
- // bizId = null == bizId ? "" : bizId;
- // String[] arr = bizId.split("_");
- // if (arr.length != 3) {
- // JSONObject res = new JSONObject();
- // res.put("code", -1);
- // res.put("success", false);
- // res.put("message", "bizId[" + bizId + "]不正确!");
- // return res;
- // }
- //
- // request.put("patNo", arr[0]);
- // request.put("times", Integer.parseInt(arr[1]));
- // Upload6201 upload6201 = template.postForObject(hisMipApi + "/getUpload6201", request, Upload6201.class);
- // if (null == upload6201) {
- // JSONObject res = new JSONObject();
- // res.put("code", -1);
- // res.put("success", false);
- // res.put("message", "网络异常,请稍后再试。");
- // return res;
- // }
- // upload6201.setIdNo(request.getString("idNo"));
- // upload6201.setIdType(request.getString("idType"));
- // upload6201.setUserName(request.getString("userName"));
- //
- // String raw = dataHandler.buildReqData(JSONObject.toJSONString(upload6201));
- // JSONObject response = JSONObject.parseObject(raw);
- // response.put("code", 0);
- // response.put("success", true);
- // response.put("message", "OK");
- // return response;
- // }
- //
- // @PassToken
- // @PostMapping("/settleNotify")
- // public CommonResponse settleNotify(@RequestBody JSONObject body) throws Exception {
- // JSONObject request = decryptRequest(body);
- // PowersiMipSetlinfo setlinfo = dao.selectById(request.getString("platformOrderId"));
- // if (null == setlinfo) {
- // setlinfo = JSONObject.parseObject(request.toJSONString(), PowersiMipSetlinfo.class);
- // JSONObject hiExtData = request.getJSONObject("hiExtData");
- // if (null != hiExtData) {
- // JSONObject clrObj = hiExtData.getJSONObject("setlinfo");
- // if (null != clrObj) {
- // String clrOptins = clrObj.getString("clrOptins");
- // String clrType = clrObj.getString("clrType");
- // setlinfo.setClrOptins(clrOptins);
- // setlinfo.setClrType(clrType);
- // }
- // }
- // int insert = dao.insert(setlinfo);
- // if (insert == 1) {
- // saveMzOrder(setlinfo);
- // return new CommonResponse();
- // }
- // return new CommonResponse("HIS业务处理失败。");
- // }
- // if (setlinfo.getMzSaved() == 0) {
- // saveMzOrder(setlinfo);
- // return new CommonResponse();
- // }
- // return new CommonResponse();
- // }
- //
- // private void saveMzOrder(PowersiMipSetlinfo setlinfo) {
- // SaveMzPayRequest saveMzPayRequest = new SaveMzPayRequest.Builder()
- // .payTime(DateUtil.formatDatetime(setlinfo.getTraceTime()))
- // .patCardNo(setlinfo.getMedOrgOrd().split("_")[0])
- // .agtOrdNum(setlinfo.getThirdOrderId())
- // .payAmt(setlinfo.getFeeSumamt())
- // .fundpayAmt(setlinfo.getFundPay())
- // .acctpayAmt(setlinfo.getPsnAcctPay())
- // .couponAmt(BigDecimal.ZERO)
- // .cashpayAmt(setlinfo.getOwnpayAmt())
- // .hisOrdNum(setlinfo.getMedOrgOrd())
- // .psOrdNum(setlinfo.getPlatformOrderId())
- // .isNormalClinic(true).build();
- // ResultVo<String> res = thmzService.saveMzPay(saveMzPayRequest);
- // if (res.getCode() == ExceptionEnum.SUCCESS.getCode()) {
- // dao.updateMzSaved(setlinfo.getPlatformOrderId());
- // }
- // pushMessage(setlinfo.getMedOrgOrd(), setlinfo.getUserName());
- // }
- //
- // private void pushMessage(String hisOrdNum, String userName) {
- // String[] arr = hisOrdNum.split("_");
- // int times = Integer.parseInt(arr[1]);
- // PushQuestionnaireVisit visit = dao.getVisit(arr[0], times, hisOrdNum);
- // String visitId = hisOrdNum.replaceAll("_", "AND") + "AND" + visit.getDoctorCode() + "AND" + visit.getDeptCode();
- // String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbde6b16acad84204&redirect_uri=" +
- // "https://staticweb.hnthyy.cn/wxserver/redirect/page2?to=doctorGradeByPush_" + visitId +
- // "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
- //
- // String msgContent = "{\"touser\":\"" + visit.getOpenid() + "\",\"data\":" +
- // "{\"keyword1\":{\"color\":\"#173177\",\"value\":\"" + userName + "\"}," +
- // "\"keyword2\":{\"color\":\"#173177\",\"value\":\"沭阳铭和医院\"}," +
- // "\"keyword3\":{\"color\":\"#173177\",\"value\":\"" + visit.getDeptName() + "\"}," +
- // "\"keyword4\":{\"color\":\"#173177\",\"value\":\"" + visit.getDoctorName() + "\"}," +
- // "\"keyword5\":{\"color\":\"#173177\",\"value\":\"" + visit.getVisitDate() + "\"}," +
- // "\"remark\":{\"color\":\"#FF0000\",\"value\":\"特邀请您对医生服务作出评价。\"}," +
- // "\"first\":{\"color\":\"#FF0000\",\"value\":\"您曾在我院进行诊疗。\"}}," +
- // "\"template_id\":\"G4YAN56RmDjEPpNyP5fpCdr5TghyqspDeWlWaD5Eg2o\"," +
- // "\"url\":\"" + url + "\"}";
- // JSONObject message = JSONObject.parseObject(msgContent);
- // messageService.pushMessage2(message);
- // }
- //
- // @PassToken
- // @GetMapping("/isMipOrder")
- // public ResultVo<String> isMipOrder(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
- // PowersiMipSetlinfo setlinfo = getSetlinfo(hisOrdNum, null);
- // if (null == setlinfo) {
- // return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
- // }
- // return ResultVoUtil.success(setlinfo.getPlatformOrderId());
- // }
- //
- // @PassToken
- // @GetMapping("/settleQuery")
- // public JSONObject settleQuery(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
- // String patientId = hisOrdNum.split("_")[0];
- // OrderQueryRequest request = dao.getMzPatient(patientId);
- // request.setMedOrgOrd(hisOrdNum);
- //
- // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(request));
- // String body = dataHandler.buildReqData(raw);
- // String url = "http://webhis.thyy.cn:8077/powersiMipSettleQuery";
- // HttpHeaders headers = new HttpHeaders();
- // headers.setContentType(MediaType.APPLICATION_JSON);
- // HttpEntity<String> entity = new HttpEntity<>(body, headers);
- // String encRes = template.postForObject(url, entity, String.class);
- // return dataHandler.processRspData(encRes);
- // }
- //
- // @PassToken
- // @PostMapping("/downloadBillData")
- // public void powersiMipDownloadBillData() {
- //
- // }
- //
- // @PassToken
- // @PostMapping("/revokeMipSettle")
- // public ResultVo<String> revokeMipSettle(@RequestBody CommonRequest request) throws Exception {
- // PowersiMipSetlinfo setlinfo = getRefundableSetl(request.getHisOrdNum());
- // if (null == setlinfo) {
- // setlinfo = getSetlinfo(request.getHisOrdNum(), OrdState.REFUND_SUCCEED);
- // if (null != setlinfo) {
- // return ResultVoUtil.success("医保移动支付退款成功");
- // }
- // return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有可以退款的结算交易。");
- // }
- // Date now = new Date();
- // RevokeSettleRequest refd = new RevokeSettleRequest();
- // if (StringUtil.notBlank(request.getRefdType())) {
- // refd.setRefdType(request.getRefdType());
- // }
- // refd.setMedOrgOrd(request.getHisOrdNum());
- // refd.setMedRefdId(SnowFlakeId.instance().nextId());
- // refd.setRefdTime(DateUtil.formatDatetime(now));
- // refd.setTotlRefdAmt(setlinfo.getFeeSumamt());
- // refd.setPsnAcctRefdAmt(setlinfo.getPsnAcctPay());
- // refd.setFundRefdAmt(setlinfo.getFundPay());
- // refd.setCashRefdAmt(setlinfo.getOwnpayAmt());
- // refd.setRefdReason(request.getRefundReason());
- // refd.setEcToken(request.getEcToken());
- // refd.setPlatformOrderId(setlinfo.getPlatformOrderId());
- // dao.updateMedRedfId(refd.getMedRefdId(), refd.getMedOrgOrd());
- // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(refd));
- // String body = dataHandler.buildReqData(raw);
- // String url = "http://webhis.thyy.cn:8077/powersiMipRefund";
- // HttpHeaders headers = new HttpHeaders();
- // headers.setContentType(MediaType.APPLICATION_JSON);
- // HttpEntity<String> entity = new HttpEntity<>(body, headers);
- // String encRes = template.postForObject(url, entity, String.class);
- // JSONObject decRes = dataHandler.processRspData(encRes);
- // Integer code = decRes.getInteger("code");
- // if (null != code && code == 0) {
- // JSONObject data = decRes.getJSONObject("data");
- // OrdState state = OrdState.get(data.getString("refStatus"));
- // if (null == state) {
- // return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
- // }
- // String refId = data.getString("platformRefdId");
- // dao.updateRevokeInfo(request.getStaffId(), now, refId, setlinfo.getMedOrgOrd(), state);
- // if (state == OrdState.REFUND_SUCCEED) {
- // return ResultVoUtil.success("医保移动支付退款成功");
- // }
- // if (state == OrdState.REFUND_PROCEEDING) {
- // return ResultVoUtil.success("医保移动支付退款进行中,请稍后查询退款结果。");
- // }
- // if (state == OrdState.REFUND_ABNORMAL) {
- // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保移动支付退款异常,请稍后查询退款结果。");
- // }
- // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, data.getString("failMsg"));
- // }
- // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
- // }
- //
- // private PowersiMipSetlinfo getRefundableSetl(String id) {
- // PowersiMipSetlinfo setlinfo = getSetlinfo(id, OrdState.SETTLED);
- // if (null == setlinfo) {
- // setlinfo = getSetlinfo(id, OrdState.REFUND_FAILED);
- // if (null == setlinfo) {
- // setlinfo = getSetlinfo(id, OrdState.REFUND_ABNORMAL);
- // }
- // }
- // return setlinfo;
- // }
- //
- // private PowersiMipSetlinfo getSetlinfo(String id, OrdState state) {
- // QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
- // wrapper.eq("med_org_ord", id);
- // if (null == state) {
- // List<PowersiMipSetlinfo> list = dao.selectList(wrapper);
- // if (list == null || list.isEmpty()) {
- // return null;
- // }
- // return list.get(0);
- // }
- // wrapper.eq("ord_state", state);
- // return dao.selectOne(wrapper);
- // }
- //
- // @PassToken
- // @GetMapping("/queryRefundState")
- // public ResultVo<String> queryRefundState(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
- // QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
- // wrapper.eq("med_org_ord", hisOrdNum);
- // PowersiMipSetlinfo setlinfo = dao.selectOne(wrapper);
- // if (null == setlinfo) {
- // return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
- // }
- // if (setlinfo.getOrdState() == OrdState.REFUND_SUCCEED) {
- // return ResultVoUtil.success(OrdState.REFUND_SUCCEED.toString());
- // }
- // JSONObject params = new JSONObject();
- // if (StringUtil.notBlank(setlinfo.getPlatformRefdId())) {
- // params.put("platformRefdId", setlinfo.getPlatformRefdId());
- // } else {
- // params.put("medRefdId", setlinfo.getMedRefdId());
- // }
- // params.put("orgCodg", "H32132200561");
- // JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(params));
- // String body = dataHandler.buildReqData(raw);
- // String url = "http://webhis.thyy.cn:8077/powersiMipRefundQuery";
- // HttpHeaders headers = new HttpHeaders();
- // headers.setContentType(MediaType.APPLICATION_JSON);
- // HttpEntity<String> entity = new HttpEntity<>(body, headers);
- // String encRes = template.postForObject(url, entity, String.class);
- // JSONObject decRes = dataHandler.processRspData(encRes);
- // Integer code = decRes.getInteger("code");
- // if (null != code && code == 0) {
- // JSONObject data = decRes.getJSONObject("data");
- // data.remove("hiExtData");
- // OrdState state = OrdState.get(data.getString("refdStatus"));
- // if (null == state) {
- // return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
- // }
- // String refId = data.getString("platformRefdId");
- // dao.updateRefundState(refId, state, hisOrdNum);
- // return ResultVoUtil.success(state.toString());
- // }
- // return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
- // }
- //}
|