提交 ae4a0eaf authored 作者: 艾庆国's avatar 艾庆国

预警通知人员

上级 425d8ebf
......@@ -33,7 +33,8 @@ public enum ResultEnum implements com.msl.common.enums.ResultEnum {
DATA_REPEAT(1107, "数据重复"),
VEHICLE_WARN_USER_EXIST(1201, "用户已存在"),
VEHICLE_WARN_USER_EXIST(1201, "联系方式已存在"),
VEHICLE_WARN_CONFIG_EXIST(1201, "配置名称已存在"),
......
......@@ -35,4 +35,40 @@ public enum VehicleWarnConfigEnum {
}
}
@Getter
@AllArgsConstructor
public enum DeleteStatus {
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String msg;
public static Optional<DeleteStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(DeleteStatus::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum Status {
ENABLE(1, "启用"),
DISABLE(2, "禁用"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.param.pc.vehiclewarn;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class PageVehicleWarnConfigParam extends PageParam {
@ApiModelProperty(value = "预警方案名称", example = "方案1")
private String warnName;
@ApiModelProperty(value = "预警类型", example = "1")
private Integer warnType;
@ApiModelProperty(value = "预警级别", example = "1")
private Integer warnLevel;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "1")
private Integer status;
@ApiModelProperty(value = "开始时间", example = "")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "")
private String endTime;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnConfigAddParam {
@ApiModelProperty(value = "预警方案名称", example = "方案1")
@NotBlank(message = "预警方案名称不能为空")
private String warnName;
@ApiModelProperty(value = "预警类型", example = "1")
@NotNull(message = "预警类型不能为空")
private Integer warnType;
@ApiModelProperty(value = "预警级别", example = "1")
@NotNull(message = "预警级别不能为空")
private Integer warnLevel;
@ApiModelProperty(value = "预警间隔(小时)", example = "1.2")
private BigDecimal interval;
@ApiModelProperty(value = "超时比例(%)", example = "12.3")
private BigDecimal timeoutRatio;
@ApiModelProperty(value = "经度", example = "123.45")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude;
@ApiModelProperty(value = "半径(米)", example = "100")
private Integer radius;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnConfigStatusUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotBlank(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "1")
private Integer status;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnConfigUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotBlank(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "预警方案名称", example = "方案1")
@NotBlank(message = "预警方案名称不能为空")
private String warnName;
@ApiModelProperty(value = "预警类型", example = "1")
@NotNull(message = "预警类型不能为空")
private Integer warnType;
@ApiModelProperty(value = "预警级别: 1一级 2二级 3三级", example = "1")
@NotNull(message = "预警级别不能为空")
private Integer warnLevel;
@ApiModelProperty(value = "预警间隔(小时)", example = "1.2")
private BigDecimal interval;
@ApiModelProperty(value = "超时比例(%)", example = "12.3")
private BigDecimal timeoutRatio;
@ApiModelProperty(value = "经度", example = "123.45")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude;
@ApiModelProperty(value = "半径(米)", example = "123")
private Integer radius;
}
package com.clx.performance.vo.pc.vehiclewarn;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 车辆预警配置
* @Date: 2024/04/25 14:09:40
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnConfigVO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "预警方案名称", example = "方案1")
private String warnName;
@ApiModelProperty(value = "预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误", example = "1")
private Integer warnType;
@ApiModelProperty(value = "预警类型", example = "1")
private String warnTypeMsg;
public String getWarnTypeMsg() {
return VehicleWarnConfigEnum.WarnType.getMsgByCode(warnType);
}
@ApiModelProperty(value = "预警级别: 1一级 2二级 3三级", example = "1")
private Integer warnLevel;
@ApiModelProperty(value = "预警级别", example = "一级")
private String warnLevelMsg;
public String getWarnLevelMsg() {
if (warnLevel == 1) {return "一级";}
if (warnLevel == 2) {return "二级";}
if (warnLevel == 3) {return "三级";}
return null;
}
@ApiModelProperty(value = "预警间隔(小时)", example = "1.2")
private BigDecimal interval;
@ApiModelProperty(value = "超时比例(%)", example = "12.3")
private BigDecimal timeoutRatio;
@ApiModelProperty(value = "经度", example = "123.45")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude;
@ApiModelProperty(value = "半径(米)", example = "123")
private Integer radius;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "1")
private Integer status;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "启用")
private String statusMsg;
public String getStatusMsg() {
return VehicleWarnConfigEnum.Status.getMsgByCode(status);
}
@ApiModelProperty(value = "创建人", example = "")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@ApiModelProperty(value = "修改时间", example = "")
private String modifiedTime;
}
\ No newline at end of file
......@@ -100,6 +100,16 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</exclusion>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
......@@ -261,6 +271,25 @@
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.14.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.14.0</version>
</dependency>
<dependency>
<groupId>org.dromara.easy-es</groupId>
<artifactId>easy-es-boot-starter</artifactId>
<version>2.0.0-beta7</version>
</dependency>
</dependencies>
......
package com.clx.performance.config;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.apache.http.message.BasicHeaderElementIterator;
import org.apache.http.protocol.HTTP;
import org.elasticsearch.client.RestClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.elasticsearch.RestClientBuilderCustomizer;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class EsCustomizer implements RestClientBuilderCustomizer {
@Autowired
private EsPoolProperties esPoolProperties;
/**
* Customize the {@link RestClientBuilder}.
* <p>
* Possibly overrides customizations made with the {@code "spring.elasticsearch.rest"}
* configuration properties namespace. For more targeted changes, see
* {@link #customize(HttpAsyncClientBuilder)} and
* {@link #customize(RequestConfig.Builder)}.
*
* @param builder the builder to customize
*/
@Override
public void customize(RestClientBuilder builder) {
}
/**
* Customize the {@link HttpAsyncClientBuilder}.
*
* @param builder the builder
* @since 2.3.0
*/
@Override
public void customize(HttpAsyncClientBuilder builder) {
builder.setMaxConnTotal(esPoolProperties.getMaxTotal())
.setMaxConnPerRoute(esPoolProperties.getMaxPerRoute())
.setKeepAliveStrategy((response, context) -> {
final HeaderElementIterator it = new BasicHeaderElementIterator(
response.headerIterator(HTTP.CONN_KEEP_ALIVE));
while (it.hasNext()) {
final HeaderElement he = it.nextElement();
final String param = he.getName();
final String value = he.getValue();
if (value != null && "timeout".equalsIgnoreCase(param)) {
try {
return Long.parseLong(value) * 1000;
} catch (final NumberFormatException ignore) {
log.error("", ignore);
}
}
}
return esPoolProperties.getKeepAlive().toMillis();
});
}
}
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
@ConfigurationProperties(prefix = "spring.elasticsearch")
@Configuration
@Getter
@Setter
@RefreshScope
public class EsPoolProperties {
/**
* 连接存活时间
*/
private Duration keepAlive = Duration.of(120, ChronoUnit.SECONDS);
/**
* 连接池最大连接数
*/
private int maxTotal = 30;
/**
* 单节点最大连接数
*/
private int maxPerRoute = 10;
}
package com.clx.performance.controller.pc.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigAddParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigStatusUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigUpdateParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnConfigService;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@Validated
@Api(tags = "车辆预警-预警配置")
@RequestMapping(value="/pc/owner/vehicleWarnConfig")
public class VehicleWarnConfigController {
@Autowired
private VehicleWarnConfigService vehicleWarnConfigService;
@ApiOperation(value = "新增配置", notes = "<br>By:艾庆国")
@PostMapping("/saveConfig")
@UnitCovert(result = false)
public Result<Void> saveConfig(@RequestBody @Validated VehicleWarnConfigAddParam param) {
vehicleWarnConfigService.saveConfig(param);
return Result.ok();
}
@ApiOperation(value = "更新配置", notes = "<br>By:艾庆国")
@PostMapping("/updateConfig")
public Result<Void> updateConfig(@RequestBody @Validated VehicleWarnConfigUpdateParam param) {
vehicleWarnConfigService.updateConfig(param);
return Result.ok();
}
@ApiOperation(value = "更新配置状态", notes = "<br>By:艾庆国")
@PostMapping("/updateStatus")
public Result<Void> updateStatus(@RequestBody @Validated VehicleWarnConfigStatusUpdateParam param) {
vehicleWarnConfigService.updateStatus(param);
return Result.ok();
}
@ApiOperation(value = "获取配置信息",notes = "<br>By:艾庆国")
@GetMapping("/getConfig")
public Result<VehicleWarnConfigVO> getConfig(@NotNull(message = "id不能为空") @Validated Integer id) {
return Result.ok(vehicleWarnConfigService.getConfig(id));
}
@ApiOperation(value = "分页搜索配置列表",notes = "<br>By:艾庆国")
@PostMapping("/pageConfig")
public Result<PageData<VehicleWarnConfigVO>> pageConfig(@RequestBody @Validated PageVehicleWarnConfigParam param) {
IPage<VehicleWarnConfigVO> page = vehicleWarnConfigService.pageConfig(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
......@@ -62,13 +62,13 @@ public class VehicleWarnUserController {
return Result.ok();
}
@ApiOperation(value = "获取费用调整记录",notes = "<br>By:艾庆国")
@ApiOperation(value = "获取人员信息",notes = "<br>By:艾庆国")
@GetMapping("/getUser")
public Result<VehicleWarnUserVO> getUser(@NotNull(message = "id不能为空") @Validated Integer id) {
return Result.ok(vehicleWarnUserService.getUser(id));
}
@ApiOperation(value = "分页搜索费用调整记录列表",notes = "<br>By:艾庆国")
@ApiOperation(value = "分页搜索人员列表",notes = "<br>By:艾庆国")
@PostMapping("/pageUser")
public Result<PageData<VehicleWarnUserVO>> pageUser(@RequestBody @Validated PageVehicleWarnUserParam param) {
IPage<VehicleWarnUserVO> page = vehicleWarnUserService.pageUser(param);
......
package com.clx.performance.dao.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnConfigMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
@Repository
public class VehicleWarnConfigDaoImpl extends BaseDaoImpl<VehicleWarnConfigMapper, VehicleWarnConfig, Integer> implements VehicleWarnConfigDao {
@Override
public boolean updateConfig(VehicleWarnConfig item) {
return update(lUdWrapper()
.eq(VehicleWarnConfig::getId, item.getId())
.set(VehicleWarnConfig::getWarnName, item.getWarnName())
.set(VehicleWarnConfig::getWarnType, item.getWarnType())
.set(VehicleWarnConfig::getWarnLevel, item.getWarnLevel())
.set(VehicleWarnConfig::getInterval, item.getInterval())
.set(VehicleWarnConfig::getTimeoutRatio, item.getTimeoutRatio())
.set(VehicleWarnConfig::getLongitude, item.getLongitude())
.set(VehicleWarnConfig::getLatitude, item.getLatitude())
.set(VehicleWarnConfig::getRadius, item.getRadius())
);
}
@Override
public boolean updateStatus(VehicleWarnConfig item) {
return update(lUdWrapper()
.eq(VehicleWarnConfig::getId, item.getId())
.set(VehicleWarnConfig::getStatus, item.getStatus())
);
}
@Override
public Optional<VehicleWarnConfig> findById(Integer id) {
return Optional.of(id)
.map(item -> lQrWrapper()
.eq(VehicleWarnConfig::getId, id)
.eq(VehicleWarnConfig::getDeleteStatus, VehicleWarnConfigEnum.DeleteStatus.NO.getCode())
.last("limit 1")
)
.map(super::getOne);
}
@Override
public Optional<VehicleWarnConfig> findByName(String name) {
return Optional.of(name)
.map(item -> lQrWrapper()
.eq(VehicleWarnConfig::getWarnName, name)
.eq(VehicleWarnConfig::getDeleteStatus, VehicleWarnConfigEnum.DeleteStatus.NO.getCode())
.last("limit 1")
)
.map(super::getOne);
}
@Override
public IPage<VehicleWarnConfig> pageByParam(PageVehicleWarnConfigParam param) {
Page<VehicleWarnConfig> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
......@@ -39,6 +39,16 @@ public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, V
);
}
@Override
public Optional<VehicleWarnUser> findById(Integer id) {
return Optional.of(id)
.map(item -> lQrWrapper()
.eq(VehicleWarnUser::getId, id)
.last("limit 1")
)
.map(super::getOne);
}
@Override
public Optional<VehicleWarnUser> findByMobile(String mobile) {
......
package com.clx.performance.dao.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnConfigMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
public interface VehicleWarnConfigDao extends BaseDao<VehicleWarnConfigMapper, VehicleWarnConfig, Integer> {
boolean updateConfig(VehicleWarnConfig item);
boolean updateStatus(VehicleWarnConfig item);
Optional<VehicleWarnConfig> findById(Integer id);
Optional<VehicleWarnConfig> findByName(String name);
IPage<VehicleWarnConfig> pageByParam(PageVehicleWarnConfigParam param);
}
......@@ -13,6 +13,7 @@ public interface VehicleWarnUserDao extends BaseDao<VehicleWarnUserMapper, Vehic
boolean deleteUser(VehicleWarnUser item);
boolean updateWarnType(VehicleWarnUser item);
Optional<VehicleWarnUser> findById(Integer id);
Optional<VehicleWarnUser> findByMobile(String mobile);
IPage<VehicleWarnUser> pageByParam(PageVehicleWarnUserParam param);
......
package com.clx.performance.mapper.vehiclewarn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnConfigSqlProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
@Mapper
public interface VehicleWarnConfigMapper extends BaseMapper<VehicleWarnConfig> {
String TABLE = "vehicle_warn_config";
//
// /**
// * @see FreightPaymentChangeSqlProvider#pageByParam(Page, PageFreightPaymentChangeParam)
// */
// @SelectProvider(type = FreightPaymentChangeSqlProvider.class, method = "pageByParam")
// IPage<FreightPaymentChange> pageByParam(@Param("page") Page page, @Param("param") PageFreightPaymentChangeParam param);
/**
* @see VehicleWarnConfigSqlProvider#pageByParam(Page, PageVehicleWarnConfigParam)
*/
@SelectProvider(type = VehicleWarnConfigSqlProvider.class, method = "pageByParam")
IPage<VehicleWarnConfig> pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnConfigParam param);
}
\ No newline at end of file
......@@ -34,7 +34,9 @@ public class VehicleWarnConfig implements HasKey<Integer> {
private BigDecimal timeoutRatio; //超时比例(%)
private BigDecimal longitude; //经度
private BigDecimal latitude; //纬度
private BigDecimal radius; //半径(米)
private Integer radius; //半径(米)
private Integer deleteStatus; //删除状态: 0-否;1-是
private Integer status; //状态:1启用 2禁用
private String createBy; //创建人
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
......
......@@ -31,7 +31,7 @@ public class VehicleWarnInfo implements HasKey<Integer> {
private Integer warnType; //预警类型
private Integer warnLevel; //预警级别
private String childNo; //运单编号
private Integer sendAddresId; //发货地址id
private Integer sendAddressId; //发货地址id
private String sendAddress; //发货地址
private Integer receiveAddressId; //收货地址id
private String receiveAddress; //收货地址
......@@ -42,7 +42,7 @@ public class VehicleWarnInfo implements HasKey<Integer> {
private String driverName; //司机姓名
private String driverMobile; //司机手机号
private LocalDateTime takeTime; //接单时间
private Integer status; //处理状态:1待处理 2已处理
private Integer status; //处理状态:1待处理 2已处理 3暂停预警
private String createBy; //创建人
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
......
package com.clx.performance.service.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigAddParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigStatusUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigUpdateParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnConfigService;
import com.clx.performance.struct.vehiclewarn.VehicleWarnConfigStruct;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
@Slf4j
@Service
public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Autowired
private VehicleWarnConfigDao vehicleWarnConfigDao;
@Autowired
private VehicleWarnConfigStruct vehicleWarnConfigStruct;
@Transactional(rollbackFor = Exception.class)
@Override
public void saveConfig(VehicleWarnConfigAddParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName());
if (optional.isPresent()){
throw new ServiceSystemException(ResultEnum.VEHICLE_WARN_CONFIG_EXIST);
}
VehicleWarnConfig vehicleWarnConfig = new VehicleWarnConfig();
vehicleWarnConfig.setWarnName(param.getWarnName());
vehicleWarnConfig.setWarnType(param.getWarnType());
vehicleWarnConfig.setWarnLevel(param.getWarnLevel());
vehicleWarnConfig.setInterval(param.getInterval());
vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio());
vehicleWarnConfig.setLongitude(param.getLongitude());
vehicleWarnConfig.setLatitude(param.getLatitude());
vehicleWarnConfig.setRadius(param.getRadius());
vehicleWarnConfig.setCreateBy(loginUserInfo.getUserName());
vehicleWarnConfigDao.saveEntity(vehicleWarnConfig);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnConfigUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnConfig.getWarnName(), param.getWarnName())){
Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName());
if (optional.isPresent()){
throw new ServiceSystemException(ResultEnum.VEHICLE_WARN_CONFIG_EXIST);
}
}
vehicleWarnConfig.setWarnName(param.getWarnName());
vehicleWarnConfig.setWarnType(param.getWarnType());
vehicleWarnConfig.setWarnLevel(param.getWarnLevel());
vehicleWarnConfig.setInterval(param.getInterval());
vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio());
vehicleWarnConfig.setLongitude(param.getLongitude());
vehicleWarnConfig.setLatitude(param.getLatitude());
vehicleWarnConfig.setRadius(param.getRadius());
vehicleWarnConfigDao.updateConfig(vehicleWarnConfig);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateStatus(VehicleWarnConfigStatusUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnConfig.setStatus(param.getStatus());
vehicleWarnConfigDao.updateStatus(vehicleWarnConfig);
}
@Override
public VehicleWarnConfigVO getConfig(Integer id) {
return vehicleWarnConfigStruct.convert(vehicleWarnConfigDao.findById(id).orNull());
}
@Override
public IPage<VehicleWarnConfigVO> pageConfig(PageVehicleWarnConfigParam param) {
return vehicleWarnConfigStruct.convertPage(vehicleWarnConfigDao.pageByParam(param));
}
}
......@@ -55,7 +55,7 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateUser(VehicleWarnUserUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.getEntityByKey(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnUser.getMobile(), param.getMobile())){
Optional<VehicleWarnUser> optional = vehicleWarnUserDao.findByMobile(param.getMobile());
if (optional.isPresent()){
......@@ -66,26 +66,26 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
vehicleWarnUser.setMobile(param.getMobile());
vehicleWarnUserDao.updateUser(vehicleWarnUser);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnUserConfigUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.getEntityByKey(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnUser.setWarmTypeJson(JSON.toJSONString(param.getWarnTypeList()));
vehicleWarnUserDao.updateWarnType(vehicleWarnUser);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteUser(VehicleWarnUserDeleteParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.getEntityByKey(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnUser.setDeleteStatus(VehicleWarnUserEnum.DeleteStatus.YES.getCode());
vehicleWarnUserDao.deleteUser(vehicleWarnUser);
}
@Override
public VehicleWarnUserVO getUser(Integer id) {
return vehicleWarnUserStruct.convert(vehicleWarnUserDao.getEntityByKey(id).orNull());
return vehicleWarnUserStruct.convert(vehicleWarnUserDao.findById(id).orNull());
}
@Override
......
package com.clx.performance.service.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigAddParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigStatusUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnConfigUpdateParam;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
public interface VehicleWarnConfigService {
void saveConfig(VehicleWarnConfigAddParam param);
void updateConfig(VehicleWarnConfigUpdateParam param);
void updateStatus(VehicleWarnConfigStatusUpdateParam param);
VehicleWarnConfigVO getConfig(Integer id);
IPage<VehicleWarnConfigVO> pageConfig(PageVehicleWarnConfigParam param);
}
package com.clx.performance.sqlProvider.vehiclewarn;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class VehicleWarnConfigSqlProvider {
private static final String TABLE = "vehicle_warn_config";
// public String pageByParam(@Param("page") Page page, @Param("param") PageFreightPaymentChangeParam param) {
//
// return new SQL(){{
//
// SELECT("*");
// FROM(TABLE);
//
//
// ORDER_BY("id desc");
// }}.toString();
// }
public String pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnConfigParam param) {
return new SQL(){{
SELECT("*");
FROM(TABLE);
if (StringUtils.isNotBlank(param.getWarnName())) {WHERE("warn_name = #{param.warnName}");}
if (Objects.nonNull(param.getWarnType())) {WHERE("warn_type = #{param.warnType}");}
if (Objects.nonNull(param.getWarnLevel())) {WHERE("warn_level = #{param.warnLevel}");}
if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
ORDER_BY("id desc");
}}.toString();
}
}
package com.clx.performance.struct.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface VehicleWarnConfigStruct {
VehicleWarnConfigVO convert(VehicleWarnConfig item);
Page<VehicleWarnConfigVO> convertPage(IPage<VehicleWarnConfig> page);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论