package com.ots.project.exam.controller;
|
import com.ots.common.utils.StringUtils;
|
import com.ots.common.utils.security.ShiroUtils;
|
import com.ots.framework.aspectj.lang.annotation.Log;
|
import com.ots.framework.aspectj.lang.enums.BusinessType;
|
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.EntTestPackage;
|
import com.ots.project.exam.domain.NumberOfUsersByCompany;
|
import com.ots.project.exam.domain.NumberOfUsersByPackage;
|
import com.ots.project.exam.domain.SysUserExtend;
|
import com.ots.project.exam.service.CountCalculateService;
|
import com.ots.project.exam.service.ISysUserExtendService;
|
import com.ots.project.system.user.domain.User;
|
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.authc.AuthenticationException;
|
import org.apache.shiro.authc.UsernamePasswordToken;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.subject.Subject;
|
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.List;
|
import java.util.Map;
|
import java.util.Objects;
|
|
@Controller
|
@RequestMapping("/exam/enterprise")
|
public class EnterpriseController extends BaseController {
|
private String prefix = "exam/enterprise";
|
@Autowired
|
private ISysUserExtendService sysUserExtendService;
|
@Autowired
|
private CountCalculateService calculate;
|
@RequiresPermissions("exam:enterprise:view")
|
@GetMapping()
|
public String enterprise(String parentUserId, String userName, ModelMap mmap) {
|
mmap.put("parentUserId", parentUserId == null ? "" : parentUserId);
|
SysUserExtend sysUserExtend = new SysUserExtend();
|
User sysUser = ShiroUtils.getSysUser();
|
if ("01".equals(sysUser.getUserType())) {
|
sysUserExtend.setUserId(sysUser.getUserId());
|
} else {
|
sysUserExtend.setUserType("01");
|
}
|
if (Objects.nonNull(userName)) {
|
mmap.put("userNameSend", userName);
|
}
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
mmap.put("us", list);
|
return prefix + "/enterprise";
|
}
|
|
@RequiresPermissions("exam:enterprise:list")
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(SysUserExtend sysUserExtend) {
|
startPage();
|
User sysUser = ShiroUtils.getSysUser();
|
if ("01".equals(sysUser.getUserType())) {
|
sysUserExtend.setParentUserId(sysUser.getUserId());
|
} else if ("02".equals(sysUser.getUserType())) {
|
sysUserExtend.setUserId(sysUser.getUserId());
|
}
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
return getDataTable(list);
|
}
|
|
@GetMapping("/add")
|
public String add(ModelMap mmap) {
|
User sysUser = ShiroUtils.getSysUser();
|
SysUserExtend sysUserExtend = new SysUserExtend();
|
if ("01".equals(sysUser.getUserType())) {
|
sysUserExtend.setUserId(sysUser.getUserId());
|
} else {
|
sysUserExtend.setUserType("01");
|
}
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
mmap.put("us", list);
|
return prefix + "/add";
|
}
|
|
@GetMapping("/edit/{userId}")
|
public String edit(@PathVariable("userId") Long userId, ModelMap mmap) {
|
SysUserExtend sysUserExtend = sysUserExtendService.selectSysUserExtendById(userId);
|
mmap.put("sysUserExtend", sysUserExtend);
|
SysUserExtend sysUserExtendc = new SysUserExtend();
|
User sysUser = ShiroUtils.getSysUser();
|
if ("01".equals(sysUser.getUserType())) {
|
sysUserExtendc.setUserId(sysUser.getUserId());
|
} else {
|
sysUserExtendc.setUserType("01");
|
}
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtendc);
|
mmap.put("us", list);
|
return prefix + "/edit";
|
}
|
|
@RequiresPermissions("exam:enterprise:editUserTimes")
|
@GetMapping("/operUseTimes/{userId}")
|
public String operUseTimes(@PathVariable("userId") Long userId, ModelMap mmap) {
|
SysUserExtend sysUserExtend = sysUserExtendService.selectSysUserExtendById(userId);
|
mmap.put("sysUserExtend", sysUserExtend);
|
EntTestPackage entTestPackage = new EntTestPackage();
|
entTestPackage.setUserId(userId);
|
NumberOfUsersByCompany numberOfUsersByCompany = calculate.calculateProductPackagesMemberCount(entTestPackage);
|
Integer systemScore = numberOfUsersByCompany.getTestNum();
|
List<Long> list = new ArrayList();
|
Map<Long, NumberOfUsersByPackage> testPackageUsageTimesMap = numberOfUsersByCompany.getTestPackageUsageTimesMap();
|
if (Objects.nonNull(testPackageUsageTimesMap)) {
|
testPackageUsageTimesMap.forEach((key, value) -> {
|
list.add(value.getTestNum());
|
});
|
systemScore = list.stream().mapToInt(p -> p.intValue()).sum();
|
}
|
mmap.put("totalNumberOfTesters", systemScore);
|
|
return prefix + "/operUseTimes";
|
}
|
|
@RequiresPermissions("exam:enterprise:editUserTimes")
|
@Log(title = "充值测试人数", businessType = BusinessType.UPDATE)
|
@PostMapping("/operUseTimes/edit/{userId}/{addNum}")
|
@ResponseBody
|
public AjaxResult editSave(@PathVariable("userId") Long userId, @PathVariable("addNum") Long addNum) {
|
return toAjax(sysUserExtendService.updateTestNum(userId, addNum));
|
}
|
@RequiresPermissions("exam:enterprise:remove")
|
@PostMapping("/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids) {
|
return toAjax(sysUserExtendService.deleteSysUserExtendByIds(ids));
|
}
|
|
@RequiresPermissions("exam:enterprise:freelogin")
|
@PostMapping("/freelogin")
|
@ResponseBody
|
public AjaxResult freeLogin(Long userId) {
|
SysUserExtend sysUserExtend = sysUserExtendService.selectSysUserExtendById(userId);
|
UsernamePasswordToken token = new UsernamePasswordToken(sysUserExtend.getLoginName(), "FREELOGIN", false);
|
Subject subject = SecurityUtils.getSubject();
|
try {
|
subject.login(token);
|
return success();
|
} catch (AuthenticationException e) {
|
String msg = "用户或密码错误";
|
if (StringUtils.isNotEmpty(e.getMessage())) {
|
msg = e.getMessage();
|
}
|
return error(msg);
|
}
|
}
|
@PostMapping("/freeloginback")
|
@ResponseBody
|
public AjaxResult freeLoginBack(Long userId) {
|
SysUserExtend sysUserExtend = sysUserExtendService.selectSysUserExtendById(userId);
|
UsernamePasswordToken token = new UsernamePasswordToken(sysUserExtend.getLoginName(), "FREELOGIN", false);
|
Subject subject = SecurityUtils.getSubject();
|
try {
|
subject.login(token);
|
return success();
|
} catch (AuthenticationException e) {
|
String msg = "用户或密码错误";
|
if (StringUtils.isNotEmpty(e.getMessage())) {
|
msg = e.getMessage();
|
}
|
return error(msg);
|
}
|
}
|
|
@Log(title = "用户重置密码", businessType = BusinessType.UPDATE)
|
@PostMapping("/resetpwd")
|
@ResponseBody
|
public AjaxResult resetpwd(User user) {
|
return toAjax(sysUserExtendService.resetpwd(user));
|
}
|
}
|