From dd30d17c40a71013cd0be7952ab0ef4137783f9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E9=86=BA?= <14463847+zmw770157181@user.noreply.gitee.com> Date: Mon, 23 Sep 2024 11:31:58 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=8A=A5=E6=96=87=E7=AE=A1=E7=90=86=202.?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=AE=A1=E7=90=86=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=B6=E9=97=B409231131?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/common/core/annotation/Excel.java | 52 +++--- .../muyu/common/core/annotation/Excels.java | 2 +- .../muyu/common/core/utils/SpringUtils.java | 10 +- .../java/com/muyu/common/core/xss/Xss.java | 6 +- .../cloud-common-datascope/pom.xml | 27 ++++ .../datascope/annotation/DataScope.java | 28 ++++ .../datascope/aspect/DataScopeAspect.java | 149 ++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + cloud-common/pom.xml | 2 +- .../muyu/car/controller/SysCarController.java | 4 +- .../controller/SysCarMessageController.java | 66 ++++++++ .../controller/SysCarTemplateController.java | 68 ++++++++ .../java/com/muyu/car/domain/CarMessage.java | 21 +-- .../com/muyu/car/domain/CarMessageType.java | 2 +- .../java/com/muyu/car/domain/CarTemplate.java | 2 +- .../main/java/com/muyu/car/domain/SysCar.java | 4 - .../java/com/muyu/car/domain/dto/CarDTO.java | 7 + .../java/com/muyu/car/domain/vo/CarVO.java | 10 +- .../muyu/car/mapper/SysCarMessageMapper.java | 17 ++ .../muyu/car/mapper/SysCarTemplateMapper.java | 17 ++ .../car/service/SysCarMessageService.java | 22 +++ .../car/service/SysCarTemplateService.java | 22 +++ .../impl/SysCarCompanyServiceImpl.java | 6 - .../impl/SysCarMessageServiceImpl.java | 36 +++++ .../impl/SysCarTemplateServiceImpl.java | 38 +++++ .../mapper/manage/SysCarMessageMapper.xml | 20 +++ .../mapper/message/SysCarTemplateMapper.xml | 13 ++ 27 files changed, 578 insertions(+), 74 deletions(-) create mode 100644 cloud-common/cloud-common-datascope/cloud-common-datascope/pom.xml create mode 100644 cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java create mode 100644 cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java create mode 100644 cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarMessageController.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarTemplateController.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarTemplateMapper.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarMessageService.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarTemplateService.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarTemplateServiceImpl.java create mode 100644 cloud-modules/cloud-modules-car/src/main/resources/mapper/manage/SysCarMessageMapper.xml create mode 100644 cloud-modules/cloud-modules-car/src/main/resources/mapper/message/SysCarTemplateMapper.xml diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java index 36180e5..5168b9d 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java @@ -21,132 +21,132 @@ public @interface Excel { /** * 导出时在excel中排序 */ - public int sort () default Integer.MAX_VALUE; + public int sort() default Integer.MAX_VALUE; /** * 导出到Excel中的名字. */ - public String name () default ""; + public String name() default ""; /** * 日期格式, 如: yyyy-MM-dd */ - public String dateFormat () default ""; + public String dateFormat() default ""; /** * 读取内容转表达式 (如: 0=男,1=女,2=未知) */ - public String readConverterExp () default ""; + public String readConverterExp() default ""; /** * 分隔符,读取字符串组内容 */ - public String separator () default ","; + public String separator() default ","; /** * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) */ - public int scale () default -1; + public int scale() default -1; /** * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN */ - public int roundingMode () default BigDecimal.ROUND_HALF_EVEN; + public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; /** * 导出时在excel中每个列的高度 */ - public double height () default 14; + public double height() default 14; /** * 导出时在excel中每个列的宽度 */ - public double width () default 16; + public double width() default 16; /** * 文字后缀,如% 90 变成90% */ - public String suffix () default ""; + public String suffix() default ""; /** * 当值为空时,字段的默认值 */ - public String defaultValue () default ""; + public String defaultValue() default ""; /** * 提示信息 */ - public String prompt () default ""; + public String prompt() default ""; /** * 设置只能选择不能输入的列内容. */ - public String[] combo () default {}; + public String[] combo() default {}; /** * 是否需要纵向合并单元格,应对需求:含有list集合单元格) */ - public boolean needMerge () default false; + public boolean needMerge() default false; /** * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. */ - public boolean isExport () default true; + public boolean isExport() default true; /** * 另一个类中的属性名称,支持多级获取,以小数点隔开 */ - public String targetAttr () default ""; + public String targetAttr() default ""; /** * 是否自动统计数据,在最后追加一行统计数据总和 */ - public boolean isStatistics () default false; + public boolean isStatistics() default false; /** * 导出类型(0数字 1字符串) */ - public ColumnType cellType () default ColumnType.STRING; + public ColumnType cellType() default ColumnType.STRING; /** * 导出列头背景颜色 */ - public IndexedColors headerBackgroundColor () default IndexedColors.GREY_50_PERCENT; + public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; /** * 导出列头字体颜色 */ - public IndexedColors headerColor () default IndexedColors.WHITE; + public IndexedColors headerColor() default IndexedColors.WHITE; /** * 导出单元格背景颜色 */ - public IndexedColors backgroundColor () default IndexedColors.WHITE; + public IndexedColors backgroundColor() default IndexedColors.WHITE; /** * 导出单元格字体颜色 */ - public IndexedColors color () default IndexedColors.BLACK; + public IndexedColors color() default IndexedColors.BLACK; /** * 导出字段对齐方式 */ - public HorizontalAlignment align () default HorizontalAlignment.CENTER; + public HorizontalAlignment align() default HorizontalAlignment.CENTER; /** * 自定义数据处理器 */ - public Class handler () default ExcelHandlerAdapter.class; + public Class handler() default ExcelHandlerAdapter.class; /** * 自定义数据处理器参数 */ - public String[] args () default {}; + public String[] args() default {}; /** * 字段类型(0:导出导入;1:仅导出;2:仅导入) */ - Type type () default Type.ALL; + Type type() default Type.ALL; public enum Type { ALL(0), EXPORT(1), IMPORT(2); diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java index f8fc165..ea8dd80 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java @@ -13,5 +13,5 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Excels { - Excel[] value (); + Excel[] value(); } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java index c37a65c..6f50b56 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java @@ -26,7 +26,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return Object 一个以所给名字注册的bean的实例 * - * @throws org.springframework.beans.BeansException + * @throws BeansException */ @SuppressWarnings("unchecked") public static T getBean (String name) throws BeansException { @@ -40,7 +40,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return * - * @throws org.springframework.beans.BeansException + * @throws BeansException */ public static T getBean (Class clz) throws BeansException { T result = (T) beanFactory.getBean(clz); @@ -65,7 +65,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return boolean * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton (String name) throws NoSuchBeanDefinitionException { return beanFactory.isSingleton(name); @@ -76,7 +76,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return Class 注册对象的类型 * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static Class getType (String name) throws NoSuchBeanDefinitionException { return beanFactory.getType(name); @@ -89,7 +89,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static String[] getAliases (String name) throws NoSuchBeanDefinitionException { return beanFactory.getAliases(name); diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java index fa31755..9b53042 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java @@ -17,11 +17,11 @@ import java.lang.annotation.Target; @Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) @Constraint(validatedBy = {XssValidator.class}) public @interface Xss { - String message () + String message() default "不允许任何脚本运行"; - Class[] groups () default {}; + Class[] groups() default {}; - Class[] payload () default {}; + Class[] payload() default {}; } diff --git a/cloud-common/cloud-common-datascope/cloud-common-datascope/pom.xml b/cloud-common/cloud-common-datascope/cloud-common-datascope/pom.xml new file mode 100644 index 0000000..a7681bb --- /dev/null +++ b/cloud-common/cloud-common-datascope/cloud-common-datascope/pom.xml @@ -0,0 +1,27 @@ + + + + com.muyu + cloud-common + 3.6.3 + + 4.0.0 + + cloud-common-datascope + + + cloud-common-datascope权限范围 + + + + + + + com.muyu + cloud-common-security + + + + diff --git a/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java new file mode 100644 index 0000000..498f06b --- /dev/null +++ b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java @@ -0,0 +1,28 @@ +package com.muyu.common.datascope.annotation; + +import java.lang.annotation.*; + +/** + * 数据权限过滤注解 + * + * @author muyu + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataScope { + /** + * 部门表的别名 + */ + public String deptAlias () default ""; + + /** + * 用户表的别名 + */ + public String userAlias () default ""; + + /** + * 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@RequiresPermissions获取,多个权限用逗号分隔开来 + */ + public String permission () default ""; +} diff --git a/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java new file mode 100644 index 0000000..3d66b0d --- /dev/null +++ b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/java/com/muyu/common/datascope/aspect/DataScopeAspect.java @@ -0,0 +1,149 @@ +package com.muyu.common.datascope.aspect; + +import com.muyu.common.core.context.SecurityContextHolder; +import com.muyu.common.core.text.Convert; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.datascope.annotation.DataScope; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.SysRole; +import com.muyu.common.system.domain.SysUser; +import com.muyu.common.system.domain.LoginUser; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +/** + * 数据过滤处理 + * + * @author muyu + */ +@Aspect +@Component +public class DataScopeAspect { + /** + * 全部数据权限 + */ + public static final String DATA_SCOPE_ALL = "1"; + + /** + * 自定数据权限 + */ + public static final String DATA_SCOPE_CUSTOM = "2"; + + /** + * 部门数据权限 + */ + public static final String DATA_SCOPE_DEPT = "3"; + + /** + * 部门及以下数据权限 + */ + public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; + + /** + * 仅本人数据权限 + */ + public static final String DATA_SCOPE_SELF = "5"; + + /** + * 数据权限过滤关键字 + */ + public static final String DATA_SCOPE = "dataScope"; + + /** + * 数据范围过滤 + * + * @param joinPoint 切点 + * @param user 用户 + * @param deptAlias 部门别名 + * @param userAlias 用户别名 + * @param permission 权限字符 + */ + public static void dataScopeFilter (JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) { + StringBuilder sqlString = new StringBuilder(); + List conditions = new ArrayList(); + + for (SysRole role : user.getRoles()) { + String dataScope = role.getDataScope(); + if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) { + continue; + } + if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) + && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) { + continue; + } + if (DATA_SCOPE_ALL.equals(dataScope)) { + sqlString = new StringBuilder(); + conditions.add(dataScope); + break; + } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, + role.getRoleId())); + } else if (DATA_SCOPE_DEPT.equals(dataScope)) { + sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", + deptAlias, user.getDeptId(), user.getDeptId())); + } else if (DATA_SCOPE_SELF.equals(dataScope)) { + if (StringUtils.isNotBlank(userAlias)) { + sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + } else { + // 数据权限为仅本人且没有userAlias别名不查询任何数据 + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); + } + } + conditions.add(dataScope); + } + + // 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 + if (StringUtils.isEmpty(conditions)) { + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); + } + + if (StringUtils.isNotBlank(sqlString.toString())) { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); + } + } + } + + @Before("@annotation(controllerDataScope)") + public void doBefore (JoinPoint point, DataScope controllerDataScope) throws Throwable { + clearDataScope(point); + handleDataScope(point, controllerDataScope); + } + + protected void handleDataScope (final JoinPoint joinPoint, DataScope controllerDataScope) { + // 获取当前的用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNotNull(loginUser)) { + SysUser currentUser = loginUser.getSysUser(); + // 如果是超级管理员,则不过滤数据 + if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { + String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), SecurityContextHolder.getPermission()); + dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), + controllerDataScope.userAlias(), permission); + } + } + } + + /** + * 拼接权限sql前先清空params.dataScope参数防止注入 + */ + private void clearDataScope (final JoinPoint joinPoint) { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, ""); + } + } +} diff --git a/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8f4967b --- /dev/null +++ b/cloud-common/cloud-common-datascope/cloud-common-datascope/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.common.datascope.aspect.DataScopeAspect diff --git a/cloud-common/pom.xml b/cloud-common/pom.xml index a7a40be..d052b4d 100644 --- a/cloud-common/pom.xml +++ b/cloud-common/pom.xml @@ -12,6 +12,7 @@ cloud-common-log cloud-common-core cloud-common-redis + cloud-common-saas cloud-common-seata cloud-common-api-doc cloud-common-security @@ -20,7 +21,6 @@ cloud-common-system cloud-common-xxl cloud-common-rabbit - cloud-common-saas cloud-common diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarController.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarController.java index ca0e9c1..dd83625 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarController.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarController.java @@ -78,8 +78,6 @@ public class SysCarController extends BaseController { // 随机生成VIN码 String key2 = RandomUtil.randomNumbers(17); carVO.setCarVin(key2); - // - carVO.setUserId(SecurityUtils.getUserId()); sysCarService.insertCar(carVO); return Result.success("车辆添加成功"); } @@ -92,6 +90,8 @@ public class SysCarController extends BaseController { */ @PostMapping("updataCar") public Result updataCar(@RequestBody CarVO carVO){ + // + carVO.setUserId(SecurityUtils.getUserId()); sysCarService.updateById(carVO); return Result.success("车辆修改成功"); } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarMessageController.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarMessageController.java new file mode 100644 index 0000000..83829fd --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarMessageController.java @@ -0,0 +1,66 @@ +package com.muyu.car.controller; + +import com.muyu.car.domain.CarMessage; +import com.muyu.car.service.SysCarMessageService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/message") // 报文 +@Tag(name = "报文",description = "报文模块") +public class SysCarMessageController extends BaseController { + @Autowired + private SysCarMessageService sysCarMessageService; + + /** + * 查询所有报文信息 + * @return + */ + @PostMapping("selectMessageShow") + public List selectMessageShow(@RequestParam("templateId") Long templateId){ + return sysCarMessageService.selectMessageShow(templateId); + } + /** + * 通过id查询报文信息 + * @return + */ + @PostMapping("selectMessageByMessageId") + public CarMessage selectMessageByMessageId(@RequestParam("messageId") Long messageId){ + return sysCarMessageService.selectMessageByMessageId(messageId); + } + + /** + * 添加报文信息 + * @return carMessage + */ + @PostMapping("insertMessage") + public Result insertMessage(@RequestBody CarMessage carMessage){ + sysCarMessageService.save(carMessage); + return Result.success("添加成功"); + } + /** + * 修改报文信息 + * @return carMessage + */ + @PostMapping("updataMessage") + public Result updataMessage(@RequestBody CarMessage carMessage){ + sysCarMessageService.updateById(carMessage); + return Result.success("修改成功"); + } + /** + * 删除报文信息 + * @return carMessage + */ + @PostMapping("deleteMessage") + public Result deleteMessage(@RequestParam("ids") List ids){ + sysCarMessageService.removeBatchByIds(ids); + return Result.success("删除成功"); + } + + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarTemplateController.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarTemplateController.java new file mode 100644 index 0000000..629027f --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/controller/SysCarTemplateController.java @@ -0,0 +1,68 @@ +package com.muyu.car.controller; + +import com.muyu.car.domain.CarMessage; +import com.muyu.car.domain.CarTemplate; +import com.muyu.car.service.SysCarMessageService; +import com.muyu.car.service.SysCarTemplateService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/template") // 报文 +@Tag(name = "模版模块",description = "报文模版模块") +public class SysCarTemplateController extends BaseController { + @Autowired + private SysCarTemplateService sysCarTemplateService; + + /** + * 查询所有模版信息 + * @return + */ + @PostMapping("selectTemplateShow") + public List selectTemplateShow(){ + return sysCarTemplateService.selectTemplateShow(); + } + /** + * 通过id查询模版信息 + * @return + */ + @PostMapping("selectTemplateByTemplateId") + public CarTemplate selectTemplateByTemplateId(@RequestParam("templateId") Long templateId){ + return sysCarTemplateService.selectTemplateByTemplateId(templateId); + } + + /** + * 添加模版信息 + * @return carMessage + */ + @PostMapping("insertTemplate") + public Result insertTemplate(@RequestBody CarTemplate carTemplate){ + sysCarTemplateService.save(carTemplate); + return Result.success("添加成功"); + } + /** + * 修改模版信息 + * @return carMessage + */ + @PostMapping("updataTemplate") + public Result updataTemplate(@RequestBody CarTemplate carTemplate){ + sysCarTemplateService.updateById(carTemplate); + return Result.success("修改成功"); + } + /** + * 删除模版信息 + * @return carMessage + */ + @PostMapping("deleteTemplate") + public Result deleteTemplate(@RequestParam("ids") List ids){ + sysCarTemplateService.removeBatchByIds(ids); + return Result.success("删除成功"); + } + + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessage.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessage.java index 51f9aa3..5c507fd 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessage.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessage.java @@ -19,10 +19,6 @@ public class CarMessage { */ @TableId(value = "message_id",type = IdType.AUTO) private Long messageId; - /** - * 车辆编码 - */ - private String messageCode; /** * 车辆报文类别 */ @@ -35,22 +31,7 @@ public class CarMessage { * 结束位下标 */ private Integer messageEndIndex; - /** - * 数据类型 - */ - private String messageDataType; - /** - * 固定值 - */ - private double fixedValue; - /** - * 最小值 - */ - private double minimumValue; - /** - * 最大值 - */ - private double maximumValue; + /** * 模版id */ diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessageType.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessageType.java index ab45d45..a51fc70 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessageType.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarMessageType.java @@ -18,7 +18,7 @@ public class CarMessageType { * 报文 */ @TableId(value = "message_type_id",type = IdType.AUTO) - private Integer messageTypeId; + private Long messageTypeId; /** * 报文编码 */ diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarTemplate.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarTemplate.java index c8745ea..a7bb8cd 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarTemplate.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/CarTemplate.java @@ -19,7 +19,7 @@ public class CarTemplate { * 报文模版表 */ @TableId(value = "template_id",type = IdType.AUTO) - private Integer templateId; + private Long templateId; /** * 报文模版名称 */ diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/SysCar.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/SysCar.java index 3d357f8..6f0a234 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/SysCar.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/SysCar.java @@ -39,10 +39,6 @@ public class SysCar { * VIN码 */ private String carVin; - /** - * 驾车人 - */ - private Long carUserId; /** * 车主 */ diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/dto/CarDTO.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/dto/CarDTO.java index 98bbf9f..e072893 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/dto/CarDTO.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/dto/CarDTO.java @@ -50,4 +50,11 @@ public class CarDTO { * 在线状态 1.无信号 2.行驶中 3.已停止 */ private Integer carStatus; + + + /** + * 企业名称 + */ + @TableField(exist = false) + private String companyName; } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/vo/CarVO.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/vo/CarVO.java index 5d39014..7b97e76 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/vo/CarVO.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/domain/vo/CarVO.java @@ -40,10 +40,6 @@ public class CarVO { * VIN码 */ private String carVin; - /** - * 驾车人 - */ - private Long carUserId; /** * 车主 */ @@ -120,4 +116,10 @@ public class CarVO { @TableField(exist = false) private Integer gearType; + /** + * 企业名称 + */ + @TableField(exist = false) + private String companyName; + } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java new file mode 100644 index 0000000..277a740 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java @@ -0,0 +1,17 @@ +package com.muyu.car.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.car.domain.CarMessage; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SysCarMessageMapper extends BaseMapper { + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + List selectMessageShow(Long templateId); +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarTemplateMapper.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarTemplateMapper.java new file mode 100644 index 0000000..08333b5 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/mapper/SysCarTemplateMapper.java @@ -0,0 +1,17 @@ +package com.muyu.car.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.car.domain.CarMessage; +import com.muyu.car.domain.CarTemplate; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SysCarTemplateMapper extends BaseMapper { + /** + * 查询所有报文信息 + * @return + */ + List selectTemplateShow(); +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarMessageService.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarMessageService.java new file mode 100644 index 0000000..893f7be --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarMessageService.java @@ -0,0 +1,22 @@ +package com.muyu.car.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.car.domain.CarMessage; + +import java.util.List; + +public interface SysCarMessageService extends IService { + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + List selectMessageShow(Long templateId); + + /** + * 通过id查询报文信息 + * @param messageId + * @return + */ + CarMessage selectMessageByMessageId(Long messageId); +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarTemplateService.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarTemplateService.java new file mode 100644 index 0000000..a313d34 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/SysCarTemplateService.java @@ -0,0 +1,22 @@ +package com.muyu.car.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.car.domain.CarMessage; +import com.muyu.car.domain.CarTemplate; + +import java.util.List; + +public interface SysCarTemplateService extends IService { + /** + * 查询所有报文信息 + * @return + */ + List selectTemplateShow(); + + /** + * 通过id查询报文信息 + * @param messageId + * @return + */ + CarTemplate selectTemplateByTemplateId(Long messageId); +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarCompanyServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarCompanyServiceImpl.java index b923b32..07f99ae 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarCompanyServiceImpl.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarCompanyServiceImpl.java @@ -2,18 +2,12 @@ package com.muyu.car.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.car.domain.CarCompany; -import com.muyu.car.domain.dto.CarDTO; -import com.muyu.car.domain.vo.CarVO; import com.muyu.car.mapper.SysCarCompanyMapper; -import com.muyu.car.mapper.SysCarMapper; import com.muyu.car.service.SysCarCompanyService; -import com.muyu.car.service.SysCarService; import com.muyu.common.redis.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; - /** * @author zmw * @description: 配置plus业务实现层 diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java new file mode 100644 index 0000000..bd58571 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java @@ -0,0 +1,36 @@ +package com.muyu.car.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.car.domain.CarMessage; +import com.muyu.car.mapper.SysCarMessageMapper; +import com.muyu.car.service.SysCarMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SysCarMessageServiceImpl extends ServiceImpl implements SysCarMessageService { + + @Autowired + private SysCarMessageMapper sysCarMessageMapper; + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + @Override + public List selectMessageShow(Long templateId) { + return sysCarMessageMapper.selectMessageShow(templateId); + } + + /** + * 通过id查询报文信息 + * @param messageId + * @return + */ + @Override + public CarMessage selectMessageByMessageId(Long messageId) { + return sysCarMessageMapper.selectById(messageId); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarTemplateServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarTemplateServiceImpl.java new file mode 100644 index 0000000..72ccce3 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/car/service/impl/SysCarTemplateServiceImpl.java @@ -0,0 +1,38 @@ +package com.muyu.car.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.car.domain.CarMessage; +import com.muyu.car.domain.CarTemplate; +import com.muyu.car.mapper.SysCarMessageMapper; +import com.muyu.car.mapper.SysCarTemplateMapper; +import com.muyu.car.service.SysCarMessageService; +import com.muyu.car.service.SysCarTemplateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SysCarTemplateServiceImpl extends ServiceImpl implements SysCarTemplateService { + + @Autowired + private SysCarTemplateMapper sysCarTemplateMapper; + /** + * 查询所有报文信息 + * @return + */ + @Override + public List selectTemplateShow() { + return sysCarTemplateMapper.selectTemplateShow(); + } + + /** + * 通过id查询报文信息 + * @param templateId + * @return + */ + @Override + public CarTemplate selectTemplateByTemplateId(Long templateId) { + return sysCarTemplateMapper.selectById(templateId); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/manage/SysCarMessageMapper.xml b/cloud-modules/cloud-modules-car/src/main/resources/mapper/manage/SysCarMessageMapper.xml new file mode 100644 index 0000000..bf9570d --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/resources/mapper/manage/SysCarMessageMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/message/SysCarTemplateMapper.xml b/cloud-modules/cloud-modules-car/src/main/resources/mapper/message/SysCarTemplateMapper.xml new file mode 100644 index 0000000..2bea129 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/resources/mapper/message/SysCarTemplateMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + +