jk-GitHub-coder 4 years ago
parent
commit
3ddd719fbf

+ 76 - 2
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -347,6 +347,7 @@ public class ElectronicMembershipCardController {
                     payOrder.setPayDate(new Date());    //支付时间
                     payOrder.setReceivedAmt(Double.valueOf(amt));
                     payOrder.setDzkAmt(Double.valueOf(amt));
+                    //payOrder.setTransactionId(ordNo);
                     payOrderService.getUpdatePayOrder(payOrder);
                     resultMap.put("payType","dzk");
                     //插入集团客户信息
@@ -472,8 +473,8 @@ public class ElectronicMembershipCardController {
                     resultData = ResultData.success(CodeMsg.SUCCESS);
                     //打印小票
                     //this.printReceipt(payOrder);
-                    Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
-                    PosPrinterUtil.sendPosPrintDirectMessage(infoMap);
+                    //pos机打印小票
+                    this.posPrintReceipt(payOrder);
                 }else {
                     resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH);
                 }
@@ -490,6 +491,79 @@ public class ElectronicMembershipCardController {
         }
     }
 
+    //POS机打印小票
+    public void posPrintReceipt(PayOrder payOrder){
+        Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
+        Map<String, Object> m = new HashMap<>();
+        if(payOrder.getTransactionId() !=null){
+            m.put("transactionId", payOrder.getTransactionId());
+        }
+        //ordNo
+        if(infoMap !=null && infoMap.containsKey("orderNo") && infoMap.get("orderNo") !=null){
+            m.put("ordNo", infoMap.get("orderNo").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("amt") && infoMap.get("amt") !=null){
+            m.put("amt", infoMap.get("amt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("receivableAmt") && infoMap.get("receivableAmt") !=null){
+            m.put("receivableAmt", infoMap.get("receivableAmt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("discountAmt") && infoMap.get("discountAmt") !=null){
+            m.put("discountAmt", infoMap.get("discountAmt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilName") && infoMap.get("oilName") !=null){
+            m.put("oilName", infoMap.get("oilName").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilGun") && infoMap.get("oilGun") !=null){
+            m.put("oilGun", infoMap.get("oilGun").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("createdDate") && infoMap.get("createdDate") !=null){
+            //格式化日期
+            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String createdDate = sdf.format(infoMap.get("createdDate"));
+            m.put("createdDate", createdDate);
+        }
+        if(infoMap !=null && infoMap.containsKey("payDate") && infoMap.get("payDate") !=null){
+            //格式化日期
+            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String payDate = sdf.format(infoMap.get("payDate"));
+            m.put("payDate", payDate);
+        }
+        if(infoMap !=null && infoMap.containsKey("payType") && infoMap.get("payType") !=null){
+            String payType = "";
+            if(infoMap.get("payType").equals("wx")){
+                payType ="微信";
+            }
+            if(infoMap.get("payType").equals("dzk")){
+                payType ="电子卡";
+            }
+            m.put("payType", payType);
+        }
+        if(infoMap !=null && infoMap.containsKey("mobilePhone") && infoMap.get("mobilePhone") !=null){
+            String phone =infoMap.get("mobilePhone")+"";
+            //手机号中间四位****代替
+            phone = phone.substring(0, 3) + "****" + phone.substring(7, phone.length());
+            m.put("mobilePhone", phone);
+        }
+        if(infoMap !=null && infoMap.containsKey("orderLiters") && infoMap.get("orderLiters") !=null){
+            m.put("orderLiters", infoMap.get("orderLiters").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("stationName") && infoMap.get("stationName") !=null){
+            m.put("stationName", infoMap.get("stationName").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilPirce") && infoMap.get("oilPirce") !=null){
+            m.put("oilPirce", infoMap.get("oilPirce").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("stationId") && infoMap.get("stationId") !=null){
+            m.put("stationId", infoMap.get("stationId").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("orderType") && infoMap.get("orderType") !=null){
+            m.put("orderType", infoMap.get("orderType").toString());
+        }
+        PosPrinterUtil.sendPosPrintDirectMessage(m);
+    }
+
+
     /**
      * 打印小票
      */

+ 74 - 3
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -410,7 +410,7 @@ public class PayController {
     @RequestMapping(value = "/getCallback", consumes = "application/json", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public void getCallback(@RequestBody JSONObject request){
+    public void getCallback(@RequestBody JSONObject request) throws ParseException {
         logger.info("-------------------------------回调开始----------------------------------------------");
         logger.info("回调返回过来的参数"+request);
         logger.info("ordNo信息:" + request.get("ordNo").toString());
@@ -426,7 +426,7 @@ public class PayController {
         String ordNo=request.get("ordNo").toString();//商户生成的订单号
         String amt=request.get("amt").toString();//金额
         String buyerId=request.get("buyerId").toString();//用户登录
-        String transactionId=request.get("transactionId").toString();//用户登录
+        String transactionId=request.get("transactionId").toString();
         String drType=request.get("drType").toString();//借贷记标识 1-借,2-贷,3-其他
         String payType=request.get("payType").toString();//对订单的描述,取值范围:WECHAT:微信,ALIPAY:支付宝,UNIONPAY:
         String payBank=request.get("payBank").toString();//付款银行银行编码,例如 ICBC
@@ -546,7 +546,9 @@ public class PayController {
                     payOrder.setStatus("1");
                     payOrder.setPayType("wx");
                     payOrder.setWxAmt(Double.valueOf(amt));
-                    payOrder.setPayDate(new Date());    //支付时间
+                    //finishTime
+                    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    payOrder.setPayDate(sdf.parse(finishTime));    //支付时间
                     payOrder.setReceivedAmt(Double.valueOf(settleAmt)); //settleAmt商家入账金额
                     //修改订单状态
                     int count = payOrderService.getUpdatePayOrder(payOrder);
@@ -745,6 +747,75 @@ public class PayController {
         return customerManage;
     }
 
+    //POS机打印小票
+    public void posPrintReceipt(PayOrder payOrder){
+        Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
+        Map<String, Object> m = new HashMap<>();
+        if(payOrder.getTransactionId() !=null){
+            m.put("transactionId", payOrder.getTransactionId());
+        }
+        if(infoMap !=null && infoMap.containsKey("amt") && infoMap.get("amt") !=null){
+            m.put("amt", infoMap.get("amt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("receivableAmt") && infoMap.get("receivableAmt") !=null){
+            m.put("receivableAmt", infoMap.get("receivableAmt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("discountAmt") && infoMap.get("discountAmt") !=null){
+            m.put("discountAmt", infoMap.get("discountAmt").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilName") && infoMap.get("oilName") !=null){
+            m.put("oilName", infoMap.get("oilName").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilGun") && infoMap.get("oilGun") !=null){
+            m.put("oilGun", infoMap.get("oilGun").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("createdDate") && infoMap.get("createdDate") !=null){
+            //格式化日期
+            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String createdDate = sdf.format(infoMap.get("createdDate"));
+            m.put("createdDate", createdDate);
+        }
+        if(infoMap !=null && infoMap.containsKey("payDate") && infoMap.get("payDate") !=null){
+            //格式化日期
+            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String payDate = sdf.format(infoMap.get("payDate"));
+            m.put("payDate", payDate);
+        }
+        if(infoMap !=null && infoMap.containsKey("payType") && infoMap.get("payType") !=null){
+            String payType = "";
+            if(infoMap.get("payType").equals("wx")){
+                payType ="微信";
+            }
+            if(infoMap.get("payType").equals("dzk")){
+                payType ="电子卡";
+            }
+            m.put("payType", payType);
+        }
+        if(infoMap !=null && infoMap.containsKey("mobilePhone") && infoMap.get("mobilePhone") !=null){
+            String phone =infoMap.get("mobilePhone")+"";
+            //手机号中间四位****代替
+            phone = phone.substring(0, 3) + "****" + phone.substring(7, phone.length());
+            m.put("mobilePhone", phone);
+        }
+        if(infoMap !=null && infoMap.containsKey("orderLiters") && infoMap.get("orderLiters") !=null){
+            m.put("orderLiters", infoMap.get("orderLiters").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("stationName") && infoMap.get("stationName") !=null){
+            m.put("stationName", infoMap.get("stationName").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("oilPirce") && infoMap.get("oilPirce") !=null){
+            m.put("oilPirce", infoMap.get("oilPirce").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("stationId") && infoMap.get("stationId") !=null){
+            m.put("stationId", infoMap.get("stationId").toString());
+        }
+        if(infoMap !=null && infoMap.containsKey("orderType") && infoMap.get("orderType") !=null){
+            m.put("orderType", infoMap.get("orderType").toString());
+        }
+        PosPrinterUtil.sendPosPrintDirectMessage(m);
+    }
+
+
     /**
      * 打印小票
      */

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/PayOrder.java

@@ -75,4 +75,7 @@ public class PayOrder implements Serializable {
     private String endTimeQOQ;      //环比结束时间
     private AppUserInfo appUserInfo;
 
+    //打印小票所需要的流水单号
+    private String transactionId;
+
 }

+ 2 - 2
YijiaRestful/src/main/java/com/platform/yijia/utils/PosPrinterUtil.java

@@ -29,7 +29,8 @@ public class PosPrinterUtil {
 
     private static Logger logger =(Logger) LoggerFactory.getLogger(PosPrinterUtil.class);
     //POS机打印订单小票地址 http://www.huijy.net/mqapi/sendPosPrintDirectMessage
-    public static final String SEND_POS_PRINT_MESSAGE_URL = "http://www.huijy.net/mqapi/sendPosPrintDirectMessage";
+    //mqapi/sendPosPrintTopicMessageAll
+    public static final String SEND_POS_PRINT_MESSAGE_URL = "http://www.huijy.net/mqapi/sendPosPrintTopicMessageAll";
 
     //{"orderId":2061,"orderNo":"11900429834492007021278","oilGun":"1","oilName":"92#","consumerId":24,"consumer":"M","amt":0.01,"stationId":1,
     // "status":"1","orderLiters":"0.0","payType":"wx","payWay":"03","payDate":"May 6, 2021 5:16:25 PM","oilPersonnel":"小谁,wwew",
@@ -46,7 +47,6 @@ public class PosPrinterUtil {
         list.add(args);
         Map<String, Object> map = new HashMap<>();
         map.put("contentData", list);
-        //map.put("contentDataPrint", list);
         params.put("messageContent", map);
         logger.info("开始推送消息:" +JSONObject.toJSONString(params));
         //创建请求

+ 1 - 0
YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml

@@ -973,6 +973,7 @@
         A.receivable_amt        AS receivableAmt,
         A.discount_amt          AS discountAmt,
         A.created_date          AS createdDate,
+        A.pay_date              AS payDate,
         A.consumer_id           AS consumerId,
         B.user_type 			AS userType,
         B.registe_date          AS registeDate,