部署
This commit is contained in:
parent
1a2128642f
commit
c6edec8083
|
@ -11,7 +11,7 @@ import com.ruoyi.ss.device.domain.SmDeviceQuery;
|
||||||
import com.ruoyi.ss.device.domain.enums.DeviceOnlineStatus;
|
import com.ruoyi.ss.device.domain.enums.DeviceOnlineStatus;
|
||||||
import com.ruoyi.ss.device.service.ISmDeviceService;
|
import com.ruoyi.ss.device.service.ISmDeviceService;
|
||||||
import com.ruoyi.ss.model.domain.SmModelQuery;
|
import com.ruoyi.ss.model.domain.SmModelQuery;
|
||||||
import com.ruoyi.ss.model.service.ISmModelService;
|
import com.ruoyi.ss.model.service.ModelService;
|
||||||
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
||||||
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
||||||
import com.ruoyi.ss.transactionBill.service.TransactionBillService;
|
import com.ruoyi.ss.transactionBill.service.TransactionBillService;
|
||||||
|
@ -43,7 +43,7 @@ public class SmBusinessRecordServiceImpl implements ISmBusinessRecordService
|
||||||
private ISmUserService userService;
|
private ISmUserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmModelService modelService;
|
private ModelService modelService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TransactionBillService transactionBillService;
|
private TransactionBillService transactionBillService;
|
||||||
|
|
|
@ -7,6 +7,7 @@ package com.ruoyi.ss.device.domain.enums;
|
||||||
public enum DeviceGroupByTable {
|
public enum DeviceGroupByTable {
|
||||||
|
|
||||||
sd, // 设备表
|
sd, // 设备表
|
||||||
ss // 店铺表
|
ss, // 店铺表
|
||||||
|
su, // 用户表
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,6 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</trim>
|
</trim>
|
||||||
from sm_device sd
|
from sm_device sd
|
||||||
left join sm_store ss on ss.store_id = sd.store_id
|
left join sm_store ss on ss.store_id = sd.store_id
|
||||||
|
left join sm_user su on su.user_id = sd.user_id
|
||||||
<where>
|
<where>
|
||||||
<include refid="searchCondition"/>
|
<include refid="searchCondition"/>
|
||||||
</where>
|
</where>
|
||||||
|
|
|
@ -22,7 +22,7 @@ import com.ruoyi.ss.device.service.DeviceValidator;
|
||||||
import com.ruoyi.ss.device.service.ISmDeviceService;
|
import com.ruoyi.ss.device.service.ISmDeviceService;
|
||||||
import com.ruoyi.ss.deviceBindRecord.service.ISmDeviceBindRecordService;
|
import com.ruoyi.ss.deviceBindRecord.service.ISmDeviceBindRecordService;
|
||||||
import com.ruoyi.ss.model.domain.SmModelVo;
|
import com.ruoyi.ss.model.domain.SmModelVo;
|
||||||
import com.ruoyi.ss.model.service.ISmModelService;
|
import com.ruoyi.ss.model.service.ModelService;
|
||||||
import com.ruoyi.ss.record.time.service.IRecordTimeService;
|
import com.ruoyi.ss.record.time.service.IRecordTimeService;
|
||||||
import com.ruoyi.ss.record.time.service.RecordTimeConverter;
|
import com.ruoyi.ss.record.time.service.RecordTimeConverter;
|
||||||
import com.ruoyi.ss.resetRecord.service.ISmResetRecordService;
|
import com.ruoyi.ss.resetRecord.service.ISmResetRecordService;
|
||||||
|
@ -66,9 +66,6 @@ public class SmDeviceServiceImpl implements ISmDeviceService
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmDeviceBindRecordService smDeviceBindRecordService;
|
private ISmDeviceBindRecordService smDeviceBindRecordService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ISmResetRecordService smResetRecordService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ScheduledExecutorService scheduledExecutorService;
|
private ScheduledExecutorService scheduledExecutorService;
|
||||||
|
|
||||||
|
@ -88,7 +85,7 @@ public class SmDeviceServiceImpl implements ISmDeviceService
|
||||||
private RecordTimeConverter recordTimeConverter;
|
private RecordTimeConverter recordTimeConverter;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmModelService smModelService;
|
private ModelService smModelService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmUserService userService;
|
private ISmUserService userService;
|
||||||
|
@ -749,8 +746,9 @@ public class SmDeviceServiceImpl implements ISmDeviceService
|
||||||
boolean create = iotService.create(smDevice.getMac());
|
boolean create = iotService.create(smDevice.getMac());
|
||||||
ServiceUtil.assertion(!create, "创建OneNet设备失败");
|
ServiceUtil.assertion(!create, "创建OneNet设备失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("select model in:{}", deviceInfo.getModel());
|
log.info("select model in:{}", deviceInfo.getModel());
|
||||||
SmModelVo model = smModelService.selectByIotModel(deviceInfo.getModel());
|
SmModelVo model = smModelService.selectByModel(deviceInfo.getModel());
|
||||||
|
|
||||||
IotDeviceInfo finalDeviceInfo = deviceInfo;
|
IotDeviceInfo finalDeviceInfo = deviceInfo;
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
|
@ -761,7 +759,7 @@ public class SmDeviceServiceImpl implements ISmDeviceService
|
||||||
log.info("model is null");
|
log.info("model is null");
|
||||||
int addModel = smModelService.addInitModel(finalDeviceInfo);
|
int addModel = smModelService.addInitModel(finalDeviceInfo);
|
||||||
ServiceUtil.assertion(addModel != 1, "添加设备型号失败");
|
ServiceUtil.assertion(addModel != 1, "添加设备型号失败");
|
||||||
finalModel = smModelService.selectByIotModel(finalDeviceInfo.getModel());
|
finalModel = smModelService.selectByModel(finalDeviceInfo.getModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加设备
|
// 添加设备
|
||||||
|
|
|
@ -43,18 +43,6 @@ public class SmModel extends BaseEntity
|
||||||
@ApiModelProperty("图片")
|
@ApiModelProperty("图片")
|
||||||
private String picture;
|
private String picture;
|
||||||
|
|
||||||
/** 识别码 */
|
|
||||||
@Excel(name = "识别码")
|
|
||||||
@ApiModelProperty("识别码")
|
|
||||||
@NotNull(message = "识别码不允许为空", groups = {ValidGroup.Create.class})
|
|
||||||
private String idCode;
|
|
||||||
|
|
||||||
/** 硬件版本 */
|
|
||||||
@Excel(name = "硬件版本")
|
|
||||||
@ApiModelProperty("硬件版本")
|
|
||||||
@NotNull(message = "硬件版本不允许为空", groups = {ValidGroup.Create.class})
|
|
||||||
private Long versionId;
|
|
||||||
|
|
||||||
/** 产品介绍 */
|
/** 产品介绍 */
|
||||||
@Excel(name = "产品介绍")
|
@Excel(name = "产品介绍")
|
||||||
@ApiModelProperty("硬件版本")
|
@ApiModelProperty("硬件版本")
|
||||||
|
|
|
@ -15,17 +15,18 @@ public class SmModelBO extends SmModel {
|
||||||
bo.setModel(getModel());
|
bo.setModel(getModel());
|
||||||
bo.setTags(getTags());
|
bo.setTags(getTags());
|
||||||
bo.setPicture(getPicture());
|
bo.setPicture(getPicture());
|
||||||
bo.setIdCode(getIdCode());
|
|
||||||
bo.setIntroduce(getIntroduce());
|
bo.setIntroduce(getIntroduce());
|
||||||
bo.setRemark(getRemark());
|
bo.setRemark(getRemark());
|
||||||
bo.setVersionId(getVersionId());
|
|
||||||
return bo;
|
return bo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 过滤可更新的字段
|
// 过滤可更新的字段
|
||||||
public SmModelBO filterUpdate() {
|
public SmModelBO filterUpdate() {
|
||||||
SmModelBO bo = new SmModelBO();
|
SmModelBO bo = new SmModelBO();
|
||||||
|
bo.setModelId(getModelId());
|
||||||
bo.setModelName(getModelName());
|
bo.setModelName(getModelName());
|
||||||
|
bo.setModel(getModel());
|
||||||
|
bo.setTags(getTags());
|
||||||
bo.setPicture(getPicture());
|
bo.setPicture(getPicture());
|
||||||
bo.setIntroduce(getIntroduce());
|
bo.setIntroduce(getIntroduce());
|
||||||
bo.setRemark(getRemark());
|
bo.setRemark(getRemark());
|
||||||
|
|
|
@ -4,22 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.ss.model.mapper.SmModelMapper">
|
<mapper namespace="com.ruoyi.ss.model.mapper.SmModelMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.ss.model.domain.SmModelVo" id="SmModelResult">
|
<resultMap type="com.ruoyi.ss.model.domain.SmModelVo" id="SmModelResult" autoMapping="true">
|
||||||
<result property="modelId" column="model_id" />
|
|
||||||
<result property="modelName" column="model_name" />
|
|
||||||
<result property="model" column="model" />
|
|
||||||
<result property="picture" column="picture" />
|
|
||||||
<result property="idCode" column="id_code" />
|
|
||||||
<result property="versionId" column="version_id" />
|
|
||||||
<result property="introduce" column="introduce" />
|
|
||||||
<result property="createBy" column="create_by" />
|
|
||||||
<result property="createTime" column="create_time" />
|
|
||||||
<result property="updateBy" column="update_by" />
|
|
||||||
<result property="updateTime" column="update_time" />
|
|
||||||
<result property="remark" column="remark" />
|
|
||||||
<result property="activationCount" column="activation_count"/>
|
|
||||||
<result property="onlineCount" column="online_count"/>
|
|
||||||
<result property="deleted" column="deleted"/>
|
|
||||||
<result property="tags" column="tags" typeHandler="com.ruoyi.system.mapper.typehandler.StringSplitListTypeHandler"/>
|
<result property="tags" column="tags" typeHandler="com.ruoyi.system.mapper.typehandler.StringSplitListTypeHandler"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
@ -28,8 +13,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
sm.model_name,
|
sm.model_name,
|
||||||
sm.model,
|
sm.model,
|
||||||
sm.picture,
|
sm.picture,
|
||||||
sm.id_code,
|
|
||||||
sm.version_id,
|
|
||||||
sm.introduce,
|
sm.introduce,
|
||||||
sm.create_by,
|
sm.create_by,
|
||||||
sm.create_time,
|
sm.create_time,
|
||||||
|
@ -47,15 +30,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<sql id="searchCondition">
|
<sql id="searchCondition">
|
||||||
<if test="modelName != null and modelName != ''"> and sm.model_name like concat('%', #{modelName}, '%')</if>
|
<if test="modelName != null and modelName != ''"> and sm.model_name like concat('%', #{modelName}, '%')</if>
|
||||||
<if test="model != null and model != ''"> and sm.model = #{model}</if>
|
<if test="model != null and model != ''"> and sm.model = #{model}</if>
|
||||||
<if test="idCode != null and idCode != ''"> and sm.id_code = #{idCode}</if>
|
<if test="deleted == null">and sm.deleted = false</if>
|
||||||
<if test="versionId != null "> and sm.version_id = #{versionId}</if>
|
<if test="deleted != null">and sm.deleted = #{deleted}</if>
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectSmModelList" parameterType="SmModelQuery" resultMap="SmModelResult">
|
<select id="selectSmModelList" parameterType="SmModelQuery" resultMap="SmModelResult">
|
||||||
<include refid="selectSmModelVo"/>
|
<include refid="selectSmModelVo"/>
|
||||||
<where>
|
<where>
|
||||||
<include refid="searchCondition"/>
|
<include refid="searchCondition"/>
|
||||||
and sm.deleted = false
|
|
||||||
</where>
|
</where>
|
||||||
group by sm.model_id
|
group by sm.model_id
|
||||||
</select>
|
</select>
|
||||||
|
@ -71,7 +53,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
from sm_model sm
|
from sm_model sm
|
||||||
<where>
|
<where>
|
||||||
<include refid="searchCondition"/>
|
<include refid="searchCondition"/>
|
||||||
and sm.deleted = false
|
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@ -81,8 +62,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="modelName != null">model_name,</if>
|
<if test="modelName != null">model_name,</if>
|
||||||
<if test="model != null">model,</if>
|
<if test="model != null">model,</if>
|
||||||
<if test="picture != null">picture,</if>
|
<if test="picture != null">picture,</if>
|
||||||
<if test="idCode != null">id_code,</if>
|
|
||||||
<if test="versionId != null">version_id,</if>
|
|
||||||
<if test="introduce != null">introduce,</if>
|
<if test="introduce != null">introduce,</if>
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="createTime != null">create_time,</if>
|
<if test="createTime != null">create_time,</if>
|
||||||
|
@ -96,8 +75,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="modelName != null">#{modelName},</if>
|
<if test="modelName != null">#{modelName},</if>
|
||||||
<if test="model != null">#{model},</if>
|
<if test="model != null">#{model},</if>
|
||||||
<if test="picture != null">#{picture},</if>
|
<if test="picture != null">#{picture},</if>
|
||||||
<if test="idCode != null">#{idCode},</if>
|
|
||||||
<if test="versionId != null">#{versionId},</if>
|
|
||||||
<if test="introduce != null">#{introduce},</if>
|
<if test="introduce != null">#{introduce},</if>
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="createTime != null">#{createTime},</if>
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
@ -115,8 +92,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="modelName != null">model_name = #{modelName},</if>
|
<if test="modelName != null">model_name = #{modelName},</if>
|
||||||
<if test="model != null">model = #{model},</if>
|
<if test="model != null">model = #{model},</if>
|
||||||
<if test="picture != null">picture = #{picture},</if>
|
<if test="picture != null">picture = #{picture},</if>
|
||||||
<if test="idCode != null">id_code = #{idCode},</if>
|
|
||||||
<if test="versionId != null">version_id = #{versionId},</if>
|
|
||||||
<if test="introduce != null">introduce = #{introduce},</if>
|
<if test="introduce != null">introduce = #{introduce},</if>
|
||||||
<if test="createBy != null">create_by = #{createBy},</if>
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
<if test="createTime != null">create_time = #{createTime},</if>
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.util.List;
|
||||||
* @author 邱贞招
|
* @author 邱贞招
|
||||||
* @date 2024-02-21
|
* @date 2024-02-21
|
||||||
*/
|
*/
|
||||||
public interface ISmModelService
|
public interface ModelService
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询型号列表
|
* 查询型号列表
|
||||||
|
@ -77,9 +77,9 @@ public interface ISmModelService
|
||||||
int logicDelete(List<Long> modelIds);
|
int logicDelete(List<Long> modelIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据物联网的型号查询数据
|
* 根据型号查询数据
|
||||||
*/
|
*/
|
||||||
SmModelVo selectByIotModel(String model);
|
SmModelVo selectByModel(String model);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建初始型号
|
* 创建初始型号
|
|
@ -3,15 +3,16 @@ package com.ruoyi.ss.model.service;
|
||||||
import com.ruoyi.common.core.domain.ValidateResult;
|
import com.ruoyi.common.core.domain.ValidateResult;
|
||||||
import com.ruoyi.ss.model.domain.SmModelBO;
|
import com.ruoyi.ss.model.domain.SmModelBO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2024/4/22
|
* 2024/4/22
|
||||||
*/
|
*/
|
||||||
public interface ModelValidator {
|
public interface ModelValidator {
|
||||||
|
|
||||||
// 插入前校验
|
// 判断型号是否重复
|
||||||
ValidateResult preInsert(SmModelBO bo);
|
boolean isRepeatModel(Long modelId, String model);
|
||||||
|
|
||||||
// 更新前校验
|
|
||||||
ValidateResult preUpdate(SmModelBO bo);
|
|
||||||
|
|
||||||
|
// 判断型号标签是否合法
|
||||||
|
boolean hasTags(List<String> tags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.ruoyi.ss.model.service.impl;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.ServiceUtil;
|
import com.ruoyi.common.utils.ServiceUtil;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.common.utils.collection.CollectionUtils;
|
||||||
import com.ruoyi.iot.domain.IotDeviceInfo;
|
import com.ruoyi.iot.domain.IotDeviceInfo;
|
||||||
import com.ruoyi.ss.device.domain.vo.SmDeviceVO;
|
import com.ruoyi.ss.device.domain.vo.SmDeviceVO;
|
||||||
import com.ruoyi.ss.device.service.ISmDeviceService;
|
import com.ruoyi.ss.device.service.ISmDeviceService;
|
||||||
|
@ -11,10 +12,10 @@ import com.ruoyi.ss.model.domain.SmModelBO;
|
||||||
import com.ruoyi.ss.model.domain.SmModelQuery;
|
import com.ruoyi.ss.model.domain.SmModelQuery;
|
||||||
import com.ruoyi.ss.model.domain.SmModelVo;
|
import com.ruoyi.ss.model.domain.SmModelVo;
|
||||||
import com.ruoyi.ss.model.mapper.SmModelMapper;
|
import com.ruoyi.ss.model.mapper.SmModelMapper;
|
||||||
import com.ruoyi.ss.model.service.ISmModelService;
|
import com.ruoyi.ss.model.service.ModelService;
|
||||||
|
import com.ruoyi.ss.model.service.ModelValidator;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -28,14 +29,17 @@ import java.util.stream.Collectors;
|
||||||
* @date 2024-02-21
|
* @date 2024-02-21
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SmModelServiceImpl implements ISmModelService
|
public class ModelServiceImpl implements ModelService
|
||||||
{
|
{
|
||||||
@Autowired
|
@Autowired
|
||||||
private SmModelMapper smModelMapper;
|
private SmModelMapper modelMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmDeviceService deviceService;
|
private ISmDeviceService deviceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ModelValidator modelValidator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询型号列表
|
* 查询型号列表
|
||||||
*
|
*
|
||||||
|
@ -45,7 +49,7 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
@Override
|
@Override
|
||||||
public SmModelVo selectSmModelByModelId(Long modelId)
|
public SmModelVo selectSmModelByModelId(Long modelId)
|
||||||
{
|
{
|
||||||
return smModelMapper.selectSmModelByModelId(modelId);
|
return modelMapper.selectSmModelByModelId(modelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,37 +61,41 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
@Override
|
@Override
|
||||||
public List<SmModelVo> selectSmModelList(SmModelQuery smModel)
|
public List<SmModelVo> selectSmModelList(SmModelQuery smModel)
|
||||||
{
|
{
|
||||||
return smModelMapper.selectSmModelList(smModel);
|
return modelMapper.selectSmModelList(smModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增型号列表
|
* 新增型号列表
|
||||||
*
|
*
|
||||||
* @param smModel 型号列表
|
* @param data 型号列表
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertSmModel(SmModelBO smModel)
|
public int insertSmModel(SmModelBO data) {
|
||||||
{
|
ServiceUtil.assertion(data == null, "参数不能为空");
|
||||||
smModel.setCreateTime(DateUtils.getNowDate());
|
ServiceUtil.assertion(CollectionUtils.isEmptyElement(data.getTags()) && !modelValidator.hasTags(data.getTags()), "非法的标签");
|
||||||
return smModelMapper.insertSmModel(smModel);
|
ServiceUtil.assertion(modelValidator.isRepeatModel(data.getModelId(), data.getModel()), "型号重复");
|
||||||
|
data.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return modelMapper.insertSmModel(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改型号列表
|
* 修改型号
|
||||||
*
|
*
|
||||||
* @param smModel 型号列表
|
* @param data 型号
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateSmModel(SmModelBO smModel)
|
public int updateSmModel(SmModelBO data) {
|
||||||
{
|
ServiceUtil.assertion(data == null, "参数不能为空");
|
||||||
smModel.setUpdateTime(DateUtils.getNowDate());
|
ServiceUtil.assertion(CollectionUtils.isEmptyElement(data.getTags()) && !modelValidator.hasTags(data.getTags()), "非法的标签");
|
||||||
return smModelMapper.updateSmModel(smModel);
|
ServiceUtil.assertion(modelValidator.isRepeatModel(data.getModelId(), data.getModel()), "型号重复");
|
||||||
|
data.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return modelMapper.updateSmModel(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除型号列表
|
* 批量删除型号
|
||||||
*
|
*
|
||||||
* @param modelIds 需要删除的型号列表主键
|
* @param modelIds 需要删除的型号列表主键
|
||||||
* @return 结果
|
* @return 结果
|
||||||
|
@ -95,7 +103,7 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
@Override
|
@Override
|
||||||
public int deleteSmModelByModelIds(Long[] modelIds)
|
public int deleteSmModelByModelIds(Long[] modelIds)
|
||||||
{
|
{
|
||||||
return smModelMapper.deleteSmModelByModelIds(modelIds);
|
return modelMapper.deleteSmModelByModelIds(modelIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -107,28 +115,28 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
@Override
|
@Override
|
||||||
public int deleteSmModelByModelId(Long modelId)
|
public int deleteSmModelByModelId(Long modelId)
|
||||||
{
|
{
|
||||||
return smModelMapper.deleteSmModelByModelId(modelId);
|
return modelMapper.deleteSmModelByModelId(modelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer selectCount(SmModelQuery dto) {
|
public Integer selectCount(SmModelQuery dto) {
|
||||||
return smModelMapper.selectCount(dto);
|
return modelMapper.selectCount(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int logicDelete(List<Long> modelIds) {
|
public int logicDelete(List<Long> modelIds) {
|
||||||
this.validatePreLogicDelete(modelIds);
|
this.validatePreLogicDelete(modelIds);
|
||||||
return smModelMapper.logicDeleteByIds(modelIds);
|
return modelMapper.logicDeleteByIds(modelIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SmModelVo selectByIotModel(String model) {
|
public SmModelVo selectByModel(String model) {
|
||||||
if (!StringUtils.hasText(model)) {
|
if (!StringUtils.hasText(model)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SmModelQuery query = new SmModelQuery();
|
SmModelQuery query = new SmModelQuery();
|
||||||
query.setModel(model);
|
query.setModel(model);
|
||||||
List<SmModelVo> list = smModelMapper.selectSmModelList(query);
|
List<SmModelVo> list = modelMapper.selectSmModelList(query);
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -143,7 +151,7 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
SmModel data = new SmModel();
|
SmModel data = new SmModel();
|
||||||
data.setModelName("未命名");
|
data.setModelName("未命名");
|
||||||
data.setModel(deviceInfo.getModel());
|
data.setModel(deviceInfo.getModel());
|
||||||
return smModelMapper.insertSmModel(data);
|
return modelMapper.insertSmModel(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -174,7 +182,7 @@ public class SmModelServiceImpl implements ISmModelService
|
||||||
}
|
}
|
||||||
SmModelQuery dto = new SmModelQuery();
|
SmModelQuery dto = new SmModelQuery();
|
||||||
dto.setModelIds(modelIds);
|
dto.setModelIds(modelIds);
|
||||||
List<SmModelVo> list = smModelMapper.selectSmModelList(dto);
|
List<SmModelVo> list = modelMapper.selectSmModelList(dto);
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
|
@ -3,12 +3,17 @@ package com.ruoyi.ss.model.service.impl;
|
||||||
import com.ruoyi.common.core.domain.BaseValidator;
|
import com.ruoyi.common.core.domain.BaseValidator;
|
||||||
import com.ruoyi.common.core.domain.ValidateResult;
|
import com.ruoyi.common.core.domain.ValidateResult;
|
||||||
import com.ruoyi.ss.model.domain.SmModelBO;
|
import com.ruoyi.ss.model.domain.SmModelBO;
|
||||||
|
import com.ruoyi.ss.model.domain.SmModelVo;
|
||||||
import com.ruoyi.ss.model.domain.enums.ModelTag;
|
import com.ruoyi.ss.model.domain.enums.ModelTag;
|
||||||
|
import com.ruoyi.ss.model.service.ModelService;
|
||||||
import com.ruoyi.ss.model.service.ModelValidator;
|
import com.ruoyi.ss.model.service.ModelValidator;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2024/4/22
|
* 2024/4/22
|
||||||
|
@ -16,37 +21,23 @@ import java.util.List;
|
||||||
@Service
|
@Service
|
||||||
public class ModelValidatorImpl extends BaseValidator implements ModelValidator {
|
public class ModelValidatorImpl extends BaseValidator implements ModelValidator {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ModelService modelService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ValidateResult preInsert(SmModelBO bo) {
|
public boolean isRepeatModel(Long modelId, String model) {
|
||||||
if (bo == null) {
|
if (StringUtils.isBlank(model)) {
|
||||||
return error("参数不能为空");
|
return false;
|
||||||
}
|
}
|
||||||
|
SmModelVo repeat = modelService.selectByModel(model);
|
||||||
if (!this.hasTags(bo.getTags())) {
|
return repeat != null && !Objects.equals(repeat.getModelId(), modelId);
|
||||||
return error("非法的标签");
|
|
||||||
}
|
|
||||||
|
|
||||||
return success();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ValidateResult preUpdate(SmModelBO bo) {
|
|
||||||
if (bo == null) {
|
|
||||||
return error("参数不能为空");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(bo.getTags()) && this.hasTags(bo.getTags())) {
|
|
||||||
return error("非法的标签");
|
|
||||||
}
|
|
||||||
|
|
||||||
return success();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断标签是否合法
|
* 判断标签是否合法
|
||||||
*/
|
*/
|
||||||
private boolean hasTags(List<String> tags) {
|
@Override
|
||||||
|
public boolean hasTags(List<String> tags) {
|
||||||
if (!CollectionUtils.isEmpty(tags)) {
|
if (!CollectionUtils.isEmpty(tags)) {
|
||||||
return ModelTag.contains(tags);
|
return ModelTag.contains(tags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class UserAssemblerImpl implements UserAssembler {
|
||||||
SmDeviceQuery query = new SmDeviceQuery();
|
SmDeviceQuery query = new SmDeviceQuery();
|
||||||
query.setUserIds(list.stream().map(SmUserVo::getUserId).collect(Collectors.toList()));
|
query.setUserIds(list.stream().map(SmUserVo::getUserId).collect(Collectors.toList()));
|
||||||
query.setGroupBy(DeviceGroupBy.user_id.name());
|
query.setGroupBy(DeviceGroupBy.user_id.name());
|
||||||
query.setGroupByTable(DeviceGroupByTable.ss.name());
|
query.setGroupByTable(DeviceGroupByTable.su.name());
|
||||||
Map<Long, Integer> map = deviceService.selectCommonCountMap(query, SmDeviceCountVO::getUserId);
|
Map<Long, Integer> map = deviceService.selectCommonCountMap(query, SmDeviceCountVO::getUserId);
|
||||||
|
|
||||||
for (SmUserVo user : list) {
|
for (SmUserVo user : list) {
|
||||||
|
|
|
@ -87,7 +87,7 @@ public class AppDeviceController extends BaseController {
|
||||||
@ApiOperation("获取设备详细信息")
|
@ApiOperation("获取设备详细信息")
|
||||||
@GetMapping(value = "/{deviceId}")
|
@GetMapping(value = "/{deviceId}")
|
||||||
public AjaxResult getInfo(@PathVariable("deviceId") Long deviceId) {
|
public AjaxResult getInfo(@PathVariable("deviceId") Long deviceId) {
|
||||||
ServiceUtil.assertion(!deviceValidator.isBelong(deviceId, getUserId()), "这不是您的设备");
|
// ServiceUtil.assertion(!deviceValidator.isBelong(deviceId, getUserId()), "这不是您的设备");
|
||||||
SmDeviceVO device = smDeviceService.selectSmDeviceByDeviceId(deviceId);
|
SmDeviceVO device = smDeviceService.selectSmDeviceByDeviceId(deviceId);
|
||||||
List<SmDeviceVO> list = Collections.singletonList(device);
|
List<SmDeviceVO> list = Collections.singletonList(device);
|
||||||
deviceAssembler.assembleOrderCountInfo(list); // 订单统计信息
|
deviceAssembler.assembleOrderCountInfo(list); // 订单统计信息
|
||||||
|
|
|
@ -107,7 +107,6 @@ public class AppStoreController extends BaseController {
|
||||||
return AjaxResult.success(storeService.changeSort(list));
|
return AjaxResult.success(storeService.changeSort(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
@MchRequired
|
|
||||||
@ApiOperation("获取当前用户店铺列表及其数量")
|
@ApiOperation("获取当前用户店铺列表及其数量")
|
||||||
@GetMapping("/listCount")
|
@GetMapping("/listCount")
|
||||||
@JsonView(StoreView.ListCount.class)
|
@JsonView(StoreView.ListCount.class)
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class AppTransactionBillController extends BaseController
|
||||||
/**
|
/**
|
||||||
* 查询收支列表
|
* 查询收支列表
|
||||||
*/
|
*/
|
||||||
@MchRequired
|
// @MchRequired
|
||||||
@ApiOperation("查询本人收支列表")
|
@ApiOperation("查询本人收支列表")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@JsonView(JsonViewProfile.AppMch.class)
|
@JsonView(JsonViewProfile.AppMch.class)
|
||||||
|
@ -114,7 +114,7 @@ public class AppTransactionBillController extends BaseController
|
||||||
return AjaxResult.success(bill);
|
return AjaxResult.success(bill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@MchRequired
|
// @MchRequired
|
||||||
@ApiOperation("获取商户统计信息")
|
@ApiOperation("获取商户统计信息")
|
||||||
@JsonView(JsonViewProfile.AppMch.class)
|
@JsonView(JsonViewProfile.AppMch.class)
|
||||||
@GetMapping("/landlordCount")
|
@GetMapping("/landlordCount")
|
||||||
|
@ -175,7 +175,7 @@ public class AppTransactionBillController extends BaseController
|
||||||
return AjaxResult.success(smTransactionBillService.cancelRecharge(billNo, TransactionBillStatus.CANCELED));
|
return AjaxResult.success(smTransactionBillService.cancelRecharge(billNo, TransactionBillStatus.CANCELED));
|
||||||
}
|
}
|
||||||
|
|
||||||
@MchRequired
|
// @MchRequired
|
||||||
@ApiOperation("提现申请")
|
@ApiOperation("提现申请")
|
||||||
@PostMapping("/withdraw")
|
@PostMapping("/withdraw")
|
||||||
public AjaxResult withdraw(@RequestBody @Validated({ValidGroup.Withdraw.class}) TransactionBillBO data) {
|
public AjaxResult withdraw(@RequestBody @Validated({ValidGroup.Withdraw.class}) TransactionBillBO data) {
|
||||||
|
@ -189,7 +189,7 @@ public class AppTransactionBillController extends BaseController
|
||||||
return AjaxResult.success(smTransactionBillService.selectDeviceRechargeFailList(getUserId()));
|
return AjaxResult.success(smTransactionBillService.selectDeviceRechargeFailList(getUserId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@MchRequired
|
// @MchRequired
|
||||||
@ApiOperation("获取设备充值列表")
|
@ApiOperation("获取设备充值列表")
|
||||||
@GetMapping("/rechargeListByDevice")
|
@GetMapping("/rechargeListByDevice")
|
||||||
@JsonView(JsonViewProfile.AppMch.class)
|
@JsonView(JsonViewProfile.AppMch.class)
|
||||||
|
|
|
@ -25,8 +25,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.ss.model.domain.SmModel;
|
import com.ruoyi.ss.model.service.ModelService;
|
||||||
import com.ruoyi.ss.model.service.ISmModelService;
|
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
@ -41,7 +40,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
public class SmModelController extends BaseController
|
public class SmModelController extends BaseController
|
||||||
{
|
{
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmModelService smModelService;
|
private ModelService smModelService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ModelValidator modelValidator;
|
private ModelValidator modelValidator;
|
||||||
|
@ -89,7 +88,6 @@ public class SmModelController extends BaseController
|
||||||
public AjaxResult add(@RequestBody @Validated(ValidGroup.Create.class) SmModelBO smModel)
|
public AjaxResult add(@RequestBody @Validated(ValidGroup.Create.class) SmModelBO smModel)
|
||||||
{
|
{
|
||||||
smModel = smModel.filterInsert();
|
smModel = smModel.filterInsert();
|
||||||
ServiceUtil.assertion(modelValidator.preInsert(smModel));
|
|
||||||
return toAjax(smModelService.insertSmModel(smModel));
|
return toAjax(smModelService.insertSmModel(smModel));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +100,6 @@ public class SmModelController extends BaseController
|
||||||
public AjaxResult edit(@RequestBody @Validated(ValidGroup.Update.class) SmModelBO smModel)
|
public AjaxResult edit(@RequestBody @Validated(ValidGroup.Update.class) SmModelBO smModel)
|
||||||
{
|
{
|
||||||
smModel = smModel.filterUpdate();
|
smModel = smModel.filterUpdate();
|
||||||
ServiceUtil.assertion(modelValidator.preUpdate(smModel));
|
|
||||||
return toAjax(smModelService.updateSmModel(smModel));
|
return toAjax(smModelService.updateSmModel(smModel));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# debug模式,部分权限校验不生效
|
# debug模式,部分权限校验不生效
|
||||||
debug: false
|
debug: true
|
||||||
|
|
||||||
# 项目相关配置
|
# 项目相关配置
|
||||||
ruoyi:
|
ruoyi:
|
||||||
|
|
|
@ -4,7 +4,7 @@ debug: false
|
||||||
# 项目相关配置
|
# 项目相关配置
|
||||||
ruoyi:
|
ruoyi:
|
||||||
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
|
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
|
||||||
profile: /www/wwwroot/smart-swith/upload
|
profile: /home/www/projects/smart-switch/upload
|
||||||
|
|
||||||
wx:
|
wx:
|
||||||
# 微信小程序appId
|
# 微信小程序appId
|
||||||
|
@ -22,7 +22,7 @@ wx:
|
||||||
# 通知回调地址
|
# 通知回调地址
|
||||||
notifyUrl: https://kg.chuantewulian.cn/test-api/app/pay/notify/wx # 测试环境
|
notifyUrl: https://kg.chuantewulian.cn/test-api/app/pay/notify/wx # 测试环境
|
||||||
# 密钥所在位置
|
# 密钥所在位置
|
||||||
privateKeyPath: /www/wwwroot/smart-switch/wxpay/apiclient_key.pem
|
privateKeyPath: /home/www/projects/smart-switch/wxpay/apiclient_key.pem
|
||||||
# 证书序列号
|
# 证书序列号
|
||||||
merchantSerialNumber: 66910F800A60768020F07D39A56AE701574A16AE
|
merchantSerialNumber: 66910F800A60768020F07D39A56AE701574A16AE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user