diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ObjUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ObjUtils.java new file mode 100644 index 0000000..89ea516 --- /dev/null +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/ObjUtils.java @@ -0,0 +1,65 @@ +package com.muyu.common.core.utils; + +import org.apache.commons.lang3.ObjectUtils; + +import java.math.BigDecimal; + +/** + * @author yangle + * @description: 对象工具类 + * @Date 2023-10-9 下午 04:56 + */ +public class ObjUtils { + + /** + * 兼容 + * CharSequence: 如果长度为零,则认为为空。 + * Array: 如果长度为零,则认为为空。 + * Collection: 如果元素为零,则认为为空。 + * Map: 如果键值映射为零,则认为为空。 + * @param o 对象 + * @return 如果对象具有受支持的类型并且为空或null,则为true,否则为false + */ + public static boolean notNull(Object o){ + return ObjectUtils.isNotEmpty(o); + } + + /** + * 判断long类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(Long val){ + return ObjectUtils.isNotEmpty(val) && val != 0; + } + + /** + * 判断Integer类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(Integer val){ + return ObjectUtils.isNotEmpty(val) && val != 0; + } + /** + * 判断BigDecimal类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(BigDecimal val){ + return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00; + } + /** + * 判断BigDecimal类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notChildNull(Object[] val){ + for (Object o : val) { + if (!notNull(o)){ + return false; + } + } + return true; + } +} diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/aa b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/aa new file mode 100644 index 0000000..c4d3a89 --- /dev/null +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/domain/aa @@ -0,0 +1,10 @@ +因为每个数据库的地址数据库名不同 +找到多数据MybatisPlus多数据源依赖 + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.3.1 + +在spring字段下添加datasource字段 用来区分不同的数据库 +在业务层上添加@DS注解(区分名) +一个业务类不能同时调用多个数据源 解决方法是将业务类拆分 组合成多个业务类来连接多个数据库 diff --git a/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/DataType.java b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/DataType.java new file mode 100644 index 0000000..9d62c5b --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/DataType.java @@ -0,0 +1,19 @@ +package com.muyu.kvt.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据库类型 dataType + * + * @author LeYang + * on 2024/4/21 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DataType { + private Integer id; + private String typeName; +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/Kvt.java b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/Kvt.java new file mode 100644 index 0000000..c355aa7 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/Kvt.java @@ -0,0 +1,185 @@ +package com.muyu.kvt.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.kvt.domain.req.KvtEditReq; +import com.muyu.kvt.domain.req.KvtQueryReq; +import com.muyu.kvt.domain.req.KvtSaveReq; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.annotation.Excel; + +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * kvt +对象 kvt + * + * @author muyu + * @date 2024-04-20 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("kvt") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "Kvt", description = "kvt") +public class Kvt extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 主键 */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "主键", value = "主键") + private Long id; + + /** 接入源名称 */ + @Excel(name = "接入源名称") + @ApiModelProperty(name = "接入源名称", value = "接入源名称") + private String name; + + /** 数据来源系统名称 */ + @Excel(name = "数据来源系统名称") + @ApiModelProperty(name = "数据来源系统名称", value = "数据来源系统名称") + private String systemName; + + /** 数据接入类型 */ + @Excel(name = "数据接入类型") + @ApiModelProperty(name = "数据接入类型", value = "数据接入类型") + private Long type; + + /** 主机地址 */ + @Excel(name = "主机地址") + @ApiModelProperty(name = "主机地址", value = "主机地址") + private String host; + + /** 端口地址 */ + @Excel(name = "端口地址") + @ApiModelProperty(name = "端口地址", value = "端口地址") + private String port; + + /** 数据库名称 */ + @Excel(name = "数据库名称") + @ApiModelProperty(name = "数据库名称", value = "数据库名称") + private String databaseName; + + /** 数据连接参数 */ + @Excel(name = "数据连接参数") + @ApiModelProperty(name = "数据连接参数", value = "数据连接参数") + private String connectionParam; + + /** 初始连接数量 */ + @Excel(name = "初始连接数量") + @ApiModelProperty(name = "初始连接数量", value = "初始连接数量") + private Long initNum; + + /** 最大连接数量 */ + @Excel(name = "最大连接数量") + @ApiModelProperty(name = "最大连接数量", value = "最大连接数量") + private Long maxNum; + + /** 最大等待时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最大等待时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty(name = "最大等待时间", value = "最大等待时间") + private Date maxWaitTime; + + /** 最大等待次数 */ + @Excel(name = "最大等待次数") + @ApiModelProperty(name = "最大等待次数", value = "最大等待次数") + private Long maxWaitSize; + + /** + * 用户名 + */ + @Excel(name = "用户名") + @ApiModelProperty(name = "用户名",value = "用户名") + private String username; + /** + * 密码 + */ + @Excel(name = "密码") + @ApiModelProperty(name = "密码",value = "密码") + private String password; + + @Excel(name = "数据库类型") + @ApiModelProperty(name = "数据库类型",value = "数据库类型") + private Integer dateTypeId; + + + /** + * 查询构造器 + */ + public static Kvt queryBuild( KvtQueryReq kvtQueryReq){ + return Kvt.builder() + .name(kvtQueryReq.getName()) + .systemName(kvtQueryReq.getSystemName()) + .type(kvtQueryReq.getType()) + .host(kvtQueryReq.getHost()) + .port(kvtQueryReq.getPort()) + .databaseName(kvtQueryReq.getDatabaseName()) + .connectionParam(kvtQueryReq.getConnectionParam()) + .initNum(kvtQueryReq.getInitNum()) + .maxNum(kvtQueryReq.getMaxNum()) + .maxWaitTime(kvtQueryReq.getMaxWaitTime()) + .maxWaitSize(kvtQueryReq.getMaxWaitSize()) + .username(kvtQueryReq.getUsername()) + .password(kvtQueryReq.getPassword()) + .dateTypeId(kvtQueryReq.getDateTypeId()) + .build(); + } + + /** + * 添加构造器 + */ + public static Kvt saveBuild(KvtSaveReq kvtSaveReq){ + return Kvt.builder() + .name(kvtSaveReq.getName()) + .systemName(kvtSaveReq.getSystemName()) + .type(kvtSaveReq.getType()) + .host(kvtSaveReq.getHost()) + .port(kvtSaveReq.getPort()) + .databaseName(kvtSaveReq.getDatabaseName()) + .connectionParam(kvtSaveReq.getConnectionParam()) + .initNum(kvtSaveReq.getInitNum()) + .maxNum(kvtSaveReq.getMaxNum()) + .maxWaitTime(kvtSaveReq.getMaxWaitTime()) + .maxWaitSize(kvtSaveReq.getMaxWaitSize()) + .username(kvtSaveReq.getUsername()) + .password(kvtSaveReq.getPassword()) + .dateTypeId(kvtSaveReq.getDateTypeId()) + .build(); + } + + /** + * 修改构造器 + */ + public static Kvt editBuild(Long id, KvtEditReq kvtEditReq){ + return Kvt.builder() + .id(id) + .name(kvtEditReq.getName()) + .systemName(kvtEditReq.getSystemName()) + .type(kvtEditReq.getType()) + .host(kvtEditReq.getHost()) + .port(kvtEditReq.getPort()) + .databaseName(kvtEditReq.getDatabaseName()) + .connectionParam(kvtEditReq.getConnectionParam()) + .initNum(kvtEditReq.getInitNum()) + .maxNum(kvtEditReq.getMaxNum()) + .maxWaitTime(kvtEditReq.getMaxWaitTime()) + .maxWaitSize(kvtEditReq.getMaxWaitSize()) + .username(kvtEditReq.getUsername()) + .password(kvtEditReq.getPassword()) + .dateTypeId(kvtEditReq.getDateTypeId()) + .build(); + } + +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtEditReq.java b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtEditReq.java new file mode 100644 index 0000000..25f581a --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtEditReq.java @@ -0,0 +1,86 @@ +package com.muyu.kvt.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * kvt +对象 kvt + * + * @author muyu + * @date 2024-04-20 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "KvtEditReq", description = "kvt ") +public class KvtEditReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 接入源名称 */ + @ApiModelProperty(name = "接入源名称", value = "接入源名称") + private String name; + + /** 数据来源系统名称 */ + @ApiModelProperty(name = "数据来源系统名称", value = "数据来源系统名称") + private String systemName; + + /** 数据接入类型 */ + @ApiModelProperty(name = "数据接入类型", value = "数据接入类型") + private Long type; + + /** 主机地址 */ + @ApiModelProperty(name = "主机地址", value = "主机地址") + private String host; + + /** 端口地址 */ + @ApiModelProperty(name = "端口地址", value = "端口地址") + private String port; + + /** 数据库名称 */ + @ApiModelProperty(name = "数据库名称", value = "数据库名称") + private String databaseName; + + /** 数据连接参数 */ + @ApiModelProperty(name = "数据连接参数", value = "数据连接参数") + private String connectionParam; + + /** 初始连接数量 */ + @ApiModelProperty(name = "初始连接数量", value = "初始连接数量") + private Long initNum; + + /** 最大连接数量 */ + @ApiModelProperty(name = "最大连接数量", value = "最大连接数量") + private Long maxNum; + + /** 最大等待时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "最大等待时间", value = "最大等待时间") + private Date maxWaitTime; + + /** 最大等待次数 */ + @ApiModelProperty(name = "最大等待次数", value = "最大等待次数") + private Long maxWaitSize; + /* + 用户名 + */ + @ApiModelProperty(name = "用户名",value = "用户名") + public String username; + /* + 密码 + */ + @ApiModelProperty(name = "密码",value = "密码") + public String password; + + @ApiModelProperty(name = "数据库类型",value = "数据库类型") + private Integer dateTypeId; +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtQueryReq.java b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtQueryReq.java new file mode 100644 index 0000000..ab141e8 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtQueryReq.java @@ -0,0 +1,88 @@ +package com.muyu.kvt.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * kvt +对象 kvt + * + * @author muyu + * @date 2024-04-20 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "KvtQueryReq", description = "kvt ") +public class KvtQueryReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 接入源名称 */ + @ApiModelProperty(name = "接入源名称", value = "接入源名称") + private String name; + + /** 数据来源系统名称 */ + @ApiModelProperty(name = "数据来源系统名称", value = "数据来源系统名称") + private String systemName; + + /** 数据接入类型 */ + @ApiModelProperty(name = "数据接入类型", value = "数据接入类型") + private Long type; + + /** 主机地址 */ + @ApiModelProperty(name = "主机地址", value = "主机地址") + private String host; + + /** 端口地址 */ + @ApiModelProperty(name = "端口地址", value = "端口地址") + private String port; + + /** 数据库名称 */ + @ApiModelProperty(name = "数据库名称", value = "数据库名称") + private String databaseName; + + /** 数据连接参数 */ + @ApiModelProperty(name = "数据连接参数", value = "数据连接参数") + private String connectionParam; + + /** 初始连接数量 */ + @ApiModelProperty(name = "初始连接数量", value = "初始连接数量") + private Long initNum; + + /** 最大连接数量 */ + @ApiModelProperty(name = "最大连接数量", value = "最大连接数量") + private Long maxNum; + + /** 最大等待时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "最大等待时间", value = "最大等待时间") + private Date maxWaitTime; + + /** 最大等待次数 */ + @ApiModelProperty(name = "最大等待次数", value = "最大等待次数") + private Long maxWaitSize; + /* + 用户名 + */ + @ApiModelProperty(name = "用户名",value = "用户名") + public String username; + /* + 密码 + */ + @ApiModelProperty(name = "密码",value = "密码") + public String password; + + + @ApiModelProperty(name = "数据库类型",value = "数据库类型") + private Integer dateTypeId; +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtSaveReq.java b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtSaveReq.java new file mode 100644 index 0000000..bb90b97 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-common/src/main/java/com/muyu/kvt/domain/req/KvtSaveReq.java @@ -0,0 +1,103 @@ +package com.muyu.kvt.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * kvt +对象 kvt + * + * @author muyu + * @date 2024-04-20 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "KvtSaveReq", description = "kvt") +public class KvtSaveReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 主键 */ + + @ApiModelProperty(name = "主键", value = "主键") + private Long id; + + /** 接入源名称 */ + + @ApiModelProperty(name = "接入源名称", value = "接入源名称") + private String name; + + /** 数据来源系统名称 */ + + @ApiModelProperty(name = "数据来源系统名称", value = "数据来源系统名称") + private String systemName; + + /** 数据接入类型 */ + + @ApiModelProperty(name = "数据接入类型", value = "数据接入类型") + private Long type; + + /** 主机地址 */ + + @ApiModelProperty(name = "主机地址", value = "主机地址") + private String host; + + /** 端口地址 */ + + @ApiModelProperty(name = "端口地址", value = "端口地址") + private String port; + + /** 数据库名称 */ + + @ApiModelProperty(name = "数据库名称", value = "数据库名称") + private String databaseName; + + /** 数据连接参数 */ + + @ApiModelProperty(name = "数据连接参数", value = "数据连接参数") + private String connectionParam; + + /** 初始连接数量 */ + + @ApiModelProperty(name = "初始连接数量", value = "初始连接数量") + private Long initNum; + + /** 最大连接数量 */ + + @ApiModelProperty(name = "最大连接数量", value = "最大连接数量") + private Long maxNum; + + /** 最大等待时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + + @ApiModelProperty(name = "最大等待时间", value = "最大等待时间") + private Date maxWaitTime; + + /** 最大等待次数 */ + + @ApiModelProperty(name = "最大等待次数", value = "最大等待次数") + private Long maxWaitSize; + + /* + 用户名 + */ + @ApiModelProperty(name = "用户名",value = "用户名") + public String username; + /* + 密码 + */ + @ApiModelProperty(name = "密码",value = "密码") + public String password; + + @ApiModelProperty(name = "数据库类型",value = "数据库类型") + private Integer dateTypeId; +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-remote/pom.xml b/muyu-modules/muyu-kvt/muyu-kvt-remote/pom.xml new file mode 100644 index 0000000..45ab994 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-remote/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.muyu + muyu-kvt + 3.6.3 + + + muyu-kvt-remote + + + 17 + 17 + UTF-8 + + + diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/MuyuApplication.java b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/MuyuApplication.java new file mode 100644 index 0000000..6b9adf8 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/MuyuApplication.java @@ -0,0 +1,23 @@ +package com.muyu.kvt; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * MuyuApplication + * + * @author LeYang + * on 2024/4/21 + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class MuyuApplication { + public static void main(String[] args) { + SpringApplication.run(MuyuApplication.class); + } +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/controller/KvtController.java b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/controller/KvtController.java new file mode 100644 index 0000000..6edce76 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/controller/KvtController.java @@ -0,0 +1,138 @@ +package com.muyu.kvt.controller; + +import java.sql.SQLException; +import java.util.List; + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.kvt.domain.DataType; +import com.muyu.kvt.domain.Kvt; +import com.muyu.kvt.domain.req.KvtEditReq; +import com.muyu.kvt.domain.req.KvtQueryReq; +import com.muyu.kvt.domain.req.KvtSaveReq; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import com.muyu.kvt.service.KvtService; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; + +/** + * kvt +Controller + * + * @author muyu + * @date 2024-04-20 + */ +@Api(tags = "kvt") +@RestController +@RequestMapping("/kvt") +public class KvtController extends BaseController { + @Autowired + private KvtService kvtService; + + /** + * 查询kvt列表 + */ + @ApiOperation("获取kvt列表") + @RequiresPermissions("kvt:kvt:list") + @GetMapping("/list") + public Result> list(KvtQueryReq kvtQueryReq) { + startPage(); + List list = kvtService.list(Kvt.queryBuild(kvtQueryReq)); + return getDataTable(list); + } + + /** + * 导出kvt列表 + */ + @ApiOperation("导出kvt列表") + @RequiresPermissions("kvt:kvt:export") + @Log(title = "kvt", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Kvt kvt) { + List list = kvtService.list(kvt); + ExcelUtil util = new ExcelUtil(Kvt.class); + util.exportExcel(response, list, "kvt数据"); + } + + /** + * 获取kvt详细信息 + */ + @ApiOperation("获取kvt详细信息") + @RequiresPermissions("kvt:kvt:query") + @GetMapping(value = "/{id}") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(kvtService.getById(id)); + } + + /** + * 新增kvt + + */ + @RequiresPermissions("kvt:kvt:add") + @Log(title = "kvt ", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("新增kvt ") + public Result add(@RequestBody KvtSaveReq kvtSaveReq) { + return toAjax(kvtService.save(Kvt.saveBuild(kvtSaveReq))); + } + + /** + * 修改kvt + + */ + @RequiresPermissions("kvt:kvt:edit") + @Log(title = "kvt ", businessType = BusinessType.UPDATE) + @PutMapping("/{id}") + @ApiOperation("修改kvt") + public Result edit(@PathVariable Long id, @RequestBody KvtEditReq kvtEditReq) { + return toAjax(kvtService.updateById(Kvt.editBuild(id,kvtEditReq))); + } + + /** + * 删除kvt + + */ + @RequiresPermissions("kvt:kvt:remove") + @Log(title = "kvt ", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + @ApiOperation("删除kvt") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") + public Result remove(@PathVariable List ids) { + return toAjax(kvtService.removeBatchByIds(ids)); + } + + /** + * 测试连接 + */ + @PostMapping("/connectionTest") + public Result connectionTest(@RequestBody Kvt kvt) throws SQLException, ClassNotFoundException { + boolean test= kvtService.connectionTest(kvt); + if (test){ + return Result.success("测试成功"); + }else { + return Result.error("测试失败"); + } + } + + + @PostMapping("/dataTypeList") + public Result> dataTypeList(){ + List dataTypeList=kvtService.dataTypeList(); + return Result.success(dataTypeList); + + } + + + +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/mapper/KvtMapper.java b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/mapper/KvtMapper.java new file mode 100644 index 0000000..e211324 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/mapper/KvtMapper.java @@ -0,0 +1,21 @@ +package com.muyu.kvt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.kvt.domain.DataType; +import com.muyu.kvt.domain.Kvt; + +import java.util.List; + +/** + * kvt +Mapper接口 + * + * @author muyu + * @date 2024-04-20 + */ +public interface KvtMapper extends BaseMapper { + + List dataTypeList(); + + +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/KvtService.java b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/KvtService.java new file mode 100644 index 0000000..2a48472 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/KvtService.java @@ -0,0 +1,34 @@ +package com.muyu.kvt.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.kvt.domain .DataType; +import com.muyu.kvt.domain.Kvt; + +import java.sql.SQLException; +import java.util.List; + +/** + * kvt +Service接口 + * + * @author muyu + * @date 2024-04-20 + */ +public interface KvtService extends IService { + /** + * 查询kvt +列表 + * + * @param kvt kvt + + * @return kvt +集合 + */ + public List list(Kvt kvt); + + boolean connectionTest(Kvt kvt) throws ClassNotFoundException, SQLException; + + List dataTypeList(); + + +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/impl/KvtServiceImpl.java b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/impl/KvtServiceImpl.java new file mode 100644 index 0000000..69538dd --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/java/com/muyu/kvt/service/impl/KvtServiceImpl.java @@ -0,0 +1,109 @@ +package com.muyu.kvt.service.impl; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.List; + +import com.muyu.common.core.utils.ObjUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.kvt.domain.DataType; +import com.muyu.kvt.domain.Kvt; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.muyu.kvt.mapper.KvtMapper; +import com.muyu.kvt.service.KvtService; +/** + * kvt +Service业务层处理 + * + * @author muyu + * @date 2024-04-20 + */ +@Slf4j +@Service +public class KvtServiceImpl extends ServiceImpl implements KvtService { + + /** + * 查询kvt列表 + * + * @param kvt kvt + * @return kvt + + */ + @Override + public List list(Kvt kvt) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + + if (ObjUtils.notNull(kvt.getName())){ + queryWrapper.like(Kvt::getName, kvt.getName()); + } + + if (ObjUtils.notNull(kvt.getSystemName())){ + queryWrapper.like(Kvt::getSystemName, kvt.getSystemName()); + } + + if (ObjUtils.notNull(kvt.getType())){ + queryWrapper.eq(Kvt::getType, kvt.getType()); + } + + if (ObjUtils.notNull(kvt.getHost())){ + queryWrapper.eq(Kvt::getHost, kvt.getHost()); + } + + if (ObjUtils.notNull(kvt.getPort())){ + queryWrapper.eq(Kvt::getPort, kvt.getPort()); + } + + if (ObjUtils.notNull(kvt.getDatabaseName())){ + queryWrapper.like(Kvt::getDatabaseName, kvt.getDatabaseName()); + } + + if (ObjUtils.notNull(kvt.getConnectionParam())){ + queryWrapper.eq(Kvt::getConnectionParam, kvt.getConnectionParam()); + } + + if (ObjUtils.notNull(kvt.getInitNum())){ + queryWrapper.eq(Kvt::getInitNum, kvt.getInitNum()); + } + + if (ObjUtils.notNull(kvt.getMaxNum())){ + queryWrapper.eq(Kvt::getMaxNum, kvt.getMaxNum()); + } + + if (ObjUtils.notNull(kvt.getMaxWaitTime())){ + queryWrapper.eq(Kvt::getMaxWaitTime, kvt.getMaxWaitTime()); + } + + if (ObjUtils.notNull(kvt.getMaxWaitSize())){ + queryWrapper.eq(Kvt::getMaxWaitSize, kvt.getMaxWaitSize()); + } + + + + + + return list(queryWrapper); + } + + @Override + public boolean connectionTest(Kvt kvt) throws ClassNotFoundException, SQLException { + String user = kvt.getUsername(); + String password = kvt.getPassword(); + String jdbcDriver = "com.mysql.cj.jdbc.Driver"; + String jdbcUrl = "jdbc:mysql://"+kvt.getHost()+":"+kvt.getPort()+"/"+kvt.getDatabaseName()+"?"+kvt.getConnectionParam(); + Class.forName(jdbcDriver); + Connection connection = DriverManager.getConnection(jdbcUrl, user, password); + if (connection==null){ + return false; + } + return true; + } + + @Override + public List dataTypeList() { + return baseMapper.dataTypeList(); + } +} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/banner.txt b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/bootstrap.yml b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..e1fd787 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/bootstrap.yml @@ -0,0 +1,31 @@ +# Tomcat +server: + port: 9567 + +# Spring +spring: + main: + allow-circular-references: true + application: + # 应用名称 + name: muyu-kvt + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 115.159.211.196:8848 + config: + # 配置中心地址 + server-addr: 115.159.211.196:8848 + namespace: b8ace5a6-28a3-4126-b109-9b6623c58dc0 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.kvt.mapper: DEBUG diff --git a/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/logback.xml b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/logback.xml new file mode 100644 index 0000000..aa340cd --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/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/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/mapper/kvt/KvtMapper.xml b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/mapper/kvt/KvtMapper.xml new file mode 100644 index 0000000..49a45e2 --- /dev/null +++ b/muyu-modules/muyu-kvt/muyu-kvt-server/src/main/resources/mapper/kvt/KvtMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, name, system_name, type, host, port, database_name, connection_param, init_num, max_num, max_wait_time, max_wait_size, remark, create_by, create_time, update_by, update_time,date_type_id + from kvt + + + diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java new file mode 100644 index 0000000..ba64d0a --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java @@ -0,0 +1,111 @@ +package com.muyu.system.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import com.muyu.system.service.service.IAsUserDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 用户与部门中间Controller + * + * @author muyu + * @date 2024-04-14 + */ +@RestController +@RequestMapping("/userDept") +public class AsUserDeptController extends BaseController +{ + @Autowired + private IAsUserDeptService asUserDeptService; + + /** + * 查询用户与部门中间列表 + */ + @RequiresPermissions("product:dept:list") + @GetMapping("/list") + public Result> list(AsUserDept asUserDept) + { + startPage(); + List list = asUserDeptService.selectAsUserDeptList(asUserDept); + return getDataTable(list); + } + + /** + * 导出用户与部门中间列表 + */ + @RequiresPermissions("product:dept:export") + @Log(title = "用户与部门中间", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AsUserDept asUserDept) + { + List list = asUserDeptService.selectAsUserDeptList(asUserDept); + ExcelUtil util = new ExcelUtil(AsUserDept.class); + util.exportExcel(response, list, "用户与部门中间数据"); + } + + /** + * 获取用户与部门中间详细信息 + */ + @RequiresPermissions("product:dept:query") + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(asUserDeptService.selectAsUserDeptById(id)); + } + + /** + * 新增用户与部门中间 + */ + @RequiresPermissions("product:dept:add") + @Log(title = "用户与部门中间", businessType = BusinessType.INSERT) + @PostMapping + public Result add(@RequestBody AsUserDept asUserDept) + { + return toAjax(asUserDeptService.insertAsUserDept(asUserDept)); + } + + /** + * 修改用户与部门中间 + */ + @RequiresPermissions("product:dept:edit") + @Log(title = "用户与部门中间", businessType = BusinessType.UPDATE) + @PutMapping + public Result edit(@RequestBody AsUserDept asUserDept) + { + return toAjax(asUserDeptService.updateAsUserDept(asUserDept)); + } + + /** + * 删除用户与部门中间 + */ + @RequiresPermissions("product:dept:remove") + @Log(title = "用户与部门中间", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(asUserDeptService.deleteAsUserDeptByIds(ids)); + } + + @GetMapping("/UpdateAsUserDept") + public Result list(@RequestParam("id") Long id) + { + return asUserDeptService.updateAsUserDeptRead(id); + } + + @GetMapping("/GetNum") + public Result getNum(@RequestParam("noticeId") Long noticeId) + { + return asUserDeptService.getNum(noticeId); + } +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java new file mode 100644 index 0000000..2d70617 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java @@ -0,0 +1,84 @@ +package com.muyu.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 用户与部门中间对象 as_user_dept + * + * @author muyu + * @date 2024-04-14 + */ +public class AsUserDept extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long userId; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long noticeId; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String isRead; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setNoticeId(Long noticeId) + { + this.noticeId = noticeId; + } + + public Long getNoticeId() + { + return noticeId; + } + public void setIsRead(String isRead) + { + this.isRead = isRead; + } + + public String getIsRead() + { + return isRead; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("userId", getUserId()) + .append("noticeId", getNoticeId()) + .append("isRead", getIsRead()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java new file mode 100644 index 0000000..6974d19 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java @@ -0,0 +1,21 @@ +package com.muyu.system.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * SysNoticeRequest + * + * @author LeYang + * on 2024/4/14 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SysNoticeRequest { + private Long noticeId; + private Long userId; + private String noticeType; + private String isRead; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java new file mode 100644 index 0000000..d4f1e24 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java @@ -0,0 +1,22 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * AsUserDeotNumResponse + * + * @author LeYang + * on 2024/4/14 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class AsUserDeotNumResponse { + private Long num; + private Long readNum; + private Long noReadNum; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java new file mode 100644 index 0000000..9d89733 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java @@ -0,0 +1,32 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * SysNoticeResponse + * + * @author LeYang + * on 2024/4/14 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class SysNoticeResponse{ + + private Date createTime; + private String createBy; + private String noticeType; + private String isRead; + private String noticeTitle; + private String noticeContent; + private Long noticeId; + private Long id; + + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java new file mode 100644 index 0000000..c0be2c9 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java @@ -0,0 +1,71 @@ +package com.muyu.system.mapper; + +import com.muyu.system.domain.AsUserDept; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 用户与部门中间Mapper接口 + * + * @author muyu + * @date 2024-04-14 + */ +public interface AsUserDeptMapper +{ + /** + * 查询用户与部门中间 + * + * @param id 用户与部门中间主键 + * @return 用户与部门中间 + */ + public AsUserDept selectAsUserDeptById(Long id); + + /** + * 查询用户与部门中间列表 + * + * @param asUserDept 用户与部门中间 + * @return 用户与部门中间集合 + */ + public List selectAsUserDeptList(AsUserDept asUserDept); + + /** + * 新增用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + public int insertAsUserDept(AsUserDept asUserDept); + + /** + * 修改用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + public int updateAsUserDept(AsUserDept asUserDept); + + /** + * 删除用户与部门中间 + * + * @param id 用户与部门中间主键 + * @return 结果 + */ + public int deleteAsUserDeptById(Long id); + + /** + * 批量删除用户与部门中间 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAsUserDeptByIds(Long[] ids); + + void insertBachAsUserDept(@Param("asUserDepts") List asUserDepts); + + Long selectAsUserDeptNum(Long noticeId); + + void updateAsUserDeptRead(Long id); + + Long selectAsUserDeptReadNum(Long noticeId); +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/IAsUserDeptService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/IAsUserDeptService.java new file mode 100644 index 0000000..c665f9c --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/IAsUserDeptService.java @@ -0,0 +1,68 @@ +package com.muyu.system.service.service; + +import com.muyu.common.core.domain.Result; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; + +import java.util.List; + +/** + * 用户与部门中间Service接口 + * + * @author muyu + * @date 2024-04-14 + */ +public interface IAsUserDeptService +{ + /** + * 查询用户与部门中间 + * + * @param id 用户与部门中间主键 + * @return 用户与部门中间 + */ + public AsUserDept selectAsUserDeptById(Long id); + + /** + * 查询用户与部门中间列表 + * + * @param asUserDept 用户与部门中间 + * @return 用户与部门中间集合 + */ + public List selectAsUserDeptList(AsUserDept asUserDept); + + /** + * 新增用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + public int insertAsUserDept(AsUserDept asUserDept); + + /** + * 修改用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + public int updateAsUserDept(AsUserDept asUserDept); + + /** + * 批量删除用户与部门中间 + * + * @param ids 需要删除的用户与部门中间主键集合 + * @return 结果 + */ + public int deleteAsUserDeptByIds(Long[] ids); + + /** + * 删除用户与部门中间信息 + * + * @param id 用户与部门中间主键 + * @return 结果 + */ + public int deleteAsUserDeptById(Long id); + + Result updateAsUserDeptRead(Long id); + + Result getNum(Long noticeId); +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/impl/AsUserDeptServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/impl/AsUserDeptServiceImpl.java new file mode 100644 index 0000000..0bc07d8 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/service/impl/AsUserDeptServiceImpl.java @@ -0,0 +1,118 @@ +package com.muyu.system.service.service.impl; + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import com.muyu.system.mapper.AsUserDeptMapper; +import com.muyu.system.service.service.IAsUserDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 用户与部门中间Service业务层处理 + * + * @author muyu + * @date 2024-04-14 + */ +@Service +public class AsUserDeptServiceImpl implements IAsUserDeptService +{ + @Autowired + private AsUserDeptMapper asUserDeptMapper; + + /** + * 查询用户与部门中间 + * + * @param id 用户与部门中间主键 + * @return 用户与部门中间 + */ + @Override + public AsUserDept selectAsUserDeptById(Long id) + { + return asUserDeptMapper.selectAsUserDeptById(id); + } + + /** + * 查询用户与部门中间列表 + * + * @param asUserDept 用户与部门中间 + * @return 用户与部门中间 + */ + @Override + public List selectAsUserDeptList(AsUserDept asUserDept) + { + return asUserDeptMapper.selectAsUserDeptList(asUserDept); + } + + /** + * 新增用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + @Override + public int insertAsUserDept(AsUserDept asUserDept) + { + asUserDept.setCreateTime(DateUtils.getNowDate()); + return asUserDeptMapper.insertAsUserDept(asUserDept); + } + + /** + * 修改用户与部门中间 + * + * @param asUserDept 用户与部门中间 + * @return 结果 + */ + @Override + public int updateAsUserDept(AsUserDept asUserDept) + { + asUserDept.setUpdateTime(DateUtils.getNowDate()); + return asUserDeptMapper.updateAsUserDept(asUserDept); + } + + /** + * 批量删除用户与部门中间 + * + * @param ids 需要删除的用户与部门中间主键 + * @return 结果 + */ + @Override + public int deleteAsUserDeptByIds(Long[] ids) + { + return asUserDeptMapper.deleteAsUserDeptByIds(ids); + } + + /** + * 删除用户与部门中间信息 + * + * @param id 用户与部门中间主键 + * @return 结果 + */ + @Override + public int deleteAsUserDeptById(Long id) + { + return asUserDeptMapper.deleteAsUserDeptById(id); + } + + @Override + public Result updateAsUserDeptRead(Long id) { + asUserDeptMapper.updateAsUserDeptRead(id); + return Result.success(); + } + + @Override + public Result getNum(Long noticeId) { + Long num = asUserDeptMapper.selectAsUserDeptNum(noticeId); + Long readNum = asUserDeptMapper.selectAsUserDeptReadNum(noticeId); + long noreadNum= num-readNum; + return Result.success(AsUserDeotNumResponse.builder() + .num(num) + .readNum(readNum) + .noReadNum(noreadNum) + .build()); + } +} diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml new file mode 100644 index 0000000..8cd079d --- /dev/null +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + select id, user_id, notice_id, is_read, create_by, create_time, update_by, update_time, remark from as_user_dept + + + + + + + + + + insert into as_user_dept + + user_id, + notice_id, + is_read, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userId}, + #{noticeId}, + #{isRead}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + INSERT INTO `as_user_dept` (`user_id`, `notice_id`, `create_by`, `create_time`) + VALUES + + (#{asUserDept.userId}, #{asUserDept.noticeId}, #{asUserDept.createBy}, #{asUserDept.createTime}) + + + + + + + update as_user_dept + + user_id = #{userId}, + notice_id = #{noticeId}, + is_read = #{isRead}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + update as_user_dept set is_read =0 where id =#{id} + + + + delete from as_user_dept where id = #{id} + + + + delete from as_user_dept where id in + + #{id} + + +