diff --git a/couplet-auth/src/main/resources/bootstrap.yml b/couplet-auth/src/main/resources/bootstrap.yml index c9f22f8..427f682 100644 --- a/couplet-auth/src/main/resources/bootstrap.yml +++ b/couplet-auth/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: # Spring spring: + main: + allow-bean-definition-overriding: true application: # 应用名称 name: couplet-auth @@ -15,11 +17,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/domain/PageResult.java b/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/domain/PageResult.java new file mode 100644 index 0000000..e96db7f --- /dev/null +++ b/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/domain/PageResult.java @@ -0,0 +1,34 @@ +package com.couplet.common.core.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author DongZl + * @description: 列表返回结果集 + */ +@Data +public class PageResult implements Serializable { + /** + * 总条数 + */ + private long total; + /** + * 结果集合 + */ + private List list; + public PageResult() { + } + public PageResult(long total, List list) { + this.total = total; + this.list = list; + } + public static PageResult toPageResult(long total, List list){ + return new PageResult(total , list); + } + public static Result> toResult(long total, List list){ + return Result.success(PageResult.toPageResult(total,list)); + } +} diff --git a/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/web/domain/BaseEntity.java b/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/web/domain/BaseEntity.java index 89f2da1..aeab7c5 100644 --- a/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/web/domain/BaseEntity.java +++ b/couplet-common/couplet-common-core/src/main/java/com/couplet/common/core/web/domain/BaseEntity.java @@ -33,6 +33,8 @@ public class BaseEntity implements Serializable { @TableField(exist = false) private String searchValue; + @TableField(exist = false) + /** * 创建者 */ @@ -44,6 +46,7 @@ public class BaseEntity implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + @TableField(exist = false) /** * 更新者 */ @@ -58,6 +61,7 @@ public class BaseEntity implements Serializable { /** * 备注 */ + @TableField(exist = false) private String remark; /** diff --git a/couplet-common/couplet-common-log/src/main/java/com/couplet/common/log/enums/BusinessType.java b/couplet-common/couplet-common-log/src/main/java/com/couplet/common/log/enums/BusinessType.java index 90836ee..cd37861 100644 --- a/couplet-common/couplet-common-log/src/main/java/com/couplet/common/log/enums/BusinessType.java +++ b/couplet-common/couplet-common-log/src/main/java/com/couplet/common/log/enums/BusinessType.java @@ -55,4 +55,5 @@ public enum BusinessType { * 清空数据 */ CLEAN, + } diff --git a/couplet-common/couplet-common-security/src/main/java/com/couplet/common/security/utils/SecurityUtils.java b/couplet-common/couplet-common-security/src/main/java/com/couplet/common/security/utils/SecurityUtils.java index ceb5537..0c96934 100644 --- a/couplet-common/couplet-common-security/src/main/java/com/couplet/common/security/utils/SecurityUtils.java +++ b/couplet-common/couplet-common-security/src/main/java/com/couplet/common/security/utils/SecurityUtils.java @@ -65,7 +65,7 @@ public class SecurityUtils { * 根据request获取请求token */ public static String getToken (HttpServletRequest request) { - // 从header获取token标识 + // 从header标识 String token = request.getHeader(TokenConstants.AUTHENTICATION); return replaceTokenPrefix(token); } diff --git a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysDept.java b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysDept.java index 85f67b2..32daa90 100644 --- a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysDept.java +++ b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysDept.java @@ -1,5 +1,6 @@ package com.couplet.common.system.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.couplet.common.core.web.domain.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; @@ -39,6 +40,10 @@ public class SysDept extends BaseEntity { */ private Long parentId; + + @TableField(exist = false) + private String remark; + /** * 祖级列表 */ @@ -82,11 +87,13 @@ public class SysDept extends BaseEntity { /** * 父部门名称 */ + @TableField(exist = false) private String parentName; /** * 子部门 */ + @TableField(exist = false) private List children = new ArrayList(); public Long getDeptId () { diff --git a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysFirm.java b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysFirm.java new file mode 100644 index 0000000..4d9d6a1 --- /dev/null +++ b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/domain/SysFirm.java @@ -0,0 +1,42 @@ +package com.couplet.common.system.domain; + +import lombok.Data; + +/** + * @ClassName SysFirm + * @Description 企业实体类 + * @Author YuanYongH + * @Date 2024/3/28 22:14 + */ +@Data +public class SysFirm { + /** + * 企业id + **/ + private Integer deptId; + /** + * 企业名称 + **/ + private String deptName; + /** + * 企业负责人 + **/ + private String leader; + /** + * 企业联系电话 + **/ + private String phone; + /** + * 企业删除 + **/ + private Integer delFlag; + /** + * 企业状态 + **/ + private String status; + /** + * 企业创建人 + **/ + private String createBy; + +} diff --git a/couplet-common/couplet-trouble-log/pom.xml b/couplet-common/couplet-trouble-log/pom.xml new file mode 100644 index 0000000..359681a --- /dev/null +++ b/couplet-common/couplet-trouble-log/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.couplet + couplet-common + 3.6.3 + + + couplet-trouble-log + + + 17 + 17 + UTF-8 + + + diff --git a/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/annotation/Record.java b/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/annotation/Record.java new file mode 100644 index 0000000..aa61bb5 --- /dev/null +++ b/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/annotation/Record.java @@ -0,0 +1,10 @@ +package com.couplet.common.log.annotation; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/28 15:39 + * @description + */ +public @interface Record { +} diff --git a/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/aop/AopRecord.java b/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/aop/AopRecord.java new file mode 100644 index 0000000..1676967 --- /dev/null +++ b/couplet-common/couplet-trouble-log/src/main/java/com/couplet/common/log/aop/AopRecord.java @@ -0,0 +1,10 @@ +package com.couplet.common.log.aop; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/28 23:12 + * @description + */ +public class AopRecord { +} diff --git a/couplet-common/pom.xml b/couplet-common/pom.xml index 7b3b70f..f882cfb 100644 --- a/couplet-common/pom.xml +++ b/couplet-common/pom.xml @@ -18,6 +18,7 @@ couplet-common-datascope couplet-common-datasource couplet-common-system + couplet-trouble-log couplet-common diff --git a/couplet-gateway/src/main/resources/bootstrap.yml b/couplet-gateway/src/main/resources/bootstrap.yml index 9707804..091e68a 100644 --- a/couplet-gateway/src/main/resources/bootstrap.yml +++ b/couplet-gateway/src/main/resources/bootstrap.yml @@ -15,11 +15,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 @@ -40,3 +38,5 @@ spring: groupId: DEFAULT_GROUP data-type: json rule-type: gw-flow + main: + allow-bean-definition-overriding: true diff --git a/couplet-modules/couplet-electronic-fence/.gitignore b/couplet-modules/couplet-electronic-fence/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/.gitignore b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/pom.xml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/pom.xml new file mode 100644 index 0000000..d1ab065 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.couplet + couplet-electronic-fence + 3.6.3 + + + + couplet-electronic-fence-common + + + couplet-electronic-fence-common + + + + 17 + 17 + UTF-8 + + + + + + com.couplet + couplet-common-core + + + + + diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Fence.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Fence.java new file mode 100644 index 0000000..7f1c787 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Fence.java @@ -0,0 +1,133 @@ +package com.couplet.map.common.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.couplet.common.core.web.domain.BaseEntity; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + * 电子围栏类 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("couplet_fence_info") +public class Fence extends BaseEntity{ + + @TableId(value = "fence_id", type = IdType.AUTO) + /** + * 围栏id + */ + private Long fenceId; + /** + * 围栏名称 + */ + + @NotEmpty(message = "围栏名称不能为空") + private String fenceName; + /** + * 围栏经纬度 + */ + private String fenceLongitudeLatitude; + /** + * 围栏描述 + */ + @NotEmpty(message = "围栏描述不能为空") + private String fenceDescription; + /** + * 是否删除 + */ + private Integer isDelete; + /** + * 围栏状态 + */ + private Integer fenceState; + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + /** + * 更新时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + /** + * 创建人 + */ + @NotEmpty(message = "创建人不能为空") + private String createName; + /** + * 维护人 + */ + @NotEmpty(message = "维护人不能为空") + private String maintainerName; + /** + * 告警状态 + */ + + private Integer alarmStatus; + + @TableField(exist = false) + /** + * 标识 + */ + private Integer logoId; + @TableField(exist = false) + private String logoName; + + public static Fence updateFenceStatus(FenceUpdateRequest fenceUpdateRequest) { + + return Fence.builder() + .fenceName(fenceUpdateRequest.getFenceName()) + .fenceDescription(fenceUpdateRequest.getFenceDescription()) + .fenceState(fenceUpdateRequest.getFenceState()) + .fenceLongitudeLatitude(fenceUpdateRequest.getFenceLongitudeLatitude()) + .createName(fenceUpdateRequest.getCrateName()) + .createTime(fenceUpdateRequest.getCreateTime()) + .isDelete(fenceUpdateRequest.getIsDelete()) + .maintainerName(fenceUpdateRequest.getMaintainerName()) + .alarmStatus(fenceUpdateRequest.getAlarmStatus()) + .updateTime(fenceUpdateRequest.getUpdateTime()) + .fenceId(fenceUpdateRequest.getFenceId()) + .build(); + + } + + +// public static Fence fenceInsert(FenceRequest fenceRequest) { +// +// return Fence.builder() +// .fenceName(fenceRequest.getFenceName()) +// .fenceLongitudeLatitude(fenceRequest.getFenceLongitudeLatitude()) +// .fenceState(fenceRequest.getFenceState()) +// .fenceDescription(fenceRequest.getFenceDescription()) +// .createTime(fenceRequest.getCreateTime()) +// .updateTime(fenceRequest.getUpdateTime()) +// .isDelete(fenceRequest.getIsDelete()) +// .alarmStatus(fenceRequest.getAlarmStatus()) +// .logoId(fenceRequest.getLogoId()) +// .build(); +// } +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Logo.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Logo.java new file mode 100644 index 0000000..2cbf020 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/Logo.java @@ -0,0 +1,24 @@ +package com.couplet.map.common.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/29 + * 标识实体类 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@TableName("couplet_logo_info") +public class Logo { + + private Integer logoId; + private String logoName; + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceConfig.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceConfig.java new file mode 100644 index 0000000..c2be21a --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceConfig.java @@ -0,0 +1,23 @@ +package com.couplet.map.common.domain.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class FenceConfig { + + private String fenceName; + /** + * 围栏状态 + */ + private Integer fenceState; +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceRequest.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceRequest.java new file mode 100644 index 0000000..9b74a87 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceRequest.java @@ -0,0 +1,74 @@ +package com.couplet.map.common.domain.request; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FenceRequest { + /** + * 围栏id + */ + private Integer fenceId; + /** + * 新增电子名称 + */ + private String fenceName; + /** + * 围栏经纬度 + */ + private String fenceLongitudeLatitude; + /** + * 围栏描述 + */ + private String fenceDescription; + /** + * 是否删除 + */ + private Integer isDelete; + /** + * 围栏状态 + */ + private Integer fenceState; + /** + * 更新时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 创建人 + */ + private String crateName; + /** + * 维护人 + */ + private String maintainerName; + /** + * 报警状态 + */ + private Integer alarmStatus; + /** + * 标识 + */ + @TableField(exist = false) + private String[] logoIds; +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceUpdateRequest.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceUpdateRequest.java new file mode 100644 index 0000000..5c39c70 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-common/src/main/java/com/couplet/map/common/domain/request/FenceUpdateRequest.java @@ -0,0 +1,80 @@ +package com.couplet.map.common.domain.request; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class FenceUpdateRequest { + + /** + * 新增电子 + */ + private Long fenceId; + /** + * 新增电子名称 + */ + private String fenceName; + /** + * 围栏经纬度 + */ + private String fenceLongitudeLatitude; + /** + * 围栏描述 + */ + private String fenceDescription; + /** + * 是否删除 + */ + private Integer isDelete; + /** + * 围栏状态 + */ + private Integer fenceState; + /** + * 更新时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + /** + * 创建人 + */ + private String crateName; + /** + * 维护人 + */ + private String maintainerName; + /** + * 报警状态 + */ + private Integer alarmStatus; + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/.gitignore b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/pom.xml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/pom.xml new file mode 100644 index 0000000..b8bb402 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-remote/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + com.couplet + couplet-electronic-fence + 3.6.3 + + + couplet-electronic-fence-remote + + + 17 + 17 + UTF-8 + + + + + + com.couplet + couplet-electronic-fence-common + + + + + diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/.gitignore b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/pom.xml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/pom.xml new file mode 100644 index 0000000..c207416 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/pom.xml @@ -0,0 +1,121 @@ + + + 4.0.0 + + com.couplet + couplet-electronic-fence + 3.6.3 + + + couplet-electronic-fence-server + + + 17 + 17 + UTF-8 + + + + + com.couplet + couplet-electronic-fence-common + + + + + + 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 + + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.couplet + couplet-common-datasource + + + + + com.couplet + couplet-common-datascope + + + + + com.couplet + couplet-common-log + + + + + com.couplet + couplet-common-swagger + + + com.couplet + couplet-common-system + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + + diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/CoupletElectronicFenceApplication.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/CoupletElectronicFenceApplication.java new file mode 100644 index 0000000..2f3466e --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/CoupletElectronicFenceApplication.java @@ -0,0 +1,22 @@ +package com.couplet.map.server; + +import com.couplet.common.security.annotation.EnableCustomConfig; +import com.couplet.common.security.annotation.EnableMyFeignClients; +import com.couplet.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 系统模块 + * + * @author couplet + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class CoupletElectronicFenceApplication { + public static void main (String[] args) { + SpringApplication.run(CoupletElectronicFenceApplication.class, args); + } +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/FenceController.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/FenceController.java new file mode 100644 index 0000000..76bdf82 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/FenceController.java @@ -0,0 +1,105 @@ +package com.couplet.map.server.controller; + +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.web.controller.BaseController; +import com.couplet.common.log.annotation.Log; +import com.couplet.common.log.enums.BusinessType; +import com.couplet.common.security.annotation.RequiresPermissions; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.request.FenceConfig; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import com.couplet.map.server.service.FenceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + * 电子围栏信息 + */ +@RestController +@RequestMapping("/fence") +public class FenceController extends BaseController { + + /** + * 调用服务 + */ + @Autowired + private FenceService fenceService; + + + @Log(title = "电子围栏管理", businessType = BusinessType.OTHER) + @RequiresPermissions("couplet:fence:fenceList") + @PostMapping("/fenceList") + public Result fenceList(@RequestBody FenceConfig fenceConfig){ + startPage(); + List list = fenceService.pageQuery(fenceConfig); + return getDataTable(list); + } + + /** + * 电子围栏新增 + * @param fenceRequest + * @return + * + */ + @PostMapping("/fenceAdd") + @RequiresPermissions("couplet:fence:fenceAdd") + @Log(title = "电子围栏新增",businessType = BusinessType.INSERT) + public Result fenceInsert(HttpServletRequest request, @RequestBody FenceRequest fenceRequest){ + if (!fenceService.checkFenceKeyUnique(fenceRequest.getFenceName())) { + return error("新增参数'" + fenceRequest.getFenceName() + "'失败,参数键名已存在"); + } + fenceService.fenceInsert(request,fenceRequest); + return Result.success("新增成功"); + } + + /** + * 电子围栏修改 + * @param fenceUpdateRequest + * @return + */ + @PostMapping("/fenceUpdate") + @RequiresPermissions("couplet:fence:fenceUpdate") + @Log(title = "电子围栏修改",businessType = BusinessType.UPDATE) + public Result fenceUpdate(@Validated @RequestBody FenceUpdateRequest fenceUpdateRequest){ + if (!fenceService.checkFenceKeyUnique(fenceUpdateRequest.getFenceName())) { + return error("修改参数'" + fenceUpdateRequest.getFenceName() + "'失败,参数键名已存在"); + } + fenceService.changeFenceStatus(fenceUpdateRequest); + return Result.success("修改成功"); + } + + /** + * 电子围栏删除 + * @param fenceId + * @return + */ + @DeleteMapping("/{fenceId}") + @RequiresPermissions("couplet:fence:fenceDelete") + @Log(title = "电子围栏删除",businessType = BusinessType.DELETE) + public Result fenceDelete(@PathVariable Long fenceId){ + fenceService.removeByFenceId(fenceId); + return Result.success(); + } + + /** + * 启用停用 + * @param fenceUpdateRequest + * @return + */ + @PostMapping("/fenceState") + @RequiresPermissions("couplet:fence:fenceState") + @Log(title = "围栏启用和停用",businessType = BusinessType.OTHER) + public Result fenceState(@RequestBody FenceUpdateRequest fenceUpdateRequest){ + fenceService.changeFenceStatus(fenceUpdateRequest); + return success(); + } + + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/LogoController.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/LogoController.java new file mode 100644 index 0000000..4aac884 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/controller/LogoController.java @@ -0,0 +1,49 @@ +package com.couplet.map.server.controller; + +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.web.controller.BaseController; +import com.couplet.common.log.annotation.Log; +import com.couplet.common.log.enums.BusinessType; +import com.couplet.common.security.annotation.RequiresPermissions; +import com.couplet.map.common.domain.Logo; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import com.couplet.map.server.service.LogoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/29 + * 标识信息 + */ +@RestController +@RequestMapping("/logo") +public class LogoController extends BaseController { + + /** + * 调用服务 + */ + @Autowired + private LogoService logoService; + + /** + * 标识信息列表 + * + * @param + * @return + */ + @Log(title = "标识管理", businessType = BusinessType.OTHER) + @RequiresPermissions("couplet:fence:fenceList") + @PostMapping("/queryByLogo") + public Result queryByLogo(){ + List list = logoService.queryByLogo(); + return success(list); + } + + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenAndLogoMapper.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenAndLogoMapper.java new file mode 100644 index 0000000..42ff9a6 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenAndLogoMapper.java @@ -0,0 +1,22 @@ +package com.couplet.map.server.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.map.common.domain.Fence; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Mapper +public interface FenAndLogoMapper extends BaseMapper { + + + /** + * 批量新增 + * @param fenceId + * @param logoIds + */ + void addBach(@Param("fenceId") Integer fenceId, @Param("logoIds") String[] logoIds); +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenceMapper.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenceMapper.java new file mode 100644 index 0000000..2623be8 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/FenceMapper.java @@ -0,0 +1,41 @@ +package com.couplet.map.server.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.request.FenceConfig; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Mapper +public interface FenceMapper extends BaseMapper { + /** + * 改变围栏信息 + * @param fenceUpdateRequest + */ + void changeFence(FenceUpdateRequest fenceUpdateRequest); + + int insertFence(FenceRequest fenceRequest); + + void removeByFenceId(Long fenceId); + + /** + * 分页查询 + * @param fenceConfig + * @return + */ + List pageQuery(FenceConfig fenceConfig); + + /** + * 判断名字唯一 + * @param fenceName + * @return + */ + boolean checkFenceKeyUnique(String fenceName); +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/LogoMapper.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/LogoMapper.java new file mode 100644 index 0000000..0ae5445 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/mapper/LogoMapper.java @@ -0,0 +1,18 @@ +package com.couplet.map.server.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.Logo; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Mapper +public interface LogoMapper extends BaseMapper { + + + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenAndLogoService.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenAndLogoService.java new file mode 100644 index 0000000..bc530f6 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenAndLogoService.java @@ -0,0 +1,18 @@ +package com.couplet.map.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.map.common.domain.Fence; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +public interface FenAndLogoService extends IService { + + /** + * 批量添加 + * @param fenceId + * @param logoIds + */ + void addBach(Integer fenceId, String[] logoIds); +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenceService.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenceService.java new file mode 100644 index 0000000..67b7cf9 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/FenceService.java @@ -0,0 +1,46 @@ +package com.couplet.map.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.request.FenceConfig; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +public interface FenceService extends IService { + List pageQuery(FenceConfig fenceConfig); + + /** + * 更改围栏状态 + * @param fenceUpdateRequest + */ + void changeFenceStatus(FenceUpdateRequest fenceUpdateRequest); + + /** + * 新增电子围栏 + * + * @param fenceRequest + */ + void fenceInsert(HttpServletRequest request,FenceRequest fenceRequest); + + /** + * 删除电子围栏 + * @param fenceId + */ + void removeByFenceId(Long fenceId); + + /** + * 判断数据是否存在 + * + * @param fenceName + * @return + */ + boolean checkFenceKeyUnique(String fenceName); + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/LogoService.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/LogoService.java new file mode 100644 index 0000000..7639057 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/LogoService.java @@ -0,0 +1,15 @@ +package com.couplet.map.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.map.common.domain.Logo; + +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +public interface LogoService extends IService { + List queryByLogo(); + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenAndLogoServiceImpl.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenAndLogoServiceImpl.java new file mode 100644 index 0000000..ccf2149 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenAndLogoServiceImpl.java @@ -0,0 +1,37 @@ +package com.couplet.map.server.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.server.mapper.FenAndLogoMapper; +import com.couplet.map.server.service.FenAndLogoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + * 中间表信息 + */ +@Service +public class FenAndLogoServiceImpl extends ServiceImpl implements FenAndLogoService { + + /** + * 调用围栏mapper + */ + @Autowired + private FenAndLogoMapper fenAndLogoMapper; + + /** + * 注入redis模板 + */ + @Autowired + private StringRedisTemplate redisTemplate; + + + @Override + public void addBach(Integer fenceId, String[] logoIds) { + fenAndLogoMapper.addBach(fenceId,logoIds); + + } +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenceServiceImpl.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenceServiceImpl.java new file mode 100644 index 0000000..efdaa0d --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/FenceServiceImpl.java @@ -0,0 +1,78 @@ +package com.couplet.map.server.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.request.FenceConfig; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import com.couplet.map.server.mapper.FenceMapper; +import com.couplet.map.server.service.FenAndLogoService; +import com.couplet.map.server.service.FenceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Service +public class FenceServiceImpl extends ServiceImpl implements FenceService { + + /** + * 调用围栏mapper + */ + @Autowired + private FenceMapper fenceMapper; + + /** + * 调用围栏和标识中间表 + */ + @Autowired + private FenAndLogoService fenAndLogoService; + /** + * 注入redis模板 + */ + @Autowired + private StringRedisTemplate redisTemplate; + + @Override + public List pageQuery(FenceConfig fenceConfig) { + List list= fenceMapper.pageQuery(fenceConfig); + return list; + } + + @Override + public void changeFenceStatus(FenceUpdateRequest fenceUpdateRequest) { + + fenceMapper.changeFence(fenceUpdateRequest); + + } + + @Override + public void fenceInsert(HttpServletRequest request,FenceRequest fenceRequest) { + + int a= fenceMapper.insertFence(fenceRequest); + String[] logoIds = fenceRequest.getLogoIds(); + String[] parts = new String[0]; + for (String logoId : logoIds) { + parts = logoId.split(","); + fenAndLogoService.addBach(fenceRequest.getFenceId(),parts); + + } + + } + + @Override + public void removeByFenceId(Long fenceId) { + fenceMapper.removeByFenceId(fenceId); + } + + @Override + public boolean checkFenceKeyUnique(String fenceName) { + return fenceMapper.checkFenceKeyUnique(fenceName); + } +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/LogoServiceImpl.java b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/LogoServiceImpl.java new file mode 100644 index 0000000..b95eea9 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/java/com/couplet/map/server/service/impl/LogoServiceImpl.java @@ -0,0 +1,45 @@ +package com.couplet.map.server.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.map.common.domain.Fence; +import com.couplet.map.common.domain.Logo; +import com.couplet.map.common.domain.request.FenceRequest; +import com.couplet.map.common.domain.request.FenceUpdateRequest; +import com.couplet.map.server.mapper.LogoMapper; +import com.couplet.map.server.service.LogoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: LiJiaYao + * @Date: 2024/3/28 + */ +@Service +public class LogoServiceImpl extends ServiceImpl implements LogoService { + + /** + * 调用围栏mapper + */ + @Autowired + private LogoMapper fenceMapper; + + /** + * 注入redis模板 + */ + @Autowired + private StringRedisTemplate redisTemplate; + + @Override + public List queryByLogo() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + return this.list(queryWrapper); + } + + +} diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/bootstrap.yml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..470080e --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/bootstrap.yml @@ -0,0 +1,33 @@ +# Tomcat +server: + port: 9999 + +# Spring +spring: + application: + # 应用名称 + name: couplet-electronic-fence + + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + config: + # 配置中心地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true +logging: + level: + com.couplet.trouble.mapper: DEBUG diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenAndLogoMapper.xml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenAndLogoMapper.xml new file mode 100644 index 0000000..7ff788a --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenAndLogoMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + INSERT INTO `couplet-cloud`.`couplet_fences_and_logo` + (`fences_id`, `logo_id`) + VALUES + + (#{fenceId}, #{item}) + + + diff --git a/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenceMapper.xml b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenceMapper.xml new file mode 100644 index 0000000..0cf782d --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/couplet-electronic-fence-server/src/main/resources/mapper/map/FenceMapper.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + SELECT + f.fence_id, + fence_name, + fence_longitude_latitude, + fence_description, + is_delete, + fence_state, + create_time, + update_time, + create_name, + maintainer_name, + alarm_status, + l.logo_id, + GROUP_CONCAT(logo_name) as logoName + FROM couplet_fence_info f INNER JOIN couplet_fences_and_logo m on + f.fence_id=m.fences_id INNER JOIN couplet_logo_info l on l.logo_id=m.logo_id + + + SELECT + fence_id, + fence_name, + fence_longitude_latitude, + fence_description, + is_delete, + fence_state, + create_time, + update_time, + create_name, + maintainer_name, + alarm_status + FROM couplet_fence_info + + + INSERT INTO `couplet-cloud`.`couplet_fence_info` + (`fence_name`, `fence_longitude_latitude`, `fence_description`, `is_delete`, `fence_state`, `create_time`, + `update_time`, `create_name`, `maintainer_name`, `alarm_status`) + VALUES + (#{fenceName}, null, #{fenceDescription}, 0, 0, now(), null, null, #{maintainerName}, 0) + + + + + + + UPDATE `couplet-cloud`.`couplet_fence_info` + SET `fence_name` = #{fenceName}, + `fence_longitude_latitude` = #{fenceLongitudeLatitude}, + `fence_description` = #{fenceDescription}, + `is_delete` = #{isDelete}, + `fence_state` = #{fenceState}, + `update_time` = now(), + `maintainer_name` = 'admin', + `alarm_status` = #{alarmStatus} + WHERE `fence_id` = #{fenceId} + + + + delete from couplet_fence_info where fence_id = #{fenceId} + + + + diff --git a/couplet-modules/couplet-electronic-fence/pom.xml b/couplet-modules/couplet-electronic-fence/pom.xml new file mode 100644 index 0000000..baf57f6 --- /dev/null +++ b/couplet-modules/couplet-electronic-fence/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + com.couplet + couplet-modules + 3.6.3 + + + pom + + + + couplet-electronic-fence + + + couplet-electronic-fence-server + couplet-electronic-fence-common + couplet-electronic-fence-remote + + + + 17 + 17 + UTF-8 + + + diff --git a/couplet-modules/couplet-enterprisemanagement/couplet-enterprisemanagement-server/src/main/resources/bootstrap.yml b/couplet-modules/couplet-enterprisemanagement/couplet-enterprisemanagement-server/src/main/resources/bootstrap.yml index 285745c..7ae87e9 100644 --- a/couplet-modules/couplet-enterprisemanagement/couplet-enterprisemanagement-server/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-enterprisemanagement/couplet-enterprisemanagement-server/src/main/resources/bootstrap.yml @@ -15,16 +15,18 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true logging: level: com.couplet.system.mapper: DEBUG diff --git a/couplet-modules/couplet-file/src/main/resources/bootstrap.yml b/couplet-modules/couplet-file/src/main/resources/bootstrap.yml index 8681657..fa968e9 100644 --- a/couplet-modules/couplet-file/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-file/src/main/resources/bootstrap.yml @@ -15,11 +15,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml b/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml index c041c96..fbabc20 100644 --- a/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: # Spring spring: + main: + allow-bean-definition-overriding: true application: # 应用名称 name: couplet-gen @@ -15,13 +17,13 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true diff --git a/couplet-modules/couplet-job/src/main/resources/bootstrap.yml b/couplet-modules/couplet-job/src/main/resources/bootstrap.yml index c7dbdbe..df563af 100644 --- a/couplet-modules/couplet-job/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-job/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: # Spring spring: + main: + allow-bean-definition-overriding: true application: # 应用名称 name: couplet-job @@ -15,13 +17,13 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true diff --git a/couplet-modules/couplet-modules-mq/pom.xml b/couplet-modules/couplet-modules-mq/pom.xml new file mode 100644 index 0000000..7b1e760 --- /dev/null +++ b/couplet-modules/couplet-modules-mq/pom.xml @@ -0,0 +1,125 @@ + + + 4.0.0 + + com.couplet + couplet-modules + 3.6.3 + + + couplet-modules-mq + + + + + + + + + couplet-modules-mq MQ模块 + + + + + + + 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 + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.couplet + couplet-common-datasource + + + + + com.couplet + couplet-common-datascope + + + + + com.couplet + couplet-common-log + + + + + com.couplet + couplet-common-swagger + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/CoupletMqApplatcaion.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/CoupletMqApplatcaion.java new file mode 100644 index 0000000..d1c309f --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/CoupletMqApplatcaion.java @@ -0,0 +1,24 @@ +package com.couplet.mq; + +import com.couplet.common.security.annotation.EnableCustomConfig; +import com.couplet.common.security.annotation.EnableMyFeignClients; +import com.couplet.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @ProjectName: Default (Template) Project + * @Author: LiuYunHu + * @CreateTime: 2024/3/28 + * @Description: rabbitMq模块启动类 + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class CoupletMqApplatcaion { + public static void main(String[] args) { + SpringApplication.run(CoupletMqApplatcaion.class, args); + System.out.println("获取报文、RabbitMQ模块启动成功"); + } +} diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/config/RabbitMQConfig.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/config/RabbitMQConfig.java new file mode 100644 index 0000000..32976d5 --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/config/RabbitMQConfig.java @@ -0,0 +1,149 @@ +package com.couplet.mq.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/29 + * @Description: rabbitMQ配置类 + */ + +@Configuration +@Slf4j +public class RabbitMQConfig implements RabbitTemplate.ConfirmCallback, RabbitTemplate.ReturnsCallback { + // 通过注入的方式获取队列名、交换机名和路由键 + //队列名 + @Value("${mq.queueName}") + public String queueName; + + //交换机 + @Value("${mq.exchangeName}") + public String exchangeName; + + //路由键 + @Value(("${mq.routingKey}")) + public String routingKey; + + private RabbitTemplate rabbitTemplate; + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:25 + * @Description: 创建并返回一个消息转换器,用于转换消息体。 + * @Param: [] + * @Return: 返回一个Jackson2JsonMessageConverter实例,用于JSON格式的消息转换。 + **/ + @Bean + public MessageConverter messageConverter() { + return new Jackson2JsonMessageConverter(); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:26 + * @Description: 创建并返回一个持久化的队列。 + * @Param: [] + * @Return: 返回一个配置好的Queue实例。 + **/ + @Bean + public Queue queue() { + return new Queue(queueName, true); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:26 + * @Description: 创建并返回一个直连交换机。 + * @Param: [] + * @Return: 返回一个配置好的DirectExchange实例。 + **/ + @Bean("exchange") + public DirectExchange directExchange() { + return new DirectExchange(exchangeName); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:27 + * @Description: 配置并返回RabbitTemplate实例,用于发送消息。 + * @Param: connectionFactory RabbitMQ连接工厂。 + * @Return: 配置好的RabbitTemplate实例。 + **/ + @Primary + @Bean + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { + RabbitTemplate rabbitTempalte = new RabbitTemplate(connectionFactory); + this.rabbitTemplate = rabbitTempalte; + rabbitTempalte.setMessageConverter(messageConverter()); + rabbitTempalte(); + + return rabbitTempalte; + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:27 + * @Description: 配置RabbitTemplate的回调函数。 + * @Param: [] + * @Return: void + **/ + public void rabbitTempalte() { + rabbitTemplate.setConfirmCallback(this); + rabbitTemplate.setReturnsCallback(this); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:27 + * @Description: 创建并返回一个绑定,将队列与交换机绑定,并指定路由键 + * @Param: [] + * @Return: 返回一个配置好的Binding实例 + **/ + @Bean + public Binding binding() { + return BindingBuilder.bind(queue()).to(directExchange()).with(routingKey); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:28 + * @Description: 消息确认回调函数。 + * 当消息被交换机成功处理后调用,或当消息未能被正确处理时调用。 + * @Param: correlationData 关联数据,用于追踪消息 + * @Param: ack 消息是否被成功处理 + * @Param: s 附加信息 + **/ + @Override + public void confirm(CorrelationData correlationData, boolean ack, String s) { + if (ack) { + log.info("{}消息到达交换机", correlationData.getId()); + } else { + log.error("{}消息丢失", correlationData.getId()); + } + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/29 21:29 + * @Description: 消息返回回调函数。 + * 当消息未能被正确路由到队列时调用 + * @Param: returnedMessage 被返回的消息 + * @Return: void + **/ + @Override + public void returnedMessage(ReturnedMessage returnedMessage) { + log.error("{}消息未到达队列", returnedMessage.getMessage().getMessageProperties().getMessageId()); + } +} diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/MqController.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/MqController.java new file mode 100644 index 0000000..7188a91 --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/MqController.java @@ -0,0 +1,37 @@ +package com.couplet.mq.controller; + +import com.couplet.common.core.utils.uuid.IdUtils; +import com.couplet.mq.config.RabbitMQConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/29 + * @Description: MQController类 + */ +@RestController +@RequestMapping("/mq") +@Slf4j +public class MqController { + @Autowired + private RabbitTemplate rabbitTemplate; + + @GetMapping("/receive/{data}") + public void receive(@PathVariable("data") String data) { + //创建配置类对象,用于获取配置值 + RabbitMQConfig config = new RabbitMQConfig(); + + rabbitTemplate.convertAndSend(config.exchangeName, config.routingKey, data , message -> { + message.getMessageProperties().setMessageId(IdUtils.randomUUID()); + return message; + }, new CorrelationData(IdUtils.randomUUID())); + } +} diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/domain/Test.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/domain/Test.java new file mode 100644 index 0000000..618d7ec --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/domain/Test.java @@ -0,0 +1,14 @@ +package com.couplet.mq.domain; + +import java.io.Serializable; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/29 + * @Description: 测试 参数类 + */ + +public class Test implements Serializable { + public String data; +} diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/Consumer.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/Consumer.java new file mode 100644 index 0000000..5d27eec --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/Consumer.java @@ -0,0 +1,70 @@ +package com.couplet.mq.service; + +import com.rabbitmq.client.Channel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/28 + * @Description: MQ消费者类 + */ +@RabbitListener(queues = "${mq.queueName}") +@Component +@Slf4j +public class Consumer { + @Autowired + private StringRedisTemplate redisTemplate; + + @RabbitHandler + public void receive(String data, Channel channel, Message message) throws IOException { + log.info("消费者接受到数据:{}", data); + + //获取信息的标记 + long deliveryTag = message.getMessageProperties().getDeliveryTag(); + + //获取到消息的id + String messageId = message.getMessageProperties().getMessageId(); + + Long add = redisTemplate.opsForSet().add("set:" + messageId, "set:" + messageId); + + if (!redisTemplate.hasKey("value:" + messageId)) { + redisTemplate.opsForValue().set("value:" + messageId, String.valueOf(deliveryTag), 10, TimeUnit.MINUTES); + } + + try { + if (add == 1) { + log.info("---------------消费者开始消费---------------"); + + System.out.println(data); + + log.info("---------------消费者结束消费---------------"); + }else { + log.error("重复消费!"); + channel.basicReject(deliveryTag, false); + } + } catch (IOException e) { +// throw new RuntimeException(e); + String s = redisTemplate.opsForValue().get("value:" + messageId); + long oldTag = Long.parseLong(s); + + if ((oldTag + 2) != deliveryTag) { + log.info("重新入队!"); + channel.basicNack(deliveryTag, false, true); + }else { + log.error("三次无法消费,不再入队!"); + channel.basicNack(deliveryTag, false, false); + } + + } + } +} diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/MqttListen.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/MqttListen.java new file mode 100644 index 0000000..8b914e9 --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/service/MqttListen.java @@ -0,0 +1,108 @@ +package com.couplet.mq.service; + +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/28 + * @Description: mqtt客户端 + */ +@Component +@Slf4j +public class MqttListen { + /* + * 路径 + * */ + @Value("${mqtt.server.broker}") + private String BROKER; + + /* + * 主题 + * */ + @Value("${mqtt.server.topic}") + private String TOPIC; + + /* + * 客户端id + * */ + @Value("${mqtt.server.clientid}") + private String CLIENTID; + + /* + * 用户名 + * */ + @Value("${mqtt.server.username}") + private String USERNAME; + + /* + * 密码 + * */ + @Value("${mqtt.server.password}") + private String PASSWORD; + + /* + * qos + * */ + @Value("${mqtt.server.qos}") + private Integer QOS; + + + + @PostConstruct + public void connect() { + System.out.println("监听者启动"); + try { + + MqttClient client = new MqttClient(BROKER, CLIENTID, new MemoryPersistence()); + MqttConnectOptions options = new MqttConnectOptions(); + options.setUserName(USERNAME); + options.setPassword(PASSWORD.toCharArray()); + + //连接超时 + options.setConnectionTimeout(60); + + //心跳 + options.setKeepAliveInterval(60); + + log.info("连接到:"+BROKER); + + client.connect(options); + log.info("连接成功"); + + //设置回调 + client.setCallback(new MqttCallback() { + @Override + public void connectionLost(Throwable throwable) { + log.error("连接断开:" + throwable.getMessage()); + } + + @Override + public void messageArrived(String topic, MqttMessage message) { + log.info("消息到达"); + log.info("接收消息主题:" + topic); + log.info("接收消息Qos:" + message.getQos()); + log.info("接收消息内容:" + new String(message.getPayload())); + + } + + @Override + public void deliveryComplete(IMqttDeliveryToken token) { + log.info("消息发送成功----------" + token.isComplete()); + } + }); + client.subscribe(TOPIC, QOS); + + + } catch (MqttException e) { + throw new RuntimeException(e); + } + + } +} diff --git a/couplet-modules/couplet-modules-mq/src/main/resources/banner.txt b/couplet-modules/couplet-modules-mq/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml b/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..61d454f --- /dev/null +++ b/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml @@ -0,0 +1,48 @@ +# Tomcat +server: + port: 9616 + +# Spring +spring: + application: + # 应用名称 + name: couplet-mq + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + config: + # 配置中心地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true +logging: + level: + com.couplet.system.mapper: DEBUG + +# 订阅端配置 +mqtt: + server: + broker: tcp://115.159.47.13:1883 + username: + password: + clientid: mqttx + qos: 0 + topic: test + +# RabbitMQ配置 +mq: + queueName: queue + exchangeName: exchange + routingKey: routingKey diff --git a/couplet-modules/couplet-modules-mq/src/main/resources/logback.xml b/couplet-modules/couplet-modules-mq/src/main/resources/logback.xml new file mode 100644 index 0000000..4940ee0 --- /dev/null +++ b/couplet-modules/couplet-modules-mq/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/couplet-modules/couplet-modules-vehicle/pom.xml b/couplet-modules/couplet-modules-vehicle/pom.xml new file mode 100644 index 0000000..52301c1 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/pom.xml @@ -0,0 +1,121 @@ + + + + com.couplet + couplet-modules + 3.6.3 + + 4.0.0 + + couplet-modules-vehicle + + + + + + + + + couplet-modules-vehicle车辆管理模块 + + + + + + + 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 + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.couplet + couplet-common-datasource + + + + + com.couplet + couplet-common-datascope + + + + + com.couplet + couplet-common-log + + + + + com.couplet + couplet-common-swagger + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/CoupletVehicleApplication.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/CoupletVehicleApplication.java new file mode 100644 index 0000000..39f4801 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/CoupletVehicleApplication.java @@ -0,0 +1,24 @@ +package com.couplet.vehicle; + +import com.couplet.common.security.annotation.EnableCustomConfig; +import com.couplet.common.security.annotation.EnableMyFeignClients; +import com.couplet.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @ProjectName: Default (Template) Project + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆管理模块启动类 + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class CoupletVehicleApplication { + public static void main(String[] args) { + SpringApplication.run(CoupletVehicleApplication.class, args); + System.out.println("车辆管理模块启动成功"); + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleController.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleController.java new file mode 100644 index 0000000..655dc34 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleController.java @@ -0,0 +1,121 @@ +package com.couplet.vehicle.controller; + +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.web.controller.BaseController; +import com.couplet.common.log.annotation.Log; +import com.couplet.common.log.enums.BusinessType; +import com.couplet.common.security.annotation.RequiresPermissions; +import com.couplet.vehicle.domain.Vehicle; +import com.couplet.vehicle.domain.req.VehicleEditParams; +import com.couplet.vehicle.domain.req.VehicleInsertParams; +import com.couplet.vehicle.domain.req.VehicleListParams; +import com.couplet.vehicle.service.VehicleService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆管理 + */ +@RestController +@RequestMapping("/vehicle") +public class VehicleController extends BaseController { + @Autowired + private VehicleService vehicleService; + + /* + * @Author: LiuYunHu + * @Date: 2024/3/26 21:39 + * @Description: 查询车辆列表 + * @Param: [listParams] + * @Return: com.couplet.common.core.domain.Result + **/ + @RequiresPermissions("couplet:vehicle:list") + @PostMapping("/list") + @Log(title = "车辆列表") + public Result list(@RequestBody VehicleListParams listParams) { + PageHelper.startPage(listParams.getPageNum(), listParams.getPageSize()); + + List list = vehicleService.list(listParams); + + PageInfo vehiclePageInfo = new PageInfo<>(list); + + return Result.success(vehiclePageInfo); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/26 22:35 + * @Description: 通过id删除车辆 + * @Param: [vehicleId] + * @Return: com.couplet.common.core.domain.Result + **/ + @RequiresPermissions("couplet:vehicle:deleteById") + @GetMapping("/deleteById/{vehicleId}") + @Log(title = "删除车辆", businessType = BusinessType.DELETE) + public Result deleteById(@PathVariable Long vehicleId) { + String result = vehicleService.deleteById(vehicleId); + + return Result.success(result); + } + + + /* + * @Author: LiuYunHu + * @Date: 2024/3/27 16:09 + * @Description: 编辑车辆 + * @Param: [editParams] + * @Return: com.couplet.common.core.domain.Result + **/ + @RequiresPermissions("couplet:vehicle:editById") + @PostMapping("/editById") + @Log(title = "编辑车辆", businessType = BusinessType.UPDATE) + public Result editById(@RequestBody VehicleEditParams editParams) { + + String result = vehicleService.editById(editParams); + + return Result.success(result); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/27 16:21 + * @Description: 新增车辆 + * @Param: [insertParams] + * @Return: com.couplet.common.core.domain.Result + **/ + @RequiresPermissions("couplet:vehicle:insert") + @PostMapping("/insert") + @Log(title = "新增车辆", businessType = BusinessType.INSERT) + public Result insert(@RequestBody @Validated VehicleInsertParams insertParams) { + System.out.println(insertParams); + String result = vehicleService.insert(insertParams); + + return Result.success(result); + } + + + /* + * @Author: LiuYunHu + * @Date: 2024/3/31 21:34 + * @Description: 获取绑定当前车辆的标识 + * @Param: [vehicleId] + * @Return: com.couplet.common.core.domain.Result + **/ + @RequiresPermissions("couplet:vehicle:list") + @GetMapping("/getBindLogoById/{vehicleId}") + public Result getBindLogoById(@PathVariable("vehicleId") Long vehicleId) { + + List bindLogoById = vehicleService.getBindLogoById(vehicleId); + + + return Result.success(bindLogoById); + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleTypeController.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleTypeController.java new file mode 100644 index 0000000..33ca5db --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/controller/VehicleTypeController.java @@ -0,0 +1,35 @@ +package com.couplet.vehicle.controller; + +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.web.controller.BaseController; +import com.couplet.common.security.annotation.RequiresPermissions; +import com.couplet.vehicle.domain.VehicleType; +import com.couplet.vehicle.service.VehicleTypeService; +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; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/31 + * @Description: 车辆类型控制器 + */ + +@RestController +@RequestMapping("/vehicleType") +public class VehicleTypeController extends BaseController { + @Autowired + private VehicleTypeService service; + + //获取所有的车辆类型 + @RequiresPermissions("couplet:vehicle:list") + @GetMapping("/list") + public Result> list() { + List vehicleTypeList = service.list(); + return success(vehicleTypeList); + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/Vehicle.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/Vehicle.java new file mode 100644 index 0000000..a12fcbe --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/Vehicle.java @@ -0,0 +1,88 @@ +package com.couplet.vehicle.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆信息表 + */ + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName("couplet_vehicle") +public class Vehicle { + + /* + *车辆id + * */ + @TableId(type = IdType.AUTO, value = "vehicle_id") + private Long vehicleId; + + /* + *车辆类型 + * */ + @TableField(value = "vehicle_type") + private Long vehicleType; + + /* + * 车辆类型名称 + * */ + @TableField(exist = false) + private String vehicleTypeName; + + + /* + *电机厂商 + * */ + @TableField(value = "motor_manufacturer") + private String motorManufacturer; + + /* + *电池厂商 + * */ + @TableField(value = "battery_manufacturer") + private String batteryManufacturer; + + /* + *电机编号 + * */ + @TableField(value = "motor_number") + private String motorNumber; + + /* + *电池编号 + * */ + @TableField(value = "battery_number") + private String batteryNumber; + + /* + *vin码 + * */ + @TableField(value = "vin") + private String vin; + + /* + *0离线 1在线 + * */ + @TableField(value = "vehicle_state") + private Integer vehicleState; + + /* + *0未删除 1删除 + * */ + @TableField(value = "isdelete") + private Integer isdelete; + + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleAndLogo.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleAndLogo.java new file mode 100644 index 0000000..7664101 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleAndLogo.java @@ -0,0 +1,44 @@ +package com.couplet.vehicle.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/30 + * @Description: 车辆和标志中间表 + */ + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName("couplet_vehicle_and_logo") +public class VehicleAndLogo { + + /* + * 车辆、标志中间表id + * */ + @TableId(type = IdType.AUTO, value = "vehicle_logo_middle_id") + private Long vehicleLogoMiddleId; + + /* + * 车辆id + * */ + @TableField("vehicle_id") + private Long vehicleId; + + /* + * 标志id + * */ + @TableField("logo_id") + private Long logoId; + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleType.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleType.java new file mode 100644 index 0000000..8d5afd9 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/VehicleType.java @@ -0,0 +1,36 @@ +package com.couplet.vehicle.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/31 + * @Description: 车辆类型 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName("couplet_vehicle_type") +public class VehicleType { + + /* + * 车辆类型id + * */ + @TableId(type = IdType.AUTO, value = "vehicle_type_id") + private Long vehicleTypeId; + + /* + * 车辆类型名称 + * */ + @TableField(value = "vehicle_type_name") + private String vehicleTypeName; +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleEditParams.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleEditParams.java new file mode 100644 index 0000000..3eeeb6f --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleEditParams.java @@ -0,0 +1,60 @@ +package com.couplet.vehicle.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotNull; +import java.util.List; + + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/27 + * @Description: 车辆编辑入参 + */ + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class VehicleEditParams { + /* + *车辆id + * */ + @NotNull(message = "车辆id不能为空") + private Long vehicleId; + + /* + *车辆类型 + * */ + @NotNull(message="车辆类型不能为空") + private Integer vehicleType; + + + /* + *电机厂商 + * */ + private String motorManufacturer; + + /* + *电池厂商 + * */ + private String batteryManufacturer; + + /* + *电机编号 + * */ + private String motorNumber; + + /* + *电池编号 + * */ + private String batteryNumber; + + //标识id集合 + private List logoIds; + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleInsertParams.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleInsertParams.java new file mode 100644 index 0000000..51c2279 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleInsertParams.java @@ -0,0 +1,62 @@ +package com.couplet.vehicle.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/27 + * @Description: 车辆插入入参 + */ + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class VehicleInsertParams { + + /* + *车辆类型 + * */ + @NotNull(message = "车辆类型不能为空") + private Long vehicleType; + + + /* + *电机厂商 + * */ + @NotBlank(message = "电机厂商不能为空") + private String motorManufacturer; + + /* + *电池厂商 + * */ + @NotBlank(message = "电池厂商不能为空") + private String batteryManufacturer; + + /* + *电机编号 + * */ + @NotBlank(message = "电机编号不能为空") + private String motorNumber; + + /* + *电池编号 + * */ + @NotBlank(message = "电池编号不能为空") + private String batteryNumber; + + /* + * 一辆车可以绑定多个标识 + * */ + private List logoIds; + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleListParams.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleListParams.java new file mode 100644 index 0000000..31acc33 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/domain/req/VehicleListParams.java @@ -0,0 +1,35 @@ +package com.couplet.vehicle.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 查询车辆列表入参 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class VehicleListParams { + /* + *车辆类型 + * */ + private Integer vehicleType; + + /* + *0离线 1在线 + * */ + private Integer vehicleState; + + /* + * 分页参数 + * */ + private Integer pageNum = 1; + private Integer pageSize = 5; + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/exception/VehicleException.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/exception/VehicleException.java new file mode 100644 index 0000000..37b0f52 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/exception/VehicleException.java @@ -0,0 +1,26 @@ +package com.couplet.vehicle.exception; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/29 + * @Description: 车辆异常响应 + */ + +public class VehicleException extends RuntimeException { + private int code; + private String message; + + public VehicleException(int code, String message) { + this.code = code; + this.message = message; + } + + public VehicleException(String message) { + super(message); + } + + public VehicleException() { + + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleAndLogoMapper.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleAndLogoMapper.java new file mode 100644 index 0000000..aff8454 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleAndLogoMapper.java @@ -0,0 +1,25 @@ +package com.couplet.vehicle.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.vehicle.domain.VehicleAndLogo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆与标志Mapper + */ +@Mapper +@Component +public interface VehicleAndLogoMapper extends BaseMapper { + int vehicleBindLogo(@Param("vehicleId") Long vehicleId, @Param("logoIds") List logoIds); + + int deleteByVehicleId(@Param("vehicleId") Long vehicleId); + + List getBindLogoById(@Param("vehicleId") Long vehicleId); +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleMapper.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleMapper.java new file mode 100644 index 0000000..264e973 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleMapper.java @@ -0,0 +1,17 @@ +package com.couplet.vehicle.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.vehicle.domain.Vehicle; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆Mapper + */ +@Mapper +@Component +public interface VehicleMapper extends BaseMapper { +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleTypeMapper.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleTypeMapper.java new file mode 100644 index 0000000..4e406bc --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/mapper/VehicleTypeMapper.java @@ -0,0 +1,18 @@ +package com.couplet.vehicle.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.vehicle.domain.Vehicle; +import com.couplet.vehicle.domain.VehicleType; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆类型Mapper + */ +@Mapper +@Component +public interface VehicleTypeMapper extends BaseMapper { +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleAndLogoService.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleAndLogoService.java new file mode 100644 index 0000000..1e15138 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleAndLogoService.java @@ -0,0 +1,21 @@ +package com.couplet.vehicle.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.vehicle.domain.VehicleAndLogo; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/30 + * @Description: + */ + +public interface VehicleAndLogoService extends IService { + int vehicleBindLogo(Long vehicleId, List logoIds); + + int deleteByVehicleId(Long vehicleId); + + List getBindLogoById(Long vehicleId); +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleService.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleService.java new file mode 100644 index 0000000..ee6b50f --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleService.java @@ -0,0 +1,28 @@ +package com.couplet.vehicle.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.vehicle.domain.Vehicle; +import com.couplet.vehicle.domain.req.VehicleEditParams; +import com.couplet.vehicle.domain.req.VehicleInsertParams; +import com.couplet.vehicle.domain.req.VehicleListParams; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆服务 + */ + +public interface VehicleService extends IService { + List list(VehicleListParams listParams); + + String deleteById(Long vehicleId); + + String editById(VehicleEditParams editParams); + + String insert(VehicleInsertParams insertParams); + + List getBindLogoById(Long vehicleId); +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleTypeService.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleTypeService.java new file mode 100644 index 0000000..b92b896 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/VehicleTypeService.java @@ -0,0 +1,17 @@ +package com.couplet.vehicle.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.vehicle.domain.VehicleType; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/31 + * @Description: 车辆类型服务层 + */ + +public interface VehicleTypeService extends IService { + List list(); +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleAndLogoServiceImpl.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleAndLogoServiceImpl.java new file mode 100644 index 0000000..e5e5a5e --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleAndLogoServiceImpl.java @@ -0,0 +1,77 @@ +package com.couplet.vehicle.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.vehicle.domain.VehicleAndLogo; +import com.couplet.vehicle.mapper.VehicleAndLogoMapper; +import com.couplet.vehicle.service.VehicleAndLogoService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/30 + * @Description: 车辆和标识关联 + */ + +@Service +@Slf4j +public class VehicleAndLogoServiceImpl extends ServiceImpl implements VehicleAndLogoService { + + //注入mapper + @Autowired + private VehicleAndLogoMapper mapper; + + /* + * @Author: LiuYunHu + * @Date: 2024/3/30 11:51 + * @Description: 车辆绑定标志 + * @Param: [vehicleId, logoIds] + * @Return: int + **/ + @Override + public int vehicleBindLogo(Long vehicleId, List logoIds) { + //将ids转为list +// ArrayList logoIdList = new ArrayList<>(); +// String[] split = logoIds.split(","); +// for (String s : split) { +// logoIdList.add(Long.parseLong(s)); +// } + + //执行绑定 + return mapper.vehicleBindLogo(vehicleId, logoIds); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/31 21:21 + * @Description: 删除掉车辆绑定 + * @Param: [vehicleId] + * @Return: int + **/ + @Override + public int deleteByVehicleId(Long vehicleId) { + + + return mapper.deleteByVehicleId(vehicleId); + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/31 21:35 + * @Description: 获取绑定当前车辆的标识 + * @Param: [vehicleId] + * @Return: java.util.List + **/ + @Override + public List getBindLogoById(Long vehicleId) { + + + return mapper.getBindLogoById(vehicleId); + } + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleServiceImpl.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleServiceImpl.java new file mode 100644 index 0000000..1a4d5f8 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleServiceImpl.java @@ -0,0 +1,242 @@ +package com.couplet.vehicle.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.utils.StringUtils; +import com.couplet.vehicle.domain.Vehicle; +import com.couplet.vehicle.domain.VehicleType; +import com.couplet.vehicle.domain.req.VehicleEditParams; +import com.couplet.vehicle.domain.req.VehicleInsertParams; +import com.couplet.vehicle.domain.req.VehicleListParams; +import com.couplet.vehicle.mapper.VehicleMapper; +import com.couplet.vehicle.service.VehicleAndLogoService; +import com.couplet.vehicle.service.VehicleService; +import com.couplet.vehicle.service.VehicleTypeService; +import com.couplet.vehicle.utils.SnowflakeIdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/26 + * @Description: 车辆服务实现类 + */ + +@Service +@Slf4j +public class VehicleServiceImpl extends ServiceImpl implements VehicleService { + //车辆mapper + @Autowired + private VehicleMapper vehicleMapper; + + //车辆类型服务 + @Autowired + private VehicleTypeService vehicleTypeService; + + //车辆与标志关联 的mapper + @Autowired + private VehicleAndLogoService vehicleAndLogoService; + + /* + * @Author: LiuYunHu + * @Date: 2024/3/26 22:11 + * @Description: 查询列表 + * @Param: [listParams] + * @Return: java.util.List + **/ + @Override + public List list(VehicleListParams listParams) { + // 创建查询条件包装器 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + // 如果车辆类型不为空,添加车辆类型作为查询条件 + if (!StringUtils.isNull(listParams.getVehicleType())) { + queryWrapper.eq(Vehicle::getVehicleType, listParams.getVehicleType()); + } + + // 如果车辆状态不为空,添加车辆状态作为查询条件 + if (!StringUtils.isNull(listParams.getVehicleState())) { + queryWrapper.eq(Vehicle::getVehicleState, listParams.getVehicleState()); + } + + //只查询车辆未被删除的 + queryWrapper.eq(Vehicle::getIsdelete, 0); + + // 执行查询 + List list = this.list(queryWrapper); + + //调用服务,得到车辆类型 + List vehicleTypes = vehicleTypeService.list(); + + //将类型id一样的记录 名称进行赋值 + list.forEach(vehicle -> { + vehicleTypes.forEach(vehicleType -> { + if (vehicle.getVehicleType() == vehicleType.getVehicleTypeId()) { + vehicle.setVehicleTypeName(vehicleType.getVehicleTypeName()); + } + }); + }); + + + return list; + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/26 22:31 + * @Description: 通过id删除 + * @Param: [vehicleId] + * @Return: java.lang.String + **/ + @Override + public String deleteById(Long vehicleId) { + String result = ""; + + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + + updateWrapper.set("isdelete", 1) + .eq("vehicle_id", vehicleId); + + boolean update = update(updateWrapper); + + if (!update) { + result = "删除失败"; + Result.error(result); + } + + result = "删除成功!"; + + return result; + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/27 15:21 + * @Description: 通过id进行编辑 + * @Param: [editParams] + * @Return: java.lang.String + **/ + @Override + public String editById(VehicleEditParams editParams) { + String result = ""; + + if ((editParams.getLogoIds() == null || editParams.getLogoIds().isEmpty())) { + result = "未选择电子围栏"; + Result.error(result); + } + + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + + //编辑车辆类型 + updateWrapper.set("vehicle_type", editParams.getVehicleType()) + + //编辑电机厂商 + .set("motor_manufacturer", editParams.getMotorManufacturer()) + + //编辑电池厂商 + .set("battery_manufacturer", editParams.getBatteryManufacturer()) + + //编辑电机编号 + .set("motor_number", editParams.getMotorNumber()) + + //编辑电池编号 + .set("battery_number", editParams.getBatteryNumber()) + + //匹配车辆id + .eq("vehicle_id", editParams.getVehicleId()); + + + boolean update = update(updateWrapper); + + if (!update) { + result = "编辑失败"; + Result.error(result); + } + + //删除掉车辆id为入参的车辆、标识的中间表数据 + int delete = vehicleAndLogoService.deleteByVehicleId(editParams.getVehicleId()); + + //删除绑定之后,再添加新的绑定 + vehicleAndLogoService.vehicleBindLogo(editParams.getVehicleId(), editParams.getLogoIds()); + + result = "编辑成功!"; + + return result; + } + + /* + * @Author: LiuYunHu + * @Date: 2024/3/27 16:34 + * @Description: 新增车辆 + * @Param: [insertParams] + * @Return: java.lang.String + **/ + @Override + public String insert(VehicleInsertParams insertParams) { + String result = ""; + + if ((insertParams.getLogoIds() == null || insertParams.getLogoIds().isEmpty())) { + result = "未选择电子围栏"; + Result.error(result); + } + + + //雪花算法生成随机数 + SnowflakeIdGenerator idGenerator = new SnowflakeIdGenerator(1, 1); + long randomId = idGenerator.nextId(); + String vin = "VIN" + randomId; + + + //创建入参对象 + Vehicle vehicle = new Vehicle(); + + vehicle.setVehicleType(insertParams.getVehicleType()); + vehicle.setMotorManufacturer(insertParams.getMotorManufacturer()); + vehicle.setBatteryManufacturer(insertParams.getBatteryManufacturer()); + vehicle.setMotorNumber(insertParams.getMotorNumber()); + vehicle.setBatteryNumber(insertParams.getBatteryNumber()); + vehicle.setVin(vin); + vehicle.setVehicleState(0); + vehicle.setIsdelete(0); + + + //执行插入操作 + int insert = vehicleMapper.insert(vehicle); + + if (insert == 0) { + result = "新增失败"; + Result.error(result); + } + + //获取新增的车辆id值 + //执行添加电子围栏 + int i = vehicleAndLogoService.vehicleBindLogo(vehicle.getVehicleId(), insertParams.getLogoIds()); + + + result = "新增成功!"; + + return result; + } + + + /* + * @Author: LiuYunHu + * @Date: 2024/3/31 21:34 + * @Description: 获取绑定当前车辆的标识 + * @Param: [vehicleId] + * @Return: java.util.List + **/ + @Override + public List getBindLogoById(Long vehicleId) { + List logoIds = vehicleAndLogoService.getBindLogoById(vehicleId); + + return logoIds; + } + +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleTypeServiceImpl.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleTypeServiceImpl.java new file mode 100644 index 0000000..4fc867f --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/service/impl/VehicleTypeServiceImpl.java @@ -0,0 +1,37 @@ +package com.couplet.vehicle.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.vehicle.domain.VehicleType; +import com.couplet.vehicle.mapper.VehicleTypeMapper; +import com.couplet.vehicle.service.VehicleTypeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/31 + * @Description: 车辆类型服务实现类 + */ +@Service +@Slf4j +public class VehicleTypeServiceImpl extends ServiceImpl implements VehicleTypeService { + + + /* + * @Author: LiuYunHu + * @Date: 2024/3/31 10:17 + * @Description: 获取所有的车辆类型 + * @Param: [] + * @Return: java.util.List + **/ + @Override + public List list() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + return this.list(queryWrapper); + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/utils/SnowflakeIdGenerator.java b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/utils/SnowflakeIdGenerator.java new file mode 100644 index 0000000..3f6132c --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/java/com/couplet/vehicle/utils/SnowflakeIdGenerator.java @@ -0,0 +1,79 @@ +package com.couplet.vehicle.utils; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/27 + * @Description: 雪花ID生成器 + * 使用方法 + * SnowflakeIdGenerator idGenerator = new SnowflakeIdGenerator(1, 1); // 创建一个 ID 生成器,传入机器 ID 和数据中心 ID + * long id = idGenerator.nextId(); // 生成 ID + */ + +public class SnowflakeIdGenerator { + + private final long epoch = 1420041600000L; // 起始时间戳,用于缩小时间戳范围,可根据实际情况调整 + private final long workerIdBits = 5L; // 机器 ID 所占位数 + private final long dataCenterIdBits = 5L; // 数据中心 ID 所占位数 + private final long sequenceBits = 12L; // 序列号所占位数 + + private final long maxWorkerId = -1L ^ (-1L << workerIdBits); // 机器 ID 最大值 + private final long maxDataCenterId = -1L ^ (-1L << dataCenterIdBits); // 数据中心 ID 最大值 + private final long maxSequence = -1L ^ (-1L << sequenceBits); // 序列号最大值 + + private final long workerIdShift = sequenceBits; // 机器 ID 向左移动位数 + private final long dataCenterIdShift = sequenceBits + workerIdBits; // 数据中心 ID 向左移动位数 + private final long timestampShift = sequenceBits + workerIdBits + dataCenterIdBits; // 时间戳向左移动位数 + + private long workerId; // 机器 ID + private long dataCenterId; // 数据中心 ID + private long sequence = 0L; // 序列号 + private long lastTimestamp = -1L; // 上次生成的时间戳 + + public SnowflakeIdGenerator(long workerId, long dataCenterId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException("Worker ID can't be greater than " + maxWorkerId + " or less than 0"); + } + if (dataCenterId > maxDataCenterId || dataCenterId < 0) { + throw new IllegalArgumentException("Data center ID can't be greater than " + maxDataCenterId + " or less than 0"); + } + this.workerId = workerId; + this.dataCenterId = dataCenterId; + } + + public synchronized long nextId() { + long timestamp = timeGen(); + + if (timestamp < lastTimestamp) { + throw new RuntimeException("Clock moved backwards, refusing to generate ID"); + } + + if (timestamp == lastTimestamp) { + sequence = (sequence + 1) & maxSequence; + if (sequence == 0) { + timestamp = tilNextMillis(lastTimestamp); + } + } else { + sequence = 0L; + } + + lastTimestamp = timestamp; + + return ((timestamp - epoch) << timestampShift) | + (dataCenterId << dataCenterIdShift) | + (workerId << workerIdShift) | + sequence; + } + + private long tilNextMillis(long lastTimestamp) { + long timestamp = timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = timeGen(); + } + return timestamp; + } + + private long timeGen() { + return System.currentTimeMillis(); + } +} diff --git a/couplet-modules/couplet-modules-vehicle/src/main/resources/banner.txt b/couplet-modules/couplet-modules-vehicle/src/main/resources/banner.txt new file mode 100644 index 0000000..0f828d6 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/resources/banner.txt @@ -0,0 +1,6 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ ____ _ _ ____ ___ __ ____ +( \/ )( ___)( )_( )(_ _) / __)( ) ( ___) + \ / )__) ) _ ( _)(_ ( (__ )(__ )__) + \/ (____)(_) (_)(____) \___)(____)(____) diff --git a/couplet-modules/couplet-modules-vehicle/src/main/resources/bootstrap.yml b/couplet-modules/couplet-modules-vehicle/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..f985e0c --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/resources/bootstrap.yml @@ -0,0 +1,32 @@ +# Tomcat +server: + port: 9615 + +# Spring +spring: + application: + # 应用名称 + name: couplet-vehicle + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + config: + # 配置中心地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true +logging: + level: + com.couplet.system.mapper: DEBUG diff --git a/couplet-modules/couplet-modules-vehicle/src/main/resources/logback.xml b/couplet-modules/couplet-modules-vehicle/src/main/resources/logback.xml new file mode 100644 index 0000000..4940ee0 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/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/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleAndLogoMapper.xml b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleAndLogoMapper.xml new file mode 100644 index 0000000..854c18e --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleAndLogoMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + DELETE + FROM `couplet_vehicle_and_logo` + WHERE `vehicle_id` = #{vehicleId} + + + + diff --git a/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleMapper.xml b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleMapper.xml new file mode 100644 index 0000000..ac9dc8d --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleMapper.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleTypeMapper.xml b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleTypeMapper.xml new file mode 100644 index 0000000..a71954f --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/main/resources/mapper/vehicle/VehicleTypeMapper.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/couplet-modules/couplet-modules-vehicle/src/test/java/IdTest.java b/couplet-modules/couplet-modules-vehicle/src/test/java/IdTest.java new file mode 100644 index 0000000..8a754b4 --- /dev/null +++ b/couplet-modules/couplet-modules-vehicle/src/test/java/IdTest.java @@ -0,0 +1,20 @@ +import com.couplet.vehicle.utils.SnowflakeIdGenerator; + +/** + * @ProjectName: five-groups-couplet + * @Author: LiuYunHu + * @CreateTime: 2024/3/27 + * @Description: + */ + +public class IdTest { + + + public static void main(String[] args) { + SnowflakeIdGenerator idGenerator = new SnowflakeIdGenerator(1, 1); + + long l = idGenerator.nextId(); + System.out.println(l); + + } +} diff --git a/couplet-modules/couplet-msg/pom.xml b/couplet-modules/couplet-msg/pom.xml new file mode 100644 index 0000000..d826790 --- /dev/null +++ b/couplet-modules/couplet-msg/pom.xml @@ -0,0 +1,84 @@ + + + 4.0.0 + + com.couplet + couplet-modules + 3.6.3 + + + couplet-msg + + + 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 + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.couplet + couplet-common-datasource + + + + + com.couplet + couplet-common-datascope + + + + + com.couplet + couplet-common-log + + + + + com.couplet + couplet-common-swagger + + + + diff --git a/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/MsgData.java b/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/MsgData.java new file mode 100644 index 0000000..750b5f0 --- /dev/null +++ b/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/MsgData.java @@ -0,0 +1,382 @@ +package com.couplet.msg.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/31 16:01 + * @description + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MsgData { + /** + * VIN + */ + private String vin; + /** + * 行驶路线 + */ + private String drivingRoute; + + /** + * 经度 + */ + private String longitude; + + /** + * 维度 + */ + private String latitude; + + /** + * 速度 + */ + private String speed; + + /** + * 里程 + */ + private BigDecimal mileage; + + /** + * 总电压 + */ + private String voltage; + + /** + * 总电流 + */ + private String current; + + /** + * 绝缘电阻 + */ + private String resistance; + + /** + * 档位 + */ + private String gear = "P"; + + /** + * 加速踏板行程值 + */ + private String accelerationPedal; + + /** + * 制动踏板行程值 + */ + private String brakePedal; + + /** + * 燃料消耗率 + */ + private String fuelConsumptionRate; + + /** + * 电机控制器温度 + */ + private String motorControllerTemperature; + + /** + * 电机转速 + */ + private String motorSpeed; + + /** + * 电机转矩 + */ + private String motorTorque; + + /** + * 电机温度 + */ + private String motorTemperature; + + /** + * 电机电压 + */ + private String motorVoltage; + + /** + * 电机电流 + */ + private String motorCurrent; + + /** + * 动力电池剩余电量SOC + */ + private BigDecimal remainingBattery; + + /** + * 电池总容量 + */ + private BigDecimal batteryLevel; + + /** + * 当前状态允许的最大反馈功率 + */ + private String maximumFeedbackPower; + + /** + * 当前状态允许最大放电功率 + */ + private String maximumDischargePower; + + /** + * BMS自检计数器 + */ + private String selfCheckCounter; + + /** + * 动力电池充放电电流 + */ + private String totalBatteryCurrent; + + /** + * 动力电池负载端总电压V3 + */ + private String totalBatteryVoltage; + + /** + * 单次最大电压 + */ + private String singleBatteryMaxVoltage; + + /** + * 单体电池最低电压 + */ + private String singleBatteryMinVoltage; + + /** + * 单体电池最高温度 + */ + private String singleBatteryMaxTemperature; + + /** + * 单体电池最低温度 + */ + private String singleBatteryMinTemperature; + + /** + * 动力电池可用容量 + */ + private String availableBatteryCapacity; + + /** + * 车辆状态 + */ + private int vehicleStatus = 1; + + /** + * 充电状态 + */ + private int chargingStatus = 1; + + /** + * 运行状态 + */ + private int operatingStatus = 1; + + /** + * SOC + */ + private int socStatus = 1; + + /** + * 可充电储能装置工作状态 + */ + private int chargingEnergyStorageStatus = 1; + + /** + * 驱动电机状态 + */ + private int driveMotorStatus = 1; + + /** + * 定位是否有效 + */ + private int positionStatus = 1; + + /** + * EAS(汽车防盗系统)状态 + */ + private int easStatus = 1; + + /** + * PTC(电动加热器)状态 + */ + private int ptcStatus = 1; + + /** + * EPS(电动助力系统)状态 + */ + private int epsStatus = 1; + + /** + * ABS(防抱死)状态 + */ + private int absStatus = 1; + + /** + * MCU(电机/逆变器)状态 + */ + private int mcuStatus = 1; + + /** + * 动力电池加热状态 + */ + private int heatingStatus = 1; + + /** + * 动力电池当前状态 + */ + private int batteryStatus = 1; + + /** + * 动力电池保温状态 + */ + private int batteryInsulationStatus = 1; + + /** + * DCDC(电力交换系统)状态 + */ + private int dcdcStatus = 1; + + /** + * CHG(充电机)状态 + */ + private int chgStatus = 1; + + /** + * 车辆状态 报文 + */ + private String vehicleStatusMsg; + /** + * 智能硬件 报文 + */ + private String smartHardwareMsg; + /** + * 电池报文 + */ + private String batteryMsg; + + public String getMsg(){ + //第一位VIN + return vin + + // 当前时间戳 + System.currentTimeMillis() + + //第二位经度 longitude latitude + getValue(longitude, 11) + + //第三位维度 longitude latitude + getValue(latitude, 10) + + //车速 + getValue(speed, 6) + + //总里程 + getValue(mileage == null ? "" : mileage.toString(), 11) + + // 总电压 + getValue(voltage, 6) + + //总电流 + getValue(current, 5) + + //绝缘电阻 79 - 87 + getValue(resistance, 9) + + //档位 + (gear == null ? "D" : gear) + + // 加速踏板行程值 + getValue(accelerationPedal, 2) + + // 制动踏板行程值 + getValue(brakePedal, 2) + + // 燃料消耗率 + getValue(fuelConsumptionRate, 5) + + //电机控制器温度 + getValue(motorControllerTemperature, 6) + + //电机转速 + getValue(motorSpeed, 5) + + //点击转矩 + getValue(motorTorque, 4) + + //电机温度 + getValue(motorTemperature, 6) + + //电机电压 + getValue(motorVoltage, 5) + + //电机电流 + getValue(motorCurrent, 8) + + //动力电池剩余电量SOC + getValue(remainingBattery == null ? "" : remainingBattery.toString(), 6) + + //当前状态允许的最大反馈功率 + getValue(maximumFeedbackPower, 6) + + //当前状态允许最大放电功率 + getValue(maximumDischargePower, 6) + + //BMS自检计数器 + getValue(selfCheckCounter, 2) + + //动力电池充放电电流 + getValue(totalBatteryCurrent, 5) + + //动力电池负载端总电压V3 + getValue(totalBatteryVoltage, 6) + + //单次最大电压 + getValue(singleBatteryMaxVoltage, 4) + + //单体电池最低电压 + getValue(singleBatteryMinVoltage, 4) + + //单体电池最高温度 + getValue(singleBatteryMaxTemperature, 6) + + //单体电池最低温度 + getValue(singleBatteryMinTemperature, 6) + + //动力电池可用容量 + getValue(availableBatteryCapacity, 6) + + //车辆状态 + vehicleStatus + + //充电状态 + chargingStatus + + //运行状态 + operatingStatus + + //SOC + socStatus + + //可充电储能装置工作状态 + chargingEnergyStorageStatus + + //驱动电机状态 + driveMotorStatus + + //定位是否有效 + positionStatus + + //EAS + easStatus + + //PTC + ptcStatus + + //EPS + epsStatus + + //ABS + absStatus + + //MCU + mcuStatus + + //动力电池加热状态 + heatingStatus + + //动力电池当前状态 + batteryStatus + + //动力电池保温状态 + batteryInsulationStatus + + //DCDC + dcdcStatus + + //CHG + chgStatus; + } + + public String getValue(String val , int valLength){ + if(val == null){ + val = ""; + } + int length = val.length(); + if (length > valLength){ + return val.substring( 0 , valLength); + } + val = val + "0".repeat(valLength - length); + return val; + } + +} diff --git a/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/TroubleLog.java b/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/TroubleLog.java new file mode 100644 index 0000000..1821061 --- /dev/null +++ b/couplet-modules/couplet-msg/src/main/java/com/couplet/msg/domain/TroubleLog.java @@ -0,0 +1,51 @@ +package com.couplet.msg.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/31 21:18 + * @description + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TroubleLog { + /** + * 故障记录Id + */ + private Integer troubleLogId; + + /** + * 故障码 + */ + private String troubleLogCode; + + /** + * 故障记录车辆VIN + */ + private String troubleLogVin; + + /** + * 开始预警时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date troubleLogStartTime; + + /** + * 结束预警时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date troubleLogEndTime; +} diff --git a/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/Main.java b/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/Main.java new file mode 100644 index 0000000..77a6a21 --- /dev/null +++ b/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/Main.java @@ -0,0 +1,28 @@ +package com.couplet.msg; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/31 16:57 + * @description + */ +public class Main { + public static void main(String[] args) { + String msgString = "VIN123456789DIJE41711764104506116.664380039.531990072.00031.3760000022000022000852000000D00809.600940000589066790930000203002030000044282.55000014000080700007440003000400095000058000054000011111111111111111"; + + //使用正则表达式匹配需要的部分 + String pattern = "(.{17})(.{10})(.{4})(.{2})(.{2})"; + Pattern compile = Pattern.compile(pattern); + Matcher matcher = compile.matcher(msgString); + + if (matcher.find()) { + for (int i = 1; i <= matcher.groupCount(); i++) { + System.out.println("Group "+ i + ":" + matcher.group(i)); + } + } + + } +} diff --git a/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/ParsingMsg.java b/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/ParsingMsg.java new file mode 100644 index 0000000..527a27f --- /dev/null +++ b/couplet-modules/couplet-msg/src/test/java/com/couplet/msg/ParsingMsg.java @@ -0,0 +1,69 @@ +package com.couplet.msg; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/30 11:39 + * @description + */ +public class ParsingMsg { + private static final List msgList = new ArrayList<>(){{ + add("7E 56 49 4e 31 32 33 34 35 36 37 38 39 44 49 4a 45 34 31 37 31 31 37 36 34 31 30 34 35 30 36 31 31 36 2e 36 36 34 33 38 30 30 33 39 2e 35 33 31 39 39 30 30 37 32 2e 30 30 30 33 31 2e 33 37 36 30 30 30 30 30 32 32 30 30 30 30 32 32 30 30 30 38 35 32 30 30 30 30 30 30 44 30 30 38 30 39 2e 36 30 30 39 34 30 30 30 30 35 38 39 30 36 36 37 39 30 39 33 30 30 30 30 32 30 33 30 30 32 30 33 30 30 30 30 30 34 34 32 38 32 2e 35 35 30 30 30 30 31 34 30 30 30 30 38 30 37 30 30 30 30 37 34 34 30 30 30 33 30 30 30 34 30 30 30 39 35 30 30 30 30 35 38 30 30 30 30 35 34 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 24 7E"); + }}; + + public static void main(String[] args) { + // 去头去尾 + for (String string : msgList) { + String substring = string.substring(2, string.length() - 2); + System.out.println("去头去尾字符串:"+ substring); + + String hexStringWithoutSpaces = substring.replaceAll("\\s+", ""); + String asciiString = hexToString(hexStringWithoutSpaces); + System.out.println("16进制解析后的数据:"+asciiString); +// //截取前17位 +// String substring1 = asciiString.substring(0, 17); +// System.out.println("VIN:"+substring1); +// String substring2 = asciiString.substring(17, 30); +// System.out.println("时间戳:"+substring2); +// String substring3 = asciiString.substring(30, 40); +// System.out.println("经度:" +substring3); +// String substring4 = asciiString.substring(41, 50); +// System.out.println("纬度:"+ substring4); +// String substring5 = asciiString.substring(51, 56); +// System.out.println("车速:"+ substring5); +// String substring6 = asciiString.substring(57, 67); +// System.out.println("总里程:"+ substring6); +// String substring7 = asciiString.substring(68, 73); +// System.out.println("总电压:"+ substring7); + String pattern = "(.{17})(.{10})(.{9})(.{8})(.{2})"; + Pattern compile = Pattern.compile(pattern); + Matcher matcher = compile.matcher(asciiString); + if (matcher.find()) { + for (int i = 1; i < matcher.groupCount(); i++) { + System.out.println("Group "+ i + ":" + matcher.group(i)); + } + } + } + } + + + /** + * 将16进制字符串转换为ASCII字符串 + * @param hexString 16进制字符串 + * @return ASCII字符串 + */ + public static String hexToString(String hexString) { + StringBuilder asciiString = new StringBuilder(); + for (int i = 0; i < hexString.length(); i += 2) { + String hex = hexString.substring(i, i + 2); + int decimal = Integer.parseInt(hex, 16); + asciiString.append((char) decimal); + } + return asciiString.toString(); + } +} diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/controller/SysFirmController.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/controller/SysFirmController.java new file mode 100644 index 0000000..069efca --- /dev/null +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/controller/SysFirmController.java @@ -0,0 +1,75 @@ +package com.couplet.system.controller; + +import com.couplet.common.core.domain.Result; +import com.couplet.common.system.domain.SysFirm; +import com.couplet.system.service.SysFirmService; +import io.swagger.models.auth.In; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ClassName SysFirmController + * @Description 企业信息 + * @Author YuanYongH + * @Date 2024/3/28 22:14 + */ +@RestController +@RequestMapping("firm") +public class SysFirmController { + + @Autowired + private SysFirmService sysFirmService; + /** + * @Description // 管理企业列表 + * @Date 2024/3/28 + * @param sysFirm + * @return com.couplet.common.core.domain.Result> + **/ + @PostMapping("firmList") + public Result> firmList(@RequestBody SysFirm sysFirm){ + List list = sysFirmService.firmList(sysFirm); + Result> result = Result.success(list); + return result; + } + + /** + * @Description // 添加企业 默认未认证 + * @Date 2024/3/28 + * @param sysFirm + * @return com.couplet.common.core.domain.Result + **/ + @PostMapping("addFirm") + public Result addFirm(@RequestBody SysFirm sysFirm){ + int i = sysFirmService.addFirm(sysFirm); + Result result = Result.success(i); + return result; + } + + /** + * @Description // 修改企业信息 + * @Date 2024/3/28 + * @param sysFirm + * @return com.couplet.common.core.domain.Result + **/ + @PostMapping("updateFirm") + public Result updateFirm(@RequestBody SysFirm sysFirm){ + int i = sysFirmService.updateFirm(sysFirm); + Result result = Result.success(i); + return result; + } + + /** + * @Description // 删除企业 附属的员工一并删除 + * @Date 2024/3/29 + * @param deptId + * @return com.couplet.common.core.domain.Result + **/ + @PostMapping("delFirm/{deptId}") + public Result delFirm(@PathVariable Integer deptId){ + int i = sysFirmService.delFirm(deptId); + Result success = Result.success(i); + return success; + } +} diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/mapper/SysFirmMapper.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/mapper/SysFirmMapper.java new file mode 100644 index 0000000..be1f1e4 --- /dev/null +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/mapper/SysFirmMapper.java @@ -0,0 +1,24 @@ +package com.couplet.system.mapper; + +import com.couplet.common.system.domain.SysFirm; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @ClassName SysFirmMapper + * @Description TODO + * @Author YuanYongH + * @Date 2024/3/28 22:18 + */ +@Mapper +public interface SysFirmMapper { + List firmList(SysFirm sysFirm); + + int addFirm(SysFirm sysFirm); + + int updateFirm(SysFirm sysFirm); + + int delFirm(Integer deptId); + +} diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/SysFirmService.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/SysFirmService.java new file mode 100644 index 0000000..32adc9c --- /dev/null +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/SysFirmService.java @@ -0,0 +1,21 @@ +package com.couplet.system.service; + +import com.couplet.common.system.domain.SysFirm; + +import java.util.List; + +/** + * @ClassName SysFirmService + * @Description TODO + * @Author YuanYongH + * @Date 2024/3/28 22:17 + */ +public interface SysFirmService { + List firmList(SysFirm sysFirm); + + int addFirm(SysFirm sysFirm); + + int updateFirm(SysFirm sysFirm); + + int delFirm(Integer deptId); +} diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysConfigServiceImpl.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysConfigServiceImpl.java index d3c3493..d86edf5 100644 --- a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysConfigServiceImpl.java +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysConfigServiceImpl.java @@ -23,8 +23,7 @@ import java.util.Objects; * @Date 2023-11-13 上午 10:06 */ @Service -public class SysConfigServiceImpl extends ServiceImpl - implements SysConfigService { +public class SysConfigServiceImpl extends ServiceImpl implements SysConfigService { @Autowired private RedisService redisService; diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysDeptServiceImpl.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysDeptServiceImpl.java index ae62121..33a44fd 100644 --- a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysDeptServiceImpl.java +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysDeptServiceImpl.java @@ -224,7 +224,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl * @return 结果 */ @Override - public int updateDept (SysDept dept) { + public int updateDept (SysDept dept) { SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) { diff --git a/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysFirmServiceImpl.java b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysFirmServiceImpl.java new file mode 100644 index 0000000..15a2ddd --- /dev/null +++ b/couplet-modules/couplet-system/src/main/java/com/couplet/system/service/impl/SysFirmServiceImpl.java @@ -0,0 +1,40 @@ +package com.couplet.system.service.impl; + +import com.couplet.common.system.domain.SysFirm; +import com.couplet.system.mapper.SysFirmMapper; +import com.couplet.system.service.SysFirmService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ClassName SysFirmServiceImpl + * @Description TODO + * @Author YuanYongH + * @Date 2024/3/28 22:17 + */ +@Service +public class SysFirmServiceImpl implements SysFirmService { + @Autowired + private SysFirmMapper sysFirmMapper; + @Override + public List firmList(SysFirm sysFirm) { + return sysFirmMapper.firmList(sysFirm); + } + + @Override + public int addFirm(SysFirm sysFirm) { + return sysFirmMapper.addFirm(sysFirm); + } + + @Override + public int updateFirm(SysFirm sysFirm) { + return sysFirmMapper.updateFirm(sysFirm); + } + + @Override + public int delFirm(Integer deptId) { + return sysFirmMapper.delFirm(deptId); + } +} diff --git a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml index 0c29b0b..714bdef 100644 --- a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: # Spring spring: + main: + allow-bean-definition-overriding: true application: # 应用名称 name: couplet-system @@ -15,16 +17,16 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true logging: level: com.couplet.system.mapper: DEBUG diff --git a/couplet-modules/couplet-system/src/main/resources/mapper/system/SysFirmMapper.xml b/couplet-modules/couplet-system/src/main/resources/mapper/system/SysFirmMapper.xml new file mode 100644 index 0000000..0a4235b --- /dev/null +++ b/couplet-modules/couplet-system/src/main/resources/mapper/system/SysFirmMapper.xml @@ -0,0 +1,30 @@ + + + + + INSERT INTO `ry-cloud`.`sys_dept` + ( `dept_name`, `leader`, `phone`, `status`, `del_flag`, `create_by` ) + VALUES ( #{deptName}, #{leader}, #{phone}, #{status}, #{delFlag}, #{createBy}); + + + + + + UPDATE `ry-cloud`.`sys_dept` + SET `dept_name` = #{deptName}, `leader` = #{leader}, `phone` = #{phone}, `status` = #{status}, `del_flag` = 0, `create_by` = #{createBy} + WHERE `dept_id` = #{deptId}; + + + + + update `sys_dept` + set del_flag = '2' + where dept_id = #{deptId} + + + + diff --git a/couplet-modules/couplet-trouble/pom.xml b/couplet-modules/couplet-trouble/pom.xml new file mode 100644 index 0000000..2addc7f --- /dev/null +++ b/couplet-modules/couplet-trouble/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.couplet + couplet-modules + 3.6.3 + + + couplet-trouble + + + 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 + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.couplet + couplet-common-datasource + + + + + com.couplet + couplet-common-datascope + + + + + com.couplet + couplet-common-log + + + + + com.couplet + couplet-common-swagger + + + + + diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/CoupletTroubleApplication.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/CoupletTroubleApplication.java new file mode 100644 index 0000000..9c269b4 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/CoupletTroubleApplication.java @@ -0,0 +1,19 @@ +package com.couplet.trouble; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 21:42 + * @description + */ +@SpringBootApplication(scanBasePackages = "com.couplet.**") +@EnableFeignClients(basePackages = "com.couplet.**") +public class CoupletTroubleApplication { + public static void main(String[] args) { + SpringApplication.run(CoupletTroubleApplication.class); + } +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/controller/SysTroubleController.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/controller/SysTroubleController.java new file mode 100644 index 0000000..9db2dc2 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/controller/SysTroubleController.java @@ -0,0 +1,83 @@ +package com.couplet.trouble.controller; + +import com.couplet.common.core.domain.PageResult; +import com.couplet.common.core.domain.Result; +import com.couplet.common.core.web.controller.BaseController; +import com.couplet.common.log.annotation.Log; +import com.couplet.common.log.enums.BusinessType; +import com.couplet.trouble.domain.CoupletTroubleCode; +import com.couplet.trouble.domain.CoupletTroubleGrade; +import com.couplet.trouble.domain.CoupletTroubleType; +import com.couplet.trouble.domain.resp.TroubleResp; +import com.couplet.trouble.service.SysTroubleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:36 + * @description + */ +@RestController +@RequestMapping("trouble") +public class SysTroubleController extends BaseController { + @Autowired + private SysTroubleService troubleService; + + /** + * 故障码管理列表 + */ + @PostMapping("/troubleList") + public Result> list(@RequestBody TroubleResp troubleReq) { + PageResult result = troubleService.selectTroubleList(troubleReq); + return Result.success(result); + } + + /** + * 故障类型信息 + */ + @GetMapping("/troubleTypeList") + public List listType() { + return troubleService.selectTroubleListByType(); + } + + /** + * 故障等级信息 + */ + @GetMapping("/troubleGradeList") + public List listGrade() { + return troubleService.selectTroubleListByGrade(); + } + + /** + * 新增故障码数据 + */ + @Log(title = "新增故障码数据", businessType = BusinessType.INSERT) + @PostMapping("insertTrouble") + public Result insert(@Validated @RequestBody CoupletTroubleCode troubleAddReq) { + return toAjax(troubleService.save(troubleAddReq)); + } + + /** + * 修改故障码数据 + */ + @Log(title = "修改故障码数据",businessType = BusinessType.UPDATE) + @PostMapping("updateTrouble") + public Result edit(@Validated @RequestBody CoupletTroubleCode troubleUpdReq) { + return toAjax(troubleService.updateById(troubleUpdReq)); + } + + /** + * 删除故障码数据 + */ + @Log(title = "删除故障码",businessType = BusinessType.DELETE) + @GetMapping("/remove/{troubleId}") + public Result remove(@PathVariable Integer troubleId) { + troubleService.removeById(troubleId); + return success(); + } +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleCode.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleCode.java new file mode 100644 index 0000000..22e5fc5 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleCode.java @@ -0,0 +1,63 @@ +package com.couplet.trouble.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.couplet.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 21:49 + * @description + */ +//@Getter +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class CoupletTroubleCode { + /** + * 主键id + */ + @TableId(value = "trouble_id",type = IdType.AUTO) + @Excel(name = "故障码主键", cellType = Excel.ColumnType.NUMERIC) + private Integer troubleId; + + /** + * 故障码 + */ + @Excel(name = "故障码") + private String troubleCode; + + /** + * 故障位 + */ + @Excel(name = "故障位") + private String troublePosition; + + /** + * 故障值 + */ + @Excel(name = "故障值") + private String troubleValue; + + /** + * 故障标签 + */ + @Excel(name = "故障标签") + private String troubleTag; + + /** + * 故障类型Id + */ + @Excel(name = "故障类型Id") + private Integer typeId; + + /** + * 故障等级Id + */ + @Excel(name = "故障等级Id") + private Integer gradeId; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleGrade.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleGrade.java new file mode 100644 index 0000000..a4eef19 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleGrade.java @@ -0,0 +1,15 @@ +package com.couplet.trouble.domain; + +import lombok.Data; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 21:49 + * @description + */ +@Data +public class CoupletTroubleGrade { + private Integer gradeId; + private String gradeName; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleType.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleType.java new file mode 100644 index 0000000..aedb004 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/CoupletTroubleType.java @@ -0,0 +1,15 @@ +package com.couplet.trouble.domain; + +import lombok.Data; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 21:50 + * @description + */ +@Data +public class CoupletTroubleType { + private Integer typeId; + private String typeName; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleAddReq.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleAddReq.java new file mode 100644 index 0000000..76a509c --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleAddReq.java @@ -0,0 +1,52 @@ +package com.couplet.trouble.domain.req; + +import com.couplet.common.core.annotation.Excel; +import com.couplet.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:32 + * @description + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TroubleAddReq { + /** + * 故障码 + */ + @Excel(name = "故障码") + private String troubleCode; + + /** + * 故障位 + */ + @Excel(name = "故障位") + private String troublePosition; + + /** + * 故障值 + */ + @Excel(name = "故障值") + private String troubleValue; + + /** + * 故障标签 + */ + @Excel(name = "故障标签") + private String troubleTag; + + /** + * 故障类型Id + */ + private Integer troubleTypeId; + + /** + * 故障等级Id + */ + private Integer troubleGradeId; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleUpdReq.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleUpdReq.java new file mode 100644 index 0000000..7f777e2 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/req/TroubleUpdReq.java @@ -0,0 +1,60 @@ +package com.couplet.trouble.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.couplet.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:32 + * @description + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class TroubleUpdReq { + /** + * 主键id + */ + @Excel(name = "故障码主键", cellType = Excel.ColumnType.NUMERIC) + @TableId(value = "trouble_id",type = IdType.AUTO) + private Integer troubleId; + + /** + * 故障码 + */ + @Excel(name = "故障码") + private String troubleCode; + + /** + * 故障位 + */ + @Excel(name = "故障位") + private String troublePosition; + + /** + * 故障值 + */ + @Excel(name = "故障值") + private String troubleValue; + + /** + * 故障标签 + */ + @Excel(name = "故障标签") + private String troubleTag; + + /** + * 故障类型Id + */ + private Integer troubleTypeId; + + /** + * 故障等级Id + */ + private Integer troubleGradeId; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/resp/TroubleResp.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/resp/TroubleResp.java new file mode 100644 index 0000000..5394d62 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/domain/resp/TroubleResp.java @@ -0,0 +1,26 @@ +package com.couplet.trouble.domain.resp; + +import com.couplet.trouble.domain.CoupletTroubleCode; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/30 19:22 + * @description + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class TroubleResp extends CoupletTroubleCode implements Serializable { + private Integer pageNum=1; + private Integer pageSize=5; + private String troubleCode; + private String troublePosition; +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/mapper/SysTroubleMapper.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/mapper/SysTroubleMapper.java new file mode 100644 index 0000000..e447574 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/mapper/SysTroubleMapper.java @@ -0,0 +1,29 @@ +package com.couplet.trouble.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.couplet.trouble.domain.CoupletTroubleCode; +import com.couplet.trouble.domain.CoupletTroubleGrade; +import com.couplet.trouble.domain.CoupletTroubleType; +import com.couplet.trouble.domain.resp.TroubleResp; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:37 + * @description + */ +@Mapper +public interface SysTroubleMapper extends BaseMapper { + List selectTroubleList(TroubleResp troubleReq); + + List selectTroubleListByType(); + + List selectTroubleListByGrade(); + +// int addTrouble(TroubleAddReq troubleAddReq); + +// int updateTrouble(TroubleUpdReq troubleUpdReq); +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/SysTroubleService.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/SysTroubleService.java new file mode 100644 index 0000000..abf803f --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/SysTroubleService.java @@ -0,0 +1,28 @@ +package com.couplet.trouble.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.couplet.common.core.domain.PageResult; +import com.couplet.trouble.domain.CoupletTroubleCode; +import com.couplet.trouble.domain.CoupletTroubleGrade; +import com.couplet.trouble.domain.CoupletTroubleType; +import com.couplet.trouble.domain.resp.TroubleResp; + +import java.util.List; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:38 + * @description + */ +public interface SysTroubleService extends IService { + PageResult selectTroubleList(TroubleResp troubleReq); + + List selectTroubleListByType(); + + List selectTroubleListByGrade(); + +// int addTrouble (TroubleAddReq troubleAddReq); + +// int updateTrouble(TroubleUpdReq troubleUpdReq); +} diff --git a/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/impl/SysTroubleServiceImpl.java b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/impl/SysTroubleServiceImpl.java new file mode 100644 index 0000000..5fc5d79 --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/java/com/couplet/trouble/service/impl/SysTroubleServiceImpl.java @@ -0,0 +1,74 @@ +package com.couplet.trouble.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.couplet.common.core.domain.PageResult; +import com.couplet.trouble.domain.CoupletTroubleCode; +import com.couplet.trouble.domain.CoupletTroubleGrade; +import com.couplet.trouble.domain.CoupletTroubleType; +import com.couplet.trouble.domain.resp.TroubleResp; +import com.couplet.trouble.mapper.SysTroubleMapper; +import com.couplet.trouble.service.SysTroubleService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/3/26 22:38 + * @description + */ +@Service +public class SysTroubleServiceImpl extends ServiceImpl implements SysTroubleService{ + + @Autowired + private SysTroubleMapper sysTroubleMapper; + + /** + * 查询故障码列表 + * @param troubleReq + * @return + */ + @Override + public PageResult selectTroubleList(TroubleResp troubleReq) { + PageHelper.startPage(troubleReq.getPageNum(), troubleReq.getPageSize()); + List troubleList = sysTroubleMapper.selectTroubleList(troubleReq); + PageInfo info = new PageInfo<>(troubleList); + return PageResult.toPageResult(info.getTotal(),troubleList); + } + + @Override + public List selectTroubleListByType() { + return sysTroubleMapper.selectTroubleListByType(); + } + + @Override + public List selectTroubleListByGrade() { + return sysTroubleMapper.selectTroubleListByGrade(); + } + + /** + * 新增故障码数据 +// * @param troubleAddReq + * @return + */ +// @Override +// public int addTrouble(TroubleAddReq troubleAddReq) { +// return sysTroubleMapper.addTrouble(troubleAddReq); +// } +// +// /** +// * 修改故障码数据 +// * @param troubleUpdReq +// * @return +// */ +// @Override +// public int updateTrouble(TroubleUpdReq troubleUpdReq) { +// return sysTroubleMapper.updateTrouble(troubleUpdReq); +// } + + +} diff --git a/couplet-modules/couplet-trouble/src/main/resources/bootstrap.yml b/couplet-modules/couplet-trouble/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..8dc0fff --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/resources/bootstrap.yml @@ -0,0 +1,35 @@ +# Tomcat +server: + port: 9222 + +# Spring +spring: + application: + # 应用名称 + name: couplet-trouble + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + config: + # 配置中心地址 + server-addr: 121.89.211.230:8848 + namespace: 172469 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true +logging: + level: + com.couplet.trouble.mapper: DEBUG +mybatis-plus: + configuration: + map-underscore-to-camel-case: true diff --git a/couplet-modules/couplet-trouble/src/main/resources/mapper/trouble/SysTroubleMapper.xml b/couplet-modules/couplet-trouble/src/main/resources/mapper/trouble/SysTroubleMapper.xml new file mode 100644 index 0000000..3f5189f --- /dev/null +++ b/couplet-modules/couplet-trouble/src/main/resources/mapper/trouble/SysTroubleMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + select t.*,g.grade_name,y.type_name from couplet_trouble_code t + LEFT JOIN couplet_trouble_grade g on t.grade_id = g.grade_id + LEFT JOIN couplet_trouble_type y on t.type_id= y.type_id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/couplet-modules/pom.xml b/couplet-modules/pom.xml index 7e6ddf2..2ef9b94 100644 --- a/couplet-modules/pom.xml +++ b/couplet-modules/pom.xml @@ -13,7 +13,12 @@ couplet-gen couplet-job couplet-file + couplet-trouble + couplet-electronic-fence + couplet-modules-vehicle + couplet-modules-mq couplet-enterprisemanagement + couplet-msg couplet-modules diff --git a/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml b/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml index d08106c..d1064dc 100644 --- a/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml +++ b/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml @@ -15,13 +15,13 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + allow-bean-definition-overriding: true diff --git a/pom.xml b/pom.xml index 2e596a9..5cbe281 100644 --- a/pom.xml +++ b/pom.xml @@ -206,6 +206,32 @@ ${couplet.version} + + com.couplet + couplet-modules-system + ${couplet.version} + + + com.couplet + couplet-trouble + ${couplet.version} + + + com.couplet + couplet-electronic-fence-server + ${couplet.version} + + + com.couplet + couplet-electronic-fence-common + ${couplet.version} + + + com.couplet + couplet-electronic-fence-remote + ${couplet.version} + + com.couplet @@ -220,6 +246,20 @@ ${couplet.version} + + + com.couplet + couplet-modules-vehicle + ${couplet.version} + + + + + com.couplet + couplet-modules-mq + ${couplet.version} + + diff --git a/sql/quartz.sql b/sql/quartz.sql deleted file mode 100644 index cee613b..0000000 --- a/sql/quartz.sql +++ /dev/null @@ -1,174 +0,0 @@ -DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; -DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; -DROP TABLE IF EXISTS QRTZ_LOCKS; -DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; -DROP TABLE IF EXISTS QRTZ_CALENDARS; - --- ---------------------------- --- 1、存储每一个已配置的 jobDetail 的详细信息 --- ---------------------------- -create table QRTZ_JOB_DETAILS ( - sched_name varchar(120) not null comment '调度名称', - job_name varchar(200) not null comment '任务名称', - job_group varchar(200) not null comment '任务组名', - description varchar(250) null comment '相关介绍', - job_class_name varchar(250) not null comment '执行任务类名称', - is_durable varchar(1) not null comment '是否持久化', - is_nonconcurrent varchar(1) not null comment '是否并发', - is_update_data varchar(1) not null comment '是否更新数据', - requests_recovery varchar(1) not null comment '是否接受恢复执行', - job_data blob null comment '存放持久化job对象', - primary key (sched_name, job_name, job_group) -) engine=innodb comment = '任务详细信息表'; - --- ---------------------------- --- 2、 存储已配置的 Trigger 的信息 --- ---------------------------- -create table QRTZ_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - trigger_name varchar(200) not null comment '触发器的名字', - trigger_group varchar(200) not null comment '触发器所属组的名字', - job_name varchar(200) not null comment 'qrtz_job_details表job_name的外键', - job_group varchar(200) not null comment 'qrtz_job_details表job_group的外键', - description varchar(250) null comment '相关介绍', - next_fire_time bigint(13) null comment '上一次触发时间(毫秒)', - prev_fire_time bigint(13) null comment '下一次触发时间(默认为-1表示不触发)', - priority integer null comment '优先级', - trigger_state varchar(16) not null comment '触发器状态', - trigger_type varchar(8) not null comment '触发器的类型', - start_time bigint(13) not null comment '开始时间', - end_time bigint(13) null comment '结束时间', - calendar_name varchar(200) null comment '日程表名称', - misfire_instr smallint(2) null comment '补偿执行的策略', - job_data blob null comment '存放持久化job对象', - primary key (sched_name, trigger_name, trigger_group), - foreign key (sched_name, job_name, job_group) references QRTZ_JOB_DETAILS(sched_name, job_name, job_group) -) engine=innodb comment = '触发器详细信息表'; - --- ---------------------------- --- 3、 存储简单的 Trigger,包括重复次数,间隔,以及已触发的次数 --- ---------------------------- -create table QRTZ_SIMPLE_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - trigger_name varchar(200) not null comment 'qrtz_triggers表trigger_name的外键', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - repeat_count bigint(7) not null comment '重复的次数统计', - repeat_interval bigint(12) not null comment '重复的间隔时间', - times_triggered bigint(10) not null comment '已经触发的次数', - primary key (sched_name, trigger_name, trigger_group), - foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group) -) engine=innodb comment = '简单触发器的信息表'; - --- ---------------------------- --- 4、 存储 Cron Trigger,包括 Cron 表达式和时区信息 --- ---------------------------- -create table QRTZ_CRON_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - trigger_name varchar(200) not null comment 'qrtz_triggers表trigger_name的外键', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - cron_expression varchar(200) not null comment 'cron表达式', - time_zone_id varchar(80) comment '时区', - primary key (sched_name, trigger_name, trigger_group), - foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group) -) engine=innodb comment = 'Cron类型的触发器表'; - --- ---------------------------- --- 5、 Trigger 作为 Blob 类型存储(用于 Quartz 用户用 JDBC 创建他们自己定制的 Trigger 类型,JobStore 并不知道如何存储实例的时候) --- ---------------------------- -create table QRTZ_BLOB_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - trigger_name varchar(200) not null comment 'qrtz_triggers表trigger_name的外键', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - blob_data blob null comment '存放持久化Trigger对象', - primary key (sched_name, trigger_name, trigger_group), - foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group) -) engine=innodb comment = 'Blob类型的触发器表'; - --- ---------------------------- --- 6、 以 Blob 类型存储存放日历信息, quartz可配置一个日历来指定一个时间范围 --- ---------------------------- -create table QRTZ_CALENDARS ( - sched_name varchar(120) not null comment '调度名称', - calendar_name varchar(200) not null comment '日历名称', - calendar blob not null comment '存放持久化calendar对象', - primary key (sched_name, calendar_name) -) engine=innodb comment = '日历信息表'; - --- ---------------------------- --- 7、 存储已暂停的 Trigger 组的信息 --- ---------------------------- -create table QRTZ_PAUSED_TRIGGER_GRPS ( - sched_name varchar(120) not null comment '调度名称', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - primary key (sched_name, trigger_group) -) engine=innodb comment = '暂停的触发器表'; - --- ---------------------------- --- 8、 存储与已触发的 Trigger 相关的状态信息,以及相联 Job 的执行信息 --- ---------------------------- -create table QRTZ_FIRED_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - entry_id varchar(95) not null comment '调度器实例id', - trigger_name varchar(200) not null comment 'qrtz_triggers表trigger_name的外键', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - instance_name varchar(200) not null comment '调度器实例名', - fired_time bigint(13) not null comment '触发的时间', - sched_time bigint(13) not null comment '定时器制定的时间', - priority integer not null comment '优先级', - state varchar(16) not null comment '状态', - job_name varchar(200) null comment '任务名称', - job_group varchar(200) null comment '任务组名', - is_nonconcurrent varchar(1) null comment '是否并发', - requests_recovery varchar(1) null comment '是否接受恢复执行', - primary key (sched_name, entry_id) -) engine=innodb comment = '已触发的触发器表'; - --- ---------------------------- --- 9、 存储少量的有关 Scheduler 的状态信息,假如是用于集群中,可以看到其他的 Scheduler 实例 --- ---------------------------- -create table QRTZ_SCHEDULER_STATE ( - sched_name varchar(120) not null comment '调度名称', - instance_name varchar(200) not null comment '实例名称', - last_checkin_time bigint(13) not null comment '上次检查时间', - checkin_interval bigint(13) not null comment '检查间隔时间', - primary key (sched_name, instance_name) -) engine=innodb comment = '调度器状态表'; - --- ---------------------------- --- 10、 存储程序的悲观锁的信息(假如使用了悲观锁) --- ---------------------------- -create table QRTZ_LOCKS ( - sched_name varchar(120) not null comment '调度名称', - lock_name varchar(40) not null comment '悲观锁名称', - primary key (sched_name, lock_name) -) engine=innodb comment = '存储的悲观锁信息表'; - --- ---------------------------- --- 11、 Quartz集群实现同步机制的行锁表 --- ---------------------------- -create table QRTZ_SIMPROP_TRIGGERS ( - sched_name varchar(120) not null comment '调度名称', - trigger_name varchar(200) not null comment 'qrtz_triggers表trigger_name的外键', - trigger_group varchar(200) not null comment 'qrtz_triggers表trigger_group的外键', - str_prop_1 varchar(512) null comment 'String类型的trigger的第一个参数', - str_prop_2 varchar(512) null comment 'String类型的trigger的第二个参数', - str_prop_3 varchar(512) null comment 'String类型的trigger的第三个参数', - int_prop_1 int null comment 'int类型的trigger的第一个参数', - int_prop_2 int null comment 'int类型的trigger的第二个参数', - long_prop_1 bigint null comment 'long类型的trigger的第一个参数', - long_prop_2 bigint null comment 'long类型的trigger的第二个参数', - dec_prop_1 numeric(13,4) null comment 'decimal类型的trigger的第一个参数', - dec_prop_2 numeric(13,4) null comment 'decimal类型的trigger的第二个参数', - bool_prop_1 varchar(1) null comment 'Boolean类型的trigger的第一个参数', - bool_prop_2 varchar(1) null comment 'Boolean类型的trigger的第二个参数', - primary key (sched_name, trigger_name, trigger_group), - foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group) -) engine=innodb comment = '同步机制的行锁表'; - -commit; \ No newline at end of file diff --git a/sql/ry_20230706.sql b/sql/ry_20230706.sql deleted file mode 100644 index f314293..0000000 --- a/sql/ry_20230706.sql +++ /dev/null @@ -1,695 +0,0 @@ -SET NAMES utf8mb4; - --- ---------------------------- --- 1、部门表 --- ---------------------------- -drop table if exists sys_dept; -create table sys_dept ( - dept_id bigint(20) not null auto_increment comment '部门id', - parent_id bigint(20) default 0 comment '父部门id', - ancestors varchar(50) default '' comment '祖级列表', - dept_name varchar(30) default '' comment '部门名称', - order_num int(4) default 0 comment '显示顺序', - leader varchar(20) default null comment '负责人', - phone varchar(11) default null comment '联系电话', - email varchar(50) default null comment '邮箱', - status char(1) default '0' comment '部门状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - primary key (dept_id) -) engine=innodb auto_increment=200 comment = '部门表'; - --- ---------------------------- --- 初始化-部门表数据 --- ---------------------------- -insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); -insert into sys_dept values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null); - - --- ---------------------------- --- 2、用户信息表 --- ---------------------------- -drop table if exists sys_user; -create table sys_user ( - user_id bigint(20) not null auto_increment comment '用户ID', - dept_id bigint(20) default null comment '部门ID', - user_name varchar(30) not null comment '用户账号', - nick_name varchar(30) not null comment '用户昵称', - user_type varchar(2) default '00' comment '用户类型(00系统用户)', - email varchar(50) default '' comment '用户邮箱', - phonenumber varchar(11) default '' comment '手机号码', - sex char(1) default '0' comment '用户性别(0男 1女 2未知)', - avatar varchar(100) default '' comment '头像地址', - password varchar(100) default '' comment '密码', - status char(1) default '0' comment '帐号状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - login_ip varchar(128) default '' comment '最后登录IP', - login_date datetime comment '最后登录时间', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (user_id) -) engine=innodb auto_increment=100 comment = '用户信息表'; - --- ---------------------------- --- 初始化-用户信息表数据 --- ---------------------------- -insert into sys_user values(1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '管理员'); -insert into sys_user values(2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '测试员'); - - --- ---------------------------- --- 3、岗位信息表 --- ---------------------------- -drop table if exists sys_post; -create table sys_post -( - post_id bigint(20) not null auto_increment comment '岗位ID', - post_code varchar(64) not null comment '岗位编码', - post_name varchar(50) not null comment '岗位名称', - post_sort int(4) not null comment '显示顺序', - status char(1) not null comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (post_id) -) engine=innodb comment = '岗位信息表'; - --- ---------------------------- --- 初始化-岗位信息表数据 --- ---------------------------- -insert into sys_post values(1, 'ceo', '董事长', 1, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(2, 'se', '项目经理', 2, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(3, 'hr', '人力资源', 3, '0', 'admin', sysdate(), '', null, ''); -insert into sys_post values(4, 'user', '普通员工', 4, '0', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 4、角色信息表 --- ---------------------------- -drop table if exists sys_role; -create table sys_role ( - role_id bigint(20) not null auto_increment comment '角色ID', - role_name varchar(30) not null comment '角色名称', - role_key varchar(100) not null comment '角色权限字符串', - role_sort int(4) not null comment '显示顺序', - data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', - menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示', - dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示', - status char(1) not null comment '角色状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (role_id) -) engine=innodb auto_increment=100 comment = '角色信息表'; - --- ---------------------------- --- 初始化-角色信息表数据 --- ---------------------------- -insert into sys_role values('1', '超级管理员', 'admin', 1, 1, 1, 1, '0', '0', 'admin', sysdate(), '', null, '超级管理员'); -insert into sys_role values('2', '普通角色', 'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate(), '', null, '普通角色'); - - --- ---------------------------- --- 5、菜单权限表 --- ---------------------------- -drop table if exists sys_menu; -create table sys_menu ( - menu_id bigint(20) not null auto_increment comment '菜单ID', - menu_name varchar(50) not null comment '菜单名称', - parent_id bigint(20) default 0 comment '父菜单ID', - order_num int(4) default 0 comment '显示顺序', - path varchar(200) default '' comment '路由地址', - component varchar(255) default null comment '组件路径', - query varchar(255) default null comment '路由参数', - is_frame int(1) default 1 comment '是否为外链(0是 1否)', - is_cache int(1) default 0 comment '是否缓存(0缓存 1不缓存)', - menu_type char(1) default '' comment '菜单类型(M目录 C菜单 F按钮)', - visible char(1) default 0 comment '菜单状态(0显示 1隐藏)', - status char(1) default 0 comment '菜单状态(0正常 1停用)', - perms varchar(100) default null comment '权限标识', - icon varchar(100) default '#' comment '菜单图标', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default '' comment '备注', - primary key (menu_id) -) engine=innodb auto_increment=2000 comment = '菜单权限表'; - --- ---------------------------- --- 初始化-菜单信息表数据 --- ---------------------------- --- 一级菜单 -insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate(), '', null, '系统管理目录'); -insert into sys_menu values('2', '系统监控', '0', '2', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', null, '系统监控目录'); -insert into sys_menu values('3', '系统工具', '0', '3', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', null, '系统工具目录'); -insert into sys_menu values('4', '若依官网', '0', '4', 'http://couplet.vip', null, '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址'); --- 二级菜单 -insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate(), '', null, '用户管理菜单'); -insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate(), '', null, '角色管理菜单'); -insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', sysdate(), '', null, '菜单管理菜单'); -insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', sysdate(), '', null, '部门管理菜单'); -insert into sys_menu values('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', sysdate(), '', null, '岗位管理菜单'); -insert into sys_menu values('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', sysdate(), '', null, '字典管理菜单'); -insert into sys_menu values('106', '参数设置', '1', '7', 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', sysdate(), '', null, '参数设置菜单'); -insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate(), '', null, '通知公告菜单'); -insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单'); -insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单'); -insert into sys_menu values('110', '定时任务', '2', '2', 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单'); -insert into sys_menu values('111', 'Sentinel控制台', '2', '3', 'http://localhost:8718', '', '', 0, 0, 'C', '0', '0', 'monitor:sentinel:list', 'sentinel', 'admin', sysdate(), '', null, '流量控制菜单'); -insert into sys_menu values('112', 'Nacos控制台', '2', '4', 'http://localhost:8848/nacos', '', '', 0, 0, 'C', '0', '0', 'monitor:nacos:list', 'nacos', 'admin', sysdate(), '', null, '服务治理菜单'); -insert into sys_menu values('113', 'Admin控制台', '2', '5', 'http://localhost:9100/login', '', '', 0, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单'); -insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单'); -insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单'); -insert into sys_menu values('116', '系统接口', '3', '3', 'http://localhost:8080/swagger-ui/index.html', '', '', 0, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单'); --- 三级菜单 -insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'system/operlog/index', '', 1, 0, 'C', '0', '0', 'system:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单'); -insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'system/logininfor/index', '', 1, 0, 'C', '0', '0', 'system:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单'); --- 用户管理按钮 -insert into sys_menu values('1000', '用户查询', '100', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1001', '用户新增', '100', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1002', '用户修改', '100', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1003', '用户删除', '100', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1004', '用户导出', '100', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1005', '用户导入', '100', '6', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1006', '重置密码', '100', '7', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', sysdate(), '', null, ''); --- 角色管理按钮 -insert into sys_menu values('1007', '角色查询', '101', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1008', '角色新增', '101', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1009', '角色修改', '101', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1010', '角色删除', '101', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1011', '角色导出', '101', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', sysdate(), '', null, ''); --- 菜单管理按钮 -insert into sys_menu values('1012', '菜单查询', '102', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1013', '菜单新增', '102', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1014', '菜单修改', '102', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1015', '菜单删除', '102', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', sysdate(), '', null, ''); --- 部门管理按钮 -insert into sys_menu values('1016', '部门查询', '103', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1017', '部门新增', '103', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1018', '部门修改', '103', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1019', '部门删除', '103', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', sysdate(), '', null, ''); --- 岗位管理按钮 -insert into sys_menu values('1020', '岗位查询', '104', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1021', '岗位新增', '104', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1022', '岗位修改', '104', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1023', '岗位删除', '104', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1024', '岗位导出', '104', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', sysdate(), '', null, ''); --- 字典管理按钮 -insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', sysdate(), '', null, ''); --- 参数设置按钮 -insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', sysdate(), '', null, ''); --- 通知公告按钮 -insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', sysdate(), '', null, ''); --- 操作日志按钮 -insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:operlog:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:operlog:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1041', '日志导出', '500', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:operlog:export', '#', 'admin', sysdate(), '', null, ''); --- 登录日志按钮 -insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:logininfor:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:logininfor:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:logininfor:export', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1045', '账户解锁', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:logininfor:unlock', '#', 'admin', sysdate(), '', null, ''); --- 在线用户按钮 -insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, ''); --- 定时任务按钮 -insert into sys_menu values('1049', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1050', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1051', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1052', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1053', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1054', '任务导出', '110', '6', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, ''); --- 代码生成按钮 -insert into sys_menu values('1055', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1056', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1057', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1058', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1059', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, ''); -insert into sys_menu values('1060', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 6、用户和角色关联表 用户N-1角色 --- ---------------------------- -drop table if exists sys_user_role; -create table sys_user_role ( - user_id bigint(20) not null comment '用户ID', - role_id bigint(20) not null comment '角色ID', - primary key(user_id, role_id) -) engine=innodb comment = '用户和角色关联表'; - --- ---------------------------- --- 初始化-用户和角色关联表数据 --- ---------------------------- -insert into sys_user_role values ('1', '1'); -insert into sys_user_role values ('2', '2'); - - --- ---------------------------- --- 7、角色和菜单关联表 角色1-N菜单 --- ---------------------------- -drop table if exists sys_role_menu; -create table sys_role_menu ( - role_id bigint(20) not null comment '角色ID', - menu_id bigint(20) not null comment '菜单ID', - primary key(role_id, menu_id) -) engine=innodb comment = '角色和菜单关联表'; - --- ---------------------------- --- 初始化-角色和菜单关联表数据 --- ---------------------------- -insert into sys_role_menu values ('2', '1'); -insert into sys_role_menu values ('2', '2'); -insert into sys_role_menu values ('2', '3'); -insert into sys_role_menu values ('2', '4'); -insert into sys_role_menu values ('2', '100'); -insert into sys_role_menu values ('2', '101'); -insert into sys_role_menu values ('2', '102'); -insert into sys_role_menu values ('2', '103'); -insert into sys_role_menu values ('2', '104'); -insert into sys_role_menu values ('2', '105'); -insert into sys_role_menu values ('2', '106'); -insert into sys_role_menu values ('2', '107'); -insert into sys_role_menu values ('2', '108'); -insert into sys_role_menu values ('2', '109'); -insert into sys_role_menu values ('2', '110'); -insert into sys_role_menu values ('2', '111'); -insert into sys_role_menu values ('2', '112'); -insert into sys_role_menu values ('2', '113'); -insert into sys_role_menu values ('2', '114'); -insert into sys_role_menu values ('2', '115'); -insert into sys_role_menu values ('2', '116'); -insert into sys_role_menu values ('2', '500'); -insert into sys_role_menu values ('2', '501'); -insert into sys_role_menu values ('2', '1000'); -insert into sys_role_menu values ('2', '1001'); -insert into sys_role_menu values ('2', '1002'); -insert into sys_role_menu values ('2', '1003'); -insert into sys_role_menu values ('2', '1004'); -insert into sys_role_menu values ('2', '1005'); -insert into sys_role_menu values ('2', '1006'); -insert into sys_role_menu values ('2', '1007'); -insert into sys_role_menu values ('2', '1008'); -insert into sys_role_menu values ('2', '1009'); -insert into sys_role_menu values ('2', '1010'); -insert into sys_role_menu values ('2', '1011'); -insert into sys_role_menu values ('2', '1012'); -insert into sys_role_menu values ('2', '1013'); -insert into sys_role_menu values ('2', '1014'); -insert into sys_role_menu values ('2', '1015'); -insert into sys_role_menu values ('2', '1016'); -insert into sys_role_menu values ('2', '1017'); -insert into sys_role_menu values ('2', '1018'); -insert into sys_role_menu values ('2', '1019'); -insert into sys_role_menu values ('2', '1020'); -insert into sys_role_menu values ('2', '1021'); -insert into sys_role_menu values ('2', '1022'); -insert into sys_role_menu values ('2', '1023'); -insert into sys_role_menu values ('2', '1024'); -insert into sys_role_menu values ('2', '1025'); -insert into sys_role_menu values ('2', '1026'); -insert into sys_role_menu values ('2', '1027'); -insert into sys_role_menu values ('2', '1028'); -insert into sys_role_menu values ('2', '1029'); -insert into sys_role_menu values ('2', '1030'); -insert into sys_role_menu values ('2', '1031'); -insert into sys_role_menu values ('2', '1032'); -insert into sys_role_menu values ('2', '1033'); -insert into sys_role_menu values ('2', '1034'); -insert into sys_role_menu values ('2', '1035'); -insert into sys_role_menu values ('2', '1036'); -insert into sys_role_menu values ('2', '1037'); -insert into sys_role_menu values ('2', '1038'); -insert into sys_role_menu values ('2', '1039'); -insert into sys_role_menu values ('2', '1040'); -insert into sys_role_menu values ('2', '1041'); -insert into sys_role_menu values ('2', '1042'); -insert into sys_role_menu values ('2', '1043'); -insert into sys_role_menu values ('2', '1044'); -insert into sys_role_menu values ('2', '1045'); -insert into sys_role_menu values ('2', '1046'); -insert into sys_role_menu values ('2', '1047'); -insert into sys_role_menu values ('2', '1048'); -insert into sys_role_menu values ('2', '1049'); -insert into sys_role_menu values ('2', '1050'); -insert into sys_role_menu values ('2', '1051'); -insert into sys_role_menu values ('2', '1052'); -insert into sys_role_menu values ('2', '1053'); -insert into sys_role_menu values ('2', '1054'); -insert into sys_role_menu values ('2', '1055'); -insert into sys_role_menu values ('2', '1056'); -insert into sys_role_menu values ('2', '1057'); -insert into sys_role_menu values ('2', '1058'); -insert into sys_role_menu values ('2', '1059'); -insert into sys_role_menu values ('2', '1060'); - --- ---------------------------- --- 8、角色和部门关联表 角色1-N部门 --- ---------------------------- -drop table if exists sys_role_dept; -create table sys_role_dept ( - role_id bigint(20) not null comment '角色ID', - dept_id bigint(20) not null comment '部门ID', - primary key(role_id, dept_id) -) engine=innodb comment = '角色和部门关联表'; - --- ---------------------------- --- 初始化-角色和部门关联表数据 --- ---------------------------- -insert into sys_role_dept values ('2', '100'); -insert into sys_role_dept values ('2', '101'); -insert into sys_role_dept values ('2', '105'); - - --- ---------------------------- --- 9、用户与岗位关联表 用户1-N岗位 --- ---------------------------- -drop table if exists sys_user_post; -create table sys_user_post -( - user_id bigint(20) not null comment '用户ID', - post_id bigint(20) not null comment '岗位ID', - primary key (user_id, post_id) -) engine=innodb comment = '用户与岗位关联表'; - --- ---------------------------- --- 初始化-用户与岗位关联表数据 --- ---------------------------- -insert into sys_user_post values ('1', '1'); -insert into sys_user_post values ('2', '2'); - - --- ---------------------------- --- 10、操作日志记录 --- ---------------------------- -drop table if exists sys_oper_log; -create table sys_oper_log ( - oper_id bigint(20) not null auto_increment comment '日志主键', - title varchar(50) default '' comment '模块标题', - business_type int(2) default 0 comment '业务类型(0其它 1新增 2修改 3删除)', - method varchar(100) default '' comment '方法名称', - request_method varchar(10) default '' comment '请求方式', - operator_type int(1) default 0 comment '操作类别(0其它 1后台用户 2手机端用户)', - oper_name varchar(50) default '' comment '操作人员', - dept_name varchar(50) default '' comment '部门名称', - oper_url varchar(255) default '' comment '请求URL', - oper_ip varchar(128) default '' comment '主机地址', - oper_location varchar(255) default '' comment '操作地点', - oper_param varchar(2000) default '' comment '请求参数', - json_result varchar(2000) default '' comment '返回参数', - status int(1) default 0 comment '操作状态(0正常 1异常)', - error_msg varchar(2000) default '' comment '错误消息', - oper_time datetime comment '操作时间', - cost_time bigint(20) default 0 comment '消耗时间', - primary key (oper_id), - key idx_sys_oper_log_bt (business_type), - key idx_sys_oper_log_s (status), - key idx_sys_oper_log_ot (oper_time) -) engine=innodb auto_increment=100 comment = '操作日志记录'; - - --- ---------------------------- --- 11、字典类型表 --- ---------------------------- -drop table if exists sys_dict_type; -create table sys_dict_type -( - dict_id bigint(20) not null auto_increment comment '字典主键', - dict_name varchar(100) default '' comment '字典名称', - dict_type varchar(100) default '' comment '字典类型', - status char(1) default '0' comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (dict_id), - unique (dict_type) -) engine=innodb auto_increment=100 comment = '字典类型表'; - -insert into sys_dict_type values(1, '用户性别', 'sys_user_sex', '0', 'admin', sysdate(), '', null, '用户性别列表'); -insert into sys_dict_type values(2, '菜单状态', 'sys_show_hide', '0', 'admin', sysdate(), '', null, '菜单状态列表'); -insert into sys_dict_type values(3, '系统开关', 'sys_normal_disable', '0', 'admin', sysdate(), '', null, '系统开关列表'); -insert into sys_dict_type values(4, '任务状态', 'sys_job_status', '0', 'admin', sysdate(), '', null, '任务状态列表'); -insert into sys_dict_type values(5, '任务分组', 'sys_job_group', '0', 'admin', sysdate(), '', null, '任务分组列表'); -insert into sys_dict_type values(6, '系统是否', 'sys_yes_no', '0', 'admin', sysdate(), '', null, '系统是否列表'); -insert into sys_dict_type values(7, '通知类型', 'sys_notice_type', '0', 'admin', sysdate(), '', null, '通知类型列表'); -insert into sys_dict_type values(8, '通知状态', 'sys_notice_status', '0', 'admin', sysdate(), '', null, '通知状态列表'); -insert into sys_dict_type values(9, '操作类型', 'sys_oper_type', '0', 'admin', sysdate(), '', null, '操作类型列表'); -insert into sys_dict_type values(10, '系统状态', 'sys_common_status', '0', 'admin', sysdate(), '', null, '登录状态列表'); - - --- ---------------------------- --- 12、字典数据表 --- ---------------------------- -drop table if exists sys_dict_data; -create table sys_dict_data -( - dict_code bigint(20) not null auto_increment comment '字典编码', - dict_sort int(4) default 0 comment '字典排序', - dict_label varchar(100) default '' comment '字典标签', - dict_value varchar(100) default '' comment '字典键值', - dict_type varchar(100) default '' comment '字典类型', - css_class varchar(100) default null comment '样式属性(其他样式扩展)', - list_class varchar(100) default null comment '表格回显样式', - is_default char(1) default 'N' comment '是否默认(Y是 N否)', - status char(1) default '0' comment '状态(0正常 1停用)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (dict_code) -) engine=innodb auto_increment=100 comment = '字典数据表'; - -insert into sys_dict_data values(1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男'); -insert into sys_dict_data values(2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别女'); -insert into sys_dict_data values(3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别未知'); -insert into sys_dict_data values(4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单'); -insert into sys_dict_data values(5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '隐藏菜单'); -insert into sys_dict_data values(6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); -insert into sys_dict_data values(8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); -insert into sys_dict_data values(10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', sysdate(), '', null, '默认分组'); -insert into sys_dict_data values(11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', sysdate(), '', null, '系统分组'); -insert into sys_dict_data values(12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是'); -insert into sys_dict_data values(13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '系统默认否'); -insert into sys_dict_data values(14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知'); -insert into sys_dict_data values(15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate(), '', null, '公告'); -insert into sys_dict_data values(16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '关闭状态'); -insert into sys_dict_data values(18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '其他操作'); -insert into sys_dict_data values(19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '新增操作'); -insert into sys_dict_data values(20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '修改操作'); -insert into sys_dict_data values(21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '删除操作'); -insert into sys_dict_data values(22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作'); -insert into sys_dict_data values(23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作'); -insert into sys_dict_data values(24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作'); -insert into sys_dict_data values(25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '强退操作'); -insert into sys_dict_data values(26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作'); -insert into sys_dict_data values(27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '清空操作'); -insert into sys_dict_data values(28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态'); -insert into sys_dict_data values(29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态'); - - --- ---------------------------- --- 13、参数配置表 --- ---------------------------- -drop table if exists sys_config; -create table sys_config ( - config_id int(5) not null auto_increment comment '参数主键', - config_name varchar(100) default '' comment '参数名称', - config_key varchar(100) default '' comment '参数键名', - config_value varchar(500) default '' comment '参数键值', - config_type char(1) default 'N' comment '系统内置(Y是 N否)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (config_id) -) engine=innodb auto_increment=100 comment = '参数配置表'; - -insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' ); -insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '初始化密码 123456' ); -insert into sys_config values(3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' ); -insert into sys_config values(4, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)'); -insert into sys_config values(5, '用户登录-黑名单列表', 'sys.login.blackIPList', '', 'Y', 'admin', sysdate(), '', null, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)'); - - --- ---------------------------- --- 14、系统访问记录 --- ---------------------------- -drop table if exists sys_logininfor; -create table sys_logininfor ( - info_id bigint(20) not null auto_increment comment '访问ID', - user_name varchar(50) default '' comment '用户账号', - ipaddr varchar(128) default '' comment '登录IP地址', - status char(1) default '0' comment '登录状态(0成功 1失败)', - msg varchar(255) default '' comment '提示信息', - access_time datetime comment '访问时间', - primary key (info_id), - key idx_sys_logininfor_s (status), - key idx_sys_logininfor_lt (access_time) -) engine=innodb auto_increment=100 comment = '系统访问记录'; - - --- ---------------------------- --- 15、定时任务调度表 --- ---------------------------- -drop table if exists sys_job; -create table sys_job ( - job_id bigint(20) not null auto_increment comment '任务ID', - job_name varchar(64) default '' comment '任务名称', - job_group varchar(64) default 'DEFAULT' comment '任务组名', - invoke_target varchar(500) not null comment '调用目标字符串', - cron_expression varchar(255) default '' comment 'cron执行表达式', - misfire_policy varchar(20) default '3' comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', - concurrent char(1) default '1' comment '是否并发执行(0允许 1禁止)', - status char(1) default '0' comment '状态(0正常 1暂停)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default '' comment '备注信息', - primary key (job_id, job_name, job_group) -) engine=innodb auto_increment=100 comment = '定时任务调度表'; - -insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'myTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); -insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'myTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); -insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'myTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, ''); - - --- ---------------------------- --- 16、定时任务调度日志表 --- ---------------------------- -drop table if exists sys_job_log; -create table sys_job_log ( - job_log_id bigint(20) not null auto_increment comment '任务日志ID', - job_name varchar(64) not null comment '任务名称', - job_group varchar(64) not null comment '任务组名', - invoke_target varchar(500) not null comment '调用目标字符串', - job_message varchar(500) comment '日志信息', - status char(1) default '0' comment '执行状态(0正常 1失败)', - exception_info varchar(2000) default '' comment '异常信息', - create_time datetime comment '创建时间', - primary key (job_log_id) -) engine=innodb comment = '定时任务调度日志表'; - - --- ---------------------------- --- 17、通知公告表 --- ---------------------------- -drop table if exists sys_notice; -create table sys_notice ( - notice_id int(4) not null auto_increment comment '公告ID', - notice_title varchar(50) not null comment '公告标题', - notice_type char(1) not null comment '公告类型(1通知 2公告)', - notice_content longblob default null comment '公告内容', - status char(1) default '0' comment '公告状态(0正常 1关闭)', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(255) default null comment '备注', - primary key (notice_id) -) engine=innodb auto_increment=10 comment = '通知公告表'; - --- ---------------------------- --- 初始化-公告信息表数据 --- ---------------------------- -insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员'); -insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容', '0', 'admin', sysdate(), '', null, '管理员'); - - --- ---------------------------- --- 18、代码生成业务表 --- ---------------------------- -drop table if exists gen_table; -create table gen_table ( - table_id bigint(20) not null auto_increment comment '编号', - table_name varchar(200) default '' comment '表名称', - table_comment varchar(500) default '' comment '表描述', - sub_table_name varchar(64) default null comment '关联子表的表名', - sub_table_fk_name varchar(64) default null comment '子表关联的外键名', - class_name varchar(100) default '' comment '实体类名称', - tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)', - package_name varchar(100) comment '生成包路径', - module_name varchar(30) comment '生成模块名', - business_name varchar(30) comment '生成业务名', - function_name varchar(50) comment '生成功能名', - function_author varchar(50) comment '生成功能作者', - gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)', - gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)', - options varchar(1000) comment '其它生成选项', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - remark varchar(500) default null comment '备注', - primary key (table_id) -) engine=innodb auto_increment=1 comment = '代码生成业务表'; - - --- ---------------------------- --- 19、代码生成业务表字段 --- ---------------------------- -drop table if exists gen_table_column; -create table gen_table_column ( - column_id bigint(20) not null auto_increment comment '编号', - table_id bigint(20) comment '归属表编号', - column_name varchar(200) comment '列名称', - column_comment varchar(500) comment '列描述', - column_type varchar(100) comment '列类型', - java_type varchar(500) comment 'JAVA类型', - java_field varchar(200) comment 'JAVA字段名', - is_pk char(1) comment '是否主键(1是)', - is_increment char(1) comment '是否自增(1是)', - is_required char(1) comment '是否必填(1是)', - is_insert char(1) comment '是否为插入字段(1是)', - is_edit char(1) comment '是否编辑字段(1是)', - is_list char(1) comment '是否列表字段(1是)', - is_query char(1) comment '是否查询字段(1是)', - query_type varchar(200) default 'EQ' comment '查询方式(等于、不等于、大于、小于、范围)', - html_type varchar(200) comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', - dict_type varchar(200) default '' comment '字典类型', - sort int comment '排序', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - primary key (column_id) -) engine=innodb auto_increment=1 comment = '代码生成业务表字段'; diff --git a/sql/ry_config_20220929.sql b/sql/ry_config_20220929.sql deleted file mode 100644 index cd11a3d..0000000 --- a/sql/ry_config_20220929.sql +++ /dev/null @@ -1,219 +0,0 @@ -DROP DATABASE IF EXISTS `ry-config`; - -CREATE DATABASE `ry-config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - -USE `ry-config`; - -/******************************************/ -/* 表名称 = config_info */ -/******************************************/ -CREATE TABLE `config_info` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) NOT NULL COMMENT 'data_id', - `group_id` varchar(255) DEFAULT NULL, - `content` longtext NOT NULL COMMENT 'content', - `md5` varchar(32) DEFAULT NULL COMMENT 'md5', - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text COMMENT 'source user', - `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', - `app_name` varchar(128) DEFAULT NULL, - `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', - `c_desc` varchar(256) DEFAULT NULL, - `c_use` varchar(64) DEFAULT NULL, - `effect` varchar(64) DEFAULT NULL, - `type` varchar(64) DEFAULT NULL, - `c_schema` text, - `encrypted_data_key` text COMMENT '秘钥', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; - -insert into config_info(id, data_id, group_id, content, md5, gmt_create, gmt_modified, src_user, src_ip, app_name, tenant_id, c_desc, c_use, effect, type, c_schema, encrypted_data_key) values -(1,'application-dev.yml','DEFAULT_GROUP','spring:\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\n mvc:\n pathmatch:\n matching-strategy: ant_path_matcher\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n','aaa73b809cfd4d0058893aa13da57806','2020-05-20 12:00:00','2022-04-24 10:26:34','nacos','0:0:0:0:0:0:0:1','','','通用配置','null','null','yaml',NULL,''), -(2,'couplet-gateway-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: localhost\n port: 6379\n password:\n cloud:\n gateway:\n discovery:\n locator:\n lowerCaseServiceId: true\n enabled: true\n routes:\n # 认证中心\n - id: couplet-auth\n uri: lb://couplet-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - CacheRequestFilter\n - ValidateCodeFilter\n - StripPrefix=1\n # 代码生成\n - id: couplet-gen\n uri: lb://couplet-gen\n predicates:\n - Path=/code/**\n filters:\n - StripPrefix=1\n # 定时任务\n - id: couplet-job\n uri: lb://couplet-job\n predicates:\n - Path=/schedule/**\n filters:\n - StripPrefix=1\n # 系统模块\n - id: couplet-system\n uri: lb://couplet-system\n predicates:\n - Path=/system/**\n filters:\n - StripPrefix=1\n # 文件服务\n - id: couplet-file\n uri: lb://couplet-file\n predicates:\n - Path=/file/**\n filters:\n - StripPrefix=1\n\n# 安全配置\nsecurity:\n # 验证码\n captcha:\n enabled: true\n type: math\n # 防止XSS攻击\n xss:\n enabled: true\n excludeUrls:\n - /system/notice\n # 不校验白名单\n ignore:\n whites:\n - /auth/logout\n - /auth/login\n - /auth/register\n - /*/v2/api-docs\n - /csrf\n','57cec5abd0e0a6b77d853750344a9dc0','2020-05-14 14:17:55','2022-09-29 02:48:32','nacos','0:0:0:0:0:0:0:1','','','网关模块','null','null','yaml','',''), -(3,'couplet-auth-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: localhost\n port: 6379\n password:\n','8bd9dada9a94822feeab40de55efced6','2020-11-20 00:00:00','2022-09-29 02:48:42','nacos','0:0:0:0:0:0:0:1','','','认证中心','null','null','yaml','',''), -(4,'couplet-monitor-dev.yml','DEFAULT_GROUP','# spring\nspring:\n security:\n user:\n name: couplet\n password: 123456\n boot:\n admin:\n ui:\n title: 若依服务状态监控\n','6f122fd2bfb8d45f858e7d6529a9cd44','2020-11-20 00:00:00','2022-09-29 02:48:54','nacos','0:0:0:0:0:0:0:1','','','监控中心','null','null','yaml','',''), -(5,'couplet-system-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n # 主库数据源\n master:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: root\n # 从库数据源\n # slave:\n # username: \n # password: \n # url: \n # driver-class-name: \n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.couplet.system\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 系统模块接口文档\n license: Powered By couplet\n licenseUrl: https://couplet.vip','48e0ed4a040c402bdc2444213a82c910','2020-11-20 00:00:00','2022-09-29 02:49:09','nacos','0:0:0:0:0:0:0:1','','','系统模块','null','null','yaml','',''), -(6,'couplet-gen-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password:\n datasource:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: root\n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.couplet.gen.domain\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 代码生成接口文档\n license: Powered By couplet\n licenseUrl: https://couplet.vip\n\n# 代码生成\ngen:\n # 作者\n author: couplet\n # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool\n packageName: com.couplet.system\n # 自动去除表前缀,默认是false\n autoRemovePre: false\n # 表前缀(生成类名不会包含表前缀,多个用逗号分隔)\n tablePrefix: sys_\n','eb592420b3fceae1402881887b8a6a0d','2020-11-20 00:00:00','2022-09-29 02:49:42','nacos','0:0:0:0:0:0:0:1','','','代码生成','null','null','yaml','',''), -(7,'couplet-job-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password: \n datasource:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: root\n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.couplet.job.domain\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 定时任务接口文档\n license: Powered By couplet\n licenseUrl: https://couplet.vip\n','edcf0e3fe13fea07b4ec08b1088f30b3','2020-11-20 00:00:00','2022-09-29 02:50:50','nacos','0:0:0:0:0:0:0:1','','','定时任务','null','null','yaml','',''), -(8,'couplet-file-dev.yml','DEFAULT_GROUP','# 本地文件上传 \r\nfile:\r\n domain: http://127.0.0.1:9300\r\n path: D:/couplet/uploadPath\r\n prefix: /statics\r\n\r\n# FastDFS配置\r\nfdfs:\r\n domain: http://8.129.231.12\r\n soTimeout: 3000\r\n connectTimeout: 2000\r\n trackerList: 8.129.231.12:22122\r\n\r\n# Minio配置\r\nminio:\r\n url: http://8.129.231.12:9000\r\n accessKey: minioadmin\r\n secretKey: minioadmin\r\n bucketName: test','5382b93f3d8059d6068c0501fdd41195','2020-11-20 00:00:00','2020-12-21 21:01:59',NULL,'0:0:0:0:0:0:0:1','','','文件服务','null','null','yaml',NULL,''), -(9,'sentinel-couplet-gateway','DEFAULT_GROUP','[\r\n {\r\n \"resource\": \"couplet-auth\",\r\n \"count\": 500,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"couplet-system\",\r\n \"count\": 1000,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"couplet-gen\",\r\n \"count\": 200,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"couplet-job\",\r\n \"count\": 300,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n }\r\n]','9f3a3069261598f74220bc47958ec252','2020-11-20 00:00:00','2020-11-20 00:00:00',NULL,'0:0:0:0:0:0:0:1','','','限流策略','null','null','json',NULL,''); - - -/******************************************/ -/* 表名称 = config_info_aggr */ -/******************************************/ -CREATE TABLE `config_info_aggr` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) NOT NULL COMMENT 'data_id', - `group_id` varchar(255) NOT NULL COMMENT 'group_id', - `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', - `content` longtext NOT NULL COMMENT '内容', - `gmt_modified` datetime NOT NULL COMMENT '修改时间', - `app_name` varchar(128) DEFAULT NULL, - `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; - - -/******************************************/ -/* 表名称 = config_info_beta */ -/******************************************/ -CREATE TABLE `config_info_beta` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) NOT NULL COMMENT 'data_id', - `group_id` varchar(128) NOT NULL COMMENT 'group_id', - `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', - `content` longtext NOT NULL COMMENT 'content', - `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', - `md5` varchar(32) DEFAULT NULL COMMENT 'md5', - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text COMMENT 'source user', - `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', - `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text COMMENT '秘钥', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; - -/******************************************/ -/* 表名称 = config_info_tag */ -/******************************************/ -CREATE TABLE `config_info_tag` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) NOT NULL COMMENT 'data_id', - `group_id` varchar(128) NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', - `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', - `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', - `content` longtext NOT NULL COMMENT 'content', - `md5` varchar(32) DEFAULT NULL COMMENT 'md5', - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text COMMENT 'source user', - `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; - -/******************************************/ -/* 表名称 = config_tags_relation */ -/******************************************/ -CREATE TABLE `config_tags_relation` ( - `id` bigint(20) NOT NULL COMMENT 'id', - `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', - `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', - `data_id` varchar(255) NOT NULL COMMENT 'data_id', - `group_id` varchar(128) NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', - `nid` bigint(20) NOT NULL AUTO_INCREMENT, - PRIMARY KEY (`nid`), - UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), - KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; - -/******************************************/ -/* 表名称 = group_capacity */ -/******************************************/ -CREATE TABLE `group_capacity` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', - `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', - `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', - `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', - `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', - `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', - `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_group_id` (`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; - -/******************************************/ -/* 表名称 = his_config_info */ -/******************************************/ -CREATE TABLE `his_config_info` ( - `id` bigint(64) unsigned NOT NULL, - `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `data_id` varchar(255) NOT NULL, - `group_id` varchar(128) NOT NULL, - `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', - `content` longtext NOT NULL, - `md5` varchar(32) DEFAULT NULL, - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `src_user` text, - `src_ip` varchar(50) DEFAULT NULL, - `op_type` char(10) DEFAULT NULL, - `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text COMMENT '秘钥', - PRIMARY KEY (`nid`), - KEY `idx_gmt_create` (`gmt_create`), - KEY `idx_gmt_modified` (`gmt_modified`), - KEY `idx_did` (`data_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; - - -/******************************************/ -/* 数据库全名 = nacos_config */ -/* 表名称 = tenant_capacity */ -/******************************************/ -CREATE TABLE `tenant_capacity` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', - `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', - `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', - `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', - `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', - `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', - `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', - `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; - - -CREATE TABLE `tenant_info` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', - `kp` varchar(128) NOT NULL COMMENT 'kp', - `tenant_id` varchar(128) default '' COMMENT 'tenant_id', - `tenant_name` varchar(128) default '' COMMENT 'tenant_name', - `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', - `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', - `gmt_create` bigint(20) NOT NULL COMMENT '创建时间', - `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), - KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; - -CREATE TABLE `users` ( - `username` varchar(50) NOT NULL PRIMARY KEY, - `password` varchar(500) NOT NULL, - `enabled` boolean NOT NULL -); - -CREATE TABLE `roles` ( - `username` varchar(50) NOT NULL, - `role` varchar(50) NOT NULL, - UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE -); - -CREATE TABLE `permissions` ( - `role` varchar(50) NOT NULL, - `resource` varchar(255) NOT NULL, - `action` varchar(8) NOT NULL, - UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE -); - -INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); - -INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN'); diff --git a/sql/ry_seata_20210128.sql b/sql/ry_seata_20210128.sql deleted file mode 100644 index 41163c1..0000000 --- a/sql/ry_seata_20210128.sql +++ /dev/null @@ -1,80 +0,0 @@ -DROP DATABASE IF EXISTS `ry-seata`; - -CREATE DATABASE `ry-seata` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - -USE `ry-seata`; - --- -------------------------------- The script used when storeMode is 'db' -------------------------------- --- the table to store GlobalSession data -CREATE TABLE IF NOT EXISTS `global_table` -( - `xid` VARCHAR(128) NOT NULL, - `transaction_id` BIGINT, - `status` TINYINT NOT NULL, - `application_id` VARCHAR(32), - `transaction_service_group` VARCHAR(32), - `transaction_name` VARCHAR(128), - `timeout` INT, - `begin_time` BIGINT, - `application_data` VARCHAR(2000), - `gmt_create` DATETIME, - `gmt_modified` DATETIME, - PRIMARY KEY (`xid`), - KEY `idx_gmt_modified_status` (`gmt_modified`, `status`), - KEY `idx_transaction_id` (`transaction_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - --- the table to store BranchSession data -CREATE TABLE IF NOT EXISTS `branch_table` -( - `branch_id` BIGINT NOT NULL, - `xid` VARCHAR(128) NOT NULL, - `transaction_id` BIGINT, - `resource_group_id` VARCHAR(32), - `resource_id` VARCHAR(256), - `branch_type` VARCHAR(8), - `status` TINYINT, - `client_id` VARCHAR(64), - `application_data` VARCHAR(2000), - `gmt_create` DATETIME(6), - `gmt_modified` DATETIME(6), - PRIMARY KEY (`branch_id`), - KEY `idx_xid` (`xid`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - --- the table to store lock data -CREATE TABLE IF NOT EXISTS `lock_table` -( - `row_key` VARCHAR(128) NOT NULL, - `xid` VARCHAR(96), - `transaction_id` BIGINT, - `branch_id` BIGINT NOT NULL, - `resource_id` VARCHAR(256), - `table_name` VARCHAR(32), - `pk` VARCHAR(36), - `gmt_create` DATETIME, - `gmt_modified` DATETIME, - PRIMARY KEY (`row_key`), - KEY `idx_branch_id` (`branch_id`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; - --- for AT mode you must to init this sql for you business database. the seata server not need it. -CREATE TABLE IF NOT EXISTS `undo_log` -( - `branch_id` BIGINT(20) NOT NULL COMMENT 'branch transaction id', - `xid` VARCHAR(100) NOT NULL COMMENT 'global transaction id', - `context` VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization', - `rollback_info` LONGBLOB NOT NULL COMMENT 'rollback info', - `log_status` INT(11) NOT NULL COMMENT '0:normal status,1:defense status', - `log_created` DATETIME(6) NOT NULL COMMENT 'create datetime', - `log_modified` DATETIME(6) NOT NULL COMMENT 'modify datetime', - UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 1 - DEFAULT CHARSET = utf8mb4 COMMENT ='AT transaction mode undo table'; \ No newline at end of file