TRX 1 년 전
부모
커밋
8c1de30650
27개의 변경된 파일516개의 추가작업 그리고 61개의 파일을 삭제
  1. 55 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindModel.java
  2. 32 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindParam.java
  3. 49 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindSearch.java
  4. 19 0
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/PaymentModeType.java
  5. 7 8
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/DeviceInfoController.java
  6. 3 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/GateWayInfoController.java
  7. 81 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/DeviceBindController.java
  8. 23 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/DeviceBindDao.java
  9. 1 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/DeviceInfoDao.java
  10. 1 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/GateWayInfoDao.java
  11. 17 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceBindDaoExtend.java
  12. 1 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceInfoDaoExtend.java
  13. 1 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/GateWayInfoDaoExtend.java
  14. 101 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceBindDaoImpl.java
  15. 2 6
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceInfoDaoImpl.java
  16. 1 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/GateWayInfoDaoImpl.java
  17. 1 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/DeviceInfo.java
  18. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/GateWay2Device.java
  19. 2 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/GateWayInfo.java
  20. 75 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/school/DeviceBind.java
  21. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/model/payment/ExpendParam.java
  22. 3 6
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/DeviceInfoServiceImpl.java
  23. 3 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/GateWayInfoServiceImpl.java
  24. 1 5
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java
  25. 1 9
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/HxzService.java
  26. 33 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/DeviceBindService.java
  27. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/sync/DeviceSyncFromIotService.java

+ 55 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindModel.java

@@ -0,0 +1,55 @@
+package com.zhongshu.card.client.model.school;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
+import com.zhongshu.card.client.utils.type.OnLineState;
+import com.zhongshu.card.client.utils.type.PaymentModeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/7/2
+ */
+@Data
+public class DeviceBindModel extends SuperModel {
+    @Schema(description = "设备信息")
+    private DeviceInfoModel deviceInfo;
+
+    @Schema(description = "设备ID、设备号")
+    private String deviceId;
+
+    @Schema(description = "设备名称")
+    private String deviceName;
+
+    @Schema(description = "设备类型,如 消费机 门禁机")
+    private DeviceType deviceType;
+
+    @Schema(description = "是否在线")
+    private OnLineState onLineState = OnLineState.OnLine;
+
+    @Schema(description = "网关")
+    private String gateWayId;
+
+    @Schema(description = "学校信息")
+    private OrganizationSimpleModel schoolInfo;
+
+    @Schema(description = "学校信息Oid")
+    private String schoolInfoOid;
+
+    @Schema(description = "商户信息")
+    private OrganizationSimpleModel shopInfo;
+
+    @Schema(description = "商户Oid")
+    private String shopInfoOid;
+
+    @Schema(description = "区域信息")
+    private AreaModel area;
+
+    @Schema(description = "付费模式")
+    private PaymentModeType paymentModeType;
+
+    @Schema(description = "收款账号")
+    private String receivingAccount;
+}

+ 32 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindParam.java

@@ -0,0 +1,32 @@
+package com.zhongshu.card.client.model.school;
+
+import com.zhongshu.card.client.model.base.SuperParam;
+import com.zhongshu.card.client.utils.type.PaymentModeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/7/2
+ */
+@Data
+public class DeviceBindParam extends SuperParam {
+
+    @Schema(description = "设备ID、设备号")
+    private String deviceId;
+
+    @Schema(description = "学校信息Oid")
+    private String schoolInfoOid;
+
+    @Schema(description = "商户Oid")
+    private String shopInfoOid;
+
+    @Schema(description = "区域信息")
+    private String areaId;
+
+    @Schema(description = "付费模式")
+    private PaymentModeType paymentModeType;
+
+    @Schema(description = "收款账号")
+    private String receivingAccount;
+}

+ 49 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindSearch.java

@@ -0,0 +1,49 @@
+package com.zhongshu.card.client.model.school;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.model.base.SuperSearch;
+import com.zhongshu.card.client.utils.type.OnLineState;
+import com.zhongshu.card.client.utils.type.PaymentModeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/7/2
+ */
+@Data
+public class DeviceBindSearch extends SuperSearch {
+
+    @Schema(description = "关键字搜索")
+    private String keyWord;
+
+    @Schema(description = "设备ID、设备号")
+    private String deviceId;
+
+    @Schema(description = "设备名称")
+    private String deviceName;
+
+    @Schema(description = "设备类型,如 消费机 门禁机")
+    private DeviceType deviceType;
+
+    @Schema(description = "是否在线")
+    private OnLineState onLineState = OnLineState.OnLine;
+
+    @Schema(description = "关联的项目code")
+    private String projectInfoCode;
+
+    @Schema(description = "学校信息Oid")
+    private String schoolInfoOid;
+
+    @Schema(description = "商户Oid")
+    private String shopInfoOid;
+
+    @Schema(description = "区域信息")
+    private String areaId;
+
+    @Schema(description = "付费模式")
+    private PaymentModeType paymentModeType;
+
+    @Schema(description = "收款账号")
+    private String receivingAccount;
+}

+ 19 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/PaymentModeType.java

@@ -0,0 +1,19 @@
+package com.zhongshu.card.client.utils.type;
+
+import lombok.Getter;
+
+/**
+ * 付费模式
+ */
+public enum PaymentModeType {
+    NotSupported("不支持付费"),
+    Supported("支持付费"),
+    ;
+
+    @Getter
+    private String remark;
+
+    PaymentModeType(String remark) {
+        this.remark = remark;
+    }
+}

+ 7 - 8
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/DeviceInfoController.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/DeviceInfoController.java

@@ -1,15 +1,14 @@
-package com.zhongshu.card.server.core.controller.school;
+package com.zhongshu.card.server.core.controller.org;
 
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.IDParam;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.school.DeviceInfoModel;
+import com.zhongshu.card.client.model.school.DeviceInfoMoreModel;
+import com.zhongshu.card.client.model.school.DeviceInfoParam;
+import com.zhongshu.card.client.model.school.DeviceInfoSearch;
 import com.zhongshu.card.client.ret.ResultContent;
-import com.zhongshu.card.client.service.school.BookInfoService;
 import com.zhongshu.card.client.service.school.DeviceInfoService;
-import com.zhongshu.card.client.service.school.DictInfoService;
-import com.zhongshu.card.client.service.school.NoticeInfoService;
-import com.zhongshu.card.server.core.service.org.RoleServiceImpl;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -28,8 +27,8 @@ import java.util.List;
  * @date 2024/6/5
  */
 @RestController
-@RequestMapping("/school/device")
-@Tag(name = "学校-设备管理")
+@RequestMapping("/devices")
+@Tag(name = "平台-设备管理")
 public class DeviceInfoController {
 
     @Autowired

+ 3 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/GateWayInfoController.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/GateWayInfoController.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.controller.school;
+package com.zhongshu.card.server.core.controller.org;
 
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
@@ -25,8 +25,8 @@ import java.util.List;
  * @date 2024/6/5
  */
 @RestController
-@RequestMapping("/school/gateWay")
-@Tag(name = "学校-网关管理")
+@RequestMapping("/gateWays")
+@Tag(name = "平台-网关管理")
 public class GateWayInfoController {
 
     @Autowired

+ 81 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/DeviceBindController.java

@@ -0,0 +1,81 @@
+package com.zhongshu.card.server.core.controller.school;
+
+import com.github.microservice.auth.security.annotations.ResourceAuth;
+import com.github.microservice.auth.security.type.AuthType;
+import com.zhongshu.card.client.model.base.IDParam;
+import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.ret.ResultContent;
+import com.zhongshu.card.client.service.school.DeviceInfoService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.web.PageableDefault;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 设备
+ *
+ * @author TRX
+ * @date 2024/6/5
+ */
+@RestController
+@RequestMapping("/school/device")
+@Tag(name = "学校-设备管理")
+public class DeviceBindController {
+
+    @Autowired
+    DeviceInfoService deviceInfoService;
+
+    //----------------------------设备基础信息 start------------------------
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "根据设备数据ID 设备详情", description = "根据设备数据ID 设备详情")
+    @RequestMapping(value = "getDeviceById", method = {RequestMethod.POST})
+    public ResultContent<DeviceInfoMoreModel> getDeviceById(@RequestBody IDParam param) {
+        return this.deviceInfoService.getDeviceDetail(param.getId());
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "根据设备ID 设备详情(精确匹配)", description = "根据设备ID 设备详情(精确匹配)")
+    @RequestMapping(value = "getDeviceByDeviceId", method = {RequestMethod.GET})
+    public ResultContent<DeviceInfoMoreModel> getDeviceByDeviceId(@RequestParam(name = "deviceId") String deviceId) {
+        return this.deviceInfoService.getDeviceDetailByDeviceId(deviceId);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "根据设备ID 设备列表(模糊匹配)", description = "根据设备ID 设备列表(模糊匹配)")
+    @RequestMapping(value = "getDeviceDetailByDeviceIdLike", method = {RequestMethod.GET})
+    public ResultContent<List<DeviceInfoMoreModel>> getDeviceDetailByDeviceIdLike(@RequestParam(name = "deviceId") String deviceId) {
+        return this.deviceInfoService.getDeviceDetailByDeviceIdLike(deviceId);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "添加-编辑设备", description = "添加-编辑设备")
+    @RequestMapping(value = "addDeviceInfo", method = {RequestMethod.POST})
+    public ResultContent addDeviceInfo(@RequestBody DeviceInfoParam param) {
+        return this.deviceInfoService.addDeviceInfo(param);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "删除设备", description = "删除设备")
+    @RequestMapping(value = "deleteDeviceInfo", method = {RequestMethod.POST})
+    public ResultContent deleteDeviceInfo(@RequestBody IDParam param) {
+        return this.deviceInfoService.deleteDeviceInfo(param.getId());
+    }
+
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "设备列表-分页查询", description = "设备列表-分页查询")
+    @RequestMapping(value = {"page"}, method = {RequestMethod.POST})
+    public ResultContent<Page<DeviceInfoModel>> page(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10) Pageable pageable, @Parameter(required = false) DeviceInfoSearch param) {
+        return deviceInfoService.page(param, pageable);
+    }
+
+    //----------------------------设备基础信息 end--------------------------
+
+}

+ 23 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/DeviceBindDao.java

@@ -0,0 +1,23 @@
+package com.zhongshu.card.server.core.dao.school;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.dao.school.extend.DeviceBindDaoExtend;
+import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
+import com.zhongshu.card.server.core.domain.school.DeviceBind;
+
+import java.util.List;
+
+/**
+ * 设备Dao
+ *
+ * @author TRX
+ * @date 2024/3/21
+ */
+public interface DeviceBindDao extends MongoDao<DeviceBind>, DeviceBindDaoExtend {
+
+    DeviceBind findTopById(String id);
+
+    DeviceBind findTopByDeviceIdAndOid(String deviceId, String oid);
+
+}

+ 1 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/DeviceInfoDao.java

@@ -2,8 +2,7 @@ package com.zhongshu.card.server.core.dao.school;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
-import com.zhongshu.card.server.core.domain.school.Area;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 
 import java.util.List;
 

+ 1 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/GateWayInfoDao.java

@@ -1,10 +1,8 @@
 package com.zhongshu.card.server.core.dao.school;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
-import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
 import com.zhongshu.card.server.core.dao.school.extend.GateWayInfoDaoExtend;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
-import com.zhongshu.card.server.core.domain.school.GateWayInfo;
+import com.zhongshu.card.server.core.domain.org.GateWayInfo;
 
 import java.util.List;
 

+ 17 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceBindDaoExtend.java

@@ -0,0 +1,17 @@
+package com.zhongshu.card.server.core.dao.school.extend;
+
+import com.zhongshu.card.client.model.school.DeviceBindSearch;
+import com.zhongshu.card.client.model.school.DeviceInfoSearch;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
+import com.zhongshu.card.server.core.domain.school.DeviceBind;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+/**
+ * @Author TRX
+ * @CreateDate: 2023/7/7
+ * @Version: 1.0
+ */
+public interface DeviceBindDaoExtend {
+    Page<DeviceBind> page(Pageable pageable, DeviceBindSearch param);
+}

+ 1 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceInfoDaoExtend.java

@@ -1,9 +1,7 @@
 package com.zhongshu.card.server.core.dao.school.extend;
 
-import com.zhongshu.card.client.model.school.BookInfoSearch;
 import com.zhongshu.card.client.model.school.DeviceInfoSearch;
-import com.zhongshu.card.server.core.domain.school.BookInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 

+ 1 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/GateWayInfoDaoExtend.java

@@ -1,9 +1,7 @@
 package com.zhongshu.card.server.core.dao.school.extend;
 
-import com.zhongshu.card.client.model.school.DeviceInfoSearch;
 import com.zhongshu.card.client.model.school.GateWayInfoSearch;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
-import com.zhongshu.card.server.core.domain.school.GateWayInfo;
+import com.zhongshu.card.server.core.domain.org.GateWayInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 

+ 101 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceBindDaoImpl.java

@@ -0,0 +1,101 @@
+package com.zhongshu.card.server.core.dao.school.impl;
+
+import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
+import com.zhongshu.card.client.model.school.DeviceBindSearch;
+import com.zhongshu.card.client.model.school.DeviceInfoSearch;
+import com.zhongshu.card.server.core.dao.BaseImpl;
+import com.zhongshu.card.server.core.dao.school.extend.DeviceBindDaoExtend;
+import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
+import com.zhongshu.card.server.core.domain.school.Area;
+import com.zhongshu.card.server.core.domain.school.DeviceBind;
+import com.zhongshu.card.server.core.util.CommonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+/**
+ * @Author TRX
+ * @CreateDate: 2023/4/12
+ * @Version: 1.0
+ */
+public class DeviceBindDaoImpl extends BaseImpl implements DeviceBindDaoExtend {
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    @Autowired
+    private DBHelper dbHelper;
+
+    @Override
+    public Page<DeviceBind> page(Pageable pageable, DeviceBindSearch param) {
+        Criteria criteria = buildCriteria(param);
+
+        if (param.getDeviceType() != null) {
+            criteria.and("deviceType").is(param.getDeviceType());
+        }
+
+        if (param.getOnLineState() != null) {
+            criteria.and("onLineState").is(param.getOnLineState());
+        }
+
+        if (StringUtils.isNotEmpty(param.getAreaId())) {
+            criteria.and("area").is(Area.build(param.getAreaId()));
+        }
+
+        if (StringUtils.isNotEmpty(param.getProjectInfoCode())) {
+            criteria.and("projectInfoCode").is(param.getProjectInfoCode());
+        }
+
+        if (StringUtils.isNotEmpty(param.getSchoolInfoOid())) {
+            criteria.and("schoolInfoOid").is(param.getSchoolInfoOid());
+        }
+
+        if (StringUtils.isNotEmpty(param.getShopInfoOid())) {
+            criteria.and("shopInfoOid").is(param.getShopInfoOid());
+        }
+
+        if (!CommonUtil.longIsEmpty(param.getStartTime()) && !CommonUtil.longIsEmpty(param.getEndTime())) {
+            criteria.and("createTime").gte(param.getStartTime()).and("createTime").lte(param.getEndTime());
+        }
+
+        // 模糊搜索
+        List<Criteria> criterias = new ArrayList<>();
+        if (StringUtils.isNotEmpty(param.getDeviceId())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getDeviceId() + ".*$");
+            criterias.add(Criteria.where("deviceId").is(pattern));
+        }
+        if (StringUtils.isNotEmpty(param.getDeviceName())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getDeviceName() + ".*$");
+            criterias.add(Criteria.where("deviceName").is(pattern));
+        }
+        if (!CollectionUtils.isEmpty(criterias)) {
+            criteria.andOperator(criterias.toArray(new Criteria[]{}));
+        }
+
+        if (StringUtils.isNotEmpty(param.getKeyWord())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getKeyWord() + ".*$");
+            criteria.orOperator(
+                    Criteria.where("deviceId").regex(pattern),
+                    Criteria.where("deviceName").regex(pattern),
+                    Criteria.where("gateWayId").regex(pattern)
+            );
+        }
+
+        Sort sort = buildSort(param);
+        Query query = Query.query(criteria);
+        query.with(sort);
+        return dbHelper.pages(query, pageable, DeviceBind.class);
+    }
+
+}

+ 2 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceInfoDaoImpl.java

@@ -1,17 +1,12 @@
 package com.zhongshu.card.server.core.dao.school.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
-import com.zhongshu.card.client.model.school.BookInfoSearch;
 import com.zhongshu.card.client.model.school.DeviceInfoSearch;
 import com.zhongshu.card.server.core.dao.BaseImpl;
-import com.zhongshu.card.server.core.dao.school.extend.BookInfoDaoExtend;
 import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
-import com.zhongshu.card.server.core.domain.org.Department;
 import com.zhongshu.card.server.core.domain.school.Area;
-import com.zhongshu.card.server.core.domain.school.BookInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import com.zhongshu.card.server.core.util.CommonUtil;
-import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -41,6 +36,7 @@ public class DeviceInfoDaoImpl extends BaseImpl implements DeviceInfoDaoExtend {
 
     @Override
     public Page<DeviceInfo> page(Pageable pageable, DeviceInfoSearch param) {
+        param.setOid("");
         Criteria criteria = buildCriteria(param);
 
         if (param.getDeviceType() != null) {

+ 1 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/GateWayInfoDaoImpl.java

@@ -1,14 +1,11 @@
 package com.zhongshu.card.server.core.dao.school.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
-import com.zhongshu.card.client.model.school.DeviceInfoSearch;
 import com.zhongshu.card.client.model.school.GateWayInfoSearch;
 import com.zhongshu.card.server.core.dao.BaseImpl;
-import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
 import com.zhongshu.card.server.core.dao.school.extend.GateWayInfoDaoExtend;
 import com.zhongshu.card.server.core.domain.school.Area;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
-import com.zhongshu.card.server.core.domain.school.GateWayInfo;
+import com.zhongshu.card.server.core.domain.org.GateWayInfo;
 import com.zhongshu.card.server.core.util.CommonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/school/DeviceInfo.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/DeviceInfo.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.domain.school;
+package com.zhongshu.card.server.core.domain.org;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.utils.type.OnLineState;
@@ -7,7 +7,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import org.springframework.data.mongodb.core.mapping.DBRef;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 /**

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/school/GateWay2Device.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/GateWay2Device.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.domain.school;
+package com.zhongshu.card.server.core.domain.org;
 
 import com.zhongshu.card.client.utils.type.OnLineState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/school/GateWayInfo.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/GateWayInfo.java

@@ -1,7 +1,8 @@
-package com.zhongshu.card.server.core.domain.school;
+package com.zhongshu.card.server.core.domain.org;
 
 import com.zhongshu.card.client.utils.type.OnLineState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
+import com.zhongshu.card.server.core.domain.school.Area;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 75 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/school/DeviceBind.java

@@ -0,0 +1,75 @@
+package com.zhongshu.card.server.core.domain.school;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.utils.type.OnLineState;
+import com.zhongshu.card.client.utils.type.PaymentModeType;
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.checkerframework.common.aliasing.qual.NonLeaked;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * 设备和学校 商户 绑定关系
+ *
+ * @author TRX
+ * @date 2024/7/2
+ */
+@Data
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+@NonLeaked
+public class DeviceBind extends SuperMain {
+
+    @Schema(description = "设备信息")
+    @DBRef(lazy = true)
+    private DeviceInfo deviceInfo;
+
+    @Schema(description = "设备ID、设备号")
+    private String deviceId;
+
+    @Schema(description = "设备名称")
+    private String deviceName;
+
+    @Schema(description = "设备类型,如 消费机 门禁机")
+    private DeviceType deviceType;
+
+    @Schema(description = "关联的项目code")
+    private String projectInfoCode;
+
+    @Schema(description = "网关")
+    private String gateWayId;
+
+    @Schema(description = "是否在线")
+    private OnLineState onLineState = OnLineState.OnLine;
+
+    @Schema(description = "学校信息")
+    @DBRef(lazy = true)
+    private Organization schoolInfo;
+
+    @Schema(description = "学校信息Oid")
+    private String schoolInfoOid;
+
+    @Schema(description = "商户信息")
+    @DBRef(lazy = true)
+    private Organization shopInfo;
+
+    @Schema(description = "商户Oid")
+    private String shopInfoOid;
+
+    @Schema(description = "区域信息")
+    @DBRef(lazy = true)
+    private Area area;
+
+    @Schema(description = "付费模式")
+    private PaymentModeType paymentModeType;
+
+    @Schema(description = "收款账号")
+    private String receivingAccount;
+}

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/payment/ExpendParam.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.server.core.model.payment;
 
 import com.github.microservice.models.type.PaymentType;
 import com.zhongshu.card.server.core.domain.school.CardInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 3 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/DeviceInfoServiceImpl.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/DeviceInfoServiceImpl.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.service.school;
+package com.zhongshu.card.server.core.service.org;
 
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.models.device.DeviceInfoSyncParam;
@@ -9,12 +9,9 @@ import com.zhongshu.card.client.service.school.DeviceInfoService;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.school.AreaDao;
 import com.zhongshu.card.server.core.dao.school.DeviceInfoDao;
-import com.zhongshu.card.server.core.domain.org.Organization;
-import com.zhongshu.card.server.core.domain.school.Area;
-import com.zhongshu.card.server.core.domain.school.BookInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
+import com.zhongshu.card.server.core.service.school.AreaServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;

+ 3 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/GateWayInfoServiceImpl.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/GateWayInfoServiceImpl.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.service.school;
+package com.zhongshu.card.server.core.service.org;
 
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.models.device.GateWaySyncParam;
@@ -9,9 +9,9 @@ import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.school.AreaDao;
 import com.zhongshu.card.server.core.dao.school.GateWayInfoDao;
 import com.zhongshu.card.server.core.domain.school.Area;
-import com.zhongshu.card.server.core.domain.school.GateWayInfo;
+import com.zhongshu.card.server.core.domain.org.GateWayInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
+import com.zhongshu.card.server.core.service.school.AreaServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;

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

@@ -7,8 +7,6 @@ import com.github.microservice.models.type.PaymentDeviceType;
 import com.zhongshu.card.client.model.payment.ExpenseFlowCount;
 import com.zhongshu.card.client.model.payment.ExpenseFlowModel;
 import com.zhongshu.card.client.model.payment.ExpenseFlowSearch;
-import com.zhongshu.card.client.model.school.BookInfoModel;
-import com.zhongshu.card.client.model.school.BookInfoSearch;
 import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.ret.ResultMessage;
 import com.zhongshu.card.client.service.payment.ExpenseFlowService;
@@ -26,12 +24,10 @@ import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.payment.ExpenseFlow;
 import com.zhongshu.card.server.core.domain.payment.Wallet;
 import com.zhongshu.card.server.core.domain.payment.WalletRecharge;
-import com.zhongshu.card.server.core.domain.school.BookInfo;
 import com.zhongshu.card.server.core.domain.school.CardInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import com.zhongshu.card.server.core.httpRequest.ApiRequestService;
 import com.zhongshu.card.server.core.httpRequest.apiConf.APIResponseModel;
-import com.zhongshu.card.server.core.model.payment.ExpendParam;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import com.zhongshu.card.server.core.util.CommonUtil;

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

@@ -2,27 +2,19 @@ package com.zhongshu.card.server.core.service.payment;
 
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.models.hxz.*;
-import com.github.microservice.models.hxz.base.BaseResultModel;
 import com.github.microservice.models.type.PaymentType;
 import com.zhongshu.card.client.ret.ResultContent;
-import com.zhongshu.card.client.utils.type.UserState;
-import com.zhongshu.card.client.utils.type.school.CardState;
 import com.zhongshu.card.server.core.dao.CardInfoDao;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
 import com.zhongshu.card.server.core.dao.school.DeviceInfoDao;
-import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.payment.ExpenseFlow;
-import com.zhongshu.card.server.core.domain.school.CardInfo;
-import com.zhongshu.card.server.core.domain.school.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.DeviceInfo;
 import com.zhongshu.card.server.core.httpRequest.ApiRequestService;
-import com.zhongshu.card.server.core.model.payment.ExpendParam;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.util.CommonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @author TRX

+ 33 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/DeviceBindService.java

@@ -0,0 +1,33 @@
+package com.zhongshu.card.server.core.service.school;
+
+import com.zhongshu.card.server.core.dao.org.OrganizationDao;
+import com.zhongshu.card.server.core.dao.school.DeviceBindDao;
+import com.zhongshu.card.server.core.dao.school.DeviceInfoDao;
+import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author TRX
+ * @date 2024/7/2
+ */
+@Slf4j
+@Service
+public class DeviceBindService extends SuperService {
+
+    @Autowired
+    DeviceBindDao deviceBindDao;
+
+    @Autowired
+    DeviceInfoDao deviceInfoDao;
+
+    @Autowired
+    OrganizationDao organizationDao;
+
+    @Autowired
+    OrganizationServiceImpl organizationService;
+
+
+}

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/sync/DeviceSyncFromIotService.java

@@ -7,7 +7,7 @@ import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.service.school.DeviceInfoService;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationRelationDao;
-import com.zhongshu.card.server.core.service.school.GateWayInfoServiceImpl;
+import com.zhongshu.card.server.core.service.org.GateWayInfoServiceImpl;
 import com.zhongshu.card.server.core.service.user.OperationLogsService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;