jk-GitHub-coder 4 лет назад
Родитель
Сommit
8a4219ece7

+ 17 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/AppUserInfoController.java

@@ -1,11 +1,13 @@
 package com.platform.yijia.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.platform.yijia.param.request.AppUserInfoRequest;
 import com.platform.yijia.pojo.AppUserInfo;
 import com.platform.yijia.service.AppUserInfoService;
 import com.platform.yijia.utils.CodeMsg;
 import com.platform.yijia.utils.ResultData;
+import com.platform.yijia.utils.weixinapp.AesDecryptUtil;
 import com.platform.yijia.utils.weixinapp.WeiXinUserUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -32,13 +34,27 @@ public class AppUserInfoController {
      * @return
      */
     @ResponseBody
-    @RequestMapping("/getSessionKeyAndOpenID")
+    @RequestMapping(value = "/getSessionKeyAndOpenID")
     public Map<String, Object> getSessionKeyAndOpenID(@RequestParam("code") String code){
         //获取session_key 和 openid
         return WeiXinUserUtil.getUserSessionKeyAndOpenID(appId, appSecret, code);
     }
 
     /*
+     * 解密 encryptedData
+     * @param sessionKey
+     * @param encryptedData
+     * @param iv
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/decryptEncryptedData", method = RequestMethod.POST, consumes = "application/json")
+    public String decryptEncryptedData(@RequestBody JSONObject jsonObject){
+        logger.info("解密获取手机号前台传入参数:" +jsonObject.toString());
+        return AesDecryptUtil.decryptEncryptedData(jsonObject.get("encryptedData").toString(), jsonObject.get("sessionKey").toString(), jsonObject.get("iv").toString(), "UTF-8").toString();
+    }
+
+    /*
      * 添加用户信息
      * @param request
      * @return

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/PayOrderMapper.java

@@ -50,6 +50,9 @@ public interface PayOrderMapper {
      */
     List<Map> selectOilGunNoAndOilPrice(Map<String, Object> map);
 
+    //查询加油员
+    List<Map> selectPersonelName(Map<String, Object> map);
+
 
     /**
      * This method was generated by MyBatis Generator.

+ 14 - 4
YijiaRestful/src/main/java/com/platform/yijia/service/impl/PayOrderServiceImpl.java

@@ -39,7 +39,7 @@ public class PayOrderServiceImpl implements PayOrderService {
 
         //存放查询用户信息
         AppUserInfo appUserInfo = new AppUserInfo();
-        //存放查询客户已存在信息
+        //存放客户信息
         CustomerManage customerManage = new CustomerManage();
 
         //订单规则 时间+6位随机数
@@ -52,7 +52,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         String ordNo=System.nanoTime()+result;
         payOrder.setOrderNo(ordNo);
 
-        payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt());  //应收金额
+
         payOrder.setDiscountAmt(payOrderRequest.getDiscountAmt());  //优惠金额
         payOrder.setDiscountCouponAmt(payOrderRequest.getDiscountCouponAmt());  //优惠劵金额
         payOrder.setDiscountCoupon(payOrderRequest.getDiscountCoupon());        //优惠券
@@ -71,7 +71,6 @@ public class PayOrderServiceImpl implements PayOrderService {
         }else if(StringUtils.isNotBlank(payOrderRequest.getUserType())&& payOrderRequest.getUserType().equals("2")){
             payOrder.setPayWay("03");
         }
-        //payOrder.setPayDate(new Date());                        //支付时间
         payOrder.setCreatedDate(new Date());                    //创建时间
         payOrder.setOrderType(payOrderRequest.getOrderType());  //订单类型
         payOrder.setOilGun(payOrderRequest.getOilGun());        //油枪号
@@ -80,7 +79,8 @@ public class PayOrderServiceImpl implements PayOrderService {
         params.put("oliGunNo", payOrderRequest.getOilGun());
         params.put("stationId", payOrderRequest.getStationId());
         String oilPersonnel = "";
-        //使用list原因:(当时无班结管理先用list处理)一个枪号对应多个加油员场景
+        //使用list原因:一个枪号对应多个加油员场景
+        //List<Map> mapResultList = payOrderMapper.selectPersonelName(params);
         List<Map> mapResultList = payOrderMapper.selectOilGunNoAndOilPrice(params);
         if(mapResultList != null && mapResultList.size() > 0){
             for (Map per : mapResultList){
@@ -95,6 +95,16 @@ public class PayOrderServiceImpl implements PayOrderService {
                 payOrder.setStationName(mapResultList.get(0).get("stationName").toString());        //油站名称
             }
         }
+
+        Double receivableAmt = payOrderRequest.getReceivableAmt();  //获取应收金额
+        payOrder.setReceivableAmt(receivableAmt);
+//        Double oilPrice = payOrderRequest.getOilPrice();            //获取油价
+//        payOrder.setOilPirce(oilPrice.toString());
+//        //计算加油升数
+//        if(receivableAmt != null && oilPrice != null){
+//            payOrder.setOrderLiters(recKonOrderLiters(receivableAmt.toString(), oilPrice.toString(), 2));
+//        }
+
         //根据油品名称和油站id获取当前油品调价信息
         params.put("oilName", payOrderRequest.getOilName());
         List<Map> oilPriceAdjustList = payOrderMapper.selectOilPriceAdjust(params);

+ 6 - 0
YijiaRestful/src/main/java/com/platform/yijia/utils/weixinapp/AesDecryptUtil.java

@@ -1,9 +1,12 @@
 package com.platform.yijia.utils.weixinapp;
 
+import com.platform.yijia.controller.AppUserInfoController;
 import net.sf.json.JSON;
 import net.sf.json.JSONObject;
 import org.apache.commons.codec.binary.Base64;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
@@ -22,6 +25,8 @@ import java.security.spec.InvalidParameterSpecException;
  * @date 2019-11-12
  */
 public class AesDecryptUtil {
+
+    private static Logger logger =(Logger) LoggerFactory.getLogger(AesDecryptUtil.class);
     //BouncyCastle: 开源的加解密解决方案 网址:http://www.bouncycastle.org/
     static {
         Security.addProvider(new BouncyCastleProvider());
@@ -57,6 +62,7 @@ public class AesDecryptUtil {
             if (resultBytes !=null && resultBytes.length >0){
 //                resultStr = JSON.parseObject(str);
                 resultStr = JSONObject.fromObject(new String(resultBytes, encodingFormat));
+                logger.info("解密结果:" + resultStr.toString());
             }
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();

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

@@ -131,6 +131,25 @@
     print_count, car_no, customer_phone, customer_grade, oil_type
   </sql>
 
+  <!-- 查询加油员-->
+  <select id="selectPersonelName" parameterType="map" resultType="map">
+    SELECT
+        A.personnel_id      AS personnelId,
+        A.personnel_name    AS personelName,
+        A.station_name      AS stationName
+    FROM
+        station_personnel AS A
+    <where>
+      <if test="oliGunNo != null and oliGunNo !=''">
+        FIND_IN_SET(#{oliGunNo}, A.gun_no)
+      </if>
+      <if test="stationId !=null and stationId !=''">
+        AND A.station_id = #{stationId}
+      </if>
+    </where>
+  </select>
+
+
   <!-- 根据油品名称和油站查询油枪编号和价格 -->
   <select id="selectOilGunNoAndOilPrice" parameterType="map" resultType="map">
     SELECT