This commit is contained in:
2026-06-12 15:31:20 +08:00
parent b23d3bfa79
commit 41935b7f0f
12 changed files with 859 additions and 0 deletions
@@ -0,0 +1,162 @@
package com.budwk.app.sys.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.sys.param.SysHomeTemplatePageForm;
import com.budwk.app.sys.services.SysHomeTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.validation.Valid;
/**
* PC home work template management controller.
*/
@IocBean
@At("/platform/sys/worktemplate")
@Ok("json:full")
@Api(value = "首页工作模板")
public class SysWorkTemplateController {
@Inject
private SysHomeTemplateService sysHomeTemplateService;
@At("")
@Ok("beetl:/platform/sys/worktemplate/index.html")
@SaCheckPermission("sys.worktemplate")
/**
* Opens the work template management page.
*/
public void index() {
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("分页数据")
/**
* Queries work templates with optional name filtering and stable sorting.
*/
public Result pageData(@Valid SysHomeTemplatePageForm pageForm) {
Cnd cnd = Cnd.NEW();
cnd.and(Cnd.likeEX(Sys_home_template::getName, pageForm.getName()));
cnd.asc(Sys_home_template::getSortNo);
Pagination pagination = sysHomeTemplateService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
return Result.success(pagination);
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("启用")
/**
* Enables a work template so it can be shown on the PC home page.
*/
public Result enable(@Valid String id) {
sysHomeTemplateService.update(Chain.make("enable", 1), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("关闭")
/**
* Disables a work template without deleting its configuration.
*/
public Result disable(@Valid String id) {
sysHomeTemplateService.update(Chain.make("enable", 0), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("修改模板名称")
/**
* Updates the custom display name for a work template.
*/
public Result updateTemplateName(@Valid String id, String templateName) {
if (StrUtil.isBlank(id)) {
return Result.error("参数错误");
}
sysHomeTemplateService.update(Chain.make("templateName", templateName), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("修改模板图标")
/**
* Updates the icon path used by the PC home template entry.
*/
public Result updateTemplateIcon(@Valid String id, String templateIcon) {
if (StrUtil.isBlank(id)) {
return Result.error("参数错误");
}
sysHomeTemplateService.update(Chain.make("templateIcon", templateIcon), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("修改模板文件")
/**
* Updates the template file path rendered by the PC home page.
*/
public Result updateTemplateFile(@Valid String id, String templateFile) {
if (StrUtil.isBlank(id)) {
return Result.error("参数错误");
}
sysHomeTemplateService.update(Chain.make("templateFile", templateFile), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("修改排序")
/**
* Updates template ordering and normalizes blank values to the default priority.
*/
public Result updateSortNo(@Valid String id, Integer sortNo) {
if (StrUtil.isBlank(id)) {
return Result.error("参数错误");
}
sysHomeTemplateService.update(Chain.make("sortNo", sortNo == null ? 0 : sortNo), Cnd.where("id", "=", id));
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("置顶")
/**
* Marks a template as pinned for priority display.
*/
public Result topUp(@Valid String id) {
Sys_home_template sysHomeTemplate = new Sys_home_template();
sysHomeTemplate.setId(id);
sysHomeTemplate.setTop(true);
sysHomeTemplateService.updateIgnoreNull(sysHomeTemplate);
return Result.success();
}
@At
@SaCheckPermission("sys.worktemplate")
@ApiOperation("取消置顶")
/**
* Removes the pinned flag from a template.
*/
public Result cancelTopUp(@Valid String id) {
Sys_home_template sysHomeTemplate = new Sys_home_template();
sysHomeTemplate.setId(id);
sysHomeTemplate.setTop(false);
sysHomeTemplateService.updateIgnoreNull(sysHomeTemplate);
return Result.success();
}
}
@@ -0,0 +1,109 @@
package com.budwk.app.sys.models;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
@Table
@Comment("首页工作模板")
public class Sys_home_template extends BaseModel {
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("主键ID,和业务ID保持一致")
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("模板名称")
private String name;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("展示模板名称")
private String templateName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 255)
@Comment("模板图标")
private String templateIcon;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("模板文件")
private String templateFile;
@Column
@ColDefine(type = ColType.VARCHAR, width = 255)
@Comment("模板封面")
private String cover;
@Column
@ColDefine(type = ColType.TEXT)
@Comment("模板内容")
private String content;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("模板链接")
private String url;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("h5模板链接")
private String h5Url;
@Column
@ColDefine(type = ColType.INT)
@Comment("面向人员分组ID")
private Integer allowUserGroupId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("允许查看的人员sql")
private String allowUserSql;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否启用")
@Default("0")
private Boolean enable;
@Column
@Comment("类路径")
@ColDefine(type = ColType.VARCHAR, width = 500)
private String classPath;
@Column
@Comment("是否置顶")
@ColDefine(type = ColType.BOOLEAN)
@Default("0")
private Boolean top;
@Column
@Comment("是否推送大图")
@ColDefine(type = ColType.BOOLEAN)
@Default("0")
private Boolean push;
@Column
@Comment("排序号")
@Default("0")
private Integer sortNo;
@Column
@Comment("开始时间")
@ColDefine(type = ColType.DATETIME)
private Date startDate;
@Column
@Comment("结束时间")
@ColDefine(type = ColType.DATETIME)
private Date endDate;
}
@@ -0,0 +1,17 @@
package com.budwk.app.sys.param;
import com.budwk.app.base.param.PageForm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("系统首页工作模板管理查询参数")
public class SysHomeTemplatePageForm extends PageForm {
@ApiModelProperty("模板名称")
private String name;
}
@@ -0,0 +1,10 @@
package com.budwk.app.sys.services;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.sys.models.Sys_home_template;
/**
* Service contract for PC home work template configuration.
*/
public interface SysHomeTemplateService extends BaseService<Sys_home_template> {
}
@@ -0,0 +1,23 @@
package com.budwk.app.sys.services.impl;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.sys.services.SysHomeTemplateService;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* Default service implementation for PC home work template configuration.
*/
@IocBean(args = {"refer:dao"})
public class SysHomeTemplateServiceImpl extends BaseServiceImpl<Sys_home_template> implements SysHomeTemplateService {
/**
* Creates the service with the shared Nutz Dao instance.
*
* @param dao shared database access object
*/
public SysHomeTemplateServiceImpl(Dao dao) {
super(dao);
}
}