Forráskód Böngészése

公众号油站信息

jk-GitHub-coder 4 éve
szülő
commit
cabd699641

+ 13 - 7
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -161,6 +161,18 @@ public class PayController {
                     //reqData.put("discountAmt", ""); //参与优惠金额
                     //reqData.put("unDiscountAmt", ""); //不参与优惠金额
                     reqData.put("payType", "WECHAT"); //支付渠道
+                    Map<String, String> stationAppIdAndAppSecret = stationService.getStationAppIdAndAppSecret(Integer.valueOf(payInfoRequest.getStationId()));
+                    if(stationAppIdAndAppSecret !=null && stationAppIdAndAppSecret.containsKey("appId") && stationAppIdAndAppSecret.containsKey("mno")){
+                        if(userType.equals("1")){
+                            reqData.put("subAppid", stationAppIdAndAppSecret.get("gzhAppId")); //微信公众号
+                            logger.info("支付子商户:"+ stationAppIdAndAppSecret.get("gzhAppId"));
+                        }else if(userType.equals("2")){
+                            reqData.put("subAppid", stationAppIdAndAppSecret.get("appId")); //微信小程序
+                            logger.info("支付子商户:"+ stationAppIdAndAppSecret.get("appId"));
+                        }
+                        reqData.put("mno", stationAppIdAndAppSecret.get("mno")); //商户编号
+                        logger.info("商户编号:"+ stationAppIdAndAppSecret.get("mno"));
+                    }
                     if(userType.equals("1")){
                         //1 是公众号
                         reqData.put("payWay", "02"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
@@ -183,13 +195,7 @@ public class PayController {
                     reqData.put("trmIp", "172.16.2.1");//商家ip地址
                     // reqData.put("customerIp", ""); //持卡人ip地址,银联js支付时必传
 
-                    Map<String, String> stationAppIdAndAppSecret = stationService.getStationAppIdAndAppSecret(Integer.valueOf(payInfoRequest.getStationId()));
-                    if(stationAppIdAndAppSecret !=null && stationAppIdAndAppSecret.containsKey("appId") && stationAppIdAndAppSecret.containsKey("mno")){
-                        reqData.put("subAppid", stationAppIdAndAppSecret.get("appId")); //微信子公众号
-                        reqData.put("mno", stationAppIdAndAppSecret.get("mno")); //商户编号
-                        logger.info("支付子商户:"+ stationAppIdAndAppSecret.get("appId"));
-                        logger.info("商户编号:"+ stationAppIdAndAppSecret.get("mno"));
-                    }
+
                     //reqData.put("outFrontUrl", ""); //js 支付,前台 成功通知地址
                     //reqData.put("outFrontFailUrl", ""); //js 支付,前台 事变通知地址
                     reqData.put("notifyUrl", "https://www.huijy.net/api/getCallback"); //回调地址

+ 18 - 8
YijiaRestful/src/main/java/com/platform/yijia/controller/StationController.java

@@ -53,7 +53,7 @@ public class StationController {
                 stationRequest.setAppId(appId);
                 //调用接口 根据坐标筛选距离最近的加油站
                 StationInfoVo stationInfoVo = stationService.stationInfoList(stationRequest);
-                 resultData=ResultData.success(stationInfoVo);
+                resultData=ResultData.success(stationInfoVo);
             }else{
                 resultData=ResultData.error(CodeMsg.REQUEST_FAIL);
             }
@@ -67,15 +67,25 @@ public class StationController {
      */
     @RequestMapping(value = "/getGzhStationList", method = RequestMethod.GET)
     @ResponseBody
-    public String getStationList(@RequestParam String appId){
+    public String getGzhStationList(@RequestParam String stationLongitude,String stationLatitude,Integer pageNum,Integer pageSize, String appId){
         Gson gson =new Gson();
+        //返回结果集
         ResultData resultData=null;
-        if(appId !=null){
-            StationInfo stationInfo =new StationInfo();
-            stationInfo.setGzhAppId(appId);
-            List<StationInfo> stationInfoList = stationService.getStationList(stationInfo);
-            resultData = ResultData.success(stationInfoList);
-        }else {
+        if(stationLongitude!=null && stationLatitude !=null){
+            if(StringUtils.isNotBlank(stationLongitude)&&StringUtils.isNotBlank(stationLatitude)){
+                StationRequest stationRequest=new StationRequest();
+                stationRequest.setStationLatitude(stationLatitude);
+                stationRequest.setStationLongitude(stationLongitude);
+                stationRequest.setPageNum(pageNum);
+                stationRequest.setPageSize(pageSize);
+                stationRequest.setAppId(appId);
+                //调用接口 根据坐标筛选距离最近的加油站
+                StationInfoVo stationInfoVo = stationService.gzhStationInfoList(stationRequest);
+                resultData=ResultData.success(stationInfoVo);
+            }else{
+                resultData=ResultData.error(CodeMsg.REQUEST_FAIL);
+            }
+        }else{
             resultData=ResultData.error(CodeMsg.REQUEST_FAIL);
         }
         return gson.toJson(resultData);

+ 4 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/StationService.java

@@ -12,6 +12,10 @@ public interface StationService {
 
     //跟据油站插叙有站列表 查询油站列表
     StationInfoVo stationInfoList(StationRequest stationRequest);
+
+    //跟据油站插叙有站列表 查询油站列表 公众号
+    StationInfoVo gzhStationInfoList(StationRequest stationRequest);
+
     //查询油站列表
     List<StationInfo> getStationList(StationInfo stationInfo);
     //添加油站信息

+ 40 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/StationServiceImpl.java

@@ -61,6 +61,46 @@ public class StationServiceImpl implements StationService {
     }
 
 
+    @Override
+    public StationInfoVo gzhStationInfoList(StationRequest stationRequest) {
+        //根据传过来的坐标查询数据
+        List<StationInfoResponse> distanceAndResidueSeat = new ArrayList<>();
+        StationInfoExample example=new StationInfoExample();
+        if(StringUtils.isNotBlank(stationRequest.getStationName())){
+            example.or().andStationNameLike(stationRequest.getStationName());
+
+        }
+        if(StringUtils.isNotBlank(stationRequest.getAppId())){
+            example.or().andGzhAppIdEqualTo(stationRequest.getAppId());
+        }
+        // 数据库查询门店数据
+        List<StationInfo> stationInfolist = stationInfoMapper.selectByExample(example);
+        // 入参坐标拼接
+        String coordinate = stationRequest.getStationLatitude()+","+stationRequest.getStationLongitude();
+        if(StringUtils.isNotBlank(stationRequest.getStationLatitude()) && StringUtils.isNotBlank(stationRequest.getStationLongitude())){
+            //根据地址坐标计算距离
+            List<StationInfoResponse> stationInfos = computeDistance(coordinate, stationInfolist);
+            //根据距离排序
+            distanceAndResidueSeat = getDistanceAndResidueSeat(stationInfos);
+        }
+        StationInfoVo stationInfoVo=new StationInfoVo();
+        if(stationRequest.getPageSize()==0){
+            stationInfoVo.setPageSize(10);
+        }else{
+            stationInfoVo.setPageSize(stationRequest.getPageSize());
+        }
+        stationInfoVo.setPageNum(stationRequest.getPageNum());
+        if(distanceAndResidueSeat!=null&&distanceAndResidueSeat.size()>0){
+            if( distanceAndResidueSeat.size()<=stationInfoVo.getPageNum()*stationInfoVo.getPageSize() || distanceAndResidueSeat.size()>stationInfoVo.getPageNum()*stationInfoVo.getPageSize()){
+                List<StationInfoResponse> ss= PageUtil.splitList(distanceAndResidueSeat,stationRequest.getPageSize(),stationRequest.getPageNum());
+                stationInfoVo.setStationInfoResponseList(ss);
+                stationInfoVo.setTotal(ss.size());
+            }
+        }
+        return stationInfoVo;
+    }
+
+
     /**
      * 根据地址坐标计算距离
      * @return

+ 6 - 4
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -441,11 +441,13 @@
   <!--查询油站小程序AppId和AppSecret-->
   <select id="getStationAppIdAndAppSecret" parameterType="Integer" resultType="Map">
     SELECT
-    mno             AS mno,
-    app_id          AS appId,
-    app_secret      AS appSecret
+      mno             AS mno,
+      app_id          AS appId,
+      app_secret      AS appSecret,
+      gzh_app_id      AS gzhAppId,
+      gzh_app_secret  AS gzhAppSecret
     FROM
-    sys_dept
+        sys_dept
     <where>
       <if test="stationId !='' and stationId != null" >
         dept_id = #{stationId}