linzhijie
2021-03-11 93af1c6ffb9ae0e894689ad3a37b548e57d54cff
src/main/java/com/ots/project/exam/controller/SysUserPaperController.java
@@ -1,4 +1,5 @@
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;
@@ -20,48 +21,66 @@
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<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();
@@ -76,21 +95,7 @@
        }
        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) {
@@ -102,7 +107,7 @@
        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());
@@ -113,11 +118,14 @@
                    }
                }
        );
//        //报告模板编码  t_report_template
//        mmap.put("templateList", reportTemplateService.getReportTemplates(ShiroUtils.getSysUser()));
        return getDataTable(sysUserPapers);
    }
    /**
     * 修改保存人口学变量定义
     */
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(SysUserPaper sysUserPaper) {
@@ -129,53 +137,20 @@
        });
        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);
        mmap.put("templateList", reportTemplateService.getReportTemplates(ShiroUtils.getSysUser()));
        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;
    }
}