diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskCheckController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskCheckController.java similarity index 70% rename from cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskCheckController.java rename to cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskCheckController.java index 932d4066..10d15404 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskCheckController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskCheckController.java @@ -1,51 +1,45 @@ -package com.ruoyi.cxxm.controller; - -import java.io.IOException; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import javax.servlet.http.HttpServletResponse; - +package com.ruoyi.cxxm.controller.app; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; - import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.cxxm.domain.*; -import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; -import com.ruoyi.cxxm.domain.vo.TaskCheckSubmitVo; -import com.ruoyi.cxxm.domain.vo.app.AppTaskCheckListItem; -import com.ruoyi.cxxm.mapper.TaskCheckMapper; -import com.ruoyi.cxxm.service.*; -import org.springframework.beans.BeanUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.PageDomain; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; +import com.ruoyi.cxxm.domain.entity.Task; +import com.ruoyi.cxxm.domain.entity.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.Tbxx; +import com.ruoyi.cxxm.domain.vo.TaskCheckSubmitVo; +import com.ruoyi.cxxm.domain.vo.app.AppTaskCheckListItem; +import com.ruoyi.cxxm.mapper.TaskCheckMapper; +import com.ruoyi.cxxm.service.ITaskCheckAuditService; +import com.ruoyi.cxxm.service.ITaskCheckService; +import com.ruoyi.cxxm.service.ITaskService; +import com.ruoyi.cxxm.service.ITbxxService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Map; +import java.util.Objects; -/** - * 任务巡查记录Controller - * - * @author ruoyi - * @date 2024-03-28 - */ +@Api(tags = "app任务巡查相关接口") @RestController -@RequestMapping("/cxxm/taskCheck") -public class TaskCheckController extends BaseController { +@RequestMapping("/cxxm/app/taskCheck") +public class AppTaskCheckController extends BaseController { @Autowired private ITaskCheckService taskCheckService; @Autowired @@ -57,90 +51,6 @@ public class TaskCheckController extends BaseController { @Autowired private TaskCheckMapper taskCheckMapper; - /** - * 查询任务巡查记录列表 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:list')") - @GetMapping("/list") - public TableDataInfo list(TaskCheck taskCheck, PageDomain pageDomain) { - Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); - Page taskCheckPage = taskCheckService.page(page, new QueryWrapper<>(taskCheck)); - return getDataTableByPage(taskCheckPage); - } - - /** - * 导出任务巡查记录列表 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:export')") - @Log(title = "任务巡查记录导出", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, TaskCheck taskCheck) { - List list = taskCheckService.list(new QueryWrapper<>(taskCheck)); - ExcelUtil util = new ExcelUtil(TaskCheck.class); - util.exportExcel(response, list, "任务巡查记录数据"); - } - - /** - * 根据taskId获取任务巡查记录详细信息 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:query')") - @GetMapping(value = "/{taskId}") - public AjaxResult getInfoByTaskId(@PathVariable("taskId") Long taskId) { - TaskCheckSubmitVo taskCheckSubmitVo = taskCheckService.getTaskCheckSubmitVo(taskId); - return AjaxResult.success(taskCheckSubmitVo); - } - - /** - * 根据taskId获取任务巡查记录详细信息 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:query')") - @GetMapping(value = "/info/{tcId}") - public AjaxResult getInfoByTcId(@PathVariable("tcId") Long tcId) { - TaskCheckSubmitVo taskCheckSubmitVo = taskCheckService.getTaskCheckSubmitVoByTcId(tcId); - return AjaxResult.success(taskCheckSubmitVo); - } - - /** - * 新增任务巡查记录 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:add')") - @Log(title = "任务巡查记录填报", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody TaskCheckSubmit taskCheckSubmit) throws IOException { - taskCheckService.saveTaskCheckSubmit(taskCheckSubmit); - return AjaxResult.success(); - } - - /** - * 删除任务巡查记录 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:remove')") - @Log(title = "任务巡查记录删除", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable List ids) { - return toAjax(taskCheckService.removeByIds(ids)); - } - - /** - * 上报任务巡查记录 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:edit')") - @Log(title = "任务巡查记录上报", businessType = BusinessType.UPDATE) - @PutMapping("/report/{tcId}") - public AjaxResult report(@PathVariable Long tcId) { - return toAjax(taskCheckService.reportTaskCheckInfo(tcId)); - } - - /** - * 取消上报任务巡查记录 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:edit')") - @Log(title = "任务巡查记录上报", businessType = BusinessType.UPDATE) - @PutMapping("/cancelReport/{tcId}") - public AjaxResult cancelReport(@PathVariable Long tcId) { - return toAjax(taskCheckService.cancelReportTaskCheckInfo(tcId)); - } - /** * 查询用户提交的填报记录列表 * @@ -148,6 +58,7 @@ public class TaskCheckController extends BaseController { * @param pageDomain 分页参数 * @return TableDataInfo 包含分页数据的表格信息 */ + @ApiOperation(value = "用户巡查记录列表",notes = "获取当前用户填报记录") @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:list')") @GetMapping("/submitted/list") public TableDataInfo submittedList(TaskCheck taskCheck, PageDomain pageDomain) { @@ -162,7 +73,7 @@ public class TaskCheckController extends BaseController { MPJLambdaWrapper tcMPJQueryWrapper = new MPJLambdaWrapper() .selectAll(TaskCheck.class) .select(Task::getRwlx) - .leftJoin(Task.class, Task::getId,TaskCheck::getTaskId) + .leftJoin(Task.class, Task::getId, TaskCheck::getTaskId) .eq(TaskCheck::getXcryId, SecurityUtils.getUserId()) .eq(Objects.nonNull(taskCheck.getRwlx()), Task::getRwlx, taskCheck.getRwlx()); // 执行查询 @@ -203,5 +114,49 @@ public class TaskCheckController extends BaseController { return getDataTableByPageNewList(taskCheckPage, tcList); } -} + /** + * 新增任务巡查记录 + */ + @ApiOperation("填报巡查记录") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:add')") + @Log(title = "填报巡查记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TaskCheckSubmit taskCheckSubmit) throws IOException { + taskCheckService.saveTaskCheckSubmit(taskCheckSubmit); + return AjaxResult.success(); + } + /** + * 根据taskId获取任务巡查记录详细信息 + */ + @ApiOperation(value = "获取巡查记录详情", notes = "根据tcId获取巡查记录详情") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:query')") + @GetMapping(value = "/info/{tcId}") + public AjaxResult getInfoByTcId(@PathVariable("tcId") Long tcId) { + TaskCheckSubmitVo taskCheckSubmitVo = taskCheckService.getTaskCheckSubmitVoByTcId(tcId); + return AjaxResult.success(taskCheckSubmitVo); + } + + + /** + * 上报任务巡查记录 + */ + @ApiOperation(value = "上报巡查记录", notes = "根据tcId上报巡查记录") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:edit')") + @Log(title = "上报巡查记录", businessType = BusinessType.UPDATE) + @PutMapping("/report/{tcId}") + public AjaxResult report(@PathVariable Long tcId) { + return toAjax(taskCheckService.reportTaskCheckInfo(tcId)); + } + + /** + * 取消上报任务巡查记录 + */ + @ApiOperation(value = "取消上报巡查记录", notes = "根据tcId取消上报巡查记录") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:edit')") + @Log(title = "取消上报巡查记录", businessType = BusinessType.UPDATE) + @PutMapping("/cancelReport/{tcId}") + public AjaxResult cancelReport(@PathVariable Long tcId) { + return toAjax(taskCheckService.cancelReportTaskCheckInfo(tcId)); + } +} diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskController.java new file mode 100644 index 00000000..701bbdf7 --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTaskController.java @@ -0,0 +1,104 @@ +package com.ruoyi.cxxm.controller.app; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.cxxm.domain.entity.Task; +import com.ruoyi.cxxm.domain.entity.Tbxx; +import com.ruoyi.cxxm.domain.enums.SFGD; +import com.ruoyi.cxxm.domain.enums.XFQK; +import com.ruoyi.cxxm.domain.query.TaskQuery; +import com.ruoyi.cxxm.domain.vo.app.AppTaskListItem; +import com.ruoyi.cxxm.mapper.DeptMapper; +import com.ruoyi.cxxm.service.ITaskService; +import com.ruoyi.cxxm.service.ITbxxService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Api(tags = "app任务相关接口") +@RestController +@RequestMapping("/cxxm/app/task") +public class AppTaskController extends BaseController { + @Autowired + private ITaskService taskService; + @Autowired + private ITbxxService tbxxService; + @Autowired + private DeptMapper deptMapper; + + /** + * 查询任务巡查情况列表 + * + * @param task 包含任务基本信息的查询参数 + * @param pageDomain 分页参数 + * @return TableDataInfo 包含分页查询结果的数据信息 + */ + @ApiOperation("获取任务列表") + @PreAuthorize("@ss.hasPermi('cxxm:task:list')") + @GetMapping("/distributed/list") + public TableDataInfo distributedList(TaskQuery task, PageDomain pageDomain) { + // 初始化分页信息 + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); + // 构建查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 根据任务编号进行模糊查询 + queryWrapper.like(Objects.nonNull(task.getTbbh()), Task::getTbbh, task.getTbbh()); + // 查询已巡检的任务 + queryWrapper.eq(Task::getXfqk, XFQK.YXF.getValue()); + // 根据任务类型进行查询 + queryWrapper.eq(Objects.nonNull(task.getRwlx()), Task::getRwlx, task.getRwlx()); + // 处理是否完成的查询条件 + if (task.getSfgd() == null) { + queryWrapper.eq(Task::getSfgd, SFGD.FALSE.getValue()); + } else { + queryWrapper.eq(Task::getSfgd, task.getSfgd()); + } + // 查询条件中加入部门ID,包括所有父级部门 + queryWrapper.in(Objects.nonNull(task.getDeptId()), Task::getDeptId, deptMapper.getAllAncestorsByDeptId(task.getDeptId())); + // 根据日期范围进行查询 + List drsjQuery = task.getDrsjQuery(); + if (drsjQuery != null && drsjQuery.size() == 2) { + queryWrapper.apply(StringUtils.format("DATE_FORMAT(drsj, '%Y-%m') between '{}' and '{}'", drsjQuery.get(0), drsjQuery.get(1))); + } + // 排序设置 + queryWrapper.orderByAsc(Task::getXfqk); + queryWrapper.orderByDesc(Task::getXfsj); + queryWrapper.orderByDesc(Task::getDrsj); + // 执行查询 + Page taskPage = taskService.page(page, queryWrapper); + // 处理查询结果,转换为前端需要的格式 + ArrayList appTaskList = new ArrayList<>(); + for (Task item : page.getRecords()) { + AppTaskListItem appTaskListItem = new AppTaskListItem(); + BeanUtils.copyProperties(item, appTaskListItem); + // 获取任务详细信息,并处理 + Tbxx tbxx = tbxxService.selectTbxxByTbbh(item.getTbbh()); + Map tbxxMap = JSONObject.parseObject(tbxx.getInfo(), Map.class); + appTaskListItem.setXxdz(tbxxMap.get("KMDZ") != null ? tbxxMap.remove("KMDZ").toString() : ""); + appTaskListItem.setX(tbxxMap.get("KMX") != null ? tbxxMap.remove("KMX").toString() : ""); + appTaskListItem.setY(tbxxMap.get("KMY") != null ? tbxxMap.remove("KMY").toString() : ""); + // 更新处理后的详细信息 + tbxx.setInfo(JSON.toJSONString(tbxxMap)); + appTaskListItem.setTbxx(tbxx); + appTaskList.add(appTaskListItem); + } + // 返回处理后的分页数据 + return getDataTableByPageNewList(taskPage, appTaskList); + } +} diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTypeController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTypeController.java index 1a46009c..ec3ee4b1 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTypeController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppTypeController.java @@ -3,9 +3,10 @@ package com.ruoyi.cxxm.controller.app; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.cxxm.domain.vo.app.AppTypeVo; +import com.ruoyi.cxxm.domain.entity.AppType; import com.ruoyi.cxxm.mapper.AppTypeMapper; -import lombok.extern.slf4j.Slf4j; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; - +@Api(tags = "app类型相关接口") @RestController @RequestMapping("/cxxm/app/type") public class AppTypeController extends BaseController { @@ -24,17 +25,18 @@ public class AppTypeController extends BaseController { /** * 获取任务类型列表 * 该接口用于查询并返回任务类型的列表信息。 + * * @return TableDataInfo 返回包含任务类型列表信息的数据表格。 */ + @ApiOperation("获取app类型列表") @GetMapping("/list") - public TableDataInfo list() - { + public TableDataInfo list() { // 构建查询条件,查询字典类型为"task_lx"的任务类型信息 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(AppTypeVo::getDictType,"task_lx"); - queryWrapper.orderByAsc(AppTypeVo::getSort); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AppType::getDictType, "task_lx"); + queryWrapper.orderByAsc(AppType::getSort); // 根据查询条件查询任务类型列表 - List appTypeVos = appTypeMapper.selectList(queryWrapper); + List appTypeVos = appTypeMapper.selectList(queryWrapper); // 将查询结果转换为数据表格格式返回 return getDataTable(appTypeVos); } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppUserController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppUserController.java new file mode 100644 index 00000000..b1c2d674 --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppUserController.java @@ -0,0 +1,69 @@ +package com.ruoyi.cxxm.controller.app; + +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.cxxm.domain.dto.AppLoginBody; +import com.ruoyi.framework.web.service.SysLoginService; +import com.ruoyi.framework.web.service.SysPermissionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Set; + +/** + * 登录验证 + * + * @author ruoyi + */ +@Api(tags = "app用户相关接口") +@RestController +@RequestMapping("/cxxm/app/user") +public class AppUserController { + @Autowired + private SysLoginService loginService; + + @Autowired + private SysPermissionService permissionService; + + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @ApiOperation("用户登录") + @PostMapping("/login") + public AjaxResult login(@RequestBody AppLoginBody loginBody) { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), null, + null); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @ApiOperation("获取用户信息") + @GetMapping("/getInfo") + public AjaxResult getInfo() { + SysUser user = SecurityUtils.getLoginUser().getUser(); + // 角色集合 + Set roles = permissionService.getRolePermission(user); + // 权限集合 + Set permissions = permissionService.getMenuPermission(user); + AjaxResult ajax = AjaxResult.success(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + return ajax; + } +} diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppVersionController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppVersionController.java index 43989b6d..0f12b328 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppVersionController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/app/AppVersionController.java @@ -5,37 +5,41 @@ import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; - import com.ruoyi.common.core.text.StrFormatter; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.cxxm.domain.AppVersion; +import com.ruoyi.cxxm.domain.entity.AppVersion; import com.ruoyi.cxxm.service.IAppVersionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.UnknownHostException; +import static com.ruoyi.common.utils.file.ResourceUtils.resourceDownload; + /** * app版本Controller * * @author jian * @date 2024-04-11 */ -@Slf4j +@Api(tags = "app版本相关接口") @RestController -@RequestMapping("/cxxm/version") +@RequestMapping("/cxxm/app/version") public class AppVersionController extends BaseController { @Autowired private IAppVersionService appVersionService; - @Autowired - private Environment environment; /** * 检查是否有新版本可用 @@ -43,8 +47,9 @@ public class AppVersionController extends BaseController { * @param currentVersion 当前应用的版本号,格式为X.Y.Z(数字表示) * @return 返回新版本的信息或错误消息。如果成功查询到新版本,则返回新版本的信息;如果查询不到新版本或出现错误,则返回错误消息。 */ + @ApiOperation("检查是否有新版本") @GetMapping("/check") - public AjaxResult check(String currentVersion) { + public AjaxResult check(@ApiParam(value = "当前app版本号",required = true) String currentVersion) { // 验证传入的当前版本号是否为空或格式不正确 if (currentVersion == null || currentVersion.isEmpty() || !currentVersion.matches("\\d+\\.\\d+\\.\\d+")) { return AjaxResult.error("当前版本格式不正确或不能为空"); @@ -69,8 +74,9 @@ public class AppVersionController extends BaseController { } } - @GetMapping("/checkLastVersion") - public String checkLastVersion() throws UnknownHostException { + @ApiOperation("获取最新版本url") + @GetMapping("/getLastVersionUrl") + public String getLastVersionUrl() throws UnknownHostException { // 构建查询条件,查询比当前版本号大的且标记为需要更新的最新版本 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppVersion::getIsUpdate, "Y"); @@ -81,8 +87,9 @@ public class AppVersionController extends BaseController { return StrFormatter.format("http://116.63.157.3:8069/prod-api{}", appVersion.getApkUrl()); } - @GetMapping("/checkLastVersion2") - public void checkLastVersion2(HttpServletRequest request, HttpServletResponse response) throws Exception { + @ApiOperation("获取最新版本apk") + @GetMapping("/getLastVersionApK") + public void getLastVersionApK(HttpServletRequest request, HttpServletResponse response) throws Exception { // 构建查询条件,查询比当前版本号大的且标记为需要更新的最新版本 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppVersion::getIsUpdate, "Y"); @@ -92,26 +99,6 @@ public class AppVersionController extends BaseController { resourceDownload(appVersion.getApkUrl(), request, response); } - public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) - throws Exception { - try { - if (!FileUtils.checkAllowDownload(resource)) { - throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); - } - // 本地资源路径 - String localPath = RuoYiConfig.getProfile(); - // 数据库资源地址 - String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); - // 下载名称 - String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); - FileUtils.setAttachmentResponseHeader(response, downloadName); - FileUtils.writeBytes(downloadPath, response.getOutputStream()); - } catch (Exception e) { - log.error("下载文件失败", e); - } - } - } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/CxxmUserController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/CxxmUserController.java index ec6f914d..1ab01dab 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/CxxmUserController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/CxxmUserController.java @@ -5,14 +5,16 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.CxxmUser; -import com.ruoyi.system.domain.CxxmUserXJ; +import com.ruoyi.cxxm.domain.dto.CxxmUser; +import com.ruoyi.cxxm.domain.dto.CxxmUserXJ; +import com.ruoyi.cxxm.service.ICxxmUserService; import com.ruoyi.system.service.ISysUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -21,12 +23,13 @@ import java.util.List; import static com.ruoyi.common.core.domain.AjaxResult.success; import static com.ruoyi.common.utils.SecurityUtils.getUsername; +@Api(tags = "用户管理") @RestController @RequestMapping("/cxxm/user") public class CxxmUserController { @Autowired - private ISysUserService userService; + private ICxxmUserService userService; /** * 导入用户数据 @@ -35,10 +38,11 @@ public class CxxmUserController { * @return * @throws Exception */ - @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @ApiOperation("导入用户相关接口") + @Log(title = "导入用户数据", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + public AjaxResult importData(@ApiParam(value = "用户数据文件") @RequestPart MultipartFile file,@ApiParam(value = "是否更新已经存在的用户数据") @RequestParam(required = false) boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(CxxmUser.class); List userList = util.importExcel(file.getInputStream()); String operName = getUsername(); @@ -50,6 +54,7 @@ public class CxxmUserController { * 导入用户数据模板--州级 * @param response */ + @ApiOperation("获取导入用户模板-州级") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(CxxmUser.class); @@ -60,6 +65,7 @@ public class CxxmUserController { * 导入用户数据模板--县级 * @param response */ + @ApiOperation("获取导入用户模板-县级") @PostMapping("/importTemplateXJ") public void importTemplateXJ(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(CxxmUserXJ.class); diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckAuditController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckAuditController.java index 2399e948..1b72977f 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckAuditController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckAuditController.java @@ -2,11 +2,14 @@ package com.ruoyi.cxxm.controller.web; import java.util.List; import javax.servlet.http.HttpServletResponse; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -22,7 +25,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.cxxm.domain.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; import com.ruoyi.cxxm.service.ITaskCheckAuditService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -33,56 +36,53 @@ import com.ruoyi.common.core.page.TableDataInfo; * @author ruoyi * @date 2024-03-28 */ +@Api(tags = "任务巡查审核相关接口") @RestController @RequestMapping("/cxxm/taskCheckAudit") -public class TaskCheckAuditController extends BaseController -{ +public class TaskCheckAuditController extends BaseController { @Autowired private ITaskCheckAuditService taskCheckAuditService; -/** - * 查询任务巡查审核列表 - */ -@PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:list')") -@GetMapping("/list") - public TableDataInfo list(TaskCheckAudit taskCheckAudit, PageDomain pageDomain) - { - Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); - Page taskCheckAuditPage = taskCheckAuditService.page(page, new QueryWrapper<>(taskCheckAudit)); - return getDataTableByPage(taskCheckAuditPage); - } +// /** +// * 查询任务巡查审核列表 +// */ +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:list')") +// @GetMapping("/list") +// public TableDataInfo list(TaskCheckAudit taskCheckAudit, PageDomain pageDomain) { +// Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); +// Page taskCheckAuditPage = taskCheckAuditService.page(page, new QueryWrapper<>(taskCheckAudit)); +// return getDataTableByPage(taskCheckAuditPage); +// } - /** - * 导出任务巡查审核列表 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:export')") - @Log(title = "任务巡查审核", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, TaskCheckAudit taskCheckAudit) - { - List list = taskCheckAuditService.list(new QueryWrapper<>(taskCheckAudit)); - ExcelUtil util = new ExcelUtil(TaskCheckAudit.class); - util.exportExcel(response, list, "任务巡查审核数据"); - } +// /** +// * 导出任务巡查审核列表 +// */ +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:export')") +// @Log(title = "任务巡查审核", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(HttpServletResponse response, TaskCheckAudit taskCheckAudit) { +// List list = taskCheckAuditService.list(new QueryWrapper<>(taskCheckAudit)); +// ExcelUtil util = new ExcelUtil(TaskCheckAudit.class); +// util.exportExcel(response, list, "任务巡查审核数据"); +// } - /** - * 获取任务巡查审核详细信息 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return AjaxResult.success(taskCheckAuditService.getById(id)); - } +// /** +// * 获取任务巡查审核详细信息 +// */ +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:query')") +// @GetMapping(value = "/{id}") +// public AjaxResult getInfo(@PathVariable("id") Long id) { +// return AjaxResult.success(taskCheckAuditService.getById(id)); +// } /** * 新增任务巡查审核 */ + @ApiOperation("新增任务巡查审核") @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:add')") - @Log(title = "任务巡查审核", businessType = BusinessType.INSERT) + @Log(title = "新增任务巡查审核", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TaskCheckAudit taskCheckAudit) - { + public AjaxResult add(@RequestBody TaskCheckAudit taskCheckAudit) { taskCheckAudit.setShsj(DateUtils.getNowDate()); taskCheckAudit.setShryId(SecurityUtils.getUserId()); return toAjax(taskCheckAuditService.saveOrUpdate(taskCheckAudit)); @@ -91,25 +91,24 @@ public class TaskCheckAuditController extends BaseController /** * 修改任务巡查审核 */ + @ApiOperation("修改任务巡查审核") @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:edit')") - @Log(title = "任务巡查审核", businessType = BusinessType.UPDATE) + @Log(title = "修改任务巡查审核", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody TaskCheckAudit taskCheckAudit) - { + public AjaxResult edit(@RequestBody TaskCheckAudit taskCheckAudit) { taskCheckAudit.setShsj(DateUtils.getNowDate()); taskCheckAudit.setShryId(SecurityUtils.getUserId()); return toAjax(taskCheckAuditService.saveOrUpdate(taskCheckAudit)); } - /** - * 删除任务巡查审核 - */ - @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:remove')") - @Log(title = "任务巡查审核", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable List ids) - { - return toAjax(taskCheckAuditService.removeByIds(ids)); - } +// /** +// * 删除任务巡查审核 +// */ +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheckAudit:remove')") +// @Log(title = "任务巡查审核", businessType = BusinessType.DELETE) +// @DeleteMapping("/{ids}") +// public AjaxResult remove(@PathVariable List ids) { +// return toAjax(taskCheckAuditService.removeByIds(ids)); +// } } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckController.java new file mode 100644 index 00000000..8ce8813a --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskCheckController.java @@ -0,0 +1,112 @@ +package com.ruoyi.cxxm.controller.web; + +import java.io.IOException; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import javax.servlet.http.HttpServletResponse; + + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; +import com.ruoyi.cxxm.domain.entity.Task; +import com.ruoyi.cxxm.domain.entity.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.Tbxx; +import com.ruoyi.cxxm.domain.vo.TaskCheckSubmitVo; +import com.ruoyi.cxxm.domain.vo.app.AppTaskCheckListItem; +import com.ruoyi.cxxm.mapper.TaskCheckMapper; +import com.ruoyi.cxxm.service.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + + +/** + * 任务巡查记录Controller + * + * @author ruoyi + * @date 2024-03-28 + */ +@Api(tags = "任务巡查相关接口") +@RestController +@RequestMapping("/cxxm/taskCheck") +public class TaskCheckController extends BaseController { + @Autowired + private ITaskCheckService taskCheckService; + @Autowired + private ITaskService taskService; + @Autowired + private ITbxxService tbxxService; + @Autowired + private ITaskCheckAuditService taskCheckAuditService; + @Autowired + private TaskCheckMapper taskCheckMapper; + + /** + * 根据taskId获取任务巡查记录详细信息 + */ + @ApiOperation(value = "获取任务巡查详情", notes = "根据taskId获取任务巡查详情") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:query')") + @GetMapping(value = "/{taskId}") + public AjaxResult getInfoByTaskId(@PathVariable("taskId") Long taskId) { + TaskCheckSubmitVo taskCheckSubmitVo = taskCheckService.getTaskCheckSubmitVo(taskId); + return AjaxResult.success(taskCheckSubmitVo); + } + + /** + * 根据taskId获取任务巡查记录详细信息 + */ + @ApiOperation(value = "获取任务巡查详情", notes = "根据tcId获取任务巡查详情") + @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:query')") + @GetMapping(value = "/info/{tcId}") + public AjaxResult getInfoByTcId(@PathVariable("tcId") Long tcId) { + TaskCheckSubmitVo taskCheckSubmitVo = taskCheckService.getTaskCheckSubmitVoByTcId(tcId); + return AjaxResult.success(taskCheckSubmitVo); + } + +// /** +// * 新增任务巡查记录 +// */ +// @ApiOperation("新增任务巡查记录") +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:add')") +// @Log(title = "新增任务巡查记录", businessType = BusinessType.INSERT) +// @PostMapping +// public AjaxResult add(@RequestBody TaskCheckSubmit taskCheckSubmit) throws IOException { +// taskCheckService.saveTaskCheckSubmit(taskCheckSubmit); +// return AjaxResult.success(); +// } + +// /** +// * 删除任务巡查记录 +// */ +// @PreAuthorize("@ss.hasPermi('cxxm:taskCheck:remove')") +// @Log(title = "删除任务巡查记录", businessType = BusinessType.DELETE) +// @DeleteMapping("/{ids}") +// public AjaxResult remove(@PathVariable List ids) { +// return toAjax(taskCheckService.removeByIds(ids)); +// } + + +} + diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskController.java similarity index 94% rename from cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskController.java rename to cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskController.java index 5f41651f..932dac08 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/TaskController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/TaskController.java @@ -1,11 +1,9 @@ -package com.ruoyi.cxxm.controller; +package com.ruoyi.cxxm.controller.web; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.*; import javax.servlet.http.HttpServletResponse; @@ -15,11 +13,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.core.text.StrFormatter; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Tbxx; import com.ruoyi.cxxm.domain.enums.SFGD; import com.ruoyi.cxxm.domain.enums.XFQK; import com.ruoyi.cxxm.domain.query.StatisticsQuery; @@ -29,6 +26,7 @@ import com.ruoyi.cxxm.domain.vo.app.AppTaskListItem; import com.ruoyi.cxxm.mapper.DeptMapper; import com.ruoyi.cxxm.service.IStatisticsService; import com.ruoyi.cxxm.service.ITbxxService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -45,7 +43,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.cxxm.domain.Task; +import com.ruoyi.cxxm.domain.entity.Task; import com.ruoyi.cxxm.service.ITaskService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -57,6 +55,7 @@ import org.springframework.web.multipart.MultipartFile; * @author ruoyi * @date 2024-03-28 */ +@Api(tags ="任务相关接口") @RestController @RequestMapping("/cxxm/task") public class TaskController extends BaseController { @@ -76,6 +75,7 @@ public class TaskController extends BaseController { * @param pageDomain 分页参数 * @return TableDataInfo 包含分页查询结果的数据信息 */ + @ApiOperation("获取任务列表") @PreAuthorize("@ss.hasPermi('cxxm:task:list')") @GetMapping("/list") public TableDataInfo list(TaskQuery task, PageDomain pageDomain) { @@ -118,8 +118,9 @@ public class TaskController extends BaseController { /** * 导出任务列表 */ + @ApiOperation("导出任务列表") @PreAuthorize("@ss.hasPermi('cxxm:task:export')") - @Log(title = "任务", businessType = BusinessType.EXPORT) + @Log(title = "导出任务列表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, Task task) { List list = taskService.list(new QueryWrapper<>(task)); @@ -133,6 +134,7 @@ public class TaskController extends BaseController { * @param id 任务的唯一标识符。 * @return 返回任务的详细信息,包括任务基础信息和扩展信息。 */ + @ApiOperation("获取任务详细信息") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { // 通过任务ID获取任务信息 @@ -160,8 +162,9 @@ public class TaskController extends BaseController { /** * 新增任务 */ + @ApiOperation("新增任务") @PreAuthorize("@ss.hasPermi('cxxm:task:add')") - @Log(title = "任务", businessType = BusinessType.INSERT) + @Log(title = "新增任务", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody Task task) { return toAjax(taskService.save(task)); @@ -170,8 +173,9 @@ public class TaskController extends BaseController { /** * 修改任务 */ + @ApiOperation("修改任务") @PreAuthorize("@ss.hasPermi('cxxm:task:edit')") - @Log(title = "任务", businessType = BusinessType.UPDATE) + @Log(title = "修改任务", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody Task task) { return toAjax(taskService.updateById(task)); @@ -180,6 +184,7 @@ public class TaskController extends BaseController { /** * 删除任务 */ + @ApiOperation("删除任务") @PreAuthorize("@ss.hasPermi('cxxm:task:remove')") @Log(title = "任务", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @@ -195,7 +200,8 @@ public class TaskController extends BaseController { * @return 返回导入结果 * @throws Exception 处理过程中可能抛出的异常 */ - @Log(title = "导入任务", businessType = BusinessType.IMPORT) + @ApiOperation("导入任务数据") + @Log(title = "导入任务数据", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('cxxm:task:import')") @PostMapping("/importData") public AjaxResult importData(MultipartFile file, String rwlx) throws Exception { @@ -261,8 +267,9 @@ public class TaskController extends BaseController { * @param ids 任务ID数组,表示需要下发的任务 * @return 返回操作结果,成功返回AjaxResult的SUCCESS,失败返回相应的错误信息 */ + @ApiOperation("下发任务") @PreAuthorize("@ss.hasPermi('cxxm:task:distribute')") - @Log(title = "任务", businessType = BusinessType.UPDATE) + @Log(title = "下发任务", businessType = BusinessType.UPDATE) @PutMapping("/distribute/{ids}") public AjaxResult distribute(@PathVariable Long[] ids) { List taskList = new ArrayList<>(); @@ -286,6 +293,7 @@ public class TaskController extends BaseController { * @param pageDomain 分页参数 * @return TableDataInfo 包含分页查询结果的数据信息 */ + @ApiOperation("查询已下发任务列表") @PreAuthorize("@ss.hasPermi('cxxm:task:list')") @GetMapping("/distributed/list") public TableDataInfo distributedList(TaskQuery task, PageDomain pageDomain) { @@ -385,6 +393,7 @@ public class TaskController extends BaseController { * @param ids 任务ID数组,表示需要禁用的任务 * @return 返回操作结果,成功返回AjaxResult的success字段为true,失败为false */ + @ApiOperation("禁用任务") @Log(title = "禁用任务", businessType = BusinessType.UPDATE) @PutMapping("/end/{ids}") public AjaxResult end(@PathVariable Long[] ids) { @@ -407,6 +416,7 @@ public class TaskController extends BaseController { * @param ids 任务ID数组,表示需要启用的任务的ID * @return 返回操作结果,成功返回AjaxResult的SUCCESS,失败返回相应的错误信息 */ + @ApiOperation("启用任务") @Log(title = "启用任务", businessType = BusinessType.UPDATE) @PutMapping("/restart/{ids}") public AjaxResult restart(@PathVariable Long[] ids) { @@ -428,6 +438,7 @@ public class TaskController extends BaseController { * @param statisticsQuery 统计数据查询条件 * @return 返回统计数据的结果,包括柱状图数据和折线图数据 */ + @ApiOperation("获取统计数据") @GetMapping("/statistics") public AjaxResult getStatistics(StatisticsQuery statisticsQuery) { // 调用服务获取任务统计数据 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/AppVersionManageController.java b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/VersionManageController.java similarity index 82% rename from cxxm/src/main/java/com/ruoyi/cxxm/controller/web/AppVersionManageController.java rename to cxxm/src/main/java/com/ruoyi/cxxm/controller/web/VersionManageController.java index f0aa490e..6e29e0b0 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/AppVersionManageController.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/controller/web/VersionManageController.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -22,7 +24,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.cxxm.domain.AppVersion; +import com.ruoyi.cxxm.domain.entity.AppVersion; import com.ruoyi.cxxm.service.IAppVersionService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -33,9 +35,10 @@ import com.ruoyi.common.core.page.TableDataInfo; * @author jian * @date 2024-04-11 */ +@Api(tags ="app版本管理") @RestController @RequestMapping("/cxxm/version") -public class AppVersionManageController extends BaseController +public class VersionManageController extends BaseController { @Autowired private IAppVersionService appVersionService; @@ -43,6 +46,7 @@ public class AppVersionManageController extends BaseController /** * 查询app版本列表 */ + @ApiOperation("查询app版本列表") @PreAuthorize("@ss.hasPermi('cxxm:version:list')") @GetMapping("/list") public TableDataInfo list(AppVersion appVersion, PageDomain pageDomain) @@ -57,8 +61,9 @@ public class AppVersionManageController extends BaseController /** * 导出app版本列表 */ + @ApiOperation("导出app版本列表") @PreAuthorize("@ss.hasPermi('cxxm:version:export')") - @Log(title = "app版本", businessType = BusinessType.EXPORT) + @Log(title = "导出app版本", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, AppVersion appVersion) { @@ -70,6 +75,7 @@ public class AppVersionManageController extends BaseController /** * 获取app版本详细信息 */ + @ApiOperation("获取app版本详细信息") @PreAuthorize("@ss.hasPermi('cxxm:version:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) @@ -80,8 +86,9 @@ public class AppVersionManageController extends BaseController /** * 新增app版本 */ + @ApiOperation("新增app版本") @PreAuthorize("@ss.hasPermi('cxxm:version:add')") - @Log(title = "app版本", businessType = BusinessType.INSERT) + @Log(title = "新增app版本", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody AppVersion appVersion) { @@ -91,8 +98,9 @@ public class AppVersionManageController extends BaseController /** * 修改app版本 */ + @ApiOperation("修改app版本") @PreAuthorize("@ss.hasPermi('cxxm:version:edit')") - @Log(title = "app版本", businessType = BusinessType.UPDATE) + @Log(title = "修改app版本", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody AppVersion appVersion) { @@ -102,8 +110,9 @@ public class AppVersionManageController extends BaseController /** * 删除app版本 */ + @ApiOperation("删除app版本") @PreAuthorize("@ss.hasPermi('cxxm:version:remove')") - @Log(title = "app版本", businessType = BusinessType.DELETE) + @Log(title = "删除app版本", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable List ids) { diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/AppLoginBody.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/AppLoginBody.java new file mode 100644 index 00000000..3d20ae57 --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/AppLoginBody.java @@ -0,0 +1,28 @@ +package com.ruoyi.cxxm.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; + +/** + * app用户登录对象 + * + * @author ruoyi + */ +@Data +@ApiModel(value = "App用户登录对象") +public class AppLoginBody +{ + /** + * 用户名 + */ + @ApiModelProperty(value = "用户名称",required = true) + private String username; + + /** + * 用户密码 + */ + @ApiModelProperty(value = "密码",required = true) + private String password; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUser.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUser.java similarity index 92% rename from ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUser.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUser.java index 65195974..a289c04f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUser.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUser.java @@ -1,4 +1,4 @@ -package com.ruoyi.system.domain; +package com.ruoyi.cxxm.domain.dto; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excels; @@ -32,37 +32,42 @@ public class CxxmUser extends BaseEntity { /** * 部门名称 */ - @Excel(name = "部门名称", type = Excel.Type.IMPORT, combo = {"楚雄彝族自治州", "楚雄市", "禄丰市", "大姚县", "姚安县", "武定县", "双柏县", "牟定县", "南华县", "永仁县", "元谋县"}) + @Excel(name = "部门名称", type = Excel.Type.IMPORT, combo = {"楚雄市", "禄丰市", "大姚县", "姚安县", "武定县", "双柏县", "牟定县", "南华县", "永仁县", "元谋县"}) private String deptName; /** * 部门名称 */ - @Excel(name = "角色类型", type = Excel.Type.IMPORT, combo = {"州级管理员", "县级管理员", "县级调查员"}) + @Excel(name = "角色类型", type = Excel.Type.IMPORT, combo = {"县级管理员", "县级调查员"}) private String roleName; /** * 用户账号 */ - @Excel(name = "登录名称") + @Excel(name = "用户账号") private String userName; + + @Excel(name = "归属乡镇") + private String groupName; + + /** * 用户昵称 */ - @Excel(name = "用户名称") + @Excel(name = "昵称(选填)") private String nickName; /** * 用户邮箱 */ - @Excel(name = "用户邮箱",type = Excel.Type.EXPORT) + @Excel(name = "用户邮箱(选填)") private String email; /** * 手机号码 */ - @Excel(name = "手机号码",type = Excel.Type.EXPORT) + @Excel(name = "手机号码(选填)") private String phonenumber; /** @@ -165,7 +170,6 @@ public class CxxmUser extends BaseEntity { this.deptId = deptId; } - @NotBlank(message = "部门名称不能为空") public String getDeptName() { return deptName; } @@ -319,6 +323,14 @@ public class CxxmUser extends BaseEntity { this.roleId = roleId; } + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -326,6 +338,7 @@ public class CxxmUser extends BaseEntity { .append("deptId", getDeptId()) .append("roleId", getRoleId()) .append("userName", getUserName()) + .append("groupName", getGroupName()) .append("nickName", getNickName()) .append("email", getEmail()) .append("phonenumber", getPhonenumber()) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUserXJ.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUserXJ.java similarity index 93% rename from ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUserXJ.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUserXJ.java index be3ff84f..47e8bcac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CxxmUserXJ.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/CxxmUserXJ.java @@ -1,10 +1,11 @@ -package com.ruoyi.system.domain; +package com.ruoyi.cxxm.domain.dto; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excels; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.xss.Xss; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -32,7 +33,6 @@ public class CxxmUserXJ extends BaseEntity { /** * 部门名称 */ - @Excel(name = "部门名称", type = Excel.Type.IMPORT, combo = {"楚雄市", "禄丰市", "大姚县", "姚安县", "武定县", "双柏县", "牟定县", "南华县", "永仁县", "元谋县"}) private String deptName; /** @@ -44,25 +44,30 @@ public class CxxmUserXJ extends BaseEntity { /** * 用户账号 */ - @Excel(name = "登录名称") + @Excel(name = "用户账号") private String userName; + + @Excel(name = "归属乡镇") + private String groupName; + + /** * 用户昵称 */ - @Excel(name = "用户名称") + @Excel(name = "昵称(选填)") private String nickName; /** * 用户邮箱 */ - @Excel(name = "用户邮箱",type = Excel.Type.EXPORT) + @Excel(name = "用户邮箱(选填)") private String email; /** * 手机号码 */ - @Excel(name = "手机号码",type = Excel.Type.EXPORT) + @Excel(name = "手机号码(选填)") private String phonenumber; /** @@ -165,7 +170,7 @@ public class CxxmUserXJ extends BaseEntity { this.deptId = deptId; } - @NotBlank(message = "部门名称不能为空") + public String getDeptName() { return deptName; } @@ -319,6 +324,14 @@ public class CxxmUserXJ extends BaseEntity { this.roleId = roleId; } + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -327,6 +340,7 @@ public class CxxmUserXJ extends BaseEntity { .append("roleId", getRoleId()) .append("userName", getUserName()) .append("nickName", getNickName()) + .append("groupName", getGroupName()) .append("email", getEmail()) .append("phonenumber", getPhonenumber()) .append("sex", getSex()) diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/TaskCheckSubmit.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/TaskCheckSubmit.java index c248542c..cc9cad1e 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/TaskCheckSubmit.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/dto/TaskCheckSubmit.java @@ -1,8 +1,8 @@ package com.ruoyi.cxxm.domain.dto; -import com.ruoyi.cxxm.domain.TaskCheck; -import com.ruoyi.cxxm.domain.TaskCheckImage; -import com.ruoyi.cxxm.domain.TaskCheckVideo; +import com.ruoyi.cxxm.domain.entity.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheckImage; +import com.ruoyi.cxxm.domain.entity.TaskCheckVideo; import lombok.Data; import java.util.List; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTypeVo.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppType.java similarity index 91% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTypeVo.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppType.java index d715cc0d..2ad58357 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTypeVo.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppType.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain.vo.app; +package com.ruoyi.cxxm.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,7 +7,7 @@ import lombok.Data; @Data @TableName("sys_dict_data") -public class AppTypeVo { +public class AppType { // 名称 @TableField(value = "dict_label") private String name; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/AppVersion.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppVersion.java similarity index 69% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/AppVersion.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppVersion.java index abdd72ac..c282b4e0 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/AppVersion.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/AppVersion.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ruoyi.common.annotation.Excel; @@ -6,6 +6,8 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -15,53 +17,63 @@ import lombok.Data; * @date 2024-04-11 */ @Data +@ApiModel(value = "app版本对象") public class AppVersion extends BaseEntity { private static final long serialVersionUID = 1L; /** id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; /** 最新版本号 */ + @ApiModelProperty(value = "最新版本号") @Excel(name = "最新版本号") private String newVersion; /** 最小版本号 */ + @ApiModelProperty(value = "最小版本号") @JsonIgnore @Excel(name = "最小版本号") private String minVersion; /** apk下载地址 */ + @ApiModelProperty(value = "apk下载地址") @Excel(name = "apk下载地址") private String apkUrl; /** 更新描述 */ + @ApiModelProperty(value = "更新描述") @Excel(name = "更新描述") private String updateDescription; /** 是否更新 */ + @ApiModelProperty(value = "是否更新") @Excel(name = "是否更新") private String isUpdate; /** 是否强制更新 */ + @ApiModelProperty(value = "是否强制更新") @Excel(name = "是否强制更新") private String forceUpdate; /** apk大小 */ + @ApiModelProperty(value = "apk大小") @Excel(name = "apk大小") private String apkSize; /** apk md5值 */ + @ApiModelProperty(value = "md5值") @Excel(name = "apk md5值") private String md5; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/Task.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Task.java similarity index 73% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/Task.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Task.java index 5626b419..4dddfe6e 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/Task.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Task.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import java.util.Date; @@ -8,6 +8,8 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -17,6 +19,7 @@ import lombok.Data; * @date 2024-03-28 */ @Data +@ApiModel(value = "任务对象") public class Task extends BaseEntity { private static final long serialVersionUID = 1L; @@ -24,6 +27,7 @@ public class Task extends BaseEntity { /** * id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; @@ -31,6 +35,7 @@ public class Task extends BaseEntity { /** * 图斑编号 */ + @ApiModelProperty(value = "图斑编号") @Excel(name = "图斑编号") private String tbbh; @@ -38,6 +43,7 @@ public class Task extends BaseEntity { /** * 任务类型 */ + @ApiModelProperty(value = "任务类型") @Excel(name = "任务类型") private String rwlx; @@ -45,6 +51,7 @@ public class Task extends BaseEntity { /** * 图斑所在县 */ + @ApiModelProperty(value = "图斑所在县") @Excel(name = "图斑所在县") private String tbszx; @@ -52,6 +59,7 @@ public class Task extends BaseEntity { /** * 导入人员id */ + @ApiModelProperty(value = "导入人员id") @Excel(name = "导入人员id") private Long drryId; @@ -59,6 +67,7 @@ public class Task extends BaseEntity { /** * 导入时间 */ + @ApiModelProperty(value = "导入时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "导入时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date drsj; @@ -67,6 +76,7 @@ public class Task extends BaseEntity { /** * 下发情况 */ + @ApiModelProperty(value = "下发情况") @Excel(name = "下发情况") private String xfqk; @@ -74,6 +84,7 @@ public class Task extends BaseEntity { /** * 下发时间 */ + @ApiModelProperty(value = "下发时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date xfsj; @@ -82,6 +93,7 @@ public class Task extends BaseEntity { /** * 巡查周期选项 1每周 2每月 3自定义 */ + @ApiModelProperty(value = "巡查周期选项") @Excel(name = "巡查周期选项 1每周 2每月 3自定义") private String xczqxx; @@ -89,6 +101,7 @@ public class Task extends BaseEntity { /** * 巡查周期 单位(天) */ + @ApiModelProperty(value = "巡查周期") @Excel(name = "巡查周期 单位(天)") private Long xczq; @@ -96,6 +109,7 @@ public class Task extends BaseEntity { /** * 需巡查次数 */ + @ApiModelProperty(value = "需巡查次数") @Excel(name = "需巡查次数") private Long xxccs; @@ -103,6 +117,7 @@ public class Task extends BaseEntity { /** * 已巡查次数 */ + @ApiModelProperty(value = "已巡查次数") @Excel(name = "已巡查次数") private Long yxccs; @@ -110,6 +125,7 @@ public class Task extends BaseEntity { /** * 州级巡查次数 */ + @ApiModelProperty(value = "州级巡查次数") @Excel(name = "州级巡查次数") private Long zjxccs; @@ -117,12 +133,14 @@ public class Task extends BaseEntity { /** * 县级巡查次数 */ + @ApiModelProperty(value = "县级巡查次数") @Excel(name = "县级巡查次数") private Long xjxccs; /** * 最后巡查记录id */ + @ApiModelProperty(value = "最后巡查记录id") @Excel(name = "最后巡查记录id") private Long tcId; @@ -130,6 +148,7 @@ public class Task extends BaseEntity { /** * 最后巡查时间 */ + @ApiModelProperty(value = "最后巡查时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后巡查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date xcsj; @@ -138,6 +157,7 @@ public class Task extends BaseEntity { /** * 最后巡查人员id */ + @ApiModelProperty(value = "最后巡查人员id") @Excel(name = "最后巡查人员id") private Long xcryId; @@ -145,6 +165,7 @@ public class Task extends BaseEntity { /** * 开始时间 */ + @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date kssj; @@ -153,6 +174,7 @@ public class Task extends BaseEntity { /** * 结束时间 */ + @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date jssj; @@ -161,6 +183,7 @@ public class Task extends BaseEntity { /** * 是否归档 */ + @ApiModelProperty(value = "是否归档") @Excel(name = "是否归档") private String sfgd; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheck.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheck.java similarity index 73% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheck.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheck.java index 117ec55c..b178b27f 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheck.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheck.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import java.util.Date; @@ -11,6 +11,8 @@ import com.ruoyi.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -20,12 +22,14 @@ import lombok.Data; * @date 2024-03-28 */ @Data +@ApiModel(value = "任务巡查对象") public class TaskCheck extends BaseEntity { private static final long serialVersionUID = 1L; /** * id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; @@ -33,6 +37,7 @@ public class TaskCheck extends BaseEntity { /** * 任务id */ + @ApiModelProperty(value = "任务id") @Excel(name = "任务id") private Long taskId; @@ -40,12 +45,14 @@ public class TaskCheck extends BaseEntity { /** * 上报情况 */ + @ApiModelProperty(value = "上报情况") @Excel(name = "上报情况") private String sfsb; /** * 巡查时间 */ + @ApiModelProperty(value = "巡查时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date sbsj; @@ -54,6 +61,7 @@ public class TaskCheck extends BaseEntity { /** * 是否完成 */ + @ApiModelProperty(value = "是否完成") @Excel(name = "是否完成") private String sfwc; @@ -61,6 +69,7 @@ public class TaskCheck extends BaseEntity { /** * 整改情况 */ + @ApiModelProperty(value = "整改情况") @Excel(name = "整改情况") private String zgqk; @@ -68,6 +77,7 @@ public class TaskCheck extends BaseEntity { /** * 巡查级别 */ + @ApiModelProperty(value = "巡查级别") @Excel(name = "巡查级别") private String xcjb; @@ -75,6 +85,7 @@ public class TaskCheck extends BaseEntity { /** * 巡查人员id */ + @ApiModelProperty(value = "巡查人员id") @Excel(name = "巡查人员id") private Long xcryId; @@ -82,6 +93,7 @@ public class TaskCheck extends BaseEntity { /** * 巡查时间 */ + @ApiModelProperty(value = "巡查时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "巡查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date xcsj; @@ -89,6 +101,7 @@ public class TaskCheck extends BaseEntity { /** * 任务类型 */ + @ApiModelProperty(value = "任务类型") @TableField(exist = false) private String rwlx; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckAudit.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckAudit.java similarity index 72% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckAudit.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckAudit.java index 150ea86f..64e3a051 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckAudit.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckAudit.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import java.util.Date; @@ -8,6 +8,8 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -17,6 +19,7 @@ import lombok.Data; * @date 2024-03-28 */ @Data +@ApiModel(value = "任务巡查审核对象") public class TaskCheckAudit extends BaseEntity { private static final long serialVersionUID = 1L; @@ -24,6 +27,7 @@ public class TaskCheckAudit extends BaseEntity { /** * id */ + @ApiModelProperty(name = "id") @TableId(type = IdType.AUTO) private Long id; @@ -31,6 +35,7 @@ public class TaskCheckAudit extends BaseEntity { /** * 任务巡查记录id */ + @ApiModelProperty(name = "任务巡查记录id") @Excel(name = "任务巡查记录id") private Long tcId; @@ -38,12 +43,14 @@ public class TaskCheckAudit extends BaseEntity { /** * 审核结果 */ + @ApiModelProperty(name = "审核结果") @Excel(name = "审核结果") private String shjg; /** * 审核说明 */ + @ApiModelProperty(name = "审核说明") @Excel(name = "审核说明") private String shsm; @@ -51,6 +58,7 @@ public class TaskCheckAudit extends BaseEntity { /** * 审核时间 */ + @ApiModelProperty(name = "审核时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date shsj; @@ -59,6 +67,7 @@ public class TaskCheckAudit extends BaseEntity { /** * 审核人员id */ + @ApiModelProperty(name = "审核人员id") @Excel(name = "审核人员id") private Long shryId; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckImage.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckImage.java similarity index 70% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckImage.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckImage.java index e20f781a..3291b685 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckImage.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckImage.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.annotation.Excel; @@ -7,6 +7,9 @@ import com.ruoyi.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @@ -18,6 +21,7 @@ import java.util.Date; * @date 2024-03-28 */ @Data +@ApiModel(value = "任务巡查图片对象") public class TaskCheckImage extends BaseEntity { private static final long serialVersionUID = 1L; @@ -25,6 +29,7 @@ public class TaskCheckImage extends BaseEntity { /** * id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; @@ -37,6 +42,7 @@ public class TaskCheckImage extends BaseEntity { /** * 任务巡查记录id */ + @ApiModelProperty(value = "任务巡查记录id") @Excel(name = "任务巡查记录id") private Long tcId; @@ -44,6 +50,7 @@ public class TaskCheckImage extends BaseEntity { /** * 经度 */ + @ApiModelProperty(value = "经度") @Excel(name = "经度") private String jd; @@ -51,6 +58,7 @@ public class TaskCheckImage extends BaseEntity { /** * 纬度 */ + @ApiModelProperty(value = "纬度") @Excel(name = "纬度") private String wd; @@ -58,6 +66,7 @@ public class TaskCheckImage extends BaseEntity { /** * 拍摄方向 */ + @ApiModelProperty(value = "拍摄方向") @Excel(name = "拍摄方向") private String psfx; @@ -65,6 +74,7 @@ public class TaskCheckImage extends BaseEntity { /** * 存储路径 */ + @ApiModelProperty(value = "存储路径") @Excel(name = "存储路径") private String cclj; @@ -72,6 +82,7 @@ public class TaskCheckImage extends BaseEntity { /** * 提交人员id */ + @ApiModelProperty(value = "提交人员id") @Excel(name = "提交人员id") private Long tjryId; @@ -79,6 +90,7 @@ public class TaskCheckImage extends BaseEntity { /** * 上传时间 */ + @ApiModelProperty(value = "上传时间") @Excel(name = "上传时间") private String scsj; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckVideo.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckVideo.java similarity index 70% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckVideo.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckVideo.java index 78d5d9ea..4c9b0c42 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/TaskCheckVideo.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/TaskCheckVideo.java @@ -1,4 +1,4 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.annotation.Excel; @@ -6,6 +6,8 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -15,6 +17,7 @@ import lombok.Data; * @date 2024-03-28 */ @Data +@ApiModel(value = "任务巡查视频对象") public class TaskCheckVideo extends BaseEntity { private static final long serialVersionUID = 1L; @@ -22,6 +25,7 @@ public class TaskCheckVideo extends BaseEntity { /** * id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; @@ -29,19 +33,15 @@ public class TaskCheckVideo extends BaseEntity { /** * 任务巡查记录id */ + @ApiModelProperty(value = "任务巡查记录id") @Excel(name = "任务巡查记录id") private Long tcId; -// /** -// * 源文件名 -// */ -// @TableField(exist = false) -// private String originFileName; - /** * 存储路径 */ + @ApiModelProperty(value = "存储路径") @Excel(name = "存储路径") private String cclj; @@ -49,6 +49,7 @@ public class TaskCheckVideo extends BaseEntity { /** * 提交人员id */ + @ApiModelProperty(value = "提交人员id") @Excel(name = "提交人员id") private Long tjryId; @@ -56,6 +57,7 @@ public class TaskCheckVideo extends BaseEntity { /** * 上传时间 */ + @ApiModelProperty(value = "上传时间") @Excel(name = "上传时间") private String scsj; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/Tbxx.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Tbxx.java similarity index 94% rename from cxxm/src/main/java/com/ruoyi/cxxm/domain/Tbxx.java rename to cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Tbxx.java index fd3fc6bc..121fc70f 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/Tbxx.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/entity/Tbxx.java @@ -1,10 +1,12 @@ -package com.ruoyi.cxxm.domain; +package com.ruoyi.cxxm.domain.entity; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -14,6 +16,7 @@ import lombok.Data; * @date 2024-03-28 */ @Data +@ApiModel(value = "图斑信息对象") public class Tbxx extends BaseEntity { private static final long serialVersionUID = 1L; @@ -21,6 +24,7 @@ public class Tbxx extends BaseEntity { /** * id */ + @ApiModelProperty(value = "id") @TableId(type = IdType.AUTO) private Long id; @@ -28,6 +32,7 @@ public class Tbxx extends BaseEntity { /** * 图斑编号 */ + @ApiModelProperty(value = "图斑编号") @Excel(name = "图斑编号") private String tbbh; // @@ -286,12 +291,14 @@ public class Tbxx extends BaseEntity { /** * 图斑基本信息 */ + @ApiModelProperty(value = "图斑基本信息") @Excel(name = "图斑基本信息") private String info; /** * 图斑空间信息 */ + @ApiModelProperty(value = "图斑空间信息") @Excel(name = "图斑空间信息") private String gis; } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/query/TaskQuery.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/query/TaskQuery.java index 3ac5c42a..2a8c4d24 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/query/TaskQuery.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/query/TaskQuery.java @@ -1,6 +1,6 @@ package com.ruoyi.cxxm.domain.query; -import com.ruoyi.cxxm.domain.Task; +import com.ruoyi.cxxm.domain.entity.Task; import lombok.Data; import java.util.List; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckLog.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckLog.java index 8a90bfd8..a8a55e89 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckLog.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckLog.java @@ -1,9 +1,9 @@ package com.ruoyi.cxxm.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; -import com.ruoyi.cxxm.domain.TaskCheckAudit; -import com.ruoyi.cxxm.domain.TaskCheckImage; -import com.ruoyi.cxxm.domain.TaskCheckVideo; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.TaskCheckImage; +import com.ruoyi.cxxm.domain.entity.TaskCheckVideo; import lombok.Data; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckSubmitVo.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckSubmitVo.java index f6d9e360..7037ca88 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckSubmitVo.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskCheckSubmitVo.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.domain.vo; -import com.ruoyi.cxxm.domain.TaskCheckAudit; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.Tbxx; import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; import lombok.Data; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskDetailVo.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskDetailVo.java index 0ca6e727..7ba7e129 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskDetailVo.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/TaskDetailVo.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.domain.vo; -import com.ruoyi.cxxm.domain.Task; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Task; +import com.ruoyi.cxxm.domain.entity.Tbxx; import lombok.Data; @Data diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskCheckListItem.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskCheckListItem.java index e579ccc5..f112f5be 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskCheckListItem.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskCheckListItem.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.domain.vo.app; -import com.ruoyi.cxxm.domain.TaskCheck; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.TaskCheck; +import com.ruoyi.cxxm.domain.entity.Tbxx; import lombok.Data; @Data diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskListItem.java b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskListItem.java index 108dca51..d0850b89 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskListItem.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/domain/vo/app/AppTaskListItem.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.domain.vo.app; -import com.ruoyi.cxxm.domain.Task; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Task; +import com.ruoyi.cxxm.domain.entity.Tbxx; import lombok.Data; @Data diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppTypeMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppTypeMapper.java index 911b2b2e..ad180c3f 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppTypeMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppTypeMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.cxxm.domain.vo.app.AppTypeVo; +import com.ruoyi.cxxm.domain.entity.AppType; -public interface AppTypeMapper extends BaseMapper { +public interface AppTypeMapper extends BaseMapper { } diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppVersionMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppVersionMapper.java index e674e41c..540ae5e6 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppVersionMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/AppVersionMapper.java @@ -1,7 +1,6 @@ package com.ruoyi.cxxm.mapper; -import java.util.List; -import com.ruoyi.cxxm.domain.AppVersion; +import com.ruoyi.cxxm.domain.entity.AppVersion; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckAuditMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckAuditMapper.java index 84aeebab..c860cced 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckAuditMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckAuditMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.cxxm.domain.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; /** * 任务巡查审核Mapper接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckImageMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckImageMapper.java index 5522b420..3e3720af 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckImageMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckImageMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.cxxm.domain.TaskCheckImage; +import com.ruoyi.cxxm.domain.entity.TaskCheckImage; /** * 任务巡查图片Mapper接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckMapper.java index 5ddc6ca1..3258159b 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckMapper.java @@ -1,8 +1,7 @@ package com.ruoyi.cxxm.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; -import com.ruoyi.cxxm.domain.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheck; /** * 任务巡查记录Mapper接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckVideoMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckVideoMapper.java index 3b7c7cca..a51b2fdf 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckVideoMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskCheckVideoMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.cxxm.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.cxxm.domain.TaskCheckVideo; +import com.ruoyi.cxxm.domain.entity.TaskCheckVideo; /** * 任务巡查视频Mapper接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskMapper.java index c98eb9bf..adcf66ba 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TaskMapper.java @@ -1,10 +1,9 @@ package com.ruoyi.cxxm.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; import com.ruoyi.common.annotation.DataScope; -import com.ruoyi.cxxm.domain.Task; +import com.ruoyi.cxxm.domain.entity.Task; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TbxxMapper.java b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TbxxMapper.java index 0daf409d..200dcc36 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TbxxMapper.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/mapper/TbxxMapper.java @@ -1,8 +1,7 @@ package com.ruoyi.cxxm.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Tbxx; import java.util.List; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/IAppVersionService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/IAppVersionService.java index f692f789..6f24bf94 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/IAppVersionService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/IAppVersionService.java @@ -1,7 +1,6 @@ package com.ruoyi.cxxm.service; -import java.util.List; -import com.ruoyi.cxxm.domain.AppVersion; +import com.ruoyi.cxxm.domain.entity.AppVersion; import com.baomidou.mybatisplus.extension.service.IService; /** * app版本Service接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ICxxmUserService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ICxxmUserService.java new file mode 100644 index 00000000..d2d5a1b0 --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ICxxmUserService.java @@ -0,0 +1,18 @@ +package com.ruoyi.cxxm.service; + +import com.ruoyi.cxxm.domain.dto.CxxmUser; +import com.ruoyi.system.service.ISysUserService; + +import java.util.List; + +public interface ICxxmUserService{ + + /** + * 导入楚雄项目用户数据 + * @param userList + * @param isUpdateSupport + * @param operName + * @return + */ + String importCxxmUser(List userList, Boolean isUpdateSupport, String operName); +} diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckAuditService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckAuditService.java index 890de4bf..f039d5cf 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckAuditService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckAuditService.java @@ -1,7 +1,6 @@ package com.ruoyi.cxxm.service; -import java.util.List; -import com.ruoyi.cxxm.domain.TaskCheckAudit; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; import com.baomidou.mybatisplus.extension.service.IService; /** * 任务巡查审核Service接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckImageService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckImageService.java index 2dc31dd6..b1699a62 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckImageService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckImageService.java @@ -1,7 +1,6 @@ package com.ruoyi.cxxm.service; -import java.util.List; -import com.ruoyi.cxxm.domain.TaskCheckImage; +import com.ruoyi.cxxm.domain.entity.TaskCheckImage; import com.baomidou.mybatisplus.extension.service.IService; /** * 任务巡查图片Service接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckService.java index e7639f23..7342fa82 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckService.java @@ -3,7 +3,7 @@ package com.ruoyi.cxxm.service; import java.io.IOException; import java.util.List; -import com.ruoyi.cxxm.domain.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheck; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; import com.ruoyi.cxxm.domain.vo.TaskCheckSubmitVo; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckVideoService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckVideoService.java index 974a78bc..b27facc9 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckVideoService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskCheckVideoService.java @@ -1,7 +1,6 @@ package com.ruoyi.cxxm.service; -import java.util.List; -import com.ruoyi.cxxm.domain.TaskCheckVideo; +import com.ruoyi.cxxm.domain.entity.TaskCheckVideo; import com.baomidou.mybatisplus.extension.service.IService; /** * 任务巡查视频Service接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskService.java index 5beaf985..5b908348 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITaskService.java @@ -1,10 +1,9 @@ package com.ruoyi.cxxm.service; import java.util.List; -import com.ruoyi.cxxm.domain.Task; +import com.ruoyi.cxxm.domain.entity.Task; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.cxxm.domain.Tbxx; -import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.cxxm.domain.entity.Tbxx; /** * 任务Service接口 diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITbxxService.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITbxxService.java index 4ec837a7..26856de5 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/ITbxxService.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/ITbxxService.java @@ -2,7 +2,7 @@ package com.ruoyi.cxxm.service; import java.util.List; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Tbxx; import com.baomidou.mybatisplus.extension.service.IService; /** diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/AppVersionServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/AppVersionServiceImpl.java index 60245d66..b75ad461 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/AppVersionServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/AppVersionServiceImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cxxm.mapper.AppVersionMapper; -import com.ruoyi.cxxm.domain.AppVersion; +import com.ruoyi.cxxm.domain.entity.AppVersion; import com.ruoyi.cxxm.service.IAppVersionService; import org.springframework.stereotype.Service; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/CxxmUserServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/CxxmUserServiceImpl.java new file mode 100644 index 00000000..0e9f69ea --- /dev/null +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/CxxmUserServiceImpl.java @@ -0,0 +1,132 @@ +package com.ruoyi.cxxm.service.impl; + +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import com.ruoyi.cxxm.domain.dto.CxxmUser; +import com.ruoyi.cxxm.service.ICxxmUserService; +import com.ruoyi.system.mapper.*; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.impl.SysUserServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.validation.Validator; +import java.util.List; +import java.util.Objects; + +@Service +public class CxxmUserServiceImpl implements ICxxmUserService { + private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); + + @Autowired + private SysUserMapper userMapper; + + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private ISysConfigService configService; + + @Autowired + protected Validator validator; + + @Autowired + private SysDeptMapper deptMapper; + + @Autowired + private ISysUserService userService; + + /** + * 导入用户数据 + * + * @param userList 用户数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + @Override + @Transactional + public String importCxxmUser(List userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { + throw new ServiceException("导入用户数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + String password = configService.selectConfigByKey("sys.user.initPassword"); + for (CxxmUser user : userList) { + try { + if (user.getNickName() == null || Objects.equals(user.getNickName(), "")) { + user.setNickName(user.getUserName()); + } + if (user.getDeptName() == null || Objects.equals(user.getDeptName(), "")) { + user.setDeptName(SecurityUtils.getLoginUser().getUser().getDept().getDeptName()); + } + // 验证是否存在这个用户 + SysUser u = userMapper.selectUserByUserName(user.getUserName()); + if (StringUtils.isNull(u)) { + BeanValidators.validateWithException(validator, user); + user.setPassword(SecurityUtils.encryptPassword(password)); + user.setCreateBy(operName); + SysUser newUser = createNewSysUserByCxxmUser(user); + userService.insertUser(newUser); + successNum++; + successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); + } else if (isUpdateSupport) { + BeanValidators.validateWithException(validator, user); + userService.checkUserAllowed(u); + userService.checkUserDataScope(u.getUserId()); + user.setUserId(u.getUserId()); + user.setUpdateBy(operName); + SysUser newUser = createNewSysUserByCxxmUser(user); + userService.updateUser(newUser); + successNum++; + successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); + } else { + failureNum++; + failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); + } + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + private SysUser createNewSysUserByCxxmUser(CxxmUser user) { + // 获取用户部门id + String deptName = user.getDeptName(); + SysDept userDept = deptMapper.selectDeptByDeptName(deptName); + Long deptId = userDept.getDeptId(); + // 获取用户角色id + String roleName = user.getRoleName(); + SysRole userRole = roleMapper.selectRoleByRoleName(roleName); + Long[] roleIds = {userRole.getRoleId()}; + // 构建新的用户对象 + SysUser sysUser = new SysUser(); + BeanUtils.copyProperties(user, sysUser); + sysUser.setDeptId(deptId); + sysUser.setRoleIds(roleIds); + return sysUser; + } +} diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckAuditServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckAuditServiceImpl.java index afaae71c..39b286e0 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckAuditServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckAuditServiceImpl.java @@ -2,12 +2,11 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.cxxm.domain.TaskCheck; +import com.ruoyi.cxxm.domain.entity.TaskCheck; import com.ruoyi.cxxm.domain.enums.SFWC; import com.ruoyi.cxxm.domain.enums.SHJG; import com.ruoyi.cxxm.mapper.TaskCheckAuditMapper; -import com.ruoyi.cxxm.domain.TaskCheckAudit; -import com.ruoyi.cxxm.mapper.TaskCheckMapper; +import com.ruoyi.cxxm.domain.entity.TaskCheckAudit; import com.ruoyi.cxxm.service.ITaskCheckAuditService; import com.ruoyi.cxxm.service.ITaskCheckService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckImageServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckImageServiceImpl.java index 8f3a0f38..3360ccd1 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckImageServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckImageServiceImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cxxm.mapper.TaskCheckImageMapper; -import com.ruoyi.cxxm.domain.TaskCheckImage; +import com.ruoyi.cxxm.domain.entity.TaskCheckImage; import com.ruoyi.cxxm.service.ITaskCheckImageService; import org.springframework.stereotype.Service; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckServiceImpl.java index e5c05009..38b57bab 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckServiceImpl.java @@ -2,8 +2,6 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.ServiceException; @@ -11,9 +9,8 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.cxxm.domain.*; import com.ruoyi.cxxm.domain.dto.TaskCheckSubmit; +import com.ruoyi.cxxm.domain.entity.*; import com.ruoyi.cxxm.domain.enums.*; import com.ruoyi.cxxm.domain.vo.TaskCheckLog; import com.ruoyi.cxxm.domain.vo.TaskCheckStatistics; @@ -21,8 +18,6 @@ import com.ruoyi.cxxm.domain.vo.TaskCheckSubmitVo; import com.ruoyi.cxxm.mapper.TaskCheckMapper; import com.ruoyi.cxxm.mapper.TaskMapper; import com.ruoyi.cxxm.service.*; -import lombok.Data; -import org.apache.bcel.generic.NEW; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckVideoServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckVideoServiceImpl.java index 3c58f1d9..f4f2a329 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckVideoServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskCheckVideoServiceImpl.java @@ -2,7 +2,7 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cxxm.mapper.TaskCheckVideoMapper; -import com.ruoyi.cxxm.domain.TaskCheckVideo; +import com.ruoyi.cxxm.domain.entity.TaskCheckVideo; import com.ruoyi.cxxm.service.ITaskCheckVideoService; import org.springframework.stereotype.Service; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskServiceImpl.java index f8c8217f..aa12365a 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TaskServiceImpl.java @@ -6,13 +6,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Tbxx; import com.ruoyi.cxxm.mapper.TaskMapper; -import com.ruoyi.cxxm.domain.Task; +import com.ruoyi.cxxm.domain.entity.Task; import com.ruoyi.cxxm.mapper.TbxxMapper; import com.ruoyi.cxxm.service.ITaskService; import com.ruoyi.system.mapper.SysDeptMapper; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TbxxServiceImpl.java b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TbxxServiceImpl.java index 03f234ff..c9a8ba2f 100644 --- a/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TbxxServiceImpl.java +++ b/cxxm/src/main/java/com/ruoyi/cxxm/service/impl/TbxxServiceImpl.java @@ -3,7 +3,7 @@ package com.ruoyi.cxxm.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.cxxm.mapper.TbxxMapper; -import com.ruoyi.cxxm.domain.Tbxx; +import com.ruoyi.cxxm.domain.entity.Tbxx; import com.ruoyi.cxxm.service.ITbxxService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/pom.xml b/pom.xml index 5e1d9dbf..1b6c9ba9 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,7 @@ 0.9.1 3.5.1 1.18.32 + 3.0.3 @@ -87,6 +88,13 @@ + + + com.github.xiaoymin + knife4j-spring-boot-starter + ${knife4j.version} + + commons-io diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 0ab6e6f7..82b56440 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -37,6 +37,12 @@ 1.6.2 + + + com.github.xiaoymin + knife4j-spring-boot-starter + + mysql @@ -70,6 +76,7 @@ com.ruoyi cxxm + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index 68473ddc..6b73882d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -114,6 +114,25 @@ public class CommonController { } } + @PostMapping("/uploadToCommon") + public AjaxResult uploadFilToCommon(MultipartFile file) throws Exception { + try { + // 上传文件路径 + String filePath = RuoYiConfig.getCommonPath(); + // 上传并返回新文件名称 + String fileName = FileUploadUtils.uploadToCommon(filePath, file); + String url = serverConfig.getUrl() + fileName; + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", url); + ajax.put("fileName", fileName); + ajax.put("newFileName", FileUtils.getName(fileName)); + ajax.put("originalFilename", file.getOriginalFilename()); + return ajax; + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + } + /** * 本地资源通用下载 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java index 95bcaece..ab4653dd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -1,133 +1,133 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.SysConfig; -import com.ruoyi.system.service.ISysConfigService; - -/** - * 参数配置 信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/config") -public class SysConfigController extends BaseController -{ - @Autowired - private ISysConfigService configService; - - /** - * 获取参数配置列表 - */ - @PreAuthorize("@ss.hasPermi('system:config:list')") - @GetMapping("/list") - public TableDataInfo list(SysConfig config) - { - startPage(); - List list = configService.selectConfigList(config); - return getDataTable(list); - } - - @Log(title = "参数管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:config:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysConfig config) - { - List list = configService.selectConfigList(config); - ExcelUtil util = new ExcelUtil(SysConfig.class); - util.exportExcel(response, list, "参数数据"); - } - - /** - * 根据参数编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:config:query')") - @GetMapping(value = "/{configId}") - public AjaxResult getInfo(@PathVariable Long configId) - { - return success(configService.selectConfigById(configId)); - } - - /** - * 根据参数键名查询参数值 - */ - @GetMapping(value = "/configKey/{configKey}") - public AjaxResult getConfigKey(@PathVariable String configKey) - { - return success(configService.selectConfigByKey(configKey)); - } - - /** - * 新增参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:add')") - @Log(title = "参数管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); - } - config.setCreateBy(getUsername()); - return toAjax(configService.insertConfig(config)); - } - - /** - * 修改参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:edit')") - @Log(title = "参数管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); - } - config.setUpdateBy(getUsername()); - return toAjax(configService.updateConfig(config)); - } - - /** - * 删除参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:remove')") - @Log(title = "参数管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{configIds}") - public AjaxResult remove(@PathVariable Long[] configIds) - { - configService.deleteConfigByIds(configIds); - return success(); - } - - /** - * 刷新参数缓存 - */ - @PreAuthorize("@ss.hasPermi('system:config:remove')") - @Log(title = "参数管理", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - configService.resetConfigCache(); - return success(); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.service.ISysConfigService; + +/** + * 参数配置 信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/config") +public class SysConfigController extends BaseController +{ + @Autowired + private ISysConfigService configService; + + /** + * 获取参数配置列表 + */ + @PreAuthorize("@ss.hasPermi('system:config:list')") + @GetMapping("/list") + public TableDataInfo list(SysConfig config) + { + startPage(); + List list = configService.selectConfigList(config); + return getDataTable(list); + } + + @Log(title = "参数管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:config:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysConfig config) + { + List list = configService.selectConfigList(config); + ExcelUtil util = new ExcelUtil(SysConfig.class); + util.exportExcel(response, list, "参数数据"); + } + + /** + * 根据参数编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:config:query')") + @GetMapping(value = "/{configId}") + public AjaxResult getInfo(@PathVariable Long configId) + { + return success(configService.selectConfigById(configId)); + } + + /** + * 根据参数键名查询参数值 + */ + @GetMapping(value = "/configKey/{configKey}") + public AjaxResult getConfigKey(@PathVariable String configKey) + { + return success(configService.selectConfigByKey(configKey)); + } + + /** + * 新增参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:add')") + @Log(title = "参数管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysConfig config) + { + if (!configService.checkConfigKeyUnique(config)) + { + return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setCreateBy(getUsername()); + return toAjax(configService.insertConfig(config)); + } + + /** + * 修改参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:edit')") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysConfig config) + { + if (!configService.checkConfigKeyUnique(config)) + { + return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setUpdateBy(getUsername()); + return toAjax(configService.updateConfig(config)); + } + + /** + * 删除参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:remove')") + @Log(title = "参数管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public AjaxResult remove(@PathVariable Long[] configIds) + { + configService.deleteConfigByIds(configIds); + return success(); + } + + /** + * 刷新参数缓存 + */ + @PreAuthorize("@ss.hasPermi('system:config:remove')") + @Log(title = "参数管理", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() + { + configService.resetConfigCache(); + return success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 4d70b655..59e75884 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,132 +1,132 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.service.ISysDeptService; - -/** - * 部门信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dept") -public class SysDeptController extends BaseController -{ - @Autowired - private ISysDeptService deptService; - - /** - * 获取部门列表 - */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") - @GetMapping("/list") - public AjaxResult list(SysDept dept) - { - List depts = deptService.selectDeptList(dept); - return success(depts); - } - - /** - * 查询部门列表(排除节点) - */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") - @GetMapping("/list/exclude/{deptId}") - public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) - { - List depts = deptService.selectDeptList(new SysDept()); - depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); - return success(depts); - } - - /** - * 根据部门编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:dept:query')") - @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@PathVariable Long deptId) - { - deptService.checkDeptDataScope(deptId); - return success(deptService.selectDeptById(deptId)); - } - - /** - * 新增部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:add')") - @Log(title = "部门管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDept dept) - { - if (!deptService.checkDeptNameUnique(dept)) - { - return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } - dept.setCreateBy(getUsername()); - return toAjax(deptService.insertDept(dept)); - } - - /** - * 修改部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:edit')") - @Log(title = "部门管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDept dept) - { - Long deptId = dept.getDeptId(); - deptService.checkDeptDataScope(deptId); - if (!deptService.checkDeptNameUnique(dept)) - { - return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } - else if (dept.getParentId().equals(deptId)) - { - return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); - } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) - { - return error("该部门包含未停用的子部门!"); - } - dept.setUpdateBy(getUsername()); - return toAjax(deptService.updateDept(dept)); - } - - /** - * 删除部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:remove')") - @Log(title = "部门管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{deptId}") - public AjaxResult remove(@PathVariable Long deptId) - { - if (deptService.hasChildByDeptId(deptId)) - { - return warn("存在下级部门,不允许删除"); - } - if (deptService.checkDeptExistUser(deptId)) - { - return warn("部门存在用户,不允许删除"); - } - deptService.checkDeptDataScope(deptId); - return toAjax(deptService.deleteDeptById(deptId)); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysDeptService; + +/** + * 部门信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dept") +public class SysDeptController extends BaseController +{ + @Autowired + private ISysDeptService deptService; + + /** + * 获取部门列表 + */ + @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/list") + public AjaxResult list(SysDept dept) + { + List depts = deptService.selectDeptList(dept); + return success(depts); + } + + /** + * 查询部门列表(排除节点) + */ + @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/list/exclude/{deptId}") + public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) + { + List depts = deptService.selectDeptList(new SysDept()); + depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); + return success(depts); + } + + /** + * 根据部门编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:dept:query')") + @GetMapping(value = "/{deptId}") + public AjaxResult getInfo(@PathVariable Long deptId) + { + deptService.checkDeptDataScope(deptId); + return success(deptService.selectDeptById(deptId)); + } + + /** + * 新增部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:add')") + @Log(title = "部门管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDept dept) + { + if (!deptService.checkDeptNameUnique(dept)) + { + return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } + dept.setCreateBy(getUsername()); + return toAjax(deptService.insertDept(dept)); + } + + /** + * 修改部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:edit')") + @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDept dept) + { + Long deptId = dept.getDeptId(); + deptService.checkDeptDataScope(deptId); + if (!deptService.checkDeptNameUnique(dept)) + { + return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } + else if (dept.getParentId().equals(deptId)) + { + return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + } + else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) + { + return error("该部门包含未停用的子部门!"); + } + dept.setUpdateBy(getUsername()); + return toAjax(deptService.updateDept(dept)); + } + + /** + * 删除部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:remove')") + @Log(title = "部门管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{deptId}") + public AjaxResult remove(@PathVariable Long deptId) + { + if (deptService.hasChildByDeptId(deptId)) + { + return warn("存在下级部门,不允许删除"); + } + if (deptService.checkDeptExistUser(deptId)) + { + return warn("部门存在用户,不允许删除"); + } + deptService.checkDeptDataScope(deptId); + return toAjax(deptService.deleteDeptById(deptId)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java index 1914b998..59becaf6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java @@ -1,121 +1,121 @@ -package com.ruoyi.web.controller.system; - -import java.util.ArrayList; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDictData; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDictDataService; -import com.ruoyi.system.service.ISysDictTypeService; - -/** - * 数据字典信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dict/data") -public class SysDictDataController extends BaseController -{ - @Autowired - private ISysDictDataService dictDataService; - - @Autowired - private ISysDictTypeService dictTypeService; - - @PreAuthorize("@ss.hasPermi('system:dict:list')") - @GetMapping("/list") - public TableDataInfo list(SysDictData dictData) - { - startPage(); - List list = dictDataService.selectDictDataList(dictData); - return getDataTable(list); - } - - @Log(title = "字典数据", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:dict:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictData dictData) - { - List list = dictDataService.selectDictDataList(dictData); - ExcelUtil util = new ExcelUtil(SysDictData.class); - util.exportExcel(response, list, "字典数据"); - } - - /** - * 查询字典数据详细 - */ - @PreAuthorize("@ss.hasPermi('system:dict:query')") - @GetMapping(value = "/{dictCode}") - public AjaxResult getInfo(@PathVariable Long dictCode) - { - return success(dictDataService.selectDictDataById(dictCode)); - } - - /** - * 根据字典类型查询字典数据信息 - */ - @GetMapping(value = "/type/{dictType}") - public AjaxResult dictType(@PathVariable String dictType) - { - List data = dictTypeService.selectDictDataByType(dictType); - if (StringUtils.isNull(data)) - { - data = new ArrayList(); - } - return success(data); - } - - /** - * 新增字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:add')") - @Log(title = "字典数据", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictData dict) - { - dict.setCreateBy(getUsername()); - return toAjax(dictDataService.insertDictData(dict)); - } - - /** - * 修改保存字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:edit')") - @Log(title = "字典数据", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictData dict) - { - dict.setUpdateBy(getUsername()); - return toAjax(dictDataService.updateDictData(dict)); - } - - /** - * 删除字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictCodes}") - public AjaxResult remove(@PathVariable Long[] dictCodes) - { - dictDataService.deleteDictDataByIds(dictCodes); - return success(); - } -} +package com.ruoyi.web.controller.system; + +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.system.service.ISysDictTypeService; + +/** + * 数据字典信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dict/data") +public class SysDictDataController extends BaseController +{ + @Autowired + private ISysDictDataService dictDataService; + + @Autowired + private ISysDictTypeService dictTypeService; + + @PreAuthorize("@ss.hasPermi('system:dict:list')") + @GetMapping("/list") + public TableDataInfo list(SysDictData dictData) + { + startPage(); + List list = dictDataService.selectDictDataList(dictData); + return getDataTable(list); + } + + @Log(title = "字典数据", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictData dictData) + { + List list = dictDataService.selectDictDataList(dictData); + ExcelUtil util = new ExcelUtil(SysDictData.class); + util.exportExcel(response, list, "字典数据"); + } + + /** + * 查询字典数据详细 + */ + @PreAuthorize("@ss.hasPermi('system:dict:query')") + @GetMapping(value = "/{dictCode}") + public AjaxResult getInfo(@PathVariable Long dictCode) + { + return success(dictDataService.selectDictDataById(dictCode)); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/type/{dictType}") + public AjaxResult dictType(@PathVariable String dictType) + { + List data = dictTypeService.selectDictDataByType(dictType); + if (StringUtils.isNull(data)) + { + data = new ArrayList(); + } + return success(data); + } + + /** + * 新增字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:add')") + @Log(title = "字典数据", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictData dict) + { + dict.setCreateBy(getUsername()); + return toAjax(dictDataService.insertDictData(dict)); + } + + /** + * 修改保存字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @Log(title = "字典数据", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictData dict) + { + dict.setUpdateBy(getUsername()); + return toAjax(dictDataService.updateDictData(dict)); + } + + /** + * 删除字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public AjaxResult remove(@PathVariable Long[] dictCodes) + { + dictDataService.deleteDictDataByIds(dictCodes); + return success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java index 98088424..c53867cb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -1,131 +1,131 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDictType; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDictTypeService; - -/** - * 数据字典信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dict/type") -public class SysDictTypeController extends BaseController -{ - @Autowired - private ISysDictTypeService dictTypeService; - - @PreAuthorize("@ss.hasPermi('system:dict:list')") - @GetMapping("/list") - public TableDataInfo list(SysDictType dictType) - { - startPage(); - List list = dictTypeService.selectDictTypeList(dictType); - return getDataTable(list); - } - - @Log(title = "字典类型", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:dict:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictType dictType) - { - List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil util = new ExcelUtil(SysDictType.class); - util.exportExcel(response, list, "字典类型"); - } - - /** - * 查询字典类型详细 - */ - @PreAuthorize("@ss.hasPermi('system:dict:query')") - @GetMapping(value = "/{dictId}") - public AjaxResult getInfo(@PathVariable Long dictId) - { - return success(dictTypeService.selectDictTypeById(dictId)); - } - - /** - * 新增字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:add')") - @Log(title = "字典类型", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); - } - dict.setCreateBy(getUsername()); - return toAjax(dictTypeService.insertDictType(dict)); - } - - /** - * 修改字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:edit')") - @Log(title = "字典类型", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); - } - dict.setUpdateBy(getUsername()); - return toAjax(dictTypeService.updateDictType(dict)); - } - - /** - * 删除字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictIds}") - public AjaxResult remove(@PathVariable Long[] dictIds) - { - dictTypeService.deleteDictTypeByIds(dictIds); - return success(); - } - - /** - * 刷新字典缓存 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - dictTypeService.resetDictCache(); - return success(); - } - - /** - * 获取字典选择框列表 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List dictTypes = dictTypeService.selectDictTypeAll(); - return success(dictTypes); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictType; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDictTypeService; + +/** + * 数据字典信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dict/type") +public class SysDictTypeController extends BaseController +{ + @Autowired + private ISysDictTypeService dictTypeService; + + @PreAuthorize("@ss.hasPermi('system:dict:list')") + @GetMapping("/list") + public TableDataInfo list(SysDictType dictType) + { + startPage(); + List list = dictTypeService.selectDictTypeList(dictType); + return getDataTable(list); + } + + @Log(title = "字典类型", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictType dictType) + { + List list = dictTypeService.selectDictTypeList(dictType); + ExcelUtil util = new ExcelUtil(SysDictType.class); + util.exportExcel(response, list, "字典类型"); + } + + /** + * 查询字典类型详细 + */ + @PreAuthorize("@ss.hasPermi('system:dict:query')") + @GetMapping(value = "/{dictId}") + public AjaxResult getInfo(@PathVariable Long dictId) + { + return success(dictTypeService.selectDictTypeById(dictId)); + } + + /** + * 新增字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:add')") + @Log(title = "字典类型", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictType dict) + { + if (!dictTypeService.checkDictTypeUnique(dict)) + { + return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dict.setCreateBy(getUsername()); + return toAjax(dictTypeService.insertDictType(dict)); + } + + /** + * 修改字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @Log(title = "字典类型", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictType dict) + { + if (!dictTypeService.checkDictTypeUnique(dict)) + { + return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dict.setUpdateBy(getUsername()); + return toAjax(dictTypeService.updateDictType(dict)); + } + + /** + * 删除字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictIds}") + public AjaxResult remove(@PathVariable Long[] dictIds) + { + dictTypeService.deleteDictTypeByIds(dictIds); + return success(); + } + + /** + * 刷新字典缓存 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() + { + dictTypeService.resetDictCache(); + return success(); + } + + /** + * 获取字典选择框列表 + */ + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + List dictTypes = dictTypeService.selectDictTypeAll(); + return success(dictTypes); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 009219e0..13007eb1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -1,29 +1,29 @@ -package com.ruoyi.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.utils.StringUtils; - -/** - * 首页 - * - * @author ruoyi - */ -@RestController -public class SysIndexController -{ - /** 系统基础配置 */ - @Autowired - private RuoYiConfig ruoyiConfig; - - /** - * 访问首页,提示语 - */ - @RequestMapping("/") - public String index() - { - return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); - } -} +package com.ruoyi.web.controller.system; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.utils.StringUtils; + +/** + * 首页 + * + * @author ruoyi + */ +@RestController +public class SysIndexController +{ + /** 系统基础配置 */ + @Autowired + private RuoYiConfig ruoyiConfig; + + /** + * 访问首页,提示语 + */ + @RequestMapping("/") + public String index() + { + return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index dab2bf87..d959a17e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,86 +1,86 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysMenu; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.framework.web.service.SysLoginService; -import com.ruoyi.framework.web.service.SysPermissionService; -import com.ruoyi.system.service.ISysMenuService; - -/** - * 登录验证 - * - * @author ruoyi - */ -@RestController -public class SysLoginController -{ - @Autowired - private SysLoginService loginService; - - @Autowired - private ISysMenuService menuService; - - @Autowired - private SysPermissionService permissionService; - - /** - * 登录方法 - * - * @param loginBody 登录信息 - * @return 结果 - */ - @PostMapping("/login") - public AjaxResult login(@RequestBody LoginBody loginBody) - { - AjaxResult ajax = AjaxResult.success(); - // 生成令牌 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), - loginBody.getUuid()); - ajax.put(Constants.TOKEN, token); - return ajax; - } - - /** - * 获取用户信息 - * - * @return 用户信息 - */ - @GetMapping("getInfo") - public AjaxResult getInfo() - { - SysUser user = SecurityUtils.getLoginUser().getUser(); - // 角色集合 - Set roles = permissionService.getRolePermission(user); - // 权限集合 - Set permissions = permissionService.getMenuPermission(user); - AjaxResult ajax = AjaxResult.success(); - ajax.put("user", user); - ajax.put("roles", roles); - ajax.put("permissions", permissions); - return ajax; - } - - /** - * 获取路由信息 - * - * @return 路由信息 - */ - @GetMapping("getRouters") - public AjaxResult getRouters() - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuTreeByUserId(userId); - return AjaxResult.success(menuService.buildMenus(menus)); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.web.service.SysLoginService; +import com.ruoyi.framework.web.service.SysPermissionService; +import com.ruoyi.system.service.ISysMenuService; + +/** + * 登录验证 + * + * @author ruoyi + */ +@RestController +public class SysLoginController +{ + @Autowired + private SysLoginService loginService; + + @Autowired + private ISysMenuService menuService; + + @Autowired + private SysPermissionService permissionService; + + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/login") + public AjaxResult login(@RequestBody LoginBody loginBody) + { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + loginBody.getUuid()); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("getInfo") + public AjaxResult getInfo() + { + SysUser user = SecurityUtils.getLoginUser().getUser(); + // 角色集合 + Set roles = permissionService.getRolePermission(user); + // 权限集合 + Set permissions = permissionService.getMenuPermission(user); + AjaxResult ajax = AjaxResult.success(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + return ajax; + } + + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("getRouters") + public AjaxResult getRouters() + { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuTreeByUserId(userId); + return AjaxResult.success(menuService.buildMenus(menus)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index eaaebd3e..03b6b656 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -1,142 +1,142 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysMenu; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.service.ISysMenuService; - -/** - * 菜单信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/menu") -public class SysMenuController extends BaseController -{ - @Autowired - private ISysMenuService menuService; - - /** - * 获取菜单列表 - */ - @PreAuthorize("@ss.hasPermi('system:menu:list')") - @GetMapping("/list") - public AjaxResult list(SysMenu menu) - { - List menus = menuService.selectMenuList(menu, getUserId()); - return success(menus); - } - - /** - * 根据菜单编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:menu:query')") - @GetMapping(value = "/{menuId}") - public AjaxResult getInfo(@PathVariable Long menuId) - { - return success(menuService.selectMenuById(menuId)); - } - - /** - * 获取菜单下拉树列表 - */ - @GetMapping("/treeselect") - public AjaxResult treeselect(SysMenu menu) - { - List menus = menuService.selectMenuList(menu, getUserId()); - return success(menuService.buildMenuTreeSelect(menus)); - } - - /** - * 加载对应角色菜单列表树 - */ - @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) - { - List menus = menuService.selectMenuList(getUserId()); - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); - ajax.put("menus", menuService.buildMenuTreeSelect(menus)); - return ajax; - } - - /** - * 新增菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:add')") - @Log(title = "菜单管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); - } - menu.setCreateBy(getUsername()); - return toAjax(menuService.insertMenu(menu)); - } - - /** - * 修改菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:edit')") - @Log(title = "菜单管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); - } - else if (menu.getMenuId().equals(menu.getParentId())) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); - } - menu.setUpdateBy(getUsername()); - return toAjax(menuService.updateMenu(menu)); - } - - /** - * 删除菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:remove')") - @Log(title = "菜单管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{menuId}") - public AjaxResult remove(@PathVariable("menuId") Long menuId) - { - if (menuService.hasChildByMenuId(menuId)) - { - return warn("存在子菜单,不允许删除"); - } - if (menuService.checkMenuExistRole(menuId)) - { - return warn("菜单已分配,不允许删除"); - } - return toAjax(menuService.deleteMenuById(menuId)); - } +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysMenuService; + +/** + * 菜单信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/menu") +public class SysMenuController extends BaseController +{ + @Autowired + private ISysMenuService menuService; + + /** + * 获取菜单列表 + */ + @PreAuthorize("@ss.hasPermi('system:menu:list')") + @GetMapping("/list") + public AjaxResult list(SysMenu menu) + { + List menus = menuService.selectMenuList(menu, getUserId()); + return success(menus); + } + + /** + * 根据菜单编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:menu:query')") + @GetMapping(value = "/{menuId}") + public AjaxResult getInfo(@PathVariable Long menuId) + { + return success(menuService.selectMenuById(menuId)); + } + + /** + * 获取菜单下拉树列表 + */ + @GetMapping("/treeselect") + public AjaxResult treeselect(SysMenu menu) + { + List menus = menuService.selectMenuList(menu, getUserId()); + return success(menuService.buildMenuTreeSelect(menus)); + } + + /** + * 加载对应角色菜单列表树 + */ + @GetMapping(value = "/roleMenuTreeselect/{roleId}") + public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) + { + List menus = menuService.selectMenuList(getUserId()); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); + ajax.put("menus", menuService.buildMenuTreeSelect(menus)); + return ajax; + } + + /** + * 新增菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:add')") + @Log(title = "菜单管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysMenu menu) + { + if (!menuService.checkMenuNameUnique(menu)) + { + return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + { + return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } + menu.setCreateBy(getUsername()); + return toAjax(menuService.insertMenu(menu)); + } + + /** + * 修改菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:edit')") + @Log(title = "菜单管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysMenu menu) + { + if (!menuService.checkMenuNameUnique(menu)) + { + return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + { + return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } + else if (menu.getMenuId().equals(menu.getParentId())) + { + return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + } + menu.setUpdateBy(getUsername()); + return toAjax(menuService.updateMenu(menu)); + } + + /** + * 删除菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:remove')") + @Log(title = "菜单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{menuId}") + public AjaxResult remove(@PathVariable("menuId") Long menuId) + { + if (menuService.hasChildByMenuId(menuId)) + { + return warn("存在子菜单,不允许删除"); + } + if (menuService.checkMenuExistRole(menuId)) + { + return warn("菜单已分配,不允许删除"); + } + return toAjax(menuService.deleteMenuById(menuId)); + } } \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 36c62b99..8622828f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -1,91 +1,91 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.system.domain.SysNotice; -import com.ruoyi.system.service.ISysNoticeService; - -/** - * 公告 信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/notice") -public class SysNoticeController extends BaseController -{ - @Autowired - private ISysNoticeService noticeService; - - /** - * 获取通知公告列表 - */ - @PreAuthorize("@ss.hasPermi('system:notice:list')") - @GetMapping("/list") - public TableDataInfo list(SysNotice notice) - { - startPage(); - List list = noticeService.selectNoticeList(notice); - return getDataTable(list); - } - - /** - * 根据通知公告编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:notice:query')") - @GetMapping(value = "/{noticeId}") - public AjaxResult getInfo(@PathVariable Long noticeId) - { - return success(noticeService.selectNoticeById(noticeId)); - } - - /** - * 新增通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:add')") - @Log(title = "通知公告", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysNotice notice) - { - notice.setCreateBy(getUsername()); - return toAjax(noticeService.insertNotice(notice)); - } - - /** - * 修改通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:edit')") - @Log(title = "通知公告", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysNotice notice) - { - notice.setUpdateBy(getUsername()); - return toAjax(noticeService.updateNotice(notice)); - } - - /** - * 删除通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:remove')") - @Log(title = "通知公告", businessType = BusinessType.DELETE) - @DeleteMapping("/{noticeIds}") - public AjaxResult remove(@PathVariable Long[] noticeIds) - { - return toAjax(noticeService.deleteNoticeByIds(noticeIds)); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.service.ISysNoticeService; + +/** + * 公告 信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/notice") +public class SysNoticeController extends BaseController +{ + @Autowired + private ISysNoticeService noticeService; + + /** + * 获取通知公告列表 + */ + @PreAuthorize("@ss.hasPermi('system:notice:list')") + @GetMapping("/list") + public TableDataInfo list(SysNotice notice) + { + startPage(); + List list = noticeService.selectNoticeList(notice); + return getDataTable(list); + } + + /** + * 根据通知公告编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:notice:query')") + @GetMapping(value = "/{noticeId}") + public AjaxResult getInfo(@PathVariable Long noticeId) + { + return success(noticeService.selectNoticeById(noticeId)); + } + + /** + * 新增通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:add')") + @Log(title = "通知公告", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysNotice notice) + { + notice.setCreateBy(getUsername()); + return toAjax(noticeService.insertNotice(notice)); + } + + /** + * 修改通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:edit')") + @Log(title = "通知公告", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysNotice notice) + { + notice.setUpdateBy(getUsername()); + return toAjax(noticeService.updateNotice(notice)); + } + + /** + * 删除通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:remove')") + @Log(title = "通知公告", businessType = BusinessType.DELETE) + @DeleteMapping("/{noticeIds}") + public AjaxResult remove(@PathVariable Long[] noticeIds) + { + return toAjax(noticeService.deleteNoticeByIds(noticeIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java index a5b96c87..c37a5435 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -1,129 +1,129 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.SysPost; -import com.ruoyi.system.service.ISysPostService; - -/** - * 岗位信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/post") -public class SysPostController extends BaseController -{ - @Autowired - private ISysPostService postService; - - /** - * 获取岗位列表 - */ - @PreAuthorize("@ss.hasPermi('system:post:list')") - @GetMapping("/list") - public TableDataInfo list(SysPost post) - { - startPage(); - List list = postService.selectPostList(post); - return getDataTable(list); - } - - @Log(title = "岗位管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:post:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysPost post) - { - List list = postService.selectPostList(post); - ExcelUtil util = new ExcelUtil(SysPost.class); - util.exportExcel(response, list, "岗位数据"); - } - - /** - * 根据岗位编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:post:query')") - @GetMapping(value = "/{postId}") - public AjaxResult getInfo(@PathVariable Long postId) - { - return success(postService.selectPostById(postId)); - } - - /** - * 新增岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:add')") - @Log(title = "岗位管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); - } - post.setCreateBy(getUsername()); - return toAjax(postService.insertPost(post)); - } - - /** - * 修改岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:edit')") - @Log(title = "岗位管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); - } - post.setUpdateBy(getUsername()); - return toAjax(postService.updatePost(post)); - } - - /** - * 删除岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:remove')") - @Log(title = "岗位管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{postIds}") - public AjaxResult remove(@PathVariable Long[] postIds) - { - return toAjax(postService.deletePostByIds(postIds)); - } - - /** - * 获取岗位选择框列表 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List posts = postService.selectPostAll(); - return success(posts); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.service.ISysPostService; + +/** + * 岗位信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/post") +public class SysPostController extends BaseController +{ + @Autowired + private ISysPostService postService; + + /** + * 获取岗位列表 + */ + @PreAuthorize("@ss.hasPermi('system:post:list')") + @GetMapping("/list") + public TableDataInfo list(SysPost post) + { + startPage(); + List list = postService.selectPostList(post); + return getDataTable(list); + } + + @Log(title = "岗位管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:post:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysPost post) + { + List list = postService.selectPostList(post); + ExcelUtil util = new ExcelUtil(SysPost.class); + util.exportExcel(response, list, "岗位数据"); + } + + /** + * 根据岗位编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:post:query')") + @GetMapping(value = "/{postId}") + public AjaxResult getInfo(@PathVariable Long postId) + { + return success(postService.selectPostById(postId)); + } + + /** + * 新增岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:add')") + @Log(title = "岗位管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysPost post) + { + if (!postService.checkPostNameUnique(post)) + { + return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } + else if (!postService.checkPostCodeUnique(post)) + { + return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } + post.setCreateBy(getUsername()); + return toAjax(postService.insertPost(post)); + } + + /** + * 修改岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:edit')") + @Log(title = "岗位管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysPost post) + { + if (!postService.checkPostNameUnique(post)) + { + return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } + else if (!postService.checkPostCodeUnique(post)) + { + return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } + post.setUpdateBy(getUsername()); + return toAjax(postService.updatePost(post)); + } + + /** + * 删除岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:remove')") + @Log(title = "岗位管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{postIds}") + public AjaxResult remove(@PathVariable Long[] postIds) + { + return toAjax(postService.deletePostByIds(postIds)); + } + + /** + * 获取岗位选择框列表 + */ + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + List posts = postService.selectPostAll(); + return success(posts); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index cd8abd6f..d5faedd7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -1,137 +1,137 @@ -package com.ruoyi.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.common.utils.file.MimeTypeUtils; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 个人信息 业务处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/user/profile") -public class SysProfileController extends BaseController -{ - @Autowired - private ISysUserService userService; - - @Autowired - private TokenService tokenService; - - /** - * 个人信息 - */ - @GetMapping - public AjaxResult profile() - { - LoginUser loginUser = getLoginUser(); - SysUser user = loginUser.getUser(); - AjaxResult ajax = AjaxResult.success(user); - ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); - ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); - return ajax; - } - - /** - * 修改用户 - */ - @Log(title = "个人信息", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult updateProfile(@RequestBody SysUser user) - { - LoginUser loginUser = getLoginUser(); - SysUser currentUser = loginUser.getUser(); - currentUser.setNickName(user.getNickName()); - currentUser.setEmail(user.getEmail()); - currentUser.setPhonenumber(user.getPhonenumber()); - currentUser.setSex(user.getSex()); - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) - { - return error("修改用户'" + loginUser.getUsername() + "'失败,手机号码已存在"); - } - if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) - { - return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在"); - } - if (userService.updateUserProfile(currentUser) > 0) - { - // 更新缓存用户信息 - tokenService.setLoginUser(loginUser); - return success(); - } - return error("修改个人信息异常,请联系管理员"); - } - - /** - * 重置密码 - */ - @Log(title = "个人信息", businessType = BusinessType.UPDATE) - @PutMapping("/updatePwd") - public AjaxResult updatePwd(String oldPassword, String newPassword) - { - LoginUser loginUser = getLoginUser(); - String userName = loginUser.getUsername(); - String password = loginUser.getPassword(); - if (!SecurityUtils.matchesPassword(oldPassword, password)) - { - return error("修改密码失败,旧密码错误"); - } - if (SecurityUtils.matchesPassword(newPassword, password)) - { - return error("新密码不能与旧密码相同"); - } - newPassword = SecurityUtils.encryptPassword(newPassword); - if (userService.resetUserPwd(userName, newPassword) > 0) - { - // 更新缓存用户密码 - loginUser.getUser().setPassword(newPassword); - tokenService.setLoginUser(loginUser); - return success(); - } - return error("修改密码异常,请联系管理员"); - } - - /** - * 头像上传 - */ - @Log(title = "用户头像", businessType = BusinessType.UPDATE) - @PostMapping("/avatar") - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception - { - if (!file.isEmpty()) - { - LoginUser loginUser = getLoginUser(); - String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); - if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("imgUrl", avatar); - // 更新缓存用户头像 - loginUser.getUser().setAvatar(avatar); - tokenService.setLoginUser(loginUser); - return ajax; - } - } - return error("上传图片异常,请联系管理员"); - } -} +package com.ruoyi.web.controller.system; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 个人信息 业务处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/user/profile") +public class SysProfileController extends BaseController +{ + @Autowired + private ISysUserService userService; + + @Autowired + private TokenService tokenService; + + /** + * 个人信息 + */ + @GetMapping + public AjaxResult profile() + { + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + AjaxResult ajax = AjaxResult.success(user); + ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); + ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); + return ajax; + } + + /** + * 修改用户 + */ + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult updateProfile(@RequestBody SysUser user) + { + LoginUser loginUser = getLoginUser(); + SysUser currentUser = loginUser.getUser(); + currentUser.setNickName(user.getNickName()); + currentUser.setEmail(user.getEmail()); + currentUser.setPhonenumber(user.getPhonenumber()); + currentUser.setSex(user.getSex()); + if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) + { + return error("修改用户'" + loginUser.getUsername() + "'失败,手机号码已存在"); + } + if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) + { + return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在"); + } + if (userService.updateUserProfile(currentUser) > 0) + { + // 更新缓存用户信息 + tokenService.setLoginUser(loginUser); + return success(); + } + return error("修改个人信息异常,请联系管理员"); + } + + /** + * 重置密码 + */ + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping("/updatePwd") + public AjaxResult updatePwd(String oldPassword, String newPassword) + { + LoginUser loginUser = getLoginUser(); + String userName = loginUser.getUsername(); + String password = loginUser.getPassword(); + if (!SecurityUtils.matchesPassword(oldPassword, password)) + { + return error("修改密码失败,旧密码错误"); + } + if (SecurityUtils.matchesPassword(newPassword, password)) + { + return error("新密码不能与旧密码相同"); + } + newPassword = SecurityUtils.encryptPassword(newPassword); + if (userService.resetUserPwd(userName, newPassword) > 0) + { + // 更新缓存用户密码 + loginUser.getUser().setPassword(newPassword); + tokenService.setLoginUser(loginUser); + return success(); + } + return error("修改密码异常,请联系管理员"); + } + + /** + * 头像上传 + */ + @Log(title = "用户头像", businessType = BusinessType.UPDATE) + @PostMapping("/avatar") + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception + { + if (!file.isEmpty()) + { + LoginUser loginUser = getLoginUser(); + String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); + if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) + { + AjaxResult ajax = AjaxResult.success(); + ajax.put("imgUrl", avatar); + // 更新缓存用户头像 + loginUser.getUser().setAvatar(avatar); + tokenService.setLoginUser(loginUser); + return ajax; + } + } + return error("上传图片异常,请联系管理员"); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index f1552e03..fe192492 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -1,38 +1,38 @@ -package com.ruoyi.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.model.RegisterBody; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.web.service.SysRegisterService; -import com.ruoyi.system.service.ISysConfigService; - -/** - * 注册验证 - * - * @author ruoyi - */ -@RestController -public class SysRegisterController extends BaseController -{ - @Autowired - private SysRegisterService registerService; - - @Autowired - private ISysConfigService configService; - - @PostMapping("/register") - public AjaxResult register(@RequestBody RegisterBody user) - { - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) - { - return error("当前系统没有开启注册功能!"); - } - String msg = registerService.register(user); - return StringUtils.isEmpty(msg) ? success() : error(msg); - } -} +package com.ruoyi.web.controller.system; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.RegisterBody; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.web.service.SysRegisterService; +import com.ruoyi.system.service.ISysConfigService; + +/** + * 注册验证 + * + * @author ruoyi + */ +@RestController +public class SysRegisterController extends BaseController +{ + @Autowired + private SysRegisterService registerService; + + @Autowired + private ISysConfigService configService; + + @PostMapping("/register") + public AjaxResult register(@RequestBody RegisterBody user) + { + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) + { + return error("当前系统没有开启注册功能!"); + } + String msg = registerService.register(user); + return StringUtils.isEmpty(msg) ? success() : error(msg); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index ebe7460e..232c5fa4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -1,262 +1,262 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.web.service.SysPermissionService; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 角色信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/role") -public class SysRoleController extends BaseController -{ - @Autowired - private ISysRoleService roleService; - - @Autowired - private TokenService tokenService; - - @Autowired - private SysPermissionService permissionService; - - @Autowired - private ISysUserService userService; - - @Autowired - private ISysDeptService deptService; - - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/list") - public TableDataInfo list(SysRole role) - { - startPage(); - List list = roleService.selectRoleList(role); - return getDataTable(list); - } - - @Log(title = "角色管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:role:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysRole role) - { - List list = roleService.selectRoleList(role); - ExcelUtil util = new ExcelUtil(SysRole.class); - util.exportExcel(response, list, "角色数据"); - } - - /** - * 根据角色编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@PathVariable Long roleId) - { - roleService.checkRoleDataScope(roleId); - return success(roleService.selectRoleById(roleId)); - } - - /** - * 新增角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:add')") - @Log(title = "角色管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysRole role) - { - if (!roleService.checkRoleNameUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setCreateBy(getUsername()); - return toAjax(roleService.insertRole(role)); - - } - - /** - * 修改保存角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - if (!roleService.checkRoleNameUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setUpdateBy(getUsername()); - - if (roleService.updateRole(role) > 0) - { - // 更新缓存用户权限 - LoginUser loginUser = getLoginUser(); - if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) - { - loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); - loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); - tokenService.setLoginUser(loginUser); - } - return success(); - } - return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); - } - - /** - * 修改保存数据权限 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/dataScope") - public AjaxResult dataScope(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.authDataScope(role)); - } - - /** - * 状态修改 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - role.setUpdateBy(getUsername()); - return toAjax(roleService.updateRoleStatus(role)); - } - - /** - * 删除角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:remove')") - @Log(title = "角色管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{roleIds}") - public AjaxResult remove(@PathVariable Long[] roleIds) - { - return toAjax(roleService.deleteRoleByIds(roleIds)); - } - - /** - * 获取角色选择框列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - return success(roleService.selectRoleAll()); - } - - /** - * 查询已分配用户角色列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/authUser/allocatedList") - public TableDataInfo allocatedList(SysUser user) - { - startPage(); - List list = userService.selectAllocatedList(user); - return getDataTable(list); - } - - /** - * 查询未分配用户角色列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/authUser/unallocatedList") - public TableDataInfo unallocatedList(SysUser user) - { - startPage(); - List list = userService.selectUnallocatedList(user); - return getDataTable(list); - } - - /** - * 取消授权用户 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancel") - public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) - { - return toAjax(roleService.deleteAuthUser(userRole)); - } - - /** - * 批量取消授权用户 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancelAll") - public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) - { - return toAjax(roleService.deleteAuthUsers(roleId, userIds)); - } - - /** - * 批量选择用户授权 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/selectAll") - public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) - { - roleService.checkRoleDataScope(roleId); - return toAjax(roleService.insertAuthUsers(roleId, userIds)); - } - - /** - * 获取对应角色部门树列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping(value = "/deptTree/{roleId}") - public AjaxResult deptTree(@PathVariable("roleId") Long roleId) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); - return ajax; - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.web.service.SysPermissionService; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 角色信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/role") +public class SysRoleController extends BaseController +{ + @Autowired + private ISysRoleService roleService; + + @Autowired + private TokenService tokenService; + + @Autowired + private SysPermissionService permissionService; + + @Autowired + private ISysUserService userService; + + @Autowired + private ISysDeptService deptService; + + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/list") + public TableDataInfo list(SysRole role) + { + startPage(); + List list = roleService.selectRoleList(role); + return getDataTable(list); + } + + @Log(title = "角色管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:role:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysRole role) + { + List list = roleService.selectRoleList(role); + ExcelUtil util = new ExcelUtil(SysRole.class); + util.exportExcel(response, list, "角色数据"); + } + + /** + * 根据角色编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/{roleId}") + public AjaxResult getInfo(@PathVariable Long roleId) + { + roleService.checkRoleDataScope(roleId); + return success(roleService.selectRoleById(roleId)); + } + + /** + * 新增角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:add')") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysRole role) + { + if (!roleService.checkRoleNameUnique(role)) + { + return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (!roleService.checkRoleKeyUnique(role)) + { + return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setCreateBy(getUsername()); + return toAjax(roleService.insertRole(role)); + + } + + /** + * 修改保存角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + if (!roleService.checkRoleNameUnique(role)) + { + return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (!roleService.checkRoleKeyUnique(role)) + { + return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setUpdateBy(getUsername()); + + if (roleService.updateRole(role) > 0) + { + // 更新缓存用户权限 + LoginUser loginUser = getLoginUser(); + if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) + { + loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); + loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); + tokenService.setLoginUser(loginUser); + } + return success(); + } + return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + } + + /** + * 修改保存数据权限 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/dataScope") + public AjaxResult dataScope(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + return toAjax(roleService.authDataScope(role)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + role.setUpdateBy(getUsername()); + return toAjax(roleService.updateRoleStatus(role)); + } + + /** + * 删除角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:remove')") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + public AjaxResult remove(@PathVariable Long[] roleIds) + { + return toAjax(roleService.deleteRoleByIds(roleIds)); + } + + /** + * 获取角色选择框列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + return success(roleService.selectRoleAll()); + } + + /** + * 查询已分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/allocatedList") + public TableDataInfo allocatedList(SysUser user) + { + startPage(); + List list = userService.selectAllocatedList(user); + return getDataTable(list); + } + + /** + * 查询未分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/unallocatedList") + public TableDataInfo unallocatedList(SysUser user) + { + startPage(); + List list = userService.selectUnallocatedList(user); + return getDataTable(list); + } + + /** + * 取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancel") + public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) + { + return toAjax(roleService.deleteAuthUser(userRole)); + } + + /** + * 批量取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancelAll") + public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) + { + return toAjax(roleService.deleteAuthUsers(roleId, userIds)); + } + + /** + * 批量选择用户授权 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/selectAll") + public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) + { + roleService.checkRoleDataScope(roleId); + return toAjax(roleService.insertAuthUsers(roleId, userIds)); + } + + /** + * 获取对应角色部门树列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/deptTree/{roleId}") + public AjaxResult deptTree(@PathVariable("roleId") Long roleId) + { + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return ajax; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index dc29d498..256367ba 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,251 +1,251 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysPostService; -import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 用户信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/user") -public class SysUserController extends BaseController -{ - @Autowired - private ISysUserService userService; - - @Autowired - private ISysRoleService roleService; - - @Autowired - private ISysDeptService deptService; - - @Autowired - private ISysPostService postService; - - /** - * 获取用户列表 - */ - @PreAuthorize("@ss.hasPermi('system:user:list')") - @GetMapping("/list") - public TableDataInfo list(SysUser user) - { - startPage(); - List list = userService.selectUserList(user); - return getDataTable(list); - } - - @Log(title = "用户管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:user:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) - { - List list = userService.selectUserList(user); - ExcelUtil util = new ExcelUtil(SysUser.class); - util.exportExcel(response, list, "用户数据"); - } - - @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @PreAuthorize("@ss.hasPermi('system:user:import')") - @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { - ExcelUtil util = new ExcelUtil(SysUser.class); - List userList = util.importExcel(file.getInputStream()); - String operName = getUsername(); - String message = userService.importUser(userList, updateSupport, operName); - return success(message); - } - - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) - { - ExcelUtil util = new ExcelUtil(SysUser.class); - util.importTemplateExcel(response, "用户数据"); - } - - /** - * 根据用户编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping(value = { "/", "/{userId}" }) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) - { - userService.checkUserDataScope(userId); - AjaxResult ajax = AjaxResult.success(); - List roles = roleService.selectRoleAll(); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - ajax.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) - { - SysUser sysUser = userService.selectUserById(userId); - ajax.put(AjaxResult.DATA_TAG, sysUser); - ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); - } - return ajax; - } - - /** - * 新增用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:add')") - @Log(title = "用户管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) - { - if (!userService.checkUserNameUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); - } - user.setCreateBy(getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - return toAjax(userService.insertUser(user)); - } - - /** - * 修改用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - if (!userService.checkUserNameUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); - } - user.setUpdateBy(getUsername()); - return toAjax(userService.updateUser(user)); - } - - /** - * 删除用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:remove')") - @Log(title = "用户管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { - if (ArrayUtils.contains(userIds, getUserId())) - { - return error("当前用户不能删除"); - } - return toAjax(userService.deleteUserByIds(userIds)); - } - - /** - * 重置密码 - */ - @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setUpdateBy(getUsername()); - return toAjax(userService.resetPwd(user)); - } - - /** - * 状态修改 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setUpdateBy(getUsername()); - return toAjax(userService.updateUserStatus(user)); - } - - /** - * 根据用户编号获取授权角色 - */ - @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable("userId") Long userId) - { - AjaxResult ajax = AjaxResult.success(); - SysUser user = userService.selectUserById(userId); - List roles = roleService.selectRolesByUserId(userId); - ajax.put("user", user); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - return ajax; - } - - /** - * 用户授权角色 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.GRANT) - @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) - { - userService.checkUserDataScope(userId); - userService.insertUserAuth(userId, roleIds); - return success(); - } - - /** - * 获取部门树列表 - */ - @PreAuthorize("@ss.hasPermi('system:user:list')") - @GetMapping("/deptTree") - public AjaxResult deptTree(SysDept dept) - { - return success(deptService.selectDeptTreeList(dept)); - } -} +package com.ruoyi.web.controller.system; + +import java.util.List; +import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 用户信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/user") +public class SysUserController extends BaseController +{ + @Autowired + private ISysUserService userService; + + @Autowired + private ISysRoleService roleService; + + @Autowired + private ISysDeptService deptService; + + @Autowired + private ISysPostService postService; + + /** + * 获取用户列表 + */ + @PreAuthorize("@ss.hasPermi('system:user:list')") + @GetMapping("/list") + public TableDataInfo list(SysUser user) + { + startPage(); + List list = userService.selectUserList(user); + return getDataTable(list); + } + + @Log(title = "用户管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:user:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysUser user) + { + List list = userService.selectUserList(user); + ExcelUtil util = new ExcelUtil(SysUser.class); + util.exportExcel(response, list, "用户数据"); + } + + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('system:user:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(SysUser.class); + List userList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = userService.importUser(userList, updateSupport, operName); + return success(message); + } + + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) + { + ExcelUtil util = new ExcelUtil(SysUser.class); + util.importTemplateExcel(response, "用户数据"); + } + + /** + * 根据用户编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:user:query')") + @GetMapping(value = { "/", "/{userId}" }) + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) + { + userService.checkUserDataScope(userId); + AjaxResult ajax = AjaxResult.success(); + List roles = roleService.selectRoleAll(); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("posts", postService.selectPostAll()); + if (StringUtils.isNotNull(userId)) + { + SysUser sysUser = userService.selectUserById(userId); + ajax.put(AjaxResult.DATA_TAG, sysUser); + ajax.put("postIds", postService.selectPostListByUserId(userId)); + ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); + } + return ajax; + } + + /** + * 新增用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:add')") + @Log(title = "用户管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysUser user) + { + if (!userService.checkUserNameUnique(user)) + { + return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) + { + return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + } + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) + { + return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + user.setCreateBy(getUsername()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + return toAjax(userService.insertUser(user)); + } + + /** + * 修改用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysUser user) + { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + if (!userService.checkUserNameUnique(user)) + { + return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) + { + return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + } + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) + { + return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + user.setUpdateBy(getUsername()); + return toAjax(userService.updateUser(user)); + } + + /** + * 删除用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:remove')") + @Log(title = "用户管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{userIds}") + public AjaxResult remove(@PathVariable Long[] userIds) + { + if (ArrayUtils.contains(userIds, getUserId())) + { + return error("当前用户不能删除"); + } + return toAjax(userService.deleteUserByIds(userIds)); + } + + /** + * 重置密码 + */ + @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + public AjaxResult resetPwd(@RequestBody SysUser user) + { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setUpdateBy(getUsername()); + return toAjax(userService.resetPwd(user)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysUser user) + { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + user.setUpdateBy(getUsername()); + return toAjax(userService.updateUserStatus(user)); + } + + /** + * 根据用户编号获取授权角色 + */ + @PreAuthorize("@ss.hasPermi('system:user:query')") + @GetMapping("/authRole/{userId}") + public AjaxResult authRole(@PathVariable("userId") Long userId) + { + AjaxResult ajax = AjaxResult.success(); + SysUser user = userService.selectUserById(userId); + List roles = roleService.selectRolesByUserId(userId); + ajax.put("user", user); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + return ajax; + } + + /** + * 用户授权角色 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.GRANT) + @PutMapping("/authRole") + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) + { + userService.checkUserDataScope(userId); + userService.insertUserAuth(userId, roleIds); + return success(); + } + + /** + * 获取部门树列表 + */ + @PreAuthorize("@ss.hasPermi('system:user:list')") + @GetMapping("/deptTree") + public AjaxResult deptTree(SysDept dept) + { + return success(deptService.selectDeptTreeList(dept)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java index 0b942450..4fc0f309 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -2,6 +2,7 @@ package com.ruoyi.web.core.config; import java.util.ArrayList; import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -24,30 +25,34 @@ import springfox.documentation.spring.web.plugins.Docket; /** * Swagger2的接口配置 - * + * * @author ruoyi */ @Configuration -public class SwaggerConfig -{ - /** 系统基础配置 */ +public class SwaggerConfig { + /** + * 系统基础配置 + */ @Autowired private RuoYiConfig ruoyiConfig; - /** 是否开启swagger */ + /** + * 是否开启swagger + */ @Value("${swagger.enabled}") private boolean enabled; - /** 设置请求的统一前缀 */ + /** + * 设置请求的统一前缀 + */ @Value("${swagger.pathMapping}") private String pathMapping; /** * 创建API */ - @Bean - public Docket createRestApi() - { + // @Bean + public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) // 是否启用Swagger .enable(enabled) @@ -68,11 +73,59 @@ public class SwaggerConfig .pathMapping(pathMapping); } + /** + * 创建API + */ + @Bean + public Docket createAppRestApi() { + return new Docket(DocumentationType.OAS_30) + // 是否启用Swagger + .enable(enabled) + // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) + .groupName("楚雄州外业辅助平台_APP接口文档") + .apiInfo(appApiInfo()) + // 设置哪些接口暴露给Swagger展示 + .select() + // 扫描所有有注解的api,用这种方式更灵活 +// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + // 扫描指定包中的swagger注解 + .apis(RequestHandlerSelectors.basePackage("com.ruoyi.cxxm.controller.app")) + // 扫描所有 .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build() + /* 设置安全模式,swagger可以设置访问token */ + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()) + .pathMapping(pathMapping); + } + + @Bean + public Docket createWebRestApi() { + return new Docket(DocumentationType.OAS_30) + // 是否启用Swagger + .enable(enabled) + // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) + .groupName("楚雄州外业辅助平台_Web接口文档") + .apiInfo(webApiInfo()) + // 设置哪些接口暴露给Swagger展示 + .select() + // 扫描所有有注解的api,用这种方式更灵活 +// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + // 扫描指定包中的swagger注解 + .apis(RequestHandlerSelectors.basePackage("com.ruoyi.cxxm.controller.web")) + // 扫描所有 .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build() + /* 设置安全模式,swagger可以设置访问token */ + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()) + .pathMapping(pathMapping); + } + /** * 安全模式,这里指定token通过Authorization头请求头传递 */ - private List securitySchemes() - { + private List securitySchemes() { List apiKeyList = new ArrayList(); apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); return apiKeyList; @@ -81,8 +134,7 @@ public class SwaggerConfig /** * 安全上下文 */ - private List securityContexts() - { + private List securityContexts() { List securityContexts = new ArrayList<>(); securityContexts.add( SecurityContext.builder() @@ -95,8 +147,7 @@ public class SwaggerConfig /** * 默认的安全上引用 */ - private List defaultAuth() - { + private List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; @@ -108,8 +159,7 @@ public class SwaggerConfig /** * 添加摘要信息 */ - private ApiInfo apiInfo() - { + private ApiInfo apiInfo() { // 用ApiInfoBuilder进行定制 return new ApiInfoBuilder() // 设置标题 @@ -122,4 +172,35 @@ public class SwaggerConfig .version("版本号:" + ruoyiConfig.getVersion()) .build(); } + + /** + * 添加摘要信息 + */ + private ApiInfo appApiInfo() { + // 用ApiInfoBuilder进行定制 + return new ApiInfoBuilder() + // 设置标题 + .title("楚雄州外业辅助平台_APP接口文档") + // 描述 + .description("描述:用于楚雄州外业辅助平台APP的接口文档") + // 作者信息 + .contact(new Contact("楚雄州外业辅助平台项目组", null, null)) + // 版本 + .version("版本号:" + "v1.0.0") + .build(); + } + + private ApiInfo webApiInfo() { + // 用ApiInfoBuilder进行定制 + return new ApiInfoBuilder() + // 设置标题 + .title("楚雄州外业辅助平台_Web接口文档") + // 描述 + .description("描述:用于楚雄州外业辅助平台Web的接口文档") + // 作者信息 + .contact(new Contact("楚雄州外业辅助平台项目组", null, null)) + // 版本 + .version("版本号:" + "v1.0.0") + .build(); + } } diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index b84793d5..d16fd3ec 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -16,7 +16,7 @@ ruoyi: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8080 + port: 8443 servlet: # 应用的访问路径 context-path: / @@ -30,6 +30,10 @@ server: max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 + ssl: #ssl配置 + key-store: classpath:fc2plus.cn.jks + key-store-type: JKS + key-store-password: sh5ts43c # 日志配置 logging: diff --git a/ruoyi-admin/src/main/resources/fc2plus.cn.jks b/ruoyi-admin/src/main/resources/fc2plus.cn.jks new file mode 100644 index 00000000..3e141106 Binary files /dev/null and b/ruoyi-admin/src/main/resources/fc2plus.cn.jks differ diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index ee758bbe..cdec0b7a 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -125,21 +125,37 @@ javax.servlet javax.servlet-api + com.baomidou mybatis-plus-boot-starter + com.github.yulichang mybatis-plus-join-boot-starter + com.deepoove poi-tl + + org.projectlombok + lombok + provided + + + + + io.swagger + swagger-models + 1.6.2 + + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java index eac3da15..eafc2b79 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -119,4 +119,12 @@ public class RuoYiConfig { return getProfile() + "/upload"; } + + /** + * 获取公共上传路径 + */ + public static String getCommonPath() + { + return getProfile() + "/common"; + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index 407c484b..d00d3ad9 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; /** * Entity基类 @@ -30,12 +31,14 @@ public class BaseEntity implements Serializable { /** * 创建者 */ + @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) private String createBy; /** * 创建时间 */ + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(value = "create_time", fill = FieldFill.INSERT) private Date createTime; @@ -43,12 +46,14 @@ public class BaseEntity implements Serializable { /** * 更新者 */ + @ApiModelProperty(value = "更新者") @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) private String updateBy; /** * 更新时间 */ + @ApiModelProperty(value = "更新时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) private Date updateTime; @@ -56,11 +61,13 @@ public class BaseEntity implements Serializable { /** * 备注 */ + @ApiModelProperty(value = "备注") private String remark; /** * 部门id */ + @ApiModelProperty(value = "部门id") @TableField(value = "dept_id", fill = FieldFill.INSERT) private Long deptId; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 4e04642d..337a99f1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -3,6 +3,8 @@ package com.ruoyi.common.core.domain.entity; import java.util.Date; import java.util.List; import javax.validation.constraints.*; + +import com.fasterxml.jackson.annotation.JsonIgnore; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -77,6 +79,9 @@ public class SysUser extends BaseEntity }) private SysDept dept; + /** 用户组 */ + private String groupName; + /** 角色对象 */ private List roles; @@ -297,6 +302,14 @@ public class SysUser extends BaseEntity this.roleId = roleId; } + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -304,6 +317,7 @@ public class SysUser extends BaseEntity .append("deptId", getDeptId()) .append("userName", getUserName()) .append("nickName", getNickName()) + .append("groupName", getGroupName()) .append("email", getEmail()) .append("phonenumber", getPhonenumber()) .append("sex", getSex()) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java index 32e96ca4..113bfdcd 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -117,6 +117,36 @@ public class FileUploadUtils return getPathFileName(baseDir, fileName); } + public static final String uploadToCommon(String baseDir, MultipartFile file) throws IOException + { + try + { + return uploadToCommon(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + } + catch (Exception e) + { + throw new IOException(e.getMessage(), e); + } + } + public static final String uploadToCommon(String baseDir, MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, + InvalidExtensionException + { + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) + { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } + + assertAllowed(file, allowedExtension); + + String fileName = file.getOriginalFilename(); + + String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); + file.transferTo(Paths.get(absPath)); + return getPathFileName(baseDir, fileName); + } + /** * 编码文件名 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ResourceUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ResourceUtils.java new file mode 100644 index 00000000..d85d2956 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ResourceUtils.java @@ -0,0 +1,33 @@ +package com.ruoyi.common.utils.file; + +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.MediaType; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Slf4j +public class ResourceUtils { + public static void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) + throws Exception { + try { + if (!FileUtils.checkAllowDownload(resource)) { + throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); + } + // 本地资源路径 + String localPath = RuoYiConfig.getProfile(); + // 数据库资源地址 + String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); + // 下载名称 + String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + FileUtils.setAttachmentResponseHeader(response, downloadName); + FileUtils.writeBytes(downloadPath, response.getOutputStream()); + } catch (Exception e) { + log.error("下载文件失败", e); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/HttpConnectorConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/HttpConnectorConfig.java new file mode 100644 index 00000000..21f224ae --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/HttpConnectorConfig.java @@ -0,0 +1,41 @@ +package com.ruoyi.framework.config; + +import org.apache.catalina.Context; +import org.apache.catalina.connector.Connector; +import org.apache.tomcat.util.descriptor.web.SecurityCollection; +import org.apache.tomcat.util.descriptor.web.SecurityConstraint; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class HttpConnectorConfig { + /** + * 获取Http连接器 + * @return Connector + */ + public Connector getHttpConnector() { + Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); + connector.setScheme("http"); // 使用http协议 + connector.setSecure(false); // 非安全传输 + connector.setPort(8080); // HTTP监听端口 + connector.setRedirectPort(443); // 重定向端口 + return connector; + } + @Bean + public TomcatServletWebServerFactory tomcatServletWebServerFactory() { + TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { + @Override + protected void postProcessContext(Context context) { + SecurityConstraint securityConstraint = new SecurityConstraint(); + securityConstraint.setUserConstraint("CONFIDENTIAL"); // 设置约束 + SecurityCollection collection = new SecurityCollection(); + collection.addPattern("/*"); // 所有的路径全部进行重定向处理 + securityConstraint.addCollection(collection); + context.addConstraint(securityConstraint); + } + }; + tomcat.addAdditionalTomcatConnectors(getHttpConnector()); // 添加连接器 + return tomcat; + } +} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index dc23a39e..b0e66426 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -115,7 +115,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() - .antMatchers("/cxxm/version/check**").permitAll() + .antMatchers("/cxxm/app/version/**","/cxxm/app/type/**","/cxxm/app/user/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index f9bc889f..ce80ce31 100644 --- a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -14,6 +14,9 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -33,6 +36,7 @@ import com.ruoyi.common.core.page.TableDataInfo; * @author ${author} * @date ${datetime} */ +@Api(tags = {"${functionName}"}) @RestController @RequestMapping("/${moduleName}/${businessName}") public class ${ClassName}Controller extends BaseController @@ -43,6 +47,7 @@ public class ${ClassName}Controller extends BaseController /** * 查询${functionName}列表 */ +@ApiOperation("查询${functionName}列表") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") @GetMapping("/list") #if($table.crud || $table.sub) @@ -63,6 +68,7 @@ public class ${ClassName}Controller extends BaseController /** * 导出${functionName}列表 */ + @ApiOperation("导出${functionName}列表") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") @Log(title = "${functionName}", businessType = BusinessType.EXPORT) @PostMapping("/export") @@ -76,6 +82,7 @@ public class ${ClassName}Controller extends BaseController /** * 获取${functionName}详细信息 */ + @ApiOperation("获取${functionName}详细信息") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") @GetMapping(value = "/{${pkColumn.javaField}}") public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) @@ -86,6 +93,7 @@ public class ${ClassName}Controller extends BaseController /** * 新增${functionName} */ + @ApiOperation("新增${functionName}") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") @Log(title = "${functionName}", businessType = BusinessType.INSERT) @PostMapping @@ -97,6 +105,7 @@ public class ${ClassName}Controller extends BaseController /** * 修改${functionName} */ + @ApiOperation("修改${functionName}") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") @Log(title = "${functionName}", businessType = BusinessType.UPDATE) @PutMapping @@ -108,6 +117,7 @@ public class ${ClassName}Controller extends BaseController /** * 删除${functionName} */ + @ApiOperation("删除${functionName}") @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") @Log(title = "${functionName}", businessType = BusinessType.DELETE) @DeleteMapping("/{${pkColumn.javaField}s}") diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index e4f61f02..cfc838fc 100644 --- a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -10,6 +10,8 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.TreeEntity; #end +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @@ -26,6 +28,7 @@ import lombok.Data; #elseif($table.tree) #set($Entity="TreeEntity") #end +@ApiModel(value = "${ClassName}") public class ${ClassName} extends ${Entity} { private static final long serialVersionUID = 1L; @@ -52,6 +55,7 @@ private static final long serialVersionUID = 1L; @Excel(name = "${comment}") #end #end + @ApiModelProperty(value = "$column.columnComment") private $column.javaType $column.javaField; #end diff --git a/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm index b5e308cf..f2699956 100644 --- a/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm @@ -5,6 +5,8 @@ import ${import}; #end import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; @@ -14,6 +16,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author ${author} * @date ${datetime} */ +@ApiModel(value="${subTable.functionName}对象") public class ${subClassName} extends BaseEntity { private static final long serialVersionUID = 1L; @@ -37,6 +40,7 @@ public class ${subClassName} extends BaseEntity @Excel(name = "${comment}") #end #end + @ApiModelProperty(value = "$column.columnComment") private $column.javaType $column.javaField; #end diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 6e73a88a..981c6784 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -2,8 +2,6 @@ package com.ruoyi.system.service; import java.util.List; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.system.domain.CxxmUser; - /** * 用户 业务层 * @@ -205,12 +203,4 @@ public interface ISysUserService */ public String importUser(List userList, Boolean isUpdateSupport, String operName); - /** - * 导入楚雄项目用户数据 - * @param userList - * @param isUpdateSupport - * @param operName - * @return - */ - public String importCxxmUser(List userList, Boolean isUpdateSupport, String operName); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 3d73d81f..1b8f92b1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -5,9 +5,6 @@ import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.system.domain.CxxmUser; import com.ruoyi.system.mapper.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -491,81 +488,5 @@ public class SysUserServiceImpl implements ISysUserService { return successMsg.toString(); } - /** - * 导入用户数据 - * - * @param userList 用户数据列表 - * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 - * @param operName 操作用户 - * @return 结果 - */ - @Override - @Transactional - public String importCxxmUser(List userList, Boolean isUpdateSupport, String operName) { - if (StringUtils.isNull(userList) || userList.size() == 0) { - throw new ServiceException("导入用户数据不能为空!"); - } - int successNum = 0; - int failureNum = 0; - StringBuilder successMsg = new StringBuilder(); - StringBuilder failureMsg = new StringBuilder(); - String password = configService.selectConfigByKey("sys.user.initPassword"); - for (CxxmUser user : userList) { - try { - // 验证是否存在这个用户 - SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) { - BeanValidators.validateWithException(validator, user); - user.setPassword(SecurityUtils.encryptPassword(password)); - user.setCreateBy(operName); - SysUser newUser = createNewSysUserByCxxmUser(user); - this.insertUser(newUser); - successNum++; - successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); - } else if (isUpdateSupport) { - BeanValidators.validateWithException(validator, user); - checkUserAllowed(u); - checkUserDataScope(u.getUserId()); - user.setUserId(u.getUserId()); - user.setUpdateBy(operName); - SysUser newUser = createNewSysUserByCxxmUser(user); - this.updateUser(newUser); - successNum++; - successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } else { - failureNum++; - failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); - } - } catch (Exception e) { - failureNum++; - String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; - failureMsg.append(msg + e.getMessage()); - log.error(msg, e); - } - } - if (failureNum > 0) { - failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); - throw new ServiceException(failureMsg.toString()); - } else { - successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); - } - return successMsg.toString(); - } - private SysUser createNewSysUserByCxxmUser(CxxmUser user) { - // 获取用户部门id - String deptName = user.getDeptName(); - SysDept userDept = deptMapper.selectDeptByDeptName(deptName); - Long deptId = userDept.getDeptId(); - // 获取用户角色id - String roleName = user.getRoleName(); - SysRole userRole = roleMapper.selectRoleByRoleName(roleName); - Long[] roleIds = {userRole.getRoleId()}; - // 构建新的用户对象 - SysUser sysUser = new SysUser(); - BeanUtils.copyProperties(user, sysUser); - sysUser.setDeptId(deptId); - sysUser.setRoleIds(roleIds); - return sysUser; - } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index eda0be22..41dfb1fb 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -36,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -45,9 +46,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.group_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u @@ -55,9 +56,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id - + - + - + - + - + - + - + - + - + insert into sys_user( user_id, dept_id, user_name, nick_name, + group_name, email, avatar, phonenumber, @@ -162,6 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{deptId}, #{userName}, #{nickName}, + #{groupName}, #{email}, #{avatar}, #{phonenumber}, @@ -173,13 +185,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sysdate() ) - + update sys_user dept_id = #{deptId}, user_name = #{userName}, nick_name = #{nickName}, + group_name = #{groupName}, email = #{email}, phonenumber = #{phonenumber}, sex = #{sex}, @@ -194,28 +207,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + update sys_user set status = #{status} where user_id = #{userId} - + update sys_user set avatar = #{avatar} where user_name = #{userName} - + update sys_user set password = #{password} where user_name = #{userName} - + update sys_user set del_flag = '2' where user_id = #{userId} - + update sys_user set del_flag = '2' where user_id in #{userId} - + - + \ No newline at end of file diff --git a/ruoyi-ui/src/components/ImageUploadToCommon/index.vue b/ruoyi-ui/src/components/ImageUploadToCommon/index.vue new file mode 100644 index 00000000..b0de35ae --- /dev/null +++ b/ruoyi-ui/src/components/ImageUploadToCommon/index.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js index cb859444..9d06a9c2 100644 --- a/ruoyi-ui/src/main.js +++ b/ruoyi-ui/src/main.js @@ -29,6 +29,7 @@ import Editor from "@/components/Editor" import FileUpload from "@/components/FileUpload" // 图片上传组件 import ImageUpload from "@/components/ImageUpload" +import ImageUploadToCommon from "@/components/ImageUploadToCommon" // 图片预览组件 import ImagePreview from "@/components/ImagePreview" // 字典标签组件 @@ -58,6 +59,7 @@ Vue.component('RightToolbar', RightToolbar) Vue.component('Editor', Editor) Vue.component('FileUpload', FileUpload) Vue.component('ImageUpload', ImageUpload) +Vue.component('ImageUploadToCommon', ImageUploadToCommon) Vue.component('ImagePreview', ImagePreview) Vue.use(directive) diff --git a/ruoyi-ui/src/views/cxxm/appType/index.vue b/ruoyi-ui/src/views/cxxm/appType/index.vue new file mode 100644 index 00000000..e42520af --- /dev/null +++ b/ruoyi-ui/src/views/cxxm/appType/index.vue @@ -0,0 +1,411 @@ + + + diff --git a/ruoyi-ui/src/views/cxxm/task/check/index.vue b/ruoyi-ui/src/views/cxxm/task/check/index.vue index 7e145ef7..0fe75277 100644 --- a/ruoyi-ui/src/views/cxxm/task/check/index.vue +++ b/ruoyi-ui/src/views/cxxm/task/check/index.vue @@ -82,7 +82,7 @@ - + diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index add779bf..9af6ee55 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -29,7 +29,8 @@ - + 新增 + >新增 + 修改 + >修改 + 删除 + >删除 + 导入 + >导入 + 导出 + >导出 + - - - - - - + + + + + + + @@ -205,39 +222,73 @@ + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - + @@ -261,39 +312,12 @@ v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value" - >{{dict.label}} + >{{ dict.label }} + - - - - - - - - - - - - - - - - @@ -326,11 +350,16 @@
将文件拖到此处,或点击上传
- 是否更新已经存在的用户数据 + + 是否更新已经存在的用户数据
仅允许导入xls、xlsx格式文件。 - 下载模板 - 下载模板 + 下载模板 + + 下载模板 +