diff --git a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java index 797875d..788d049 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java @@ -70,8 +70,10 @@ public class MybatisPlusConfig { "sys_version", "sys_order", "sys_white_domain", + "sys_website_field", "sys_modules", - "sys_environment" + "sys_environment", + "sys_components" ).contains(tableName); } }; diff --git a/src/main/java/com/gxwebsoft/common/core/socketio/config/SocketIOConfig.java b/src/main/java/com/gxwebsoft/common/core/socketio/config/SocketIOConfig.java index 3fe7fd0..d79884f 100644 --- a/src/main/java/com/gxwebsoft/common/core/socketio/config/SocketIOConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/socketio/config/SocketIOConfig.java @@ -73,10 +73,10 @@ public class SocketIOConfig implements InitializingBean { config.setKeyStorePassword("123456"); // 设置证书密码 // 启动socket服务 - SocketIOServer server = new SocketIOServer(config); - server.addListeners(socketIOHandler); - server.start(); - ClientCache.setSocketIOServer(server); - logger.debug("Netty SocketIO启动:{}:{}",host,port); +// SocketIOServer server = new SocketIOServer(config); +// server.addListeners(socketIOHandler); +// server.start(); +// ClientCache.setSocketIOServer(server); +// logger.debug("Netty SocketIO启动:{}:{}",host,port); } } diff --git a/src/main/java/com/gxwebsoft/common/core/web/BaseController.java b/src/main/java/com/gxwebsoft/common/core/web/BaseController.java index 93a95f1..a2af9d0 100644 --- a/src/main/java/com/gxwebsoft/common/core/web/BaseController.java +++ b/src/main/java/com/gxwebsoft/common/core/web/BaseController.java @@ -84,7 +84,7 @@ public class BaseController { String key = "Domain:" + Domain; String tenantId = redisUtil.get(key); if(tenantId != null){ -// System.out.println("从域名拿ID = " + tenantId); + System.out.println("从域名拿ID = " + tenantId); return Integer.valueOf(tenantId); } } diff --git a/src/main/java/com/gxwebsoft/common/system/controller/ComponentsController.java b/src/main/java/com/gxwebsoft/common/system/controller/ComponentsController.java new file mode 100644 index 0000000..aeb4cd8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/controller/ComponentsController.java @@ -0,0 +1,139 @@ +package com.gxwebsoft.common.system.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.ComponentsService; +import com.gxwebsoft.common.system.entity.Components; +import com.gxwebsoft.common.system.param.ComponentsParam; +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 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-08-25 19:08:51 + */ +@Api(tags = "组件管理") +@RestController +@RequestMapping("/api/system/components") +public class ComponentsController extends BaseController { + @Resource + private ComponentsService componentsService; + + @PreAuthorize("hasAuthority('sys:components:list')") + @OperationLog + @ApiOperation("分页查询组件") + @GetMapping("/page") + public ApiResult> page(ComponentsParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(componentsService.page(page, page.getWrapper())); + // 使用关联查询 + //return success(componentsService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('sys:components:list')") + @OperationLog + @ApiOperation("查询全部组件") + @GetMapping() + public ApiResult> list(ComponentsParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(componentsService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(componentsService.listRel(param)); + } + + @PreAuthorize("hasAuthority('sys:components:list')") + @OperationLog + @ApiOperation("根据id查询组件") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(componentsService.getById(id)); + // 使用关联查询 + //return success(componentsService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('sys:components:save')") + @OperationLog + @ApiOperation("添加组件") + @PostMapping() + public ApiResult save(@RequestBody Components components) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + components.setUserId(loginUser.getUserId()); + } + if (componentsService.save(components)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('sys:components:update')") + @OperationLog + @ApiOperation("修改组件") + @PutMapping() + public ApiResult update(@RequestBody Components components) { + if (componentsService.updateById(components)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('sys:components:remove')") + @OperationLog + @ApiOperation("删除组件") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (componentsService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('sys:components:save')") + @OperationLog + @ApiOperation("批量添加组件") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (componentsService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('sys:components:update')") + @OperationLog + @ApiOperation("批量修改组件") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(componentsService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('sys:components:remove')") + @OperationLog + @ApiOperation("批量删除组件") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (componentsService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/common/system/controller/DictionaryDataController.java b/src/main/java/com/gxwebsoft/common/system/controller/DictionaryDataController.java index 8028703..e1e591b 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/DictionaryDataController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/DictionaryDataController.java @@ -27,28 +27,29 @@ public class DictionaryDataController extends BaseController { @Resource private DictionaryDataService dictionaryDataService; - @PreAuthorize("hasAuthority('sys:dict:list')") + @PreAuthorize("hasAuthority('sys:dictionary:list')") @ApiOperation("分页查询字典数据") @GetMapping("/page") public ApiResult> page(DictionaryDataParam param) { + System.out.println("param = " + param); return success(dictionaryDataService.pageRel(param)); } - @PreAuthorize("hasAuthority('sys:dict:list')") + @PreAuthorize("hasAuthority('sys:dictionary:list')") @ApiOperation("查询全部字典数据") @GetMapping() public ApiResult> list(DictionaryDataParam param) { return success(dictionaryDataService.listRel(param)); } - @PreAuthorize("hasAuthority('sys:dict:list')") + @PreAuthorize("hasAuthority('sys:dictionary:list')") @ApiOperation("根据id查询字典数据") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { return success(dictionaryDataService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('sys:dict:save')") + @PreAuthorize("hasAuthority('sys:dictionary:save')") @OperationLog @ApiOperation("添加字典数据") @PostMapping() @@ -69,7 +70,7 @@ public class DictionaryDataController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('sys:dict:update')") + @PreAuthorize("hasAuthority('sys:dictionary:update')") @ApiOperation("修改字典数据") @PutMapping() public ApiResult update(@RequestBody DictionaryData dictionaryData) { @@ -91,7 +92,7 @@ public class DictionaryDataController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('sys:dict:remove')") + @PreAuthorize("hasAuthority('sys:dictionary:remove')") @OperationLog @ApiOperation("删除字典数据") @DeleteMapping("/{id}") @@ -102,7 +103,7 @@ public class DictionaryDataController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('sys:dict:save')") + @PreAuthorize("hasAuthority('sys:dictionary:save')") @OperationLog @ApiOperation("批量添加字典数据") @PostMapping("/batch") @@ -113,7 +114,7 @@ public class DictionaryDataController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('sys:dict:remove')") + @PreAuthorize("hasAuthority('sys:dictionary:remove')") @OperationLog @ApiOperation("批量删除字典数据") @DeleteMapping("/batch") diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Components.java b/src/main/java/com/gxwebsoft/common/system/entity/Components.java new file mode 100644 index 0000000..d9b58fe --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/entity/Components.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.common.system.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-08-25 19:08:51 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "Components对象", description = "组件") +@TableName("sys_components") +public class Components implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "组件标题") + private String title; + + @ApiModelProperty(value = "关联导航ID") + private Integer navigationId; + + @ApiModelProperty(value = "组件类型") + private String type; + + @ApiModelProperty(value = "页面关键词") + private String keywords; + + @ApiModelProperty(value = "页面描述") + private String description; + + @ApiModelProperty(value = "组件路径") + private String path; + + @ApiModelProperty(value = "组件图标") + private String icon; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @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/common/system/mapper/ComponentsMapper.java b/src/main/java/com/gxwebsoft/common/system/mapper/ComponentsMapper.java new file mode 100644 index 0000000..70a58c9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/mapper/ComponentsMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.common.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.common.system.entity.Components; +import com.gxwebsoft.common.system.param.ComponentsParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 组件Mapper + * + * @author 科技小王子 + * @since 2024-08-25 19:08:51 + */ +public interface ComponentsMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ComponentsParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ComponentsParam param); + +} diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/ComponentsMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/ComponentsMapper.xml new file mode 100644 index 0000000..078b9ed --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/ComponentsMapper.xml @@ -0,0 +1,65 @@ + + + + + + + SELECT a.* + FROM sys_components a + + + AND a.id = #{param.id} + + + AND a.title LIKE CONCAT('%', #{param.title}, '%') + + + AND a.navigation_id = #{param.navigationId} + + + AND a.type LIKE CONCAT('%', #{param.type}, '%') + + + AND a.keywords LIKE CONCAT('%', #{param.keywords}, '%') + + + AND a.description LIKE CONCAT('%', #{param.description}, '%') + + + AND a.path LIKE CONCAT('%', #{param.path}, '%') + + + AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + 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/common/system/param/ComponentsParam.java b/src/main/java/com/gxwebsoft/common/system/param/ComponentsParam.java new file mode 100644 index 0000000..d490be1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/param/ComponentsParam.java @@ -0,0 +1,66 @@ +package com.gxwebsoft.common.system.param; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 组件查询参数 + * + * @author 科技小王子 + * @since 2024-08-25 19:08:51 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "ComponentsParam对象", description = "组件查询参数") +public class ComponentsParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "组件标题") + private String title; + + @ApiModelProperty(value = "关联导航ID") + @QueryField(type = QueryType.EQ) + private Integer navigationId; + + @ApiModelProperty(value = "组件类型") + private String type; + + @ApiModelProperty(value = "页面关键词") + private String keywords; + + @ApiModelProperty(value = "页面描述") + private String description; + + @ApiModelProperty(value = "组件路径") + private String path; + + @ApiModelProperty(value = "组件图标") + private String icon; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/common/system/service/ComponentsService.java b/src/main/java/com/gxwebsoft/common/system/service/ComponentsService.java new file mode 100644 index 0000000..2073c55 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/service/ComponentsService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.common.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.Components; +import com.gxwebsoft.common.system.param.ComponentsParam; + +import java.util.List; + +/** + * 组件Service + * + * @author 科技小王子 + * @since 2024-08-25 19:08:51 + */ +public interface ComponentsService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ComponentsParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ComponentsParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return Components + */ + Components getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/ComponentsServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/ComponentsServiceImpl.java new file mode 100644 index 0000000..59d0db4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/ComponentsServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.common.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.mapper.ComponentsMapper; +import com.gxwebsoft.common.system.service.ComponentsService; +import com.gxwebsoft.common.system.entity.Components; +import com.gxwebsoft.common.system.param.ComponentsParam; +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-08-25 19:08:51 + */ +@Service +public class ComponentsServiceImpl extends ServiceImpl implements ComponentsService { + + @Override + public PageResult pageRel(ComponentsParam 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(ComponentsParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public Components getByIdRel(Integer id) { + ComponentsParam param = new ComponentsParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/Sys2Generator.java b/src/test/java/com/gxwebsoft/generator/Sys2Generator.java index 5ba7c11..316f05f 100644 --- a/src/test/java/com/gxwebsoft/generator/Sys2Generator.java +++ b/src/test/java/com/gxwebsoft/generator/Sys2Generator.java @@ -45,7 +45,7 @@ public class Sys2Generator { private static final String MODULE_NAME = "common.system"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ - "sys_payment" + "sys_website_field" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ diff --git a/src/test/java/com/gxwebsoft/generator/SysGenerator.java b/src/test/java/com/gxwebsoft/generator/SysGenerator.java index fab5f50..1cfa13c 100644 --- a/src/test/java/com/gxwebsoft/generator/SysGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/SysGenerator.java @@ -72,7 +72,8 @@ public class SysGenerator { // "sys_order_info", // "sys_user_collection", // "sys_user", - "sys_payment" +// "sys_payment" +// "sys_components" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{