Эх сурвалжийг харах

feature: 学员自助
1.controller和business增加了是否已报到的校验

luo.yibo@datuai.com 1 жил өмнө
parent
commit
8201bc2877

+ 4 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -26,6 +26,7 @@ import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.HotelBusinessConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
+import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.core.enums.RoomCardTypeEnum;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.hotel.api.domain.bo.RemoteOrderBo;
@@ -119,6 +120,9 @@ public class TraineeBusiness {
         // 学员基本信息
         PtUserAccountBo accountBo = new PtUserAccountBo().setUserId(Long.valueOf(bo.getUserId()));
         YcTraineeVo ycTraineeVo = userAccountService.selectTraineeByBo(accountBo, null);
+        if(ycTraineeVo.getCheckinState()==1){
+            return R.fail(new ErrorInfo(ResultCodeEnum.RESOURCE_EXISTED.code(),"","您已经报到过了,请勿重复报到"));
+        }
         bo.setUserXm(ycTraineeVo.getUserXm());
         // 学员培训班级信息
         RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(Long.valueOf(bo.getDeptId()));

+ 3 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java

@@ -73,6 +73,9 @@ public class TraineeController {
      */
     @PostMapping("/api/v1/register")
     public ReturnResult checkInTrainee(@RequestBody YcTraineeBo bo) {
+        if (bo.getCheckinState() == 1) {
+            return ReturnResult.failure(ResultCodeEnum.RESOURCE_EXISTED, "您已经报到过了,请勿重复报到");
+        }
         YcTraineeVo traineeVo = new YcTraineeVo();
         R<ErrorInfo> result = traineeBusiness.registerTrainee(bo, traineeVo);
         if (R.isError(result)) {

+ 17 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/domain/bo/yc/YcTraineeBo.java

@@ -60,11 +60,28 @@ public class YcTraineeBo implements Serializable {
      */
     private String deptId;
 
+    /**
+     * 客人Id
+     */
     private Long guestId;
 
+    /**
+     * 团客Id
+     */
     private Long teamId;
 
+    /**
+     * 客人姓名
+     */
     private String userXm;
 
+    /**
+     * 团客名称
+     */
     private String teamName;
+
+    /**
+     * 报到状态
+     */
+    private Integer checkinState;
 }

+ 32 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/util/LockUtils.java

@@ -1,8 +1,10 @@
 package org.dromara.backstage.util;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -32,6 +34,7 @@ import java.util.Map;
 public class LockUtils {
     private final LockConfig lockConfig;
     private String token;
+
     /**
      * 通过登陆去获取token,23小时刷新一次
      */
@@ -57,14 +60,20 @@ public class LockUtils {
         formMap.put("SIGN", sign);
         HttpRequest req = HttpUtil.createPost(lockConfig.getAppUrl() + "dmsLogin");
         req.form(formMap);
-        String resultJson = req.execute().body();
-        JSONObject result = JSONUtil.parseObj(resultJson);
-        if (result.getInt("result") == 0) {
-            token = result.getStr("token");
-        } else {
-            log.error("获取酒店锁token失败!{}", result);
+        try (HttpResponse res = req.execute()) {
+            String resultJson = res.body();
+            JSONObject result = JSONUtil.parseObj(resultJson);
+            if (result.getInt("result") == 0) {
+                token = result.getStr("token");
+            } else {
+                log.error("获取酒店锁token失败!{}", result);
+            }
+        } catch (Exception e) {
+            log.error("连接酒店锁服务异常!{}", e.getMessage());
         }
+
     }
+
     public String sendPost(Map<String, Object> formMap, String reqMethod) {
         if (StrUtil.isEmpty(token)) {
             refreshToken();
@@ -82,14 +91,28 @@ public class LockUtils {
         formMap.put("SIGN", sign);
         HttpRequest req = HttpUtil.createPost(lockConfig.getAppUrl() + reqMethod);
         req.form(formMap);
-        //String temp = req.execute().body();
-        return req.execute().body();
+        try (HttpResponse res = req.execute()) {
+            return res.body();
+        } catch (Exception e) {
+            log.error("酒店锁接口调用异常!{}", e.getMessage());
+            return null;
+        }
     }
 
+    /**
+     * 请求发卡数据
+     * @param mapForm 请求参数
+     * @return 发卡数据
+     */
     public String getWriteCardData(Map<String, Object> mapForm) {
         String sendResult = sendPost(mapForm, "cardSender/cardSender");
-        return JSONUtil.parseObj(sendResult).getStr("data");
+        if (ObjectUtil.isNotEmpty(sendResult)) {
+            return JSONUtil.parseObj(sendResult).getStr("data");
+        } else {
+            return null;
+        }
     }
+
     public String getPwdCardData(Map<String, Object> mapForm) {
         return sendPost(mapForm, "addLockKey");
     }