diff --git a/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java b/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java index e7c26a9..d0814f1 100644 --- a/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java +++ b/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java @@ -41,190 +41,193 @@ import java.util.*; @Slf4j public class FlowDesignController { - @Inject - private SysUserService sysUserService; - @Inject - private ProcessDesignService processDesignService; - @Inject - private Dao dao; + @Inject + private SysUserService sysUserService; + @Inject + private ProcessDesignService processDesignService; + @Inject + private Dao dao; - // 获取所有任务参与者处理类 - public static final List ASSIGMENT_HANDLER_LIST; - // 获取所有候选用户处理类 - public static final List CANDIDATE_HANDLER_LIST; + // 获取所有任务参与者处理类 + public static final List ASSIGMENT_HANDLER_LIST; + // 获取所有候选用户处理类 + public static final List CANDIDATE_HANDLER_LIST; - static { - Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", AssignmentHandler.class); - ArrayList list = new ArrayList<>(classes.size()); - for (Class aClass : classes) { - try { - AssignmentHandler handler = (AssignmentHandler) ReflectUtil.newInstance(aClass); - JSONObject jsonObject = new JSONObject(); - jsonObject.set("value", handler.getClass().getName()); - jsonObject.set("order", handler.getOrder()); - jsonObject.set("name", handler.getMessage()); - list.add(jsonObject); - } catch (Exception e) { - log.error("初始化AssignmentHandler失败: {}", aClass.getName()); - } - } - // 排序 按order - list.sort(Comparator.comparingInt(o -> o.getInt("order"))); - ASSIGMENT_HANDLER_LIST = Collections.unmodifiableList(list); - } + static { + Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", AssignmentHandler.class); + ArrayList list = new ArrayList<>(classes.size()); + for (Class aClass : classes) { + try { + AssignmentHandler handler = (AssignmentHandler) ReflectUtil.newInstance(aClass); + JSONObject jsonObject = new JSONObject(); + jsonObject.set("value", handler.getClass().getName()); + jsonObject.set("order", handler.getOrder()); + jsonObject.set("name", handler.getMessage()); + list.add(jsonObject); + } catch (Exception e) { + log.error("初始化AssignmentHandler失败: {}", aClass.getName()); + } + } + // 排序 按order + list.sort(Comparator.comparingInt(o -> o.getInt("order"))); + ASSIGMENT_HANDLER_LIST = Collections.unmodifiableList(list); + } - static { - Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", CandidateHandler.class); - ArrayList list = new ArrayList<>(classes.size()); - for (Class aClass : classes) { - try { - CandidateHandler handler = (CandidateHandler) ReflectUtil.newInstance(aClass); - JSONObject jsonObject = new JSONObject(); - jsonObject.set("value", handler.getClass().getName()); - jsonObject.set("order", handler.getOrder()); - jsonObject.set("name", handler.getMessage()); - list.add(jsonObject); - } catch (Exception e) { - log.error("初始化CandidateHandler失败: {}", aClass.getName()); - } - } - // 排序 按order - list.sort(Comparator.comparingInt(o -> o.getInt("order"))); - CANDIDATE_HANDLER_LIST = Collections.unmodifiableList(list); - } + static { + Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", CandidateHandler.class); + ArrayList list = new ArrayList<>(classes.size()); + for (Class aClass : classes) { + try { + CandidateHandler handler = (CandidateHandler) ReflectUtil.newInstance(aClass); + JSONObject jsonObject = new JSONObject(); + jsonObject.set("value", handler.getClass().getName()); + jsonObject.set("order", handler.getOrder()); + jsonObject.set("name", handler.getMessage()); + list.add(jsonObject); + } catch (Exception e) { + log.error("初始化CandidateHandler失败: {}", aClass.getName()); + } + } + // 排序 按order + list.sort(Comparator.comparingInt(o -> o.getInt("order"))); + CANDIDATE_HANDLER_LIST = Collections.unmodifiableList(list); + } - @At("") - @Ok("beetl:/platform/flow/design/index.html") + @At("") + @Ok("beetl:/platform/flow/design/index.html") @SaCheckPermission("flow.design") - public void index() { - } + public void index() { + } - @At - @Ok("beetl:/platform/flow/design/designer.html") - @SaCheckLogin - public void designer(HttpServletRequest request) { - request.setAttribute("id", request.getParameter("id")); - } + @At + @Ok("beetl:/platform/flow/design/designer.html") + @SaCheckLogin + public void designer(HttpServletRequest request) { + request.setAttribute("id", request.getParameter("id")); + } - @At - @ApiOperation("获取流程设计分页列表") + @At + @ApiOperation("获取流程设计分页列表") @SaCheckPermission("flow.design") - public Result pageData(PageForm pageForm, String displayName, String name, String category, Boolean deployed) { - Cnd cnd = Cnd.NEW(); + public Result pageData(PageForm pageForm, String displayName, String name, String category, Boolean deployed) { + Cnd cnd = Cnd.NEW(); cnd.and(Cnd.likeEX(ProcessDesign::getDisplayName, displayName)); cnd.and(Cnd.likeEX(ProcessDesign::getName, name)); cnd.andEX(ProcessDesign::getCategory, "=", category); cnd.andEX(ProcessDesign::getIsDeployed, "=", deployed); - Pagination pagination = processDesignService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); - return Result.success(pagination); - } + Pagination pagination = processDesignService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); + return Result.success(pagination); + } - @At - @ApiOperation("保存流程设计") + @At + @ApiOperation("保存流程设计") @SaCheckPermission("flow.design") - public Result insert(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = new JSONObject(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - dao.insert(processDesign); - return Result.success(); - } + public Result insert(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + dao.insert(processDesign); + return Result.success(); + } - @At - @ApiOperation("修改流程设计") + @At + @ApiOperation("修改流程设计") @SaCheckPermission("flow.design") - public Result update(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = processDesign.getContent(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - processDesignService.update(processDesign); - return Result.success(); - } + public Result update(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = processDesign.getContent(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + processDesignService.update(processDesign); + return Result.success(); + } - @At - @ApiOperation("修改流程设计") + @At + @ApiOperation("修改流程设计") @SaCheckPermission("flow.design") - public Result updateContent(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = processDesign.getContent(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - processDesignService.update(processDesign); - return Result.success(); - } + public Result updateContent(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = processDesign.getContent(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + processDesignService.update(processDesign); + return Result.success(); + } - @At - @ApiOperation("删除流程设计") + @At + @ApiOperation("删除流程设计") @SaCheckPermission("flow.design") - public Result delete(@Param("id") Long id) { - dao.delete(ProcessDesign.class, id); - return Result.success(); - } + public Result delete(@Param("id") Long id) { + dao.delete(ProcessDesign.class, id); + return Result.success(); + } - @At - @SaCheckLogin - @ApiOperation("流程设计详情") - public Result detail(@Param("id") Long id) { - ProcessDesign design = dao.fetch(ProcessDesign.class, id); - return Result.success(design); - } + @At + @SaCheckLogin + @ApiOperation("流程设计详情") + public Result detail(@Param("id") Long id) { + ProcessDesign design = dao.fetch(ProcessDesign.class, id); + return Result.success(design); + } - @At - @ApiOperation("发布流程设计") - @Aop(TransAop.READ_COMMITTED) + @At + @ApiOperation("发布流程设计") + @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("flow.design") - public Result deploy(@Param("id") Long id) { - processDesignService.deploy(id); - return Result.success(); - } + public Result deploy(@Param("id") Long id) { + processDesignService.deploy(id); + return Result.success(); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者处理类") - public Result assigmentHandlerClass() { - return Result.success(ASSIGMENT_HANDLER_LIST); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者处理类") + public Result assigmentHandlerClass() { + return Result.success(ASSIGMENT_HANDLER_LIST); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者处理类") - public Result candidateHandlerClass() { - return Result.success(CANDIDATE_HANDLER_LIST); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者处理类") + public Result candidateHandlerClass() { + return Result.success(CANDIDATE_HANDLER_LIST); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者分页数据") - public Result assigneePage(Integer pageNumber, Integer pageSize, String searchKeyword, @Param("userIds") String[] userIds) { - Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition"); - Cnd cnd = Cnd.NEW(); + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者分页数据") + public Result assigneePage(Integer pageNumber, Integer pageSize, String searchKeyword, @Param("userIds") String[] userIds) { + Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition"); + Cnd cnd = Cnd.NEW(); if(StrUtil.isNotBlank(searchKeyword)) { SqlExpressionGroup group = new SqlExpressionGroup(); group.orLike("username", searchKeyword); @@ -233,17 +236,17 @@ public class FlowDesignController { } sql.setCondition(cnd); // cnd.andEX("id", "in", userIds); - Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql); - return Result.success(pagination); - } + Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql); + return Result.success(pagination); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者分页数据回显") - public Result assigneeEcho(@Param("userIds") String[] userIds) { - Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user where id in (@userIds)"); - sql.setParam("userIds", userIds); - List list = sysUserService.listMap(sql); - return Result.success(list); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者分页数据回显") + public Result assigneeEcho(@Param("userIds") String[] userIds) { + Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user where id in (@userIds)"); + sql.setParam("userIds", userIds); + List list = sysUserService.listMap(sql); + return Result.success(list); + } } diff --git a/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java b/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java index 974e3bb..d334adc 100644 --- a/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java +++ b/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java @@ -12,20 +12,25 @@ import org.nutz.dao.interceptor.annotation.PrevInsert; @Comment("流程分类") public class ProcessCategory extends BaseModel { - @Name - @Comment("ID") - @PrevInsert(uu32 = true) - @ColDefine(type = ColType.VARCHAR, width = 32) - private String id; + @Name + @Comment("ID") + @PrevInsert(uu32 = true) + @ColDefine(type = ColType.VARCHAR, width = 32) + private String id; - @Comment("名称") - @Column - @ColDefine(type = ColType.VARCHAR, width = 10) - private String name; + @Comment("名称") + @Column + @ColDefine(type = ColType.VARCHAR, width = 10) + private String name; - @Comment("图标") - @Column - @ColDefine(type = ColType.VARCHAR, width = 255) - private String icon; + @Comment("图片图标") + @Column + @ColDefine(type = ColType.VARCHAR, width = 255) + private String picIcon; + + @Comment("图标") + @Column + @ColDefine(type = ColType.VARCHAR, width = 255) + private String icon; } diff --git a/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java b/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java index 90f4cf4..065c04b 100644 --- a/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java +++ b/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java @@ -20,62 +20,66 @@ import org.nutz.dao.entity.annotation.*; @Comment("流程设计") public class ProcessDesign extends BaseModel { - @Comment("主键") - @Id - private Long id; + @Comment("主键") + @Id + private Long id; - @Comment("唯一编码") - @Column - private String name; + @Comment("唯一编码") + @Column + private String name; - @Comment("显示名称") - @Column - private String displayName; + @Comment("显示名称") + @Column + private String displayName; - @Comment("流程分类") - @Column - private String type; + @Comment("流程分类") + @Column + private String type; - @Comment("流程分类") - @Column - private String category; + @Comment("流程分类") + @Column + private String category; - @Comment("电脑端发起地址") - @Column - private String instanceUrl; + @Comment("电脑端发起地址") + @Column + private String instanceUrl; - @Comment("手机端发起地址") - @Column - private String h5InstanceUrl; + @Comment("手机端发起地址") + @Column + private String h5InstanceUrl; - @Comment("电脑端发起地址") - @Column - private String instanceViewUrl; + @Comment("电脑端发起地址") + @Column + private String instanceViewUrl; - @Comment("手机端发起地址") - @Column - private String h5InstanceViewUrl; + @Comment("手机端发起地址") + @Column + private String h5InstanceViewUrl; - @Comment("图标") - @Column - private String icon; + @Comment("图片图标") + @Column + private String picIcon; - @Comment("是否已部署") - @Column - private Integer isDeployed; + @Comment("图标") + @Column + private String icon; - @Comment("备注") - @Column - private String remark; + @Comment("是否已部署") + @Column + private Integer isDeployed; - @Comment("流程描述") - @Column - @ColDefine(type = ColType.TEXT) - private String description; + @Comment("备注") + @Column + private String remark; - @Comment("流程定义") - @Column - @ColDefine(type = ColType.MYSQL_JSON) - private JSONObject content; + @Comment("流程描述") + @Column + @ColDefine(type = ColType.TEXT) + private String description; + + @Comment("流程定义") + @Column + @ColDefine(type = ColType.MYSQL_JSON) + private JSONObject content; } diff --git a/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java b/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java index 1019e02..9a8ba24 100644 --- a/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java +++ b/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java @@ -35,36 +35,37 @@ import java.util.Map; @Api(value = "应用中心接口", tags = "应用中心接口") public class SysV4AppsController { - @Inject - private Dao dao; - @Inject - private SysMenuService sysMenuService; - @Inject - private SysUserService sysUserService; + @Inject + private Dao dao; + @Inject + private SysMenuService sysMenuService; + @Inject + private SysUserService sysUserService; - @At("/categories") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取应用分类") - public Result categories(@Param(value = "platform", df = "PC") String platform) { - List list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum)); - List> categories = list.stream().map(module -> { - Map category = new HashMap<>(); - category.put("id", module.getId()); - category.put("name", module.getName()); - category.put("icon", module.getIcon()); - return category; - }).toList(); - return Result.success("获取应用分类成功").addData(categories); - } + @At("/categories") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取应用分类") + public Result categories(@Param(value = "platform", df = "PC") String platform) { + List list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum)); + List> categories = list.stream().map(module -> { + Map category = new HashMap<>(); + category.put("id", module.getId()); + category.put("name", module.getName()); + category.put("icon", module.getFaIcon()); + category.put("picIcon", module.getIcon()); + return category; + }).toList(); + return Result.success("获取应用分类成功").addData(categories); + } - @At("/list") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取应用列表") - public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, @Param(value = "platform", df = "PC") String platform, HttpServletRequest req) { - List menus = sysUserService.getMenus(SecurityUtil.getUserId()); - Sql sql = Sqls.create(""" + @At("/list") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取应用列表") + public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, @Param(value = "platform", df = "PC") String platform, HttpServletRequest req) { + List menus = sysUserService.getMenus(SecurityUtil.getUserId()); + Sql sql = Sqls.create(""" SELECT m.id, m.`name`, @@ -83,28 +84,28 @@ public class SysV4AppsController { LEFT JOIN sys_module sm ON sm.id = m.moduleId $condition """); - Cnd cnd = Cnd.NEW(); - cnd.and("m.platform", "=", platform); - cnd.and("m.disabled", "=", false); - cnd.and(Cnd.exps("m.parentId", "is", null).or("m.parentId", "=", "")); - cnd.and("m.id","in", menus.stream().map(Sys_menu::getId).toArray()); - cnd.andEX("m.moduleId", "=", categoryId); - cnd.asc("m.location"); - if (StrUtil.isNotBlank(keyword)) { - cnd.where().andLike("m.name", keyword); - } - cnd.andEX("m.initialPinyinName", "=", letter); - sql.setCondition(cnd); - sql.setParam("userId", SecurityUtil.getUserId()); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + Cnd cnd = Cnd.NEW(); + cnd.and("m.platform", "=", platform); + cnd.and("m.disabled", "=", false); + cnd.and(Cnd.exps("m.parentId", "is", null).or("m.parentId", "=", "")); + cnd.and("m.id","in", menus.stream().map(Sys_menu::getId).toArray()); + cnd.andEX("m.moduleId", "=", categoryId); + cnd.asc("m.location"); + if (StrUtil.isNotBlank(keyword)) { + cnd.where().andLike("m.name", keyword); + } + cnd.andEX("m.initialPinyinName", "=", letter); + sql.setCondition(cnd); + sql.setParam("userId", SecurityUtil.getUserId()); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } - @At("/recommended") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取推荐应用") - public Result recommended(HttpServletRequest req) { + @At("/recommended") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取推荐应用") + public Result recommended(HttpServletRequest req) { // // 这里简单地返回前6个应用作为推荐应用 // int recommendCount = Math.min(6, APPS.size()); // List> recommendedApps = new ArrayList<>(); @@ -129,15 +130,15 @@ public class SysV4AppsController { // data.put("pageSize", recommendedApps.size()); // data.put("totalPage", 1); - return Result.success("获取推荐应用成功"); - } + return Result.success("获取推荐应用成功"); + } - @At("/favorite") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取收藏的应用") - public Result favorite(HttpServletRequest req) { - Sql sql = Sqls.create(""" + @At("/favorite") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取收藏的应用") + public Result favorite(HttpServletRequest req) { + Sql sql = Sqls.create(""" SELECT m.id, m.`name`, @@ -160,39 +161,39 @@ public class SysV4AppsController { ORDER BY m.location ASC; """); - sql.setParam("userId", SecurityUtil.getUserId()); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + sql.setParam("userId", SecurityUtil.getUserId()); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } - @At("/addFavorite") - @Ok("json") - @SaCheckLogin - @ApiOperation("添加收藏") - @Aop(TransAop.READ_COMMITTED) - public Result addFavorite(@Param("appId") String appId, HttpServletRequest req) { - if (Strings.isBlank(appId)) { - return Result.error("应用ID不能为空"); - } + @At("/addFavorite") + @Ok("json") + @SaCheckLogin + @ApiOperation("添加收藏") + @Aop(TransAop.READ_COMMITTED) + public Result addFavorite(@Param("appId") String appId, HttpServletRequest req) { + if (Strings.isBlank(appId)) { + return Result.error("应用ID不能为空"); + } - dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); + dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); - Sys_user_favorite_app app = new Sys_user_favorite_app(); - app.setAppId(appId); - app.setUserId(SecurityUtil.getUserId()); - dao.insert(app); - return Result.success("收藏成功"); - } + Sys_user_favorite_app app = new Sys_user_favorite_app(); + app.setAppId(appId); + app.setUserId(SecurityUtil.getUserId()); + dao.insert(app); + return Result.success("收藏成功"); + } - @At("/removeFavorite") - @Ok("json") - @SaCheckLogin - @ApiOperation("取消收藏") - public Result removeFavorite(@Param("appId") String appId, HttpServletRequest req) { - if (Strings.isBlank(appId)) { - return Result.error("应用ID不能为空"); - } - dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); - return Result.success("取消收藏成功"); - } + @At("/removeFavorite") + @Ok("json") + @SaCheckLogin + @ApiOperation("取消收藏") + public Result removeFavorite(@Param("appId") String appId, HttpServletRequest req) { + if (Strings.isBlank(appId)) { + return Result.error("应用ID不能为空"); + } + dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); + return Result.success("取消收藏成功"); + } } diff --git a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java index 49e5027..e12928e 100644 --- a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java +++ b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java @@ -26,27 +26,27 @@ import java.util.List; @Api(value = "服务中心接口", tags = "服务中心接口") public class SysV4ServController { - @Inject - private Dao dao; - @Inject - private SysMenuService sysMenuService; + @Inject + private Dao dao; + @Inject + private SysMenuService sysMenuService; - @At("/categories") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取分类") - public Result categories() { - List list = dao.query(ProcessCategory.class, Cnd.NEW()); - return Result.success(list); - } + @At("/categories") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取分类") + public Result categories() { + List list = dao.query(ProcessCategory.class, Cnd.NEW()); + return Result.success(list); + } - @At("/list") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取应用列表") - public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, HttpServletRequest req) { - Sql sql = Sqls.create(""" - SELECT t.* + @At("/list") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取应用列表") + public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, HttpServletRequest req) { + Sql sql = Sqls.create(""" + SELECT t.*,(select picIcon from wf_process_design where name = t.name) as picIcon FROM wf_process_define t INNER JOIN ( SELECT name, MAX(id) AS max_id @@ -55,15 +55,15 @@ public class SysV4ServController { ) sub ON t.name = sub.name AND t.id = sub.max_id $condition """); - Cnd cnd = Cnd.NEW(); - if (StrUtil.isNotBlank(keyword)) { - cnd.where().andLike("t.disPlayName", keyword); - } - cnd.andEX("t.category", "=", categoryId); - sql.setCondition(cnd); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + Cnd cnd = Cnd.NEW(); + if (StrUtil.isNotBlank(keyword)) { + cnd.where().andLike("t.disPlayName", keyword); + } + cnd.andEX("t.category", "=", categoryId); + sql.setCondition(cnd); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } } diff --git a/src/main/resources/static/assets/platform/img/home/family.png b/src/main/resources/static/assets/platform/img/home/family.png new file mode 100644 index 0000000..999418c Binary files /dev/null and b/src/main/resources/static/assets/platform/img/home/family.png differ diff --git a/src/main/resources/views/layouts/v4/apps.html b/src/main/resources/views/layouts/v4/apps.html index 2ef6c44..40c9387 100644 --- a/src/main/resources/views/layouts/v4/apps.html +++ b/src/main/resources/views/layouts/v4/apps.html @@ -159,6 +159,7 @@ layout("/layouts/v4/baseLayout.html"){ align-items: center; padding: 15px; position: relative; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); } .app-card:hover { @@ -193,7 +194,7 @@ layout("/layouts/v4/baseLayout.html"){ .favorite-icon { position: absolute; - bottom: 10px; + top: 10px; right: 10px; cursor: pointer; transition: all 0.3s; @@ -338,7 +339,8 @@ layout("/layouts/v4/baseLayout.html"){ :class="['apps-sidebar-item', activeCategory === category.id ? 'active' : '']" @click="changeCategory(category.id)" > - + + {{ category.name }} @@ -354,33 +356,35 @@ layout("/layouts/v4/baseLayout.html"){ -
-
首字母:
-
-
全部
-
- {{ letter }} -
-
-
+ + + + + + + + + + + + + +
- - - + + + +
{{ app.name }}
-
{{ app.department }}
+
{{ app.moduleName }}
{{ app.status }}
- -
-
- 推荐服务 -
-
- 推荐应用 -
-
- 我的收藏 -
-
- - -
-
-
-
- -
-
{{ item.name }}
-
-
-
📅
-

暂无数据

+
+ +
+
+ 推荐服务 +
+
+ 推荐应用 +
+
+ 我的收藏 +
+
+ + +
+
+
+
+ +
+
{{ item.name }}
-
-
-
+
+
+
`, data() { return { @@ -129,7 +125,6 @@ const entry = { margin-top: 5px; display: flex; gap: 20px; - margin-bottom: 20px; border-bottom: 2px solid #e8e8e8; padding-bottom: 10px; } @@ -173,12 +168,12 @@ const entry = { justify-items: center; /* 子项内容居中(图标和文字) */ justify-content: start; /* 整体网格靠左对齐,避免居中 */ - gap: 12px; - padding: 12px; + gap: 4px; + padding: 12px 4px; background: #fff; overflow-x: hidden; - - height: calc(350px - 74px); + + max-height: calc(350px - 74px); overflow-y: auto; } @@ -187,11 +182,11 @@ const entry = { display: flex; flex-direction: column; align-items: center; - padding: 12px; border-radius: 8px; background: #fff; width: 100%; max-width: 100%; + padding: 6px; transition: transform 0.2s ease, box-shadow 0.2s ease; } @@ -248,32 +243,5 @@ const entry = { gap: 12px; } } - - .no-entry-placeholder { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 40px 20px; - color: #94a3b8; - text-align: center; - } - - .no-entry-placeholder .icon { - font-size: 48px; - margin-bottom: 12px; - opacity: 0.6; - } - - .no-entry-placeholder p { - margin: 4px 0 0; - font-size: 16px; - font-weight: 500; - } - - .no-entry-placeholder .subtext { - font-size: 13px; - opacity: 0.8; - } ` }; diff --git a/src/main/resources/views/layouts/v4/home/stats.js b/src/main/resources/views/layouts/v4/home/stats.js index d4efb43..45c41b7 100644 --- a/src/main/resources/views/layouts/v4/home/stats.js +++ b/src/main/resources/views/layouts/v4/home/stats.js @@ -1,6 +1,9 @@ const stats = { template: /*language=HTML*/ `
+
+ +
- + + {{ category.name }}
@@ -350,29 +351,29 @@ layout("/layouts/v4/baseLayout.html"){
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
- +
diff --git a/src/main/resources/views/platform/flow/category/index.html b/src/main/resources/views/platform/flow/category/index.html index c3f5d20..38da03e 100644 --- a/src/main/resources/views/platform/flow/category/index.html +++ b/src/main/resources/views/platform/flow/category/index.html @@ -43,6 +43,15 @@ layout("/layouts/platform.html"){ :rules="{ required: true, message: '请输入类型名称', trigger: 'blur' }"> + + + diff --git a/src/main/resources/views/platform/flow/design/index.html b/src/main/resources/views/platform/flow/design/index.html index ee88633..0c5587e 100644 --- a/src/main/resources/views/platform/flow/design/index.html +++ b/src/main/resources/views/platform/flow/design/index.html @@ -101,6 +101,15 @@ layout("/layouts/platform.html"){ + + + diff --git a/src/main/resources/views/platform/zhghh5/sys/home/apps.js b/src/main/resources/views/platform/zhghh5/sys/home/apps.js index 2cbd981..d008215 100644 --- a/src/main/resources/views/platform/zhghh5/sys/home/apps.js +++ b/src/main/resources/views/platform/zhghh5/sys/home/apps.js @@ -5,11 +5,11 @@ const apps = { @@ -17,14 +17,16 @@ const apps = {
@@ -46,8 +48,7 @@ const apps = { @touchmove="onTouchMove">
- +
@@ -71,12 +72,13 @@ const apps = {