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
|
@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<User> users = new ArrayList<User>();
|
|
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<SysUserExtend> sysUserExtends = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
List<Long> 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("/reportTemplateText/{arr}")
|
@ResponseBody
|
public String reportTemplateText(@PathVariable String arr) {
|
String[] split = arr.split(",");
|
List<String> templateIds = Arrays.asList(split);
|
List<TReportTemplate> reportTemplates = reportTemplateService.getReportTemplates(ShiroUtils.getSysUser());
|
StringBuilder reportTemplateText = new StringBuilder();
|
for (int i = 0; i < reportTemplates.size(); i++) {
|
TReportTemplate tReportTemplate = reportTemplates.get(i);
|
if (templateIds.contains(String.valueOf(tReportTemplate.getId()))) {
|
reportTemplateText.append(tReportTemplate.getReportType()).append(",");
|
}
|
}
|
return reportTemplateText.substring(0,reportTemplateText.length()-1);
|
}
|
@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<SysUserPaper> sysUserPapers = userPaperService.selectSysUserPaperList(sysUserPaper);
|
|
sysUserPapers.stream().forEach(p -> {
|
p.setProdName(examUtilService.getLangOrLocalLangString("", p.getProdName()));
|
List<TReportTemplate> 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));
|
}
|
}
|
);
|
|
|
return getDataTable(sysUserPapers);
|
}
|
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(SysUserPaper sysUserPaper) {
|
List<SysUserPaper> 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<TExamPaper> list = tExamPaperService.getUserPapers();
|
|
list.stream().forEach(p ->
|
p.setName(examUtilService.getLangOrLocalLangString("", p.getName()))
|
);
|
mmap.put("userId", userId);
|
mmap.put("userProds", list);
|
List<TReportTemplate> reportTemplates = reportTemplateService.getReportTemplates(ShiroUtils.getSysUser());
|
List<TReportTemplate> collect = reportTemplates.stream().filter(v -> {
|
String reportType = v.getReportType();
|
String[] split = reportType.split("-");
|
List<String> strings = Arrays.asList(split);
|
TExamPaper tExamPaper = list.get(0);
|
String name = tExamPaper.getName();
|
if (Objects.equals("睿邻", name)) {
|
name = "RuiLin";
|
}
|
if (strings.contains(name)) {
|
return true;
|
}
|
return false;
|
}).collect(Collectors.toList());
|
mmap.put("templateList", collect);
|
mmap.put("templateListAll", reportTemplates);
|
return prefix + "/edit";
|
}
|
|
@RequestMapping("/filterTemplate/{prodName}")
|
@ResponseBody
|
public List<TReportTemplate> filterTemplate(@PathVariable("prodName") String prodName) {
|
if (Objects.equals("睿邻", prodName)) {
|
prodName = "RuiLin";
|
}
|
List<String> prods = Arrays.asList(prodName);
|
List<TReportTemplate> reportTemplates = reportTemplateService.getReportTemplates(ShiroUtils.getSysUser());
|
List<TReportTemplate> collect = reportTemplates.stream().filter(v -> {
|
String reportType = v.getReportType();
|
String[] split = reportType.split("-");
|
List<String> strings = Arrays.asList(split);
|
if (strings.contains(prods.get(0))) {
|
return true;
|
}
|
return false;
|
}).collect(Collectors.toList());
|
return collect;
|
}
|
}
|