diff --git a/zhilian-modules/pom.xml b/zhilian-modules/pom.xml index da36d68..cc52d57 100644 --- a/zhilian-modules/pom.xml +++ b/zhilian-modules/pom.xml @@ -17,6 +17,7 @@ zhilian-resolver zhilian-business zhilian-manager + zhilian-fence zhilian-modules diff --git a/zhilian-modules/zhilian-fence/pom.xml b/zhilian-modules/zhilian-fence/pom.xml new file mode 100644 index 0000000..9450e5e --- /dev/null +++ b/zhilian-modules/zhilian-fence/pom.xml @@ -0,0 +1,115 @@ + + + 4.0.0 + + com.zhilian + zhilian-modules + 3.6.3 + + + zhilian-fence + + + 17 + 17 + UTF-8 + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.github.tobato + fastdfs-client + + + + + io.minio + minio + ${minio.version} + + + + + + com.zhilian + zhilian-common-swagger + + + + + com.zhilian + zhilian-common-system + + + + + com.mysql + mysql-connector-j + + + + com.zhilian + zhilian-common-security + + + com.zhilian + zhilian-common-log + + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/FenceApplication.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/FenceApplication.java new file mode 100644 index 0000000..8f96151 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/FenceApplication.java @@ -0,0 +1,17 @@ +package com.zhilian; + +import com.zhilian.common.security.annotation.EnableCustomConfig; +import com.zhilian.common.security.annotation.EnableMyFeignClients; +import com.zhilian.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class FenceApplication { + public static void main(String[] args) { + SpringApplication.run(FenceApplication.class,args); + } +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceController.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceController.java new file mode 100644 index 0000000..70daa75 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceController.java @@ -0,0 +1,72 @@ +package com.zhilian.controller; + +import com.zhilian.common.core.domain.Result; +import com.zhilian.common.core.web.controller.BaseController; +import com.zhilian.common.core.web.page.TableDataInfo; +import com.zhilian.common.security.utils.SecurityUtils; +import com.zhilian.domain.Fence; +import com.zhilian.domain.request.FenceRequest; +import com.zhilian.service.FenceService; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +/** + * @ClassName FenceController + * @Description 电子围栏控制层 + * @Author ZeJinG.Su + * @Date 14:37 2024/3/29 + */ +@RestController +@RequestMapping("fence") +public class FenceController extends BaseController { + @Autowired + private FenceService fenceService; + + /** + * TODO: 围栏管理 + */ + @GetMapping("/list") + public Result> list (FenceRequest fenceRequest) { + startPage(); + List list = fenceService.pageQuery(fenceRequest); + return getDataTable(list); + } + + /** + * 新增围栏 + * @param fence + * @return + */ + @PostMapping + public Result add(@Validated @RequestBody Fence fence){ + fence.setCreateBy(SecurityUtils.getUsername()); + return toAjax(fenceService.save(fence)); + } + + /** + * 编辑围栏 + * @param fence + * @return + */ + @PutMapping + public Result edit(@Validated @RequestBody Fence fence){ + fence.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(fenceService.updateById(fence)); + } + + /** + * 删除围栏 + * @param fenceIds + * @return + */ + @DeleteMapping("/{fenceIds}") + public Result remove(@PathVariable Long[] fenceIds){ + fenceService.removeBatchByIds(Arrays.asList(fenceIds)); + return success(); + } + +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceTypeController.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceTypeController.java new file mode 100644 index 0000000..a233b11 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/controller/FenceTypeController.java @@ -0,0 +1,25 @@ +package com.zhilian.controller; + +import com.zhilian.common.core.domain.Result; +import com.zhilian.common.core.web.controller.BaseController; +import com.zhilian.domain.FenceType; +import com.zhilian.service.FenceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/fenceType") +public class FenceTypeController extends BaseController { + @Autowired + private FenceTypeService fenceTypeService; + + @GetMapping("/list") + public Result> list(){ + List list = fenceTypeService.selectFenceTypeList(); + return success(list); + } +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/Fence.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/Fence.java new file mode 100644 index 0000000..5f996ea --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/Fence.java @@ -0,0 +1,152 @@ +package com.zhilian.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.zhilian.common.core.annotation.Excel; +import com.zhilian.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.Map; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName("vehicle_fence") +public class Fence extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 电子围栏编号 + */ + @Excel(name = "参数主键", cellType = Excel.ColumnType.NUMERIC) + @TableId(value = "fence_id", type = IdType.AUTO) + private Long fenceId; + /** + * 电子围栏名称 + */ + @Excel(name = "电子围栏名称") + private String fenceName; + /** + * 电子围栏类型编号 + */ + @Excel(name = "电子围栏类型编号") + private Long fenceTypeId; + /** + * 电子围栏状态 + */ + @Excel(name = "电子围栏状态") + private Long fenceState; + /** + * 电子围栏经纬度信息 + */ + @Excel(name = "电子围栏经纬度信息") + private String fenceMessage; + +// /** +// * 创建者 +// */ +// @Excel(name = "创建者") +// private String createBy; +// +// /** +// * 创建时间 +// */ +// @Excel(name = "创建时间") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// private Date createTime; +// +// /** +// * 更新者 +// */ +// @Excel(name = "更新者") +// private String updateBy; +// +// /** +// * 更新时间 +// */ +// @Excel(name = "更新时间") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// private Date updateTime; +// +// /** +// * 备注 +// */ +// @Excel(name = "备注") +// private String remark; + + public Long getFenceId() { + return fenceId; + } + + public void setFenceId(Long fenceId) { + this.fenceId = fenceId; + } + @NotBlank(message = "围栏名称不能为空") + @Size(min=0,max=100,message = "围栏名称不能超过100个字符") + public String getFenceName() { + return fenceName; + } + + public void setFenceName(String fenceName) { + this.fenceName = fenceName; + } + @NotBlank(message = "围栏类型不能为空") + @Size(min = 0,max = 10,message = "围栏类型不能超过10个字符") + public Long getFenceTypeId() { + return fenceTypeId; + } + + public void setFenceTypeId(Long fenceTypeId) { + this.fenceTypeId = fenceTypeId; + } + + public Long getFenceState() { + return fenceState; + } + + public void setFenceState(Long fenceState) { + this.fenceState = fenceState; + } + @NotBlank(message = "围栏经纬度不能为空") + @Size(min = 0,max = 300,message = "围栏经纬度不能超过300个字符") + public String getFenceMessage() { + return fenceMessage; + } + + public void setFenceMessage(String fenceMessage) { + this.fenceMessage = fenceMessage; + } + + // @JsonIgnore // 忽略基类中的 params 字段 +// private Map params; +// +// @Override +// public String toString() { +// return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) +// .append("fenceId", getFenceId()) +// .append("fenceName", getFenceName()) +// .append("fenceTypeId", getFenceTypeId()) +// .append("fenceState", getFenceState()) +// .append("fenceMessage", getFenceMessage()) +// .append("createBy", getCreateBy()) +// .append("createTime", getCreateTime()) +// .append("updateBy", getUpdateBy()) +// .append("updateTime", getUpdateTime()) +// .append("remark", getRemark()) +// .append("params", getParams()) +// .toString(); +// } +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/FenceType.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/FenceType.java new file mode 100644 index 0000000..a8c0b18 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/FenceType.java @@ -0,0 +1,31 @@ +package com.zhilian.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zhilian.common.core.annotation.Excel; +import com.zhilian.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName("fence_type") +public class FenceType extends BaseEntity { + /** + * 围栏类型编号 + */ + @Excel(name = "参数主键", cellType = Excel.ColumnType.NUMERIC) + @TableId(value = "fence_type_id", type = IdType.AUTO) + private Long fenceTypeId; + /** + * 围栏类型名称:驶入驶出 + */ + private String fenceTypeName; +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/request/FenceRequest.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/request/FenceRequest.java new file mode 100644 index 0000000..d883fa4 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/request/FenceRequest.java @@ -0,0 +1,50 @@ +package com.zhilian.domain.request; + +import com.zhilian.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Map; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class FenceRequest extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 电子围栏名称 + */ + private String fenceName; + /** + * 电子围栏类型编号 + */ + private Long fenceTypeId; + /** + * 电子围栏状态 + */ + private Long fenceState; + + + + + @Override + public String toString () { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("fenceName", getFenceName()) + .append("fenceTypeId", getFenceTypeId()) + .append("fenceState", getFenceState()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/response/FenceResponse.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/response/FenceResponse.java new file mode 100644 index 0000000..b5eafe1 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/domain/response/FenceResponse.java @@ -0,0 +1,29 @@ +package com.zhilian.domain.response; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.zhilian.common.core.annotation.Excel; +import com.zhilian.domain.Fence; +import com.zhilian.domain.FenceType; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class FenceResponse { + /** + * 电子围栏表 + */ + private Fence fence; + /** + * 电子围栏类型 + */ + private FenceType fenceType; + +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceMapper.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceMapper.java new file mode 100644 index 0000000..62b88a6 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceMapper.java @@ -0,0 +1,9 @@ +package com.zhilian.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhilian.domain.Fence; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FenceMapper extends BaseMapper { +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceTypeMapper.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceTypeMapper.java new file mode 100644 index 0000000..f3cf938 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/mapper/FenceTypeMapper.java @@ -0,0 +1,12 @@ +package com.zhilian.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhilian.domain.FenceType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface FenceTypeMapper extends BaseMapper { + List selectFenceTypeList(); +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceService.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceService.java new file mode 100644 index 0000000..3ac9aac --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceService.java @@ -0,0 +1,17 @@ +package com.zhilian.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhilian.domain.Fence; +import com.zhilian.domain.request.FenceRequest; + +import java.util.List; + +public interface FenceService extends IService { + /** + * 围栏查询-list + * @param fenceRequest + * @return + */ + List pageQuery(FenceRequest fenceRequest); + +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceTypeService.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceTypeService.java new file mode 100644 index 0000000..b6f162c --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/FenceTypeService.java @@ -0,0 +1,10 @@ +package com.zhilian.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhilian.domain.FenceType; + +import java.util.List; + +public interface FenceTypeService extends IService{ + List selectFenceTypeList(); +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceServiceImpl.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceServiceImpl.java new file mode 100644 index 0000000..939ab28 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceServiceImpl.java @@ -0,0 +1,30 @@ +package com.zhilian.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhilian.common.core.utils.StringUtils; +import com.zhilian.domain.Fence; +import com.zhilian.domain.request.FenceRequest; +import com.zhilian.mapper.FenceMapper; +import com.zhilian.service.FenceService; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@Service +public class FenceServiceImpl extends ServiceImpl implements FenceService { + + @Override + public List pageQuery(FenceRequest fenceRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(fenceRequest.getFenceName())){ + queryWrapper.like(Fence::getFenceName, fenceRequest.getFenceName()); + } + if (fenceRequest.getFenceTypeId()!= null){ + queryWrapper.like(Fence::getFenceTypeId, fenceRequest.getFenceTypeId()); + } + return this.list(queryWrapper); + } +} diff --git a/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceTypeServiceImpl.java b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceTypeServiceImpl.java new file mode 100644 index 0000000..60181ce --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/java/com/zhilian/service/impl/FenceTypeServiceImpl.java @@ -0,0 +1,32 @@ +package com.zhilian.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhilian.common.redis.service.RedisService; +import com.zhilian.domain.Fence; +import com.zhilian.domain.FenceType; +import com.zhilian.mapper.FenceTypeMapper; +import com.zhilian.service.FenceService; +import com.zhilian.service.FenceTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class FenceTypeServiceImpl extends ServiceImpl implements FenceTypeService { + @Autowired + private FenceTypeMapper fenceTypeMapper; + + @Autowired + private RedisService redisService; + @Override + public List selectFenceTypeList() { + if(redisService.hasKey("fenceType")){ + List fenceTypeShow = redisService.getCacheList("fenceType"); + return fenceTypeShow; + } + List fenceTypes = fenceTypeMapper.selectFenceTypeList(); + redisService.setCacheList("fenceType",fenceTypes); + return fenceTypes; + } +} diff --git a/zhilian-modules/zhilian-fence/src/main/resources/banner.txt b/zhilian-modules/zhilian-fence/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/zhilian-modules/zhilian-fence/src/main/resources/logback.xml b/zhilian-modules/zhilian-fence/src/main/resources/logback.xml new file mode 100644 index 0000000..d953225 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceMapper.xml b/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceMapper.xml new file mode 100644 index 0000000..d9eb105 --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + select fence_id, + fence_name, + fence_type_id, + fence_state, + fence_message, + create_user_id, + create_time, + update_user_id, + update_time, + remark + from vehicle_fence + + + + + + + and fence_id = #{fenceId} + + + and fence_name = #{fenceName} + + + + + + + + diff --git a/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceTypeMapper.xml b/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceTypeMapper.xml new file mode 100644 index 0000000..46572bd --- /dev/null +++ b/zhilian-modules/zhilian-fence/src/main/resources/mapper/FenceTypeMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + select t.fence_type_id, + t.fence_type_name + from fence_type t + + + diff --git a/zhilian-modules/zhilian-system/src/main/java/com/zhilian/system/domain/SysConfig.java b/zhilian-modules/zhilian-system/src/main/java/com/zhilian/system/domain/SysConfig.java index d7aebfa..fc90bf9 100644 --- a/zhilian-modules/zhilian-system/src/main/java/com/zhilian/system/domain/SysConfig.java +++ b/zhilian-modules/zhilian-system/src/main/java/com/zhilian/system/domain/SysConfig.java @@ -123,4 +123,6 @@ public class SysConfig extends BaseEntity { .append("remark", getRemark()) .toString(); } + + }