|
|
@@ -5,11 +5,15 @@ import com.fs.common.constant.UserConstants;
|
|
|
import com.fs.common.core.controller.BaseController;
|
|
|
import com.fs.common.core.domain.AjaxResult;
|
|
|
import com.fs.common.core.domain.R;
|
|
|
+import com.fs.common.core.domain.model.LoginUser;
|
|
|
import com.fs.common.core.page.TableDataInfo;
|
|
|
import com.fs.common.enums.BusinessType;
|
|
|
-import com.fs.common.utils.ServletUtils;
|
|
|
+import com.fs.common.exception.ServiceException;
|
|
|
+import com.fs.common.utils.SecurityUtils;
|
|
|
import com.fs.common.utils.poi.ExcelUtil;
|
|
|
+import com.fs.company.domain.Company;
|
|
|
import com.fs.company.domain.CompanyUser;
|
|
|
+import com.fs.company.service.ICompanyService;
|
|
|
import com.fs.company.service.ICompanyUserService;
|
|
|
import com.fs.qw.dto.UserProjectDTO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -31,6 +35,44 @@ public class CompanyUserController extends BaseController
|
|
|
@Autowired
|
|
|
private ICompanyUserService companyUserService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ICompanyService companyService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * H17: 解析可用的 companyId。
|
|
|
+ * admin 端 LoginUser 无企业上下文(不同于销售端),故:
|
|
|
+ * - 超管 / 用户ID=1 / 总部部门(deptId=1):可用前端传入的 companyId
|
|
|
+ * - 其他用户:校验企业归属本部门,防止 IDOR 越权查询
|
|
|
+ */
|
|
|
+ private Long resolveCompanyId(Long requestCompanyId)
|
|
|
+ {
|
|
|
+ LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
+ if (loginUser.isAdmin() || SecurityUtils.isAdmin(loginUser.getUserId()))
|
|
|
+ {
|
|
|
+ return requestCompanyId;
|
|
|
+ }
|
|
|
+ if (requestCompanyId == null)
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ // 总部部门可查看全部企业
|
|
|
+ if (loginUser.getDeptId() != null && loginUser.getDeptId().equals(1L))
|
|
|
+ {
|
|
|
+ return requestCompanyId;
|
|
|
+ }
|
|
|
+ Company company = companyService.selectCompanyById(requestCompanyId);
|
|
|
+ if (company == null)
|
|
|
+ {
|
|
|
+ throw new ServiceException("企业不存在");
|
|
|
+ }
|
|
|
+ if (company.getDeptId() != null && loginUser.getDeptId() != null
|
|
|
+ && !company.getDeptId().equals(loginUser.getDeptId()))
|
|
|
+ {
|
|
|
+ throw new ServiceException("无权查询该企业员工");
|
|
|
+ }
|
|
|
+ return requestCompanyId;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询企业员工信息列表
|
|
|
*/
|
|
|
@@ -38,6 +80,8 @@ public class CompanyUserController extends BaseController
|
|
|
@GetMapping("/list")
|
|
|
public TableDataInfo list(CompanyUser companyUser)
|
|
|
{
|
|
|
+ // H17: 非超管忽略前端越权 companyId
|
|
|
+ companyUser.setCompanyId(resolveCompanyId(companyUser.getCompanyId()));
|
|
|
startPage();
|
|
|
List<CompanyUser> list = companyUserService.selectCompanyUserList(companyUser);
|
|
|
return getDataTable(list);
|
|
|
@@ -51,6 +95,7 @@ public class CompanyUserController extends BaseController
|
|
|
@GetMapping("/export")
|
|
|
public AjaxResult export(CompanyUser companyUser)
|
|
|
{
|
|
|
+ companyUser.setCompanyId(resolveCompanyId(companyUser.getCompanyId()));
|
|
|
List<CompanyUser> list = companyUserService.selectCompanyUserList(companyUser);
|
|
|
ExcelUtil<CompanyUser> util = new ExcelUtil<CompanyUser>(CompanyUser.class);
|
|
|
return util.exportExcel(list, "companyUser");
|
|
|
@@ -103,24 +148,27 @@ public class CompanyUserController extends BaseController
|
|
|
return toAjax(companyUserService.deleteCompanyUserByIds(userIds));
|
|
|
}
|
|
|
|
|
|
+ @PreAuthorize("@ss.hasPermi('company:companyUser:list')")
|
|
|
@GetMapping("/getAllUserlist")
|
|
|
public R getAllUserlist(@RequestParam Long companyId)
|
|
|
{
|
|
|
CompanyUser map=new CompanyUser();
|
|
|
- map.setCompanyId(companyId);
|
|
|
+ map.setCompanyId(resolveCompanyId(companyId));
|
|
|
List<CompanyUser> list = companyUserService.selectCompanyUserList(map);
|
|
|
return R.ok().put("data",list);
|
|
|
}
|
|
|
+ @PreAuthorize("@ss.hasPermi('company:companyUser:list')")
|
|
|
@GetMapping("/getAllUserListLimit")
|
|
|
public R getAllUserListLimit(@RequestParam(required = false) Long companyId,
|
|
|
@RequestParam(required = false) String keywords){
|
|
|
- List<CompanyUser> list = companyUserService.getAllUserListLimit(companyId,keywords);
|
|
|
+ List<CompanyUser> list = companyUserService.getAllUserListLimit(resolveCompanyId(companyId),keywords);
|
|
|
return R.ok().put("data", list);
|
|
|
}
|
|
|
+ @PreAuthorize("@ss.hasPermi('company:companyUser:list')")
|
|
|
@GetMapping("/getUserListByDeptId")
|
|
|
public R getUserListByDeptId(CompanyUser user)
|
|
|
{
|
|
|
-
|
|
|
+ user.setCompanyId(resolveCompanyId(user.getCompanyId()));
|
|
|
List<CompanyUser> list = companyUserService.getUserListByDeptId(user);
|
|
|
return R.ok().put("data",list);
|
|
|
}
|
|
|
@@ -130,11 +178,12 @@ public class CompanyUserController extends BaseController
|
|
|
* @param companyId
|
|
|
* @return
|
|
|
*/
|
|
|
+ @PreAuthorize("@ss.hasPermi('company:companyUser:list')")
|
|
|
@GetMapping("/getUserList")
|
|
|
public R getUserList(@RequestParam("companyId") Long companyId)
|
|
|
{
|
|
|
CompanyUser map=new CompanyUser();
|
|
|
- map.setCompanyId(companyId);
|
|
|
+ map.setCompanyId(resolveCompanyId(companyId));
|
|
|
List<CompanyUser> list = companyUserService.selectCompanyUserList(map);
|
|
|
return R.ok().put("data",list);
|
|
|
}
|
|
|
@@ -148,17 +197,18 @@ public class CompanyUserController extends BaseController
|
|
|
@PostMapping("/changeCompanyUser")
|
|
|
public AjaxResult changeCompanyUser(@RequestBody List<UserProjectDTO> users, @RequestParam Long companyUserId, @RequestParam Long companyId)
|
|
|
{
|
|
|
- return toAjax(companyUserService.changeCompanyUser(users, companyUserId, companyId));
|
|
|
+ return toAjax(companyUserService.changeCompanyUser(users, companyUserId, resolveCompanyId(companyId)));
|
|
|
}
|
|
|
/**
|
|
|
* 根据登录的用户公司获取所有的销售
|
|
|
* @return
|
|
|
*/
|
|
|
+ @PreAuthorize("@ss.hasPermi('company:companyUser:list')")
|
|
|
@GetMapping("/getCompanyUserList")
|
|
|
public R getCompanyUserList(@RequestParam Long companyId)
|
|
|
{
|
|
|
CompanyUser cu = new CompanyUser();
|
|
|
- cu.setCompanyId(companyId);
|
|
|
+ cu.setCompanyId(resolveCompanyId(companyId));
|
|
|
List<CompanyUser> list = companyUserService.selectCompanyUserList(cu);
|
|
|
return R.ok().put("data",list);
|
|
|
}
|
|
|
@@ -169,6 +219,7 @@ public class CompanyUserController extends BaseController
|
|
|
@GetMapping("/getCompanyUserListPage")
|
|
|
public TableDataInfo getCompanyUserListPage(CompanyUser user)
|
|
|
{
|
|
|
+ user.setCompanyId(resolveCompanyId(user.getCompanyId()));
|
|
|
startPage();
|
|
|
List<CompanyUser> list = companyUserService.getCompanyUserList(user);
|
|
|
return getDataTable(list);
|