TRX 1 anno fa
parent
commit
78cdac263b
14 ha cambiato i file con 81 aggiunte e 25 eliminazioni
  1. 7 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/visitor/VisitorMainModel.java
  2. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/visitor/VisitorMainParam.java
  3. 2 2
      FullCardClient/src/main/java/com/zhongshu/card/client/type/visitor/VisitorApplyType.java
  4. 16 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/BaseImpl.java
  5. 3 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DeviceUseRecords.java
  6. 4 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/visitor/VisitorMain.java
  7. 8 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceUseRecordService.java
  8. 2 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/gateDoor/GateDoorService.java
  9. 3 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java
  10. 24 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/PayCallService.java
  11. 2 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/Device2UseUsableService.java
  12. 2 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/DevicePermissVerifyService.java
  13. 2 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/SuperPermissService.java
  14. 5 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/visitor/VisitorMainService.java

+ 7 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/visitor/VisitorMainModel.java

@@ -40,7 +40,13 @@ public class VisitorMainModel extends SuperModel {
         return "";
     }
 
-    @Schema(description = "申请方式")
+    private Boolean isWarning = Boolean.FALSE;
+
+    public Boolean getWarning() {
+        return Boolean.FALSE;
+    }
+
+    @Schema(description = "申请方式/预约方式")
     private VisitorApplyType applyType;
 
     private String applyTypeStr;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/visitor/VisitorMainParam.java

@@ -17,7 +17,7 @@ public class VisitorMainParam {
     @Schema(description = "数据id")
     private String id;
 
-    @Schema(description = "申请方式")
+    @Schema(description = "预约类型/申请方式")
     private VisitorApplyType applyType = VisitorApplyType.Apply;
 
     @Schema(description = "邀请用户userId")

+ 2 - 2
FullCardClient/src/main/java/com/zhongshu/card/client/type/visitor/VisitorApplyType.java

@@ -6,8 +6,8 @@ import lombok.Getter;
  * 访客方式
  */
 public enum VisitorApplyType {
-    Invite("邀请"),
-    Apply("申请");
+    Invite("邀请访问"),
+    Apply("自助预约");
 
     @Getter
     private String remark;

+ 16 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/BaseImpl.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.dao;
 
 import com.zhongshu.card.client.model.base.SuperSearch;
+import com.zhongshu.card.client.utils.DateUtils;
 import com.zhongshu.card.server.core.util.CommonUtil;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.data.domain.Sort;
@@ -37,9 +38,23 @@ public abstract class BaseImpl {
     public Criteria buildCriteriaNotOid(SuperSearch param) {
         Criteria criteria = new Criteria();
         criteria.and("isDelete").is(Boolean.FALSE);
+        if (ObjectUtils.isNotEmpty(param.getTimes()) && param.getTimes().size() == 2) {
+            param.setStartTime(param.getTimes().get(0));
+            param.setEndTime(param.getTimes().get(1));
+        }
+        if (!CommonUtil.longIsEmpty(param.getStartTime())) {
+            param.setStartTime(DateUtils.getDayStartTime(param.getStartTime()));
+        }
+        if (!CommonUtil.longIsEmpty(param.getEndTime())) {
+            param.setEndTime(DateUtils.getDayEndTime(param.getEndTime()));
+        }
         // 时间
         if (!CommonUtil.longIsEmpty(param.getStartTime()) && !CommonUtil.longIsEmpty(param.getEndTime())) {
-            criteria.and("createTime").gte(param.getStartTime()).and("createTime").lte(param.getEndTime());
+            criteria.and("createTime").gte(param.getStartTime()).lte(param.getEndTime());
+        } else if (!CommonUtil.longIsEmpty(param.getStartTime()) && CommonUtil.longIsEmpty(param.getEndTime())) {
+            criteria.and("createTime").gte(param.getStartTime());
+        } else if (CommonUtil.longIsEmpty(param.getStartTime()) && !CommonUtil.longIsEmpty(param.getEndTime())) {
+            criteria.and("createTime").lte(param.getEndTime());
         }
         return criteria;
     }

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DeviceUseRecords.java

@@ -75,6 +75,9 @@ public class DeviceUseRecords extends SuperMain {
     @Schema(description = "设备ID")
     private String deviceId;
 
+    @Schema(description = "设备名称")
+    private String deviceName;
+
     @Schema(description = "设备类型")
     private DeviceType deviceType;
 

+ 4 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/visitor/VisitorMain.java

@@ -124,9 +124,12 @@ public class VisitorMain extends SuperMain {
     @Schema(description = "车牌号码")
     private String carNo;
 
-    @Schema(description = "到访开始时间")
+    @Schema(description = "到访开始时间(预约到访时间)")
     private Long startTime;
 
+    @Schema(description = "访问时间长(分钟)")
+    private Long minutes;
+
     @Schema(description = "结束时间")
     private Long endTime;
 
@@ -136,9 +139,6 @@ public class VisitorMain extends SuperMain {
     @Schema(description = "权限结束时间")
     private Long perEndTime;
 
-    @Schema(description = "访问时间长")
-    private Long minutes;
-
     @Schema(description = "可使用的设备id集合")
     private List<String> deviceIds = new ArrayList<>();
 

+ 8 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceUseRecordService.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.server.core.service.devices;
 
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.core.util.os.SystemUtil;
-import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.devices.DeviceUseRecordModel;
 import com.zhongshu.card.client.model.devices.DeviceUseRecordSearch;
@@ -87,7 +87,7 @@ public class DeviceUseRecordService extends SuperService {
      *
      * @param param
      */
-    public void asyncSaveRecord(GateDoorUseParam param) {
+    public void asyncSaveRecord(DeviceUseParam param) {
         executorService.execute(() -> {
             saveDeviceLogs(param);
         });
@@ -99,7 +99,7 @@ public class DeviceUseRecordService extends SuperService {
      * @param param
      * @return
      */
-    public ResultContent<DeviceUseRecords> saveDeviceLogs(GateDoorUseParam param) {
+    public ResultContent<DeviceUseRecords> saveDeviceLogs(DeviceUseParam param) {
         if (param == null) {
             return ResultContent.buildFail("param is null");
         }
@@ -131,6 +131,11 @@ public class DeviceUseRecordService extends SuperService {
                     // 设备信息
                     deviceUseRecord.setDeviceInfo(deviceInfoService.toStoreModel(deviceInfo));
                     deviceUseRecord.setDeviceType(deviceInfo.getDeviceType());
+                    String _name = deviceInfo.getNickName();
+                    if (ObjectUtils.isEmpty(_name)) {
+                        _name = deviceInfo.getDeviceName();
+                    }
+                    deviceUseRecord.setDeviceName(_name);
                     deviceUseRecord.setGateWayId(deviceInfo.getGateWayId());
                     // 所属商户
                     deviceUseRecord.setBeLongOid(deviceInfo.getBeLongOid());

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/gateDoor/GateDoorService.java

@@ -92,7 +92,7 @@ public class GateDoorService extends SuperService {
         log.info("闸机使用记录 gateDoorUseRecord...");
         if (ObjectUtils.isNotEmpty(info)) {
             // 封装记录日志参数
-            GateDoorUseParam useParam = new GateDoorUseParam();
+            DeviceUseParam useParam = new DeviceUseParam();
             useParam.setMqttDataId(param.getMqttDataId());
             useParam.setDeviceId(param.getDeviceId());
             useParam.setGateWayId(param.getGateWayId());
@@ -178,7 +178,7 @@ public class GateDoorService extends SuperService {
             result.setMqttDataId(mqttDataId);
             String userId = info.getCustomId();
 
-            GateDoorUseParam deviceUserParam = new GateDoorUseParam();
+            DeviceUseParam deviceUserParam = new DeviceUseParam();
             // 验证权限
             ResultContent<String> resultContent = devicePermissVerifyService.verifyDevice(userId, deviceId, deviceUserParam);
             deviceUserParam.setMqttDataId(mqttDataId);

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java

@@ -54,10 +54,10 @@ import com.zhongshu.card.server.core.httpRequest.ApiRequestService;
 import com.zhongshu.card.server.core.service.base.CommonService;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.devices.DeviceInfoServiceImpl;
-import com.zhongshu.card.server.core.service.permissVerify.DevicePermissVerifyService;
 import com.zhongshu.card.server.core.service.mqtt.MqttServiceImpl;
 import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
 import com.zhongshu.card.server.core.service.pay.WechatPayService;
+import com.zhongshu.card.server.core.service.permissVerify.DevicePermissVerifyService;
 import com.zhongshu.card.server.core.service.school.AreaServiceImpl;
 import com.zhongshu.card.server.core.util.*;
 import lombok.extern.slf4j.Slf4j;
@@ -455,6 +455,8 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
         if (ObjectUtils.isNotEmpty(expenseFlow)) {
             // 记录回调参数
             expenseFlow.addMetaInfo(OrderConfig.wxSurePaymentTypeOrderPay, ret);
+            expenseFlow.setIsPaid(Boolean.TRUE);
+
             // 支付结果状态
             switch (ret.getTradeState()) {
                 case "SUCCESS" -> {

+ 24 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/PayCallService.java

@@ -2,6 +2,7 @@ package com.zhongshu.card.server.core.service.payment;
 
 import cn.hutool.json.JSONObject;
 import com.github.microservice.core.util.JsonUtil;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.pay.client.model.ledger.TransactionLogModel;
 import com.github.microservice.pay.client.model.weChatMiniApp.WeChatMiniAppRefundRet;
@@ -34,6 +35,7 @@ import com.zhongshu.card.server.core.domain.schedule.ScheduleTaskConfig;
 import com.zhongshu.card.server.core.model.pay.UnionFrictionlessPayFinishModel;
 import com.zhongshu.card.server.core.service.base.CommonService;
 import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.devices.DeviceUseRecordService;
 import com.zhongshu.card.server.core.service.mqtt.MqttServiceImpl;
 import com.zhongshu.card.server.core.service.orgManager.ProjectBindOrgServiceImpl;
 import com.zhongshu.card.server.core.service.pay.BalancePayService;
@@ -43,6 +45,7 @@ import com.zhongshu.card.server.core.service.pay.WechatPayService;
 import com.zhongshu.card.server.core.service.paySetting.PayOrderSettingService;
 import com.zhongshu.card.server.core.service.paySetting.ProjectMainPaySettingService;
 import com.zhongshu.card.server.core.service.user.OperationLogsService;
+import com.zhongshu.card.server.core.util.CommonUtil;
 import com.zhongshu.card.server.core.util.NextNoUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
@@ -106,6 +109,9 @@ public class PayCallService extends SuperService {
     @Autowired
     private MqttServiceImpl mqttService;
 
+    @Autowired
+    private DeviceUseRecordService deviceUseRecordService;
+
     /**
      * 统一调用支付服务 (无感方式,直接后台 扣款)
      *
@@ -1018,4 +1024,22 @@ public class PayCallService extends SuperService {
         return satInfoModel;
     }
 
+    /**
+     * 消费时,,记录用户使用设备记录
+     *
+     * @param orderInfo
+     */
+    public void buildDeviceUseRecord(ExpenseFlow orderInfo) {
+        if (orderInfo == null) {
+            return;
+        }
+        if (orderInfo.getIsPaid() != null && orderInfo.getIsPaid()) {
+            DeviceUseParam param = new DeviceUseParam();
+            param.setUserId(orderInfo.getUserId());
+            param.setProjectOid(orderInfo.getProjectOid());
+            param.setAboutDataId(orderInfo.getId());
+            param.setServiceBeanName(CommonUtil.getCollectionName(ExpenseFlowServiceImpl.class));
+            deviceUseRecordService.asyncSaveRecord(param);
+        }
+    }
 }

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/Device2UseUsableService.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.service.permissVerify;
 
-import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.types.user.DevicePermissFromType;
 import com.zhongshu.card.client.model.devices.permiss.Device2UseUsableSearch;
@@ -90,7 +90,7 @@ public class Device2UseUsableService {
      * @param deviceId 设备id
      * @return
      */
-    public ResultContent<String> verifyDevice(String userId, String deviceId, String projectOid, GateDoorUseParam deviceUserParam) {
+    public ResultContent<String> verifyDevice(String userId, String deviceId, String projectOid, DeviceUseParam deviceUserParam) {
         String msg = "失败";
 
         Device2UseUsableSearch param = new Device2UseUsableSearch();

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/DevicePermissVerifyService.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.service.permissVerify;
 
-import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.models.type.DeviceState;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.devices.permiss.PermissSettingListSearch;
@@ -73,7 +73,7 @@ public class DevicePermissVerifyService {
      * @param deviceId
      * @return
      */
-    public ResultContent<String> verifyDevice(String userId, String deviceId, GateDoorUseParam deviceUserParam) {
+    public ResultContent<String> verifyDevice(String userId, String deviceId, DeviceUseParam deviceUserParam) {
         if (StringUtils.isEmpty(userId)) {
             return ResultContent.buildFail("未包含用户信息");
         }

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/permissVerify/SuperPermissService.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.service.permissVerify;
 
-import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import lombok.extern.slf4j.Slf4j;
@@ -24,7 +24,7 @@ public abstract class SuperPermissService extends SuperService {
      * @param deviceUserParam
      * @return
      */
-    public abstract ResultContent markUse(String fromDataId, GateDoorUseParam deviceUserParam);
+    public abstract ResultContent markUse(String fromDataId, DeviceUseParam deviceUserParam);
 
     /**
      * 设备使用记录时, 查询关联的信息详情

+ 5 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/visitor/VisitorMainService.java

@@ -3,7 +3,7 @@ package com.zhongshu.card.server.core.service.visitor;
 import com.github.microservice.auth.client.model.UserFaceUploadModel;
 import com.github.microservice.auth.client.service.UserFaceService;
 import com.github.microservice.components.data.base.util.PageEntityUtil;
-import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
+import com.github.microservice.models.gateDoor.use.DeviceUseParam;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.github.microservice.types.user.DevicePermissFromType;
@@ -313,7 +313,7 @@ public class VisitorMainService extends SuperPermissService {
      * @param fromDataId
      */
     @Override
-    public ResultContent markUse(String fromDataId, GateDoorUseParam deviceUserParam) {
+    public ResultContent markUse(String fromDataId, DeviceUseParam deviceUserParam) {
         if (StringUtils.isNotEmpty(fromDataId)) {
             VisitorMain visitorMain = visitorMainDao.findTopById(fromDataId);
             if (ObjectUtils.isEmpty(visitorMain)) {
@@ -362,7 +362,7 @@ public class VisitorMainService extends SuperPermissService {
         search.setProjectOid(param.getProjectOid());
         search.setVisitorUserId(userId);
         // 待审核 待申批
-        search.setState(VisitorState.WaitVisit);
+        search.setState(VisitorState.WaitReView);
         Long waitReViewNumber = visitorMainDao.count(search);
 
         // 待来访
@@ -476,8 +476,9 @@ public class VisitorMainService extends SuperPermissService {
             model = new VisitorMainModel();
             BeanUtils.copyProperties(entity, model);
 
-            // 用户信息
+            // 用户信息/被访人
             model.setVisitorUserAccount(userAccountService.toSimpleModel(entity.getVisitorUserAccount()));
+            // 申请用户
             model.setApplyUserAccount(userAccountService.toSimpleModel(entity.getApplyUserAccount()));
 
             // 设备信息