Ver Fonte

更新!

TRX há 1 ano atrás
pai
commit
93452b77d6

+ 135 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/model/DeviceInfoOpenApiModel.java

@@ -0,0 +1,135 @@
+package com.zhongshu.card.client.openApi.model;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.model.org.OrganizationMiniModel;
+import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
+import com.zhongshu.card.client.model.school.AreaSimpleModel;
+import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.OnLineState;
+import com.zhongshu.opengateway.client.model.OpenApiModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+
+/**
+ * @author TRX
+ * @date 2024/11/12
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DeviceInfoOpenApiModel extends OpenApiModel {
+
+    @Schema(description = "设备ID、设备编号")
+    private String deviceId;
+
+    @Schema(description = "设备名称")
+    private String deviceName;
+
+    @Schema(description = "设备类型,如 消费机 门禁机")
+    private DeviceType deviceType;
+
+    private String deviceTypeStr;
+
+    public String getDeviceTypeStr() {
+        if (deviceType != null) {
+            return deviceType.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "网关号")
+    private String gateWayId;
+
+    @Schema(description = "设备名称")
+    private String gateWayName;
+
+    @Schema(description = "关联的项目code")
+    private String projectInfoCode;
+
+    @Schema(description = "关联的项目Name")
+    private String projectInfoName;
+
+    @Schema(description = "关联的项目信息")
+    private OrganizationSimpleModel projectInfo;
+
+    @Schema(description = "")
+    private OrganizationMiniModel organization;
+
+    @Schema(description = "所属机构信息")
+    private String beLongOid;
+
+    @Schema(description = "所属机构信息")
+    private String beLongName;
+
+    public String getBeLongOid() {
+        if (organization != null) {
+            return organization.getOid();
+        }
+        return "";
+    }
+
+    public String getBeLongName() {
+        if (organization != null) {
+            return organization.getName();
+        }
+        return "";
+    }
+
+    @Schema(description = "是否在线")
+    private OnLineState onLineState = OnLineState.OnLine;
+
+    private String onLineStateStr;
+
+    public String getOnLineStateStr() {
+        if (onLineState != null) {
+            return onLineState.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "最上线时间")
+    private Long lastOnlineTime;
+
+    @Schema(description = "设备IP地址")
+    private String ip;
+
+    @Schema(description = "数据状态")
+    private DataState state;
+
+    private String stateStr;
+
+    public String getStateStr() {
+        if (state != null) {
+            return state.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "区域信息")
+    private AreaSimpleModel area;
+
+    @Schema(description = "")
+    private String areaId;
+
+    public String getAreaId() {
+        if (ObjectUtils.isNotEmpty(area)) {
+            return area.getId();
+        }
+        return "";
+    }
+
+    private String areaName = "";
+
+    public String getAreaName() {
+        if (ObjectUtils.isNotEmpty(area)) {
+            return area.getName();
+        }
+        return "";
+    }
+
+    private String areaAllName = "";
+
+}

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/service/payment/ExpenseFlowService.java

@@ -24,7 +24,7 @@ public interface ExpenseFlowService {
 
     ResultContent<ExpenseFlowAreaModel> getDetail(String id);
 
-    ResultContent<ExpenseFlowModel> getDetailByPaymentNo(String paymentNo);
+    ResultContent<ExpenseFlowAreaModel> getDetailByPaymentNo(String paymentNo);
 
     // 商户的订单列表
     ResultContent<Page<ExpenseFlowModel>> pageBusMainOrder(ExpenseFlowSearch param, Pageable pageable);

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/payment/ExpenseFlowController.java

@@ -9,6 +9,7 @@ import com.zhongshu.card.client.model.payment.*;
 import com.zhongshu.card.client.model.payment.statistic.BusinessMainStatisticModel;
 import com.zhongshu.card.client.model.payment.statistic.StatisticSearch;
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.openApi.params.PaymentNoParam;
 import com.zhongshu.card.client.service.payment.ExpenseFlowService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -67,6 +68,13 @@ public class ExpenseFlowController {
         return this.expenseFlowService.getDetail(param.getId());
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "消费详情--支付订单号查询", description = "消费详情")
+    @RequestMapping(value = "getDetailByPaymentNo", method = {RequestMethod.POST})
+    public ResultContent<ExpenseFlowAreaModel> getDetailByPaymentNo(@RequestBody PaymentNoParam param) {
+        return this.expenseFlowService.getDetailByPaymentNo(param.getPaymentNo());
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "统计消费总数(当前用户)", description = "统计消费总数")
     @RequestMapping(value = {"countPayment"}, method = {RequestMethod.POST})

+ 111 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/DevicePermissOpenApiService.java

@@ -0,0 +1,111 @@
+package com.zhongshu.card.server.core.service.openAPI;
+
+import com.github.microservice.components.data.base.util.PageEntityUtil;
+import com.github.microservice.net.ResultContent;
+import com.github.microservice.types.OrderModeType;
+import com.github.microservice.types.OrderState;
+import com.zhongshu.card.client.model.devices.DeviceInfoModel;
+import com.zhongshu.card.client.model.devices.DeviceInfoSearch;
+import com.zhongshu.card.client.model.org.OrganizationMiniModel;
+import com.zhongshu.card.client.model.payment.ExpenseFlowSearch;
+import com.zhongshu.card.client.model.school.AreaSimpleModel;
+import com.zhongshu.card.client.openApi.model.DeviceInfoOpenApiModel;
+import com.zhongshu.card.client.openApi.model.ExpenseFlowOpenApiModel;
+import com.zhongshu.card.client.openApi.params.ExpenseFlowOpenApiSearch;
+import com.zhongshu.card.client.openApi.params.PaymentNoParam;
+import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
+import com.zhongshu.card.server.core.dao.payment.ExpenseFlowDao;
+import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
+import com.zhongshu.card.server.core.domain.payment.ExpenseFlow;
+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.orgManager.OrganizationManagerServiceImpl;
+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;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 设备权限相关的 openAPI
+ *
+ * @author TRX
+ * @date 2024/11/12
+ */
+@Slf4j
+@Service
+public class DevicePermissOpenApiService extends SuperService {
+
+
+    @Autowired
+    private ExpenseFlowDao expenseFlowDao;
+
+    @Autowired
+    private OrganizationManagerServiceImpl organizationManagerService;
+
+    @Autowired
+    private OrganizationServiceImpl organizationServiceImpl;
+
+    @Autowired
+    private AreaServiceImpl areaService;
+
+    @Autowired
+    private DeviceInfoDao deviceInfoDao;
+
+    /**
+     * 设备列表
+     *
+     * @param apiSearch
+     * @return
+     */
+    public ResultContent<Page<DeviceInfoOpenApiModel>> page(ExpenseFlowOpenApiSearch apiSearch) {
+        if (StringUtils.isEmpty(apiSearch.getProjectCode())) {
+            return ResultContent.buildFail("projectCode不能为空");
+        }
+        DeviceInfoSearch param = new DeviceInfoSearch();
+
+
+        Pageable pageable = PageRequest.of(apiSearch.getNumber(), apiSearch.getSize());
+        Page<DeviceInfo> page = deviceInfoDao.page(pageable, param);
+        return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
+    }
+
+    /**
+     * 设备基础信息
+     *
+     * @param entity
+     * @return
+     */
+    public DeviceInfoOpenApiModel toModel(DeviceInfo entity) {
+        DeviceInfoOpenApiModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new DeviceInfoOpenApiModel();
+            // 所属机构信息
+            OrganizationMiniModel miniModel = organizationManagerService.toMiniModel(entity.getOrganization());
+            model.setOrganization(miniModel);
+
+            BeanUtils.copyProperties(entity, model);
+            model.setProjectInfoName(organizationServiceImpl.getOrgNameByCode(entity.getProjectInfoCode()));
+
+            // 所属区域信息
+            List<AreaSimpleModel> areaModels = areaService.getParents(entity.getArea());
+            if (ObjectUtils.isNotEmpty(areaModels)) {
+                model.setArea(areaModels.get(0));
+                Collections.reverse(areaModels);
+                List<String> areaNames = areaModels.stream().map(it -> it.getName()).collect(Collectors.toList());
+                model.setAreaAllName(String.join("/", areaNames));
+            }
+        }
+        return model;
+    }
+
+}

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

@@ -729,12 +729,12 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
      * @param paymentNo
      * @return
      */
-    public ResultContent<ExpenseFlowModel> getDetailByPaymentNo(String paymentNo) {
+    public ResultContent<ExpenseFlowAreaModel> getDetailByPaymentNo(String paymentNo) {
         ExpenseFlow entity = expenseFlowDao.findTopByPaymentNo(paymentNo);
         if (ObjectUtils.isEmpty(entity)) {
             return ResultContent.buildSuccess(String.format(ResultMessage.DATA_NOT_EXIST, paymentNo));
         }
-        ExpenseFlowModel model = toModel(entity);
+        ExpenseFlowModel model = toAreaModel(entity);
         return ResultContent.buildSuccess(model);
     }