package com.ots.project.exam.controller; import com.ots.common.enums.UserTypeEnum; import com.ots.common.utils.security.ShiroUtils; import com.ots.framework.web.controller.BaseController; import com.ots.framework.web.domain.AjaxResult; import com.ots.framework.web.page.TableDataInfo; import com.ots.project.exam.domain.SysUserExtend; import com.ots.project.exam.domain.SysUserPaper; import com.ots.project.exam.domain.TExamPaper; import com.ots.project.exam.domain.TReportTemplate; import com.ots.project.exam.service.ISysUserExtendService; import com.ots.project.exam.service.ISysUserPaperService; import com.ots.project.exam.service.ITExamPaperService; import com.ots.project.exam.service.ITReportTemplateService; import com.ots.project.system.user.domain.User; import com.ots.project.system.user.service.IUserService; import com.ots.project.tool.exam.JsonUtil; import com.ots.project.tool.gen.service.IExamUtilService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 用户产品Controller * * @author ots * @date 2020-03-19 */ @Controller @RequestMapping("/exam/paper") public class SysUserPaperController extends BaseController { private String prefix = "exam/userpaper"; @Autowired private IUserService userService; @Autowired private ISysUserPaperService userPaperService; @Autowired private ITExamPaperService tExamPaperService; @Autowired private ISysUserExtendService sysUserExtendService; @Autowired private IExamUtilService examUtilService; @Autowired private ITReportTemplateService reportTemplateService; @Autowired private ITReportTemplateService itReportTemplateService; @GetMapping("/dis") public String dispaper() { return prefix + "/userPaper"; } @PostMapping("/list") @ResponseBody public TableDataInfo list(User user) { User sysUser = ShiroUtils.getSysUser(); //查找所有的除了管理员的用户 user.setStatus("0"); List users = new ArrayList(); // 系统用户返回所有用户 if (Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType())) { startPage(); user.setUserTypes(Arrays.asList(UserTypeEnum.DIS_USER.getUserType(), UserTypeEnum.ENT_USER.getUserType())); users = userService.selectUserList(user); } //如果是分销商用户,返回分销商下所属企业用户 if (Objects.equals(UserTypeEnum.DIS_USER.getUserType(), sysUser.getUserType())) { user.setUserTypes(Arrays.asList(UserTypeEnum.DIS_USER.getUserType(), UserTypeEnum.ENT_USER.getUserType())); SysUserExtend sysUserExtend = new SysUserExtend(); sysUserExtend.setParentUserId(sysUser.getUserId()); List sysUserExtends = sysUserExtendService.selectSysUserExtendList(sysUserExtend); List userList = sysUserExtends.stream().map(p -> p.getUserId()).collect(Collectors.toList()); user.setUserList(userList); startPage(); user.setDeptId(null); user.setDept(null); users = userService.selectUserList2(user); } return getDataTable(users); } @PostMapping("/listCodes") @ResponseBody public TableDataInfo listCodes(User user) { startPage(); User sysUser = ShiroUtils.getSysUser(); if (Objects.isNull(user.getUserId()) && !Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType())) { user.setUserId(sysUser.getUserId()); } SysUserPaper sysUserPaper = new SysUserPaper(); sysUserPaper.setUserId(user.getUserId()); List sysUserPapers = userPaperService.selectSysUserPaperList(sysUserPaper); //取真实名称 sysUserPapers.stream().forEach(p -> { p.setProdName(examUtilService.getLangOrLocalLangString("", p.getProdName())); List tReportTemplateList = itReportTemplateService.selectTReportTemplates(p.getReportTemplateId()); StringBuilder stringBuilder = new StringBuilder(); tReportTemplateList.stream().forEach(item -> stringBuilder.append(item.getReportType() + "-" + item.getTemplateType() + "-" + item.getLangType() + ",")); if (stringBuilder.length() > 0) { p.setReportTemplateText(stringBuilder.substring(0, stringBuilder.length() - 1)); } } ); // //报告模板编码 t_report_template // mmap.put("templateList", reportTemplateService.getReportTemplates(ShiroUtils.getSysUser())); return getDataTable(sysUserPapers); } /** * 修改保存人口学变量定义 */ @PostMapping("/edit") @ResponseBody public AjaxResult editSave(SysUserPaper sysUserPaper) { List list = JsonUtil.toJsonListObject(sysUserPaper.getProdCodes(), SysUserPaper.class); userPaperService.deleteSysUserPaperById(sysUserPaper.getUserId()); list.stream().forEach(item -> { item.setUserId(sysUserPaper.getUserId()); userPaperService.insertSysUserPaper(item); }); return toAjax(1); } /** * 修改用户 */ @GetMapping("/edit/{userId}") public String edit(@PathVariable("userId") Long userId, ModelMap mmap) { List list = tExamPaperService.getUserPapers(); //取真实名称 list.stream().forEach(p -> p.setName(examUtilService.getLangOrLocalLangString("", p.getName())) ); mmap.put("userId", userId); mmap.put("userProds", list); mmap.put("templateList", reportTemplateService.getReportTemplates(ShiroUtils.getSysUser())); return prefix + "/edit"; } }