소스 검색

机器默认参数api

lijin 6 일 전
부모
커밋
5552efe04c

+ 19 - 0
device-api-cloud/src/main/java/com/xy/feign/DeviceParamsConfigFeign.java

@@ -0,0 +1,19 @@
+package com.xy.feign;
+
+import com.xy.service.DeviceParamsConfigService;
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * <p>
+ * 机器默认参数表 feign
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface DeviceParamsConfigFeign extends DeviceParamsConfigService {
+
+}

+ 47 - 0
device-api-service/src/main/java/com/xy/entity/DeviceParamsConfig.java

@@ -0,0 +1,47 @@
+package com.xy.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 机器默认参数表
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "DeviceParamsConfig对象", description = "机器默认参数表")
+public class DeviceParamsConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId
+    private Long id;
+
+    @ApiModelProperty(value = "商户id")
+    private Long mercId;
+
+    @ApiModelProperty(value = "设备id")
+    private Long deviceId;
+
+    @ApiModelProperty(value = "编码")
+    private String code;
+
+    @ApiModelProperty(value = "值")
+    private String json;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+}

+ 16 - 0
device-api-service/src/main/java/com/xy/mapper/DeviceParamsConfigMapper.java

@@ -0,0 +1,16 @@
+package com.xy.mapper;
+
+import com.xy.entity.DeviceParamsConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 机器默认参数表 Mapper 接口
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+public interface DeviceParamsConfigMapper extends BaseMapper<DeviceParamsConfig> {
+
+}

+ 15 - 0
device-api-service/src/main/java/com/xy/mapper/mapper/DeviceParamsConfigMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xy.mapper.DeviceParamsConfigMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.xy.entity.DeviceParamsConfig">
+        <id column="id" property="id" />
+        <result column="merc_id" property="mercId" />
+        <result column="device_id" property="deviceId" />
+        <result column="key" property="key" />
+        <result column="value" property="value" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

+ 120 - 0
device-api-service/src/main/java/com/xy/service/DeviceParamsConfigServiceImpl.java

@@ -0,0 +1,120 @@
+package com.xy.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yitter.idgen.YitIdHelper;
+import com.xy.collections.list.JArrayList;
+import com.xy.collections.map.JMap;
+import com.xy.dto.DeviceParamsConfigDto;
+import com.xy.dto.be.MercDto;
+import com.xy.entity.DeviceInfo;
+import com.xy.entity.DeviceParamsConfig;
+import com.xy.mapper.DeviceParamsConfigMapper;
+import com.xy.service.be.MercService;
+import com.xy.utils.Emptys;
+import com.xy.utils.MybatisPlusQuery;
+import com.xy.utils.PageBean;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.xy.utils.Beans.copy;
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
+
+/**
+ * <p>
+ * 机器默认参数表 服务实现类
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+@Service
+@AllArgsConstructor
+@Api(tags = "机器默认参数表")
+public class DeviceParamsConfigServiceImpl extends ServiceImpl<DeviceParamsConfigMapper, DeviceParamsConfig> implements DeviceParamsConfigService {
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    private MercService mercService;
+
+    @PostMapping("query")
+    @ApiOperation("查询默认参数")
+    public R<List<DeviceParamsConfigDto.Vo>> query(@RequestBody @Validated DeviceParamsConfigDto.Query query) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(query.getDeviceId());
+        // 查询设备参数
+        List<DeviceParamsConfig> deviceParamsConfigs1 = list(new LambdaQueryWrapper<DeviceParamsConfig>().eq(DeviceParamsConfig::getDeviceId, deviceInfo.getDeviceId()));
+        JMap<String, DeviceParamsConfig> cover = new JArrayList<>(deviceParamsConfigs1).toMap(DeviceParamsConfig::getCode).cover();
+        // 查询商家参数
+        List<DeviceParamsConfig> deviceParamsConfigs2 = list(new LambdaQueryWrapper<DeviceParamsConfig>().eq(DeviceParamsConfig::getMercId, deviceInfo.getMercId()));
+        for (DeviceParamsConfig deviceParamsConfig : deviceParamsConfigs2) {
+            if (cover.containsKey(deviceParamsConfig.getCode())) {
+                continue;
+            }
+            cover.put(deviceParamsConfig.getCode(), deviceParamsConfig);
+        }
+        List<DeviceParamsConfigDto.Vo> vos = copy(DeviceParamsConfigDto.Vo.class, cover.getValues());
+        return R.ok(vos);
+    }
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<DeviceParamsConfigDto.Page.Vo>> page(@RequestBody DeviceParamsConfigDto.Page page) {
+        LambdaQueryWrapper<DeviceParamsConfig> lambdaQueryWrapper = new MybatisPlusQuery()
+                .eqWrapper(page, DeviceParamsConfig.class)
+                .build()
+                .orderByDesc(DeviceParamsConfig::getCreateTime);
+        IPage<DeviceParamsConfig> iPage = page(toIPage(page.getPage()), lambdaQueryWrapper);
+        PageBean<DeviceParamsConfigDto.Page.Vo> pageBean = toPageBean(DeviceParamsConfigDto.Page.Vo.class, iPage);
+        List<DeviceParamsConfigDto.Page.Vo> records = pageBean.getRecords();
+        if (Emptys.check(records)) {
+            List<Long> mercIds = new ArrayList<>();
+            for (DeviceParamsConfigDto.Page.Vo record : records) {
+                if (Emptys.check(record.getMercId()) && !mercIds.contains(record.getMercId())) {
+                    mercIds.add(record.getMercId());
+                }
+            }
+            if (Emptys.check(mercIds)) {
+                List<MercDto.Vo> mercs = mercService.list(new MercDto.SelectList()
+                        .setMercIds(mercIds)
+                ).getData();
+                JMap<Long, MercDto.Vo> cover = new JArrayList<>(mercs).toMap(MercDto.Vo::getId).cover();
+                for (DeviceParamsConfigDto.Page.Vo record : records) {
+                    if (Emptys.check(record.getMercId())) {
+                        MercDto.Vo merc = cover.get(record.getMercId());
+                        record.setMercName(merc.getName());
+                    }
+                }
+            }
+        }
+        return R.ok(pageBean);
+    }
+
+    @PostMapping("save")
+    @ApiOperation("保存")
+    public R save(@RequestBody @Validated DeviceParamsConfigDto.Save save) {
+        if ((!Emptys.check(save.getMercId()) && !Emptys.check(save.getDeviceId())) || Emptys.check(save.getMercId()) && Emptys.check(save.getDeviceId())) {
+            throw new RuntimeException("mercId和deviceId二选一");
+        }
+        DeviceParamsConfig deviceParamsConfig = getOne(new LambdaQueryWrapper<DeviceParamsConfig>().eq(Emptys.check(save.getMercId()), DeviceParamsConfig::getMercId, save.getMercId()).eq(Emptys.check(save.getDeviceId()), DeviceParamsConfig::getDeviceId, save.getDeviceId()).eq(DeviceParamsConfig::getCode, save.getCode()));
+        if (deviceParamsConfig == null) {
+            deviceParamsConfig = new DeviceParamsConfig().setId(YitIdHelper.nextId()).setCreateTime(LocalDateTime.now());
+        }
+        DeviceParamsConfig info = copy(deviceParamsConfig, save);
+        saveOrUpdate(info);
+        return R.ok();
+    }
+
+}

+ 101 - 0
device-api/src/main/java/com/xy/dto/DeviceParamsConfigDto.java

@@ -0,0 +1,101 @@
+package com.xy.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 机器默认参数表
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+public class DeviceParamsConfigDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class Query {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty(value = "设备id", required = true)
+        private Long deviceId;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page {
+
+        @ApiModelProperty(value = "分页对象", required = true)
+        private PageBean page;
+
+        @ApiModelProperty(value = "商户id")
+        private Long mercId;
+
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @ApiModelProperty(value = "编码")
+        private String code;
+
+        @Data
+        @Accessors(chain = true)
+        public static class Vo extends DeviceParamsConfigDto.Vo {
+
+            @ApiModelProperty(value = "商家名称")
+            private String mercName;
+
+        }
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save {
+
+        @ApiModelProperty(value = "商户id")
+        private Long mercId;
+
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @ApiModelProperty(value = "编码", required = true)
+        private String code;
+
+        @ApiModelProperty(value = "值", required = true)
+        private String json;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        private Long id;
+
+        @ApiModelProperty(value = "商户id")
+        private Long mercId;
+
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @ApiModelProperty(value = "编码")
+        private String code;
+
+        @ApiModelProperty(value = "值")
+        private String json;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+
+    }
+
+}

+ 16 - 0
device-api/src/main/java/com/xy/service/DeviceParamsConfigService.java

@@ -0,0 +1,16 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+
+/**
+ * <p>
+ * 机器默认参数表 服务类
+ * </p>
+ *
+ * @author lijin
+ * @since 2025-06-30
+ */
+@RestMappingController("/device-params-config")
+public interface DeviceParamsConfigService {
+
+}