Commit 3ec16c51f3480b59b8651335d712cdb2851dae86

Authored by cfl
1 parent 02637fd9b7
Exists in dev

收费功能测试修改

Showing 8 changed files with 111 additions and 47 deletions

talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/OrderController.java View file @ 3ec16c5
... ... @@ -92,7 +92,7 @@
92 92 * @param response
93 93 */
94 94 @PostMapping("createPayOrder")
95   - @TokenRequired
  95 + //@TokenRequired
96 96 @Resubmit
97 97 public BaseResponse createPayOrder(@RequestBody LymsOrder lymsOrder,
98 98 HttpServletRequest request, HttpServletResponse response) {
... ... @@ -137,6 +137,7 @@
137 137 log.info("create order pid {} ,orderNo {}",lymsOrder.getPid(),orderNo);
138 138 lymsOrder.setCreatedtime(new Date());
139 139 lymsOrder.setOrderno(orderNo);
  140 + lymsOrder.setPrice(goods.getPrice());
140 141 lymsOrder.setAmount(lymsOrder.getPrice()*lymsOrder.getCnt());
141 142 lymsOrder.setStatus(PayStatus.CREATED.getCode());
142 143 lymsOrder.setOpenid(patient.getOpenid());
143 144  
144 145  
145 146  
146 147  
... ... @@ -330,33 +331,43 @@
330 331 public void payNotify(HttpServletRequest request, HttpServletResponse response) {
331 332  
332 333 Map<String,String> result = new HashMap<>(2);
333   - result.put("return_code","<![CDATA[FAIL]]>");
  334 + result.put("return_code","FAIL");
334 335 result.put("return_msg","参数错误");
335 336 try {
336 337 Map<String, String> paramMap = getPayNotifyParamMap(request);
337 338  
338 339 //验证支付通知的参数合法性
339   - if (!verifyPayNotify(paramMap)) {
  340 + if (verifyPayNotify(paramMap)) {
340 341 //微信支付订单号
341 342 String transactionId = paramMap.get("transaction_id");
342 343 //商户订单号
343 344 String mchOrderNo = paramMap.get("out_trade_no");
344   - LambdaQueryWrapper<LymsOrder> wrapper = new QueryWrapper().lambda();
345   - wrapper.eq(LymsOrder::getOrderno, mchOrderNo);
346   - LymsOrder order=new LymsOrder();
347   - order.setTransactionId(transactionId);
348   - order.setPayTime(new Date());
349   - boolean f= lymsOrderService.update(order, wrapper);
350 345 //处理业务逻辑
351 346 LambdaQueryWrapper<LymsOrder> lymsOrderWrapper = new QueryWrapper().lambda();
352 347 lymsOrderWrapper.eq(LymsOrder::getOrderno, mchOrderNo);
353 348 lymsOrderWrapper.eq(LymsOrder::getTransactionId, transactionId);
354 349 LymsOrder lymsOrders = lymsOrderService.getOne(lymsOrderWrapper);
355   - boolean flag = lymsOrderService.handleOrder(lymsOrders);
  350 + if(lymsOrders == null){
  351 + LambdaQueryWrapper<LymsOrder> wrapper = new QueryWrapper().lambda();
  352 + wrapper.eq(LymsOrder::getOrderno, mchOrderNo);
  353 + LymsOrder order=new LymsOrder();
  354 + order.setTransactionId(transactionId);
  355 + order.setPayTime(new Date());
  356 + lymsOrderService.update(order, wrapper);
  357 + }else{
  358 + result.put("return_code","SUCCESS>");
  359 + result.put("return_msg","OK");
  360 + outResult(response, XmlUtil.mapToXml(result));
  361 + log.info("已经处理过,重复通知!");
  362 + return;
  363 + }
  364 + //再次查询
  365 + lymsOrders = lymsOrderService.getOne(lymsOrderWrapper);
  366 + boolean flag = lymsOrderService.handleOrder(lymsOrders,true);
356 367 if (flag)
357 368 {
358   - result.put("return_code","<![CDATA[SUCCESS]]>");
359   - result.put("return_msg","<![CDATA[OK]]>");
  369 + result.put("return_code","SUCCESS>");
  370 + result.put("return_msg","OK");
360 371 }
361 372 }
362 373 outResult(response, XmlUtil.mapToXml(result));
... ... @@ -383,6 +394,7 @@
383 394 try {
384 395 pw = response.getWriter();
385 396 pw.print(content);
  397 + log.info("response pay "+content);
386 398 log.info("response pay complete.");
387 399 } catch (IOException e) {
388 400 log.error("response pay write exception.", e);
389 401  
... ... @@ -462,13 +474,13 @@
462 474 LambdaQueryWrapper<LymsOrder> wrapper = new QueryWrapper().lambda();
463 475 wrapper.eq(LymsOrder::getOrderno, mchOrderNo);
464 476 List<LymsOrder> lymsOrders = lymsOrderService.list(wrapper);
465   - if (CollectionUtils.isNotEmpty(lymsOrders)) {
  477 + if (CollectionUtils.isEmpty(lymsOrders)) {
466 478 log.warn("local orderno not exists,payOrderId : {},orderno : {}", payOrderId, mchOrderNo);
467 479 return false;
468 480 }
469 481 // 核对金额
470   - if (lymsOrders.get(0).getPrice() != Integer.parseInt(amount)) {
471   - log.warn("Inconsistent payment amount ,dbPayPrice : {},payPrice : {}", lymsOrders.get(0).getPrice(), amount);
  482 + if (lymsOrders.get(0).getAmount() != Integer.parseInt(amount)) {
  483 + log.warn("Inconsistent payment amount ,dbPayPrice : {},payPrice : {}", lymsOrders.get(0).getAmount(), amount);
472 484 return false;
473 485 }
474 486 return true;
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/PatientController.java View file @ 3ec16c5
... ... @@ -1003,7 +1003,8 @@
1003 1003 patient.setPpasswd(DigestUtils.md5DigestAsHex(patient.getPpasswd().getBytes()));
1004 1004 }
1005 1005 //注册过程中
1006   - if (StringUtils.isEmpty(patient.getCode())) {
  1006 + if (StringUtils.hasText(patient.getCode())) {
  1007 +
1007 1008 patient.setOpenid(WeiXinUtil.getWxOpenId(patient.getCode()));
1008 1009 }
1009 1010 boolean f = lymsPatientService.save(patient);
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsOrder.java View file @ 3ec16c5
... ... @@ -61,7 +61,7 @@
61 61 * 价格
62 62 */
63 63 @TableField(value = "price")
64   - private int price;
  64 + private Integer price;
65 65 /**
66 66 * 购买数量
67 67 */
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPatient.java View file @ 3ec16c5
... ... @@ -360,24 +360,66 @@
360 360  
361 361 @Override
362 362 public String toString() {
363   - StringBuilder sb = new StringBuilder();
364   - sb.append(getClass().getSimpleName());
365   - sb.append(" [");
366   - sb.append("Hash = ").append(hashCode());
367   - sb.append(", id=").append(id);
368   - sb.append(", pname=").append(pname);
369   - sb.append(", idno=").append(idno);
370   - sb.append(", ppasswd=").append(ppasswd);
371   - sb.append(", sex=").append(sex);
372   - sb.append(", ccnt=").append(ccnt);
373   - sb.append(", hxid=").append(hxid);
374   - sb.append(", createdby=").append(createdby);
375   - sb.append(", createdtime=").append(createdtime);
376   - sb.append(", updatedby=").append(updatedby);
377   - sb.append(", updatedtime=").append(updatedtime);
378   - sb.append(", serialVersionUID=").append(serialVersionUID);
379   - sb.append("]");
380   - return sb.toString();
  363 + return "LymsPatient{" +
  364 + "id=" + id +
  365 + ", pname='" + pname + '\'' +
  366 + ", idno='" + idno + '\'' +
  367 + ", ppasswd='" + ppasswd + '\'' +
  368 + ", birth='" + birth + '\'' +
  369 + ", openid='" + openid + '\'' +
  370 + ", gzopenid='" + gzopenid + '\'' +
  371 + ", sex=" + sex +
  372 + ", ccnt=" + ccnt +
  373 + ", hxid='" + hxid + '\'' +
  374 + ", islogin=" + islogin +
  375 + ", headimg='" + headimg + '\'' +
  376 + ", createdby=" + createdby +
  377 + ", createdtime=" + createdtime +
  378 + ", updatedby='" + updatedby + '\'' +
  379 + ", updatedtime=" + updatedtime +
  380 + ", enrolmentPhone='" + enrolmentPhone + '\'' +
  381 + ", nationality='" + nationality + '\'' +
  382 + ", nation='" + nation + '\'' +
  383 + ", marriageType='" + marriageType + '\'' +
  384 + ", registerType='" + registerType + '\'' +
  385 + ", resideType='" + resideType + '\'' +
  386 + ", education='" + education + '\'' +
  387 + ", jobType='" + jobType + '\'' +
  388 + ", jobName='" + jobName + '\'' +
  389 + ", resideProv='" + resideProv + '\'' +
  390 + ", resideCity='" + resideCity + '\'' +
  391 + ", resideRegin='" + resideRegin + '\'' +
  392 + ", resideAddres='" + resideAddres + '\'' +
  393 + ", registerProv='" + registerProv + '\'' +
  394 + ", registerCity='" + registerCity + '\'' +
  395 + ", registerRegin='" + registerRegin + '\'' +
  396 + ", registerAddres='" + registerAddres + '\'' +
  397 + ", medicalCard='" + medicalCard + '\'' +
  398 + ", bookbuilDoctor='" + bookbuilDoctor + '\'' +
  399 + ", bookbuilHospital='" + bookbuilHospital + '\'' +
  400 + ", bookbuilType='" + bookbuilType + '\'' +
  401 + ", xbs='" + xbs + '\'' +
  402 + ", xbsQt='" + xbsQt + '\'' +
  403 + ", jws='" + jws + '\'' +
  404 + ", jwsQt='" + jwsQt + '\'' +
  405 + ", grs='" + grs + '\'' +
  406 + ", grsInfo='" + grsInfo + '\'' +
  407 + ", ywgms='" + ywgms + '\'' +
  408 + ", ywgmsQt='" + ywgmsQt + '\'' +
  409 + ", yjs='" + yjs + '\'' +
  410 + ", yjsQt='" + yjsQt + '\'' +
  411 + ", shengys='" + shengys + '\'' +
  412 + ", shengysInfo='" + shengysInfo + '\'' +
  413 + ", jzs='" + jzs + '\'' +
  414 + ", jzsInfo='" + jzsInfo + '\'' +
  415 + ", bookbuilDate=" + bookbuilDate +
  416 + ", type=" + type +
  417 + ", loginType=" + loginType +
  418 + ", code='" + code + '\'' +
  419 + ", synthesisQuery='" + synthesisQuery + '\'' +
  420 + ", startCreatedtime='" + startCreatedtime + '\'' +
  421 + ", endCreatedtime='" + endCreatedtime + '\'' +
  422 + '}';
381 423 }
382 424 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsOrderService.java View file @ 3ec16c5
... ... @@ -14,7 +14,13 @@
14 14 */
15 15 public interface LymsOrderService extends IService<LymsOrder> {
16 16  
17   - boolean handleOrder(LymsOrder lymsOrder);
  17 + /**
  18 + *
  19 + * @param lymsOrder
  20 + * @param isPayCallBack 是否支付回调
  21 + * @return
  22 + */
  23 + boolean handleOrder(LymsOrder lymsOrder,boolean isPayCallBack);
18 24  
19 25 List<OrderListResponse> queryOrderList(OrderRequest orderRequest);
20 26  
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java View file @ 3ec16c5
... ... @@ -335,13 +335,13 @@
335 335  
336 336 //查找两天内支付的订单
337 337 QueryWrapper<LymsOrder> queryWrapper = new QueryWrapper<>();
338   - queryWrapper.eq("pid",patient.getIdno());
  338 + queryWrapper.eq("pid",patient.getId());
339 339 queryWrapper.gt("status",0);
340 340 queryWrapper.gt("createdtime", DateUtil.addDay(instDate,-2));
341 341 List<LymsOrder> list = lymsOrderService.list(queryWrapper);
342 342  
343 343 if(CollectionUtils.isNotEmpty(list)){
344   - lymsOrderService.handleOrder(list.get(0));
  344 + lymsOrderService.handleOrder(list.get(0),false);
345 345 }else{
346 346 //不是通过订单生成的问诊卡
347 347 for (int i = 0; i < patient.getCcnt() && Objects.nonNull(patient.getCcnt()); i++) {
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsOrderServiceImpl.java View file @ 3ec16c5
... ... @@ -46,7 +46,7 @@
46 46  
47 47 @Override
48 48 @Transactional(rollbackFor = Exception.class)
49   - public boolean handleOrder(LymsOrder lymsOrders) {
  49 + public boolean handleOrder(LymsOrder lymsOrders,boolean isPayCallBack) {
50 50 Date currentTime = new Date();
51 51 //说明是
52 52 if (lymsOrders != null) {
... ... @@ -60,8 +60,8 @@
60 60 lymsOrders.setServiceEndTime(DateUtil.addMonth(currentTime,lymsOrders.getCnt()));
61 61 lymsOrders.setUpdatedtime(new Date());
62 62 updateById(lymsOrders);
63   - //pcid不为空,说明是续期购买,直接生成生成问诊卡
64   - if(lymsOrders.getPcid() != null){
  63 + //pcid不为空,说明是续期购买,直接生成生成问诊卡 或者his上传
  64 + if(lymsOrders.getPcid() != null || !isPayCallBack){
65 65  
66 66 //数量代表购买几个月
67 67 int months = lymsOrders.getCnt();
68 68  
... ... @@ -82,11 +82,10 @@
82 82 lymsTcardMapper.insert(tcard);
83 83 }
84 84 }
85   -
86   -
  85 + //更新患者的卡的数量,患者信息上的问诊卡数量其实没啥意义了
  86 + lymsPatientMapper.updatePatientCcnt(lymsOrders.getCnt()*Constant.CARD_COUNT_MONTH,patient.getId());
87 87 }
88   - //更新患者的卡的数量,患者信息上的问诊卡数量其实没啥意义了
89   - lymsPatientMapper.updatePatientCcnt(lymsOrders.getCnt()*Constant.CARD_COUNT_MONTH,patient.getId());
  88 +
90 89 return true;
91 90 }
92 91  
talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/StringUtil.java View file @ 3ec16c5
... ... @@ -51,7 +51,7 @@
51 51 {
52 52 try
53 53 {
54   - return String.format("%s%s%06d", "LYMS", DateUtil.getSeqString(), IdWorker.getFlowIdWorkerInstance().nextId());
  54 + return String.format("%s%s%06d", "L", DateUtil.getSeqString(), IdWorker.getFlowIdWorkerInstance().nextId());
55 55 }catch (Exception e){
56 56  
57 57 }
... ... @@ -65,7 +65,7 @@
65 65 {
66 66 try
67 67 {
68   - return String.format("%s%s%06d", "WEIX", DateUtil.getSeqString(), IdWorker.getFlowIdWorkerInstance().nextId());
  68 + return String.format("%s%s%06d", "W", DateUtil.getSeqString(), IdWorker.getFlowIdWorkerInstance().nextId());
69 69 }catch (Exception e){
70 70  
71 71 }
... ... @@ -140,6 +140,10 @@
140 140 }
141 141 }
142 142 return result;
  143 + }
  144 +
  145 + public static void main(String[] args) {
  146 + System.out.println(getUniqueNo());
143 147 }
144 148 }