package com.ots.project.exam.controller;
|
|
import com.ots.common.enums.UserTypeEnum;
|
import com.ots.common.utils.StringUtils;
|
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.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.List;
|
import java.util.Objects;
|
|
import static com.ots.common.enums.UserTypeEnum.DIS_USER;
|
|
/**
|
* @Created with IntelliJ IDEA.
|
* @User: liguosheng
|
* @Date: 2019/11/22
|
* @Time: 10:40
|
* @description: 分销商
|
*/
|
@Controller
|
@RequestMapping("/exam/distributor")
|
public class DistributorController extends BaseController {
|
|
private String prefix = "exam/distributor";
|
@Autowired
|
private ISysUserExtendService sysUserExtendService;
|
|
@RequiresPermissions("exam:distributor:view")
|
@GetMapping()
|
public String distributor() {
|
return prefix + "/distributor";
|
}
|
|
/**
|
* 查询用户信息扩展列表
|
*/
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(SysUserExtend sysUserExtend) {
|
startPage();
|
User sysUser = ShiroUtils.getSysUser();
|
if (DIS_USER.getUserType().equals(sysUser.getUserType())) {
|
sysUserExtend.setParentUserId(sysUser.getUserId());
|
} else {
|
sysUserExtend.setUserType(DIS_USER.getUserType());
|
}
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
return getDataTable(list);
|
}
|
|
/**
|
* 新增用户信息扩展
|
*/
|
@GetMapping("/add")
|
public String add(ModelMap mmap) {
|
List<SysUserExtend> list = getSysUserExtends();
|
mmap.put("us", list);
|
return prefix + "/add";
|
}
|
|
List<SysUserExtend> getSysUserExtends() {
|
User sysUser = ShiroUtils.getSysUser();
|
//如果是系统用户返回所有系统用户和下属一级分销商
|
SysUserExtend sysUserExtend = new SysUserExtend();
|
if (Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType())) {
|
sysUserExtend.setParentUserId(sysUser.getUserId());
|
} else {
|
sysUserExtend.setUserId(sysUser.getUserId());
|
}
|
sysUserExtend.setFirstLevel("1");
|
//如果是一级分销商,返回自己
|
List<SysUserExtend> list = sysUserExtendService.selectSysUserExtendList(sysUserExtend);
|
|
if (Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType())) {
|
SysUserExtend userExtend = new SysUserExtend();
|
userExtend.setUserId(sysUser.getUserId());
|
userExtend.setUserName(sysUser.getUserName());
|
list.add(userExtend);
|
}
|
return list;
|
}
|
|
/**
|
* 修改用户信息扩展
|
*/
|
@GetMapping("/edit/{userId}")
|
public String edit(@PathVariable("userId") Long userId, ModelMap mmap) {
|
SysUserExtend sysUserExtend = sysUserExtendService.selectSysUserExtendById(userId);
|
mmap.put("sysUserExtend", sysUserExtend);
|
List<SysUserExtend> list = getSysUserExtends();
|
if (StringUtils.isBlank(sysUserExtend.getFirstLevel())) {
|
sysUserExtend.setFirstLevel("0");
|
}
|
mmap.put("us", list);
|
return prefix + "/edit";
|
}
|
|
@RequiresPermissions("exam:distributor:remove")
|
@PostMapping("/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids) {
|
return toAjax(sysUserExtendService.deleteSysUserExtendByIds(ids));
|
}
|
|
// 免密登录
|
@RequiresPermissions("exam:distributor: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);
|
}
|
}
|
}
|