Jelajahi Sumber

门禁和卡充值的部分整合

yq 2 tahun lalu
induk
melakukan
1b3e1d4b5d

+ 0 - 17
src/main/java/com/usky/dxtop/controller/web/business/TestController.java

@@ -30,23 +30,6 @@ public class TestController {
     @Autowired
     private OrderService orderService;
 
-    @GetMapping("/cardLoss")
-    public String testCardLoss(@RequestParam String cid, @RequestParam String cno, @RequestParam String msg){
-        TreeMap<String, String> param = OneCardApi.cardLoss(cid, cno, msg);
-        Map<String,String> map = new HashMap<>();
-        map.put("Content-Type","application/x-www-form-urlencoded");
-        String result = HttpUtils.sendPost(OneCardApi.CARD_LOSS_url,OneCardApi.joinParam(param), map);
-        return result;
-    }
-    @GetMapping("/cardReissue")
-    public String testCardReissue(@RequestParam String cid,@RequestParam String cidNew){
-        TreeMap<String, String> param = OneCardApi.cardReissue(cid, cidNew);
-        Map<String,String> map = new HashMap<>();
-        map.put("Content-Type","application/x-www-form-urlencoded");
-        String result = HttpUtils.sendPost(OneCardApi.CARD_REISSUE,OneCardApi.joinParam(param), map);
-        return result;
-    }
-
     @GetMapping("/sendStaff")
     public String sendStaff(@RequestParam Long staffId,@RequestParam String card,@RequestParam Integer type){
         Staff staff = staffService.getById(staffId);

+ 4 - 0
src/main/java/com/usky/dxtop/model/Staff.java

@@ -173,6 +173,10 @@ public class Staff implements Serializable {
      * 1启动0禁用
      */
     private Long status;
+    /**
+     * 费浦人员编号
+     */
+    private String userCode;
 
     @TableField(exist = false)
     private Integer addOrUp;

+ 85 - 0
src/main/java/com/usky/dxtop/service/api/FpApi.java

@@ -0,0 +1,85 @@
+package com.usky.dxtop.service.api;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.http.HttpUtils;
+import com.usky.dxtop.service.vo.FpDoorVO;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 费浦api
+ * @author yq
+ * @date 2022/7/5 10:07
+ */
+public class FpApi {
+
+    /**
+     * 路径
+     */
+    private static final String PATH = "http://10.208.2.158:7002/";
+    /**
+     * 获取门禁列表
+     */
+    public static final String DOOR_LIST_URL = String.format("%s%s",PATH,"getDoorList");
+    /**
+     * 设置权限
+     */
+    public static final String DEVICE_PERMISSION_OPERATE_URL = String.format("%s%s",PATH,"devicePermissionOperate");
+
+
+    /**
+     * 获取门禁列表
+     * @return
+     */
+    public List<FpDoorVO> getDoorList(){
+
+        return null;
+    }
+
+    /**
+     * 设置门禁权限
+     * @param params
+     */
+    public void setDoorPermission(Map<String,Object> params){
+        return;
+    }
+
+    /**
+     * 生成门禁参数
+     * @param userId
+     * @param list
+     * @param operateType
+     * @return
+     */
+    public Map<String,Object> generateDoorPermissionParam(String userId,List<FpDoorVO> list,String operateType){
+        List<Map<String, Object>> deviceInfoList = list.stream().map(fpDoorVO -> {
+            Map<String, Object> deviceInfo = new HashMap<>();
+            deviceInfo.put("serialNumber", fpDoorVO.getDeviceId());
+            deviceInfo.put("doorID", fpDoorVO.getDoorId());
+            deviceInfo.put("deviceType", fpDoorVO.getDeviceType());
+            return deviceInfo;
+        }).collect(Collectors.toList());
+        Map<String,Object> param = new HashMap<>();
+        param.put("userId",userId);
+        param.put("operateType",operateType);
+        param.put("deviceInfo",deviceInfoList);
+        return param;
+    }
+
+
+    public boolean commonResult(String url, String param, Function<JSONObject,Boolean> function){
+        String result = HttpUtils.sendPost(url, JSONObject.toJSONString(param), null);
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        if ("1".equals(jsonObject.get("result").toString())) {
+            return function.apply(jsonObject);
+        } else {
+            throw new CustomException("接口异常"+jsonObject.get("msg"));
+        }
+    }
+}

+ 36 - 4
src/main/java/com/usky/dxtop/service/api/OneCardApi.java

@@ -2,11 +2,16 @@ package com.usky.dxtop.service.api;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.common.utils.StringUtils;
 import com.usky.dxtop.common.utils.http.HttpUtils;
 import com.usky.dxtop.common.utils.sign.Md5Utils;
+import org.apache.poi.hssf.record.SSTRecord;
+import org.apache.poi.ss.usermodel.FontUnderline;
+import sun.security.timestamp.TSRequest;
 
 import java.util.*;
+import java.util.function.Function;
 
 /**
  * @author yq
@@ -17,10 +22,14 @@ public class OneCardApi {
     private static final String URL = "http://10.208.2.158:7002/";
 
     private static final Integer VERSION = 3;
-
-    public static final String CARD_LOSS_url = String.format("%s%s",URL,"partner/card/loss");
-
-    public static final String CARD_REISSUE = String.format("%s%s",URL,"caih/reissue");
+    /**
+     * 卡消费
+     */
+    public static final String CARD_PAY_URL = String.format("%s%s",URL,"partner/card/loss");
+    /**
+     * 消费检查
+     */
+    public static final String CARD_PAYCHECK = String.format("%s%s",URL,"caih/reissue");
     /**
      * 餐厅编号
      */
@@ -80,6 +89,19 @@ public class OneCardApi {
     }
 
 
+    /**
+     * 卡消费
+     * @return
+     */
+    public static TreeMap<String,String> cardPay(){
+        return null;
+    }
+
+    public static TreeMap<String,String> cardPayBack(Integer seq){
+        return null;
+    }
+
+
 
     /**
      * 验签
@@ -133,4 +155,14 @@ public class OneCardApi {
         String changeBuf = buf.toString();
         return changeBuf.substring(0, changeBuf.length() - 1);
     }
+
+    public Boolean commonRequest(String url, String param, Function<JSONObject,Boolean> function){
+        String result = HttpUtils.sendPost(url, JSONObject.toJSONString(param), null);
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        if ("1".equals(jsonObject.get("code").toString())) {
+            return function.apply(jsonObject);
+        } else {
+            throw new CustomException("接口异常"+jsonObject.get("msg"));
+        }
+    }
 }

+ 1 - 0
src/main/java/com/usky/dxtop/service/api/SmApi.java

@@ -6,6 +6,7 @@ import com.usky.dxtop.common.utils.uuid.IdUtils;
 import java.util.*;
 
 /**
+ * 世贸api
  * @author yq
  * @date 2021/9/28 14:17
  */

+ 1 - 0
src/main/java/com/usky/dxtop/service/api/TopApiConfiger.java

@@ -14,6 +14,7 @@ import java.util.Map;
 import java.util.TreeMap;
 
 /**
+ * 充值api
  * @author yq
  * @date 2021/8/23 14:50
  */

+ 1 - 0
src/main/java/com/usky/dxtop/service/api/WxApi.java

@@ -20,6 +20,7 @@ import java.util.TreeMap;
 import java.util.concurrent.TimeUnit;
 
 /**
+ * 微信api
  * @author yq
  * @date 2022/2/25 15:10
  */

+ 22 - 0
src/main/java/com/usky/dxtop/service/vo/FpDoorVO.java

@@ -0,0 +1,22 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2022/7/5 10:11
+ */
+@Data
+public class FpDoorVO {
+
+    private String deviceId;
+
+    private String deviceName;
+
+    private Integer doorId;
+
+    private String doorName;
+
+    private Integer deviceType;
+
+}

+ 5 - 8
src/test/java/com/usky/dxtop/SmApiTest.java

@@ -98,14 +98,11 @@ public class SmApiTest {
 
     @Test
     public void test6(){
-        long currentTimeMillis1 = System.currentTimeMillis();
-        log.info("人员开始时间:"+ currentTimeMillis1);
-//        SmJob.PersonParam personParam = new SmJob.PersonParam();
-//        personParam.setBlurry("梁中庆");
-        smJob.personApi(null);
-        long currentTimeMillis = System.currentTimeMillis();
-        log.info("人员结束时间:"+ currentTimeMillis);
-        log.info("总耗时间"+ (currentTimeMillis-currentTimeMillis1));
+
+
+        SmJob.PersonParam personParam = new SmJob.PersonParam();
+        personParam.setBlurry("谢妍");
+        smJob.personApi(personParam);
     }