From a3f62b0c778e18d8ff72762dbfe65df3e5d038f4 Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Tue, 16 Apr 2024 01:27:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9A=84=E5=9F=9F=E5=90=8D=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/controller/AppController.java | 6 + .../oa/controller/AppUrlController.java | 109 ++++++++++++++++++ .../java/com/gxwebsoft/oa/entity/App.java | 4 + .../java/com/gxwebsoft/oa/entity/AppUrl.java | 62 ++++++++++ .../com/gxwebsoft/oa/mapper/AppUrlMapper.java | 37 ++++++ .../gxwebsoft/oa/mapper/xml/AppUrlMapper.xml | 54 +++++++++ .../java/com/gxwebsoft/oa/param/AppParam.java | 4 + .../com/gxwebsoft/oa/param/AppUrlParam.java | 51 ++++++++ .../gxwebsoft/oa/service/AppUrlService.java | 42 +++++++ .../oa/service/impl/AppUrlServiceImpl.java | 47 ++++++++ .../com/gxwebsoft/generator/OaGenerator.java | 1 + 11 files changed, 417 insertions(+) create mode 100644 src/main/java/com/gxwebsoft/oa/controller/AppUrlController.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/AppUrl.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/AppUrlMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/AppUrlMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/param/AppUrlParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/AppUrlService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/AppUrlServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/oa/controller/AppController.java b/src/main/java/com/gxwebsoft/oa/controller/AppController.java index b7748f2..62cea50 100644 --- a/src/main/java/com/gxwebsoft/oa/controller/AppController.java +++ b/src/main/java/com/gxwebsoft/oa/controller/AppController.java @@ -11,9 +11,11 @@ import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.oa.entity.App; +import com.gxwebsoft.oa.entity.AppUrl; import com.gxwebsoft.oa.entity.AppUser; import com.gxwebsoft.oa.param.AppParam; import com.gxwebsoft.oa.service.AppService; +import com.gxwebsoft.oa.service.AppUrlService; import com.gxwebsoft.oa.service.AppUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -44,6 +46,8 @@ public class AppController extends BaseController { @Resource private AppUserService appUserService; @Resource + private AppUrlService appUrlService; + @Resource private RedisUtil redisUtil; @ApiOperation("统计信息") @@ -121,6 +125,8 @@ public class AppController extends BaseController { final PageResult appPageResult = appService.pageRel(param); appPageResult.getList().forEach(d -> { d.setContent(null); + // 读取链接列表 + d.setAppUrlList(appUrlService.list(new LambdaQueryWrapper().eq(AppUrl::getAppId,d.getAppId()))); }); return appPageResult; } diff --git a/src/main/java/com/gxwebsoft/oa/controller/AppUrlController.java b/src/main/java/com/gxwebsoft/oa/controller/AppUrlController.java new file mode 100644 index 0000000..e4e5572 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/AppUrlController.java @@ -0,0 +1,109 @@ +package com.gxwebsoft.oa.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.oa.service.AppUrlService; +import com.gxwebsoft.oa.entity.AppUrl; +import com.gxwebsoft.oa.param.AppUrlParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 项目域名控制器 + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +@Api(tags = "项目域名管理") +@RestController +@RequestMapping("/api/oa/app-url") +public class AppUrlController extends BaseController { + @Resource + private AppUrlService appUrlService; + + @ApiOperation("分页查询项目域名") + @GetMapping("/page") + public ApiResult> page(AppUrlParam param) { + // 使用关联查询 + return success(appUrlService.pageRel(param)); + } + + @ApiOperation("查询全部项目域名") + @GetMapping() + public ApiResult> list(AppUrlParam param) { + // 使用关联查询 + return success(appUrlService.listRel(param)); + } + + @ApiOperation("根据id查询项目域名") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(appUrlService.getByIdRel(id)); + } + + @ApiOperation("添加项目域名") + @PostMapping() + public ApiResult save(@RequestBody AppUrl appUrl) { + if (appUrlService.save(appUrl)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改项目域名") + @PutMapping() + public ApiResult update(@RequestBody AppUrl appUrl) { + if (appUrlService.updateById(appUrl)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除项目域名") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (appUrlService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加项目域名") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (appUrlService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改项目域名") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(appUrlService, "app_url_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除项目域名") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (appUrlService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/App.java b/src/main/java/com/gxwebsoft/oa/entity/App.java index 09b2ee4..2be4e45 100644 --- a/src/main/java/com/gxwebsoft/oa/entity/App.java +++ b/src/main/java/com/gxwebsoft/oa/entity/App.java @@ -239,6 +239,10 @@ public class App implements Serializable { @TableField(exist = false) private List users; + @ApiModelProperty(value = "链接列表") + @TableField(exist = false) + private List appUrlList; + @ApiModelProperty(value = "主体名称") @TableField(exist = false) private String tenantName; diff --git a/src/main/java/com/gxwebsoft/oa/entity/AppUrl.java b/src/main/java/com/gxwebsoft/oa/entity/AppUrl.java new file mode 100644 index 0000000..54f1a9a --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/AppUrl.java @@ -0,0 +1,62 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 项目域名 + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "AppUrl对象", description = "项目域名") +@TableName("oa_app_url") +public class AppUrl implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "app_url_id", type = IdType.AUTO) + private Integer appUrlId; + + @ApiModelProperty(value = "应用ID") + private Integer appId; + + @ApiModelProperty(value = "域名类型") + private String name; + + @ApiModelProperty(value = "域名") + private String domain; + + @ApiModelProperty(value = "账号") + private String account; + + @ApiModelProperty(value = "密码") + private String password; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + private Integer status; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/AppUrlMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/AppUrlMapper.java new file mode 100644 index 0000000..16f1201 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/AppUrlMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.AppUrl; +import com.gxwebsoft.oa.param.AppUrlParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 项目域名Mapper + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +public interface AppUrlMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") AppUrlParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") AppUrlParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUrlMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUrlMapper.xml new file mode 100644 index 0000000..e3a2fb9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUrlMapper.xml @@ -0,0 +1,54 @@ + + + + + + + SELECT a.* + FROM oa_app_url a + + + AND a.app_url_id = #{param.appUrlId} + + + AND a.app_id = #{param.appId} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.domain LIKE CONCAT('%', #{param.domain}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/param/AppParam.java b/src/main/java/com/gxwebsoft/oa/param/AppParam.java index 69141db..508a737 100644 --- a/src/main/java/com/gxwebsoft/oa/param/AppParam.java +++ b/src/main/java/com/gxwebsoft/oa/param/AppParam.java @@ -233,4 +233,8 @@ public class AppParam extends BaseParam { @TableField(exist = false) private Boolean showIndex; + @ApiModelProperty(value = "是否读取链接列表") + @TableField(exist = false) + private Boolean showAppUrl; + } diff --git a/src/main/java/com/gxwebsoft/oa/param/AppUrlParam.java b/src/main/java/com/gxwebsoft/oa/param/AppUrlParam.java new file mode 100644 index 0000000..8f54d21 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/AppUrlParam.java @@ -0,0 +1,51 @@ +package com.gxwebsoft.oa.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 项目域名查询参数 + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "AppUrlParam对象", description = "项目域名查询参数") +public class AppUrlParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer appUrlId; + + @ApiModelProperty(value = "应用ID") + @QueryField(type = QueryType.EQ) + private Integer appId; + + @ApiModelProperty(value = "域名类型") + private String name; + + @ApiModelProperty(value = "域名") + private String domain; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AppUrlService.java b/src/main/java/com/gxwebsoft/oa/service/AppUrlService.java new file mode 100644 index 0000000..ecea813 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/AppUrlService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.AppUrl; +import com.gxwebsoft.oa.param.AppUrlParam; + +import java.util.List; + +/** + * 项目域名Service + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +public interface AppUrlService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(AppUrlParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(AppUrlParam param); + + /** + * 根据id查询 + * + * @param appUrlId 自增ID + * @return AppUrl + */ + AppUrl getByIdRel(Integer appUrlId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AppUrlServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AppUrlServiceImpl.java new file mode 100644 index 0000000..ae75b22 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AppUrlServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.AppUrlMapper; +import com.gxwebsoft.oa.service.AppUrlService; +import com.gxwebsoft.oa.entity.AppUrl; +import com.gxwebsoft.oa.param.AppUrlParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 项目域名Service实现 + * + * @author 科技小王子 + * @since 2024-04-15 13:01:34 + */ +@Service +public class AppUrlServiceImpl extends ServiceImpl implements AppUrlService { + + @Override + public PageResult pageRel(AppUrlParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(AppUrlParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public AppUrl getByIdRel(Integer appUrlId) { + AppUrlParam param = new AppUrlParam(); + param.setAppUrlId(appUrlId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/OaGenerator.java b/src/test/java/com/gxwebsoft/generator/OaGenerator.java index 868b4d3..1e1b219 100644 --- a/src/test/java/com/gxwebsoft/generator/OaGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/OaGenerator.java @@ -55,6 +55,7 @@ public class OaGenerator { // "oa_product" // "oa_product_tabs", // "oa_app_field", + "oa_app_url", // "oa_link", // "oa_company_field", // "oa_company_user",