diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java index 879f25d..c09e96c 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java @@ -1,18 +1,12 @@ package com.gxwebsoft.cms.controller; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.cms.service.ArticleCategoryService; import com.gxwebsoft.cms.entity.ArticleCategory; import com.gxwebsoft.cms.param.ArticleCategoryParam; -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.cms.service.ArticleCategoryService; +import com.gxwebsoft.common.core.web.*; 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; @@ -35,17 +29,16 @@ public class ArticleCategoryController extends BaseController { @GetMapping("/page") public ApiResult> page(ArticleCategoryParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc,create_time desc"); return success(articleCategoryService.page(page, page.getWrapper())); // 使用关联查询 - //return success(articleCategoryService.pageRel(param)); } @ApiOperation("查询全部文章分类表") @GetMapping() public ApiResult> list(ArticleCategoryParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc,create_time desc"); return success(articleCategoryService.list(page.getOrderWrapper())); // 使用关联查询 //return success(articleCategoryService.listRel(param)); diff --git a/src/main/java/com/gxwebsoft/oa/controller/AppController.java b/src/main/java/com/gxwebsoft/oa/controller/AppController.java index 67f603a..cc57a7b 100644 --- a/src/main/java/com/gxwebsoft/oa/controller/AppController.java +++ b/src/main/java/com/gxwebsoft/oa/controller/AppController.java @@ -2,6 +2,7 @@ package com.gxwebsoft.oa.controller; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.utils.CommonUtil; import com.gxwebsoft.common.core.utils.RedisUtil; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; @@ -73,6 +74,13 @@ public class AppController extends BaseController { @ApiOperation("根据id查询应用管理记录表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { + final User loginUser = getLoginUser(); + if (!CommonUtil.hasRole(loginUser.getRoles(),"superAdmin") || !CommonUtil.hasRole(loginUser.getRoles(),"admin")) { + // 查询权限 + if (appUserService.count(new LambdaQueryWrapper().eq(AppUser::getUserId, getLoginUserId()).eq(AppUser::getAppId,id)) == 0) { + return fail("无查看权限",null); + } + } // 使用关联查询 return success(appService.getByIdRel(id)); } diff --git a/src/main/java/com/gxwebsoft/oa/controller/LinkController.java b/src/main/java/com/gxwebsoft/oa/controller/LinkController.java new file mode 100644 index 0000000..165338d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/LinkController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.oa.controller; + +import com.gxwebsoft.common.core.web.*; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.Link; +import com.gxwebsoft.oa.param.LinkParam; +import com.gxwebsoft.oa.service.LinkService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 常用链接控制器 + * + * @author 科技小王子 + * @since 2024-01-14 11:50:39 + */ +@Api(tags = "常用链接管理") +@RestController +@RequestMapping("/api/oa/link") +public class LinkController extends BaseController { + @Resource + private LinkService linkService; + + @ApiOperation("分页查询常用链接") + @GetMapping("/page") + public ApiResult> page(LinkParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc,create_time desc"); + return success(linkService.page(page, page.getWrapper())); + // 使用关联查询 + //return success(linkService.pageRel(param)); + } + + @ApiOperation("查询全部常用链接") + @GetMapping() + public ApiResult> list(LinkParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc,create_time desc"); + return success(linkService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(linkService.listRel(param)); + } + + @ApiOperation("根据id查询常用链接") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(linkService.getById(id)); + // 使用关联查询 + //return success(linkService.getByIdRel(id)); + } + + @ApiOperation("添加常用链接") + @PostMapping() + public ApiResult save(@RequestBody Link link) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + link.setUserId(loginUser.getUserId()); + } + if (linkService.save(link)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改常用链接") + @PutMapping() + public ApiResult update(@RequestBody Link link) { + if (linkService.updateById(link)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除常用链接") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (linkService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加常用链接") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (linkService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改常用链接") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(linkService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除常用链接") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (linkService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/Link.java b/src/main/java/com/gxwebsoft/oa/entity/Link.java new file mode 100644 index 0000000..9aa8957 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/Link.java @@ -0,0 +1,72 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + * 常用链接 + * + * @author 科技小王子 + * @since 2024-01-14 11:50:39 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "Link对象", description = "常用链接") +@TableName("oa_link") +public class Link implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "链接名称") + private String name; + + @ApiModelProperty(value = "图标") + private String icon; + + @ApiModelProperty(value = "链接地址") + private String url; + + @ApiModelProperty(value = "链接类型") + private String linkType; + + @ApiModelProperty(value = "应用ID") + private Integer appId; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "是否推荐") + private Integer recommend; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + private Integer status; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/LinkMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/LinkMapper.java new file mode 100644 index 0000000..73ce377 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/LinkMapper.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.Link; +import com.gxwebsoft.oa.param.LinkParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 常用链接Mapper + * + * @author 科技小王子 + * @since 2024-01-14 11:50:39 + */ +public interface LinkMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") LinkParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") LinkParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/AppFieldMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppFieldMapper.xml index 8d7c47b..f29bf99 100644 --- a/src/main/java/com/gxwebsoft/oa/mapper/xml/AppFieldMapper.xml +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppFieldMapper.xml @@ -13,6 +13,9 @@ AND a.app_id = #{param.appId} + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') @@ -22,6 +25,9 @@ AND a.status = #{param.status} + + AND a.sort_number = #{param.sortNumber} + AND a.create_time >= #{param.createTimeStart} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/LinkMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/LinkMapper.xml new file mode 100644 index 0000000..57cc7d0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/LinkMapper.xml @@ -0,0 +1,65 @@ + + + + + + + SELECT a.* + FROM oa_link a + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + + AND a.url LIKE CONCAT('%', #{param.url}, '%') + + + AND a.link_type LIKE CONCAT('%', #{param.linkType}, '%') + + + AND a.app_id = #{param.appId} + + + AND a.user_id = #{param.userId} + + + AND a.recommend = #{param.recommend} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/param/AppFieldParam.java b/src/main/java/com/gxwebsoft/oa/param/AppFieldParam.java index 256a19f..77ff556 100644 --- a/src/main/java/com/gxwebsoft/oa/param/AppFieldParam.java +++ b/src/main/java/com/gxwebsoft/oa/param/AppFieldParam.java @@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode; * 应用参数查询参数 * * @author 科技小王子 - * @since 2024-01-12 20:08:35 + * @since 2024-01-14 11:42:53 */ @Data @EqualsAndHashCode(callSuper = false) @@ -30,6 +30,9 @@ public class AppFieldParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer appId; + @ApiModelProperty(value = "名称") + private String name; + @ApiModelProperty(value = "备注") private String comments; @@ -41,4 +44,8 @@ public class AppFieldParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer status; + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + } diff --git a/src/main/java/com/gxwebsoft/oa/param/LinkParam.java b/src/main/java/com/gxwebsoft/oa/param/LinkParam.java new file mode 100644 index 0000000..0556ebe --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/LinkParam.java @@ -0,0 +1,65 @@ +package com.gxwebsoft.oa.param; + +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-01-14 11:50:39 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "LinkParam对象", description = "常用链接查询参数") +public class LinkParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "链接名称") + private String name; + + @ApiModelProperty(value = "图标") + private String icon; + + @ApiModelProperty(value = "链接地址") + private String url; + + @ApiModelProperty(value = "链接类型") + private String linkType; + + @ApiModelProperty(value = "应用ID") + @QueryField(type = QueryType.EQ) + private Integer appId; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "是否推荐") + @QueryField(type = QueryType.EQ) + private Integer recommend; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AppFieldService.java b/src/main/java/com/gxwebsoft/oa/service/AppFieldService.java index 93196aa..d110a78 100644 --- a/src/main/java/com/gxwebsoft/oa/service/AppFieldService.java +++ b/src/main/java/com/gxwebsoft/oa/service/AppFieldService.java @@ -11,7 +11,7 @@ import java.util.List; * 应用参数Service * * @author 科技小王子 - * @since 2024-01-12 20:08:35 + * @since 2024-01-14 11:42:53 */ public interface AppFieldService extends IService { diff --git a/src/main/java/com/gxwebsoft/oa/service/LinkService.java b/src/main/java/com/gxwebsoft/oa/service/LinkService.java new file mode 100644 index 0000000..fc3bb2f --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/LinkService.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.Link; +import com.gxwebsoft.oa.param.LinkParam; + +import java.util.List; + +/** + * 常用链接Service + * + * @author 科技小王子 + * @since 2024-01-14 11:50:39 + */ +public interface LinkService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(LinkParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(LinkParam param); + + /** + * 根据id查询 + * + * @param id 自增ID + * @return Link + */ + Link getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AppFieldServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AppFieldServiceImpl.java index 6f10f1d..048633f 100644 --- a/src/main/java/com/gxwebsoft/oa/service/impl/AppFieldServiceImpl.java +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AppFieldServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; * 应用参数Service实现 * * @author 科技小王子 - * @since 2024-01-12 20:08:35 + * @since 2024-01-14 11:42:53 */ @Service public class AppFieldServiceImpl extends ServiceImpl implements AppFieldService { diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/LinkServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/LinkServiceImpl.java new file mode 100644 index 0000000..508eb7f --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/LinkServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.LinkMapper; +import com.gxwebsoft.oa.service.LinkService; +import com.gxwebsoft.oa.entity.Link; +import com.gxwebsoft.oa.param.LinkParam; +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-01-14 11:50:39 + */ +@Service +public class LinkServiceImpl extends ServiceImpl implements LinkService { + + @Override + public PageResult pageRel(LinkParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(LinkParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public Link getByIdRel(Integer id) { + LinkParam param = new LinkParam(); + param.setId(id); + 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 1298836..9f15a3d 100644 --- a/src/test/java/com/gxwebsoft/generator/OaGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/OaGenerator.java @@ -54,7 +54,8 @@ public class OaGenerator { // "oa_app_renew", // "oa_product" // "oa_product_tabs", - "oa_app_field" +// "oa_app_field", + "oa_link" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{