|
@@ -1,13 +1,11 @@
|
|
|
package com.fs.app.controller;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fs.app.annotation.Login;
|
|
|
-import com.fs.app.param.ChangeUserDeptAndPostParam;
|
|
|
-import com.fs.app.param.CompanyUserChangeApplyParam;
|
|
|
-import com.fs.app.param.CompanyUserParam;
|
|
|
-import com.fs.app.param.CompanyUserUpdateParam;
|
|
|
+import com.fs.app.param.*;
|
|
|
import com.fs.app.service.IAppService;
|
|
|
import com.fs.app.vo.CompanySubUserVO;
|
|
|
import com.fs.common.annotation.RepeatSubmit;
|
|
@@ -17,15 +15,18 @@ import com.fs.common.exception.ServiceException;
|
|
|
import com.fs.common.utils.PatternUtils;
|
|
|
import com.fs.common.utils.bean.BeanUtils;
|
|
|
import com.fs.company.domain.*;
|
|
|
+import com.fs.company.dto.UserProjectDTO;
|
|
|
import com.fs.company.mapper.CompanyRoleMapper;
|
|
|
-import com.fs.company.service.ICompanyDeptService;
|
|
|
-import com.fs.company.service.ICompanyService;
|
|
|
-import com.fs.company.service.ICompanyUserChangeApplyService;
|
|
|
-import com.fs.company.service.ICompanyUserService;
|
|
|
+import com.fs.company.service.*;
|
|
|
+import com.fs.company.vo.CompanyTagUserVO;
|
|
|
import com.fs.company.vo.CompanyUserChangeApplyVO;
|
|
|
import com.fs.core.security.SecurityUtils;
|
|
|
import com.fs.course.service.IFsCourseRedPacketLogService;
|
|
|
import com.fs.course.service.IFsCourseWatchLogService;
|
|
|
+import com.fs.store.domain.FsUserCompanyUser;
|
|
|
+import com.fs.store.service.IFsUserCompanyUserService;
|
|
|
+import com.fs.system.service.ISysDictDataService;
|
|
|
+import com.fs.system.vo.DictVO;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import io.swagger.annotations.Api;
|
|
@@ -33,6 +34,8 @@ import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
@@ -57,7 +60,10 @@ public class CompanyUserController extends AppBaseController {
|
|
|
private final ICompanyUserChangeApplyService companyUserChangeApplyService;
|
|
|
private final CompanyRoleMapper companyRoleMapper;
|
|
|
private final IAppService appService;
|
|
|
-
|
|
|
+ private final IFsUserCompanyUserService fsUserCompanyUserService;
|
|
|
+ private final ICompanyTagUserService companyTagUserService;
|
|
|
+ @Autowired
|
|
|
+ private ISysDictDataService dictDataService;
|
|
|
@Login
|
|
|
@ApiOperation("查询用户列表")
|
|
|
@GetMapping("/getCompanyUserList")
|
|
@@ -227,7 +233,7 @@ public class CompanyUserController extends AppBaseController {
|
|
|
@RepeatSubmit
|
|
|
@ApiOperation("更换会员归属申请")
|
|
|
@PostMapping("/changeUserParentApply")
|
|
|
- public R changeVipUser(@Valid @RequestBody CompanyUserChangeApplyParam param) {
|
|
|
+ public R changeVipUser(@RequestBody CompanyUserChangeApplyParam param) {
|
|
|
// 参数校验
|
|
|
CompanyUser fromUser = companyUserService.selectCompanyUserById(param.getFrom());
|
|
|
if (Objects.isNull(fromUser)) {
|
|
@@ -247,8 +253,10 @@ public class CompanyUserController extends AppBaseController {
|
|
|
throw new ServiceException("类型不正确");
|
|
|
}
|
|
|
|
|
|
- if (param.getType() == 1 && (Objects.isNull(param.getIds()) || param.getIds().isEmpty())) {
|
|
|
- throw new ServiceException("请先选择会员");
|
|
|
+ if (param.getType() == 1 && (Objects.isNull(param.getIds()) || param.getIds().isEmpty())
|
|
|
+ &&Objects.isNull(param.getProject()) || param.getProject().isEmpty()
|
|
|
+ &&Objects.isNull(param.getTagList()) || param.getTagList().isEmpty()) {
|
|
|
+ throw new ServiceException("请先选择会员!");
|
|
|
}
|
|
|
|
|
|
// 存在待审核的申请不能再次申请
|
|
@@ -258,14 +266,57 @@ public class CompanyUserController extends AppBaseController {
|
|
|
if (companyUserChangeApplyService.count(applyWrapper) > 0) {
|
|
|
throw new ServiceException("存在待审核申请");
|
|
|
}
|
|
|
-
|
|
|
CompanyUser companyUser = companyUserService.selectCompanyUserById(Long.parseLong(getUserId()));
|
|
|
-
|
|
|
+ List<UserProjectDTO> list = param.getIds();
|
|
|
+ List<UserProjectDTO> userProjectDTOS = addUserId(param.getProject(),param.getTagList(),param.getFrom());
|
|
|
+ if (CollectionUtils.isNotEmpty(userProjectDTOS)){
|
|
|
+ list.addAll(userProjectDTOS);
|
|
|
+ }
|
|
|
// 添加申请
|
|
|
- companyUserChangeApplyService.apply(param.getFrom(), param.getTo(), param.getType(), param.getIds(), companyUser.getCompanyId(), companyUser.getUserName());
|
|
|
+ companyUserChangeApplyService.apply(param.getFrom(), param.getTo(), param.getType(),list, companyUser.getCompanyId(), companyUser.getUserName());
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询标签和项目中的会员添加
|
|
|
+ * @param project
|
|
|
+ * @param tagList
|
|
|
+ * @param companyUserId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<UserProjectDTO> addUserId(List<Long> projects, List<Long> tagList, Long companyUserId) {
|
|
|
+ // Prepare parameters map
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(projects)) {
|
|
|
+ params.put("projectIds", projects);
|
|
|
+ } else {
|
|
|
+ params.put("tagIds", tagList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Set company user ID
|
|
|
+ Long effectiveCompanyUserId = ObjectUtil.isNotEmpty(companyUserId)
|
|
|
+ ? companyUserId
|
|
|
+ : getCompanyUserId();
|
|
|
+ params.put("companyUserId", effectiveCompanyUserId);
|
|
|
+
|
|
|
+ // Get data from service
|
|
|
+ List<CompanyTagUserVO> voList = companyTagUserService.selectUserByMap(params);
|
|
|
+ if (CollectionUtils.isEmpty(voList)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Transform data
|
|
|
+ return voList.stream()
|
|
|
+ .map(vo -> {
|
|
|
+ UserProjectDTO dto = new UserProjectDTO();
|
|
|
+ dto.setUserId(vo.getUserId());
|
|
|
+ dto.setProjectId(vo.getProjectId());
|
|
|
+ return dto;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
@Login
|
|
|
@ApiOperation("申请列表")
|
|
|
@GetMapping("/applyList")
|
|
@@ -319,4 +370,23 @@ public class CompanyUserController extends AppBaseController {
|
|
|
appService.changeUserDeptAndPost(param);
|
|
|
return R.ok();
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation("查询指定公司中存在会员的项目")
|
|
|
+ @PostMapping("/getDictByKeyByProject")
|
|
|
+ public R getDictByKey(
|
|
|
+ @RequestBody TagProjectParam tagProjectParam){
|
|
|
+ List<DictVO> dictVOS=dictDataService.selectDictDataListByType("sys_course_project");
|
|
|
+ Map<String,Object> param = new HashMap<>();
|
|
|
+ param.put("tagIds",tagProjectParam.getTagIds());
|
|
|
+ param.put("companyUserId",tagProjectParam.getCompanyUserId());
|
|
|
+ List<Long> projectIds =fsUserCompanyUserService.selectFsUserCompanyUserList(param);
|
|
|
+ if (CollectionUtils.isEmpty(projectIds)){
|
|
|
+ return R.ok().put("data",new ArrayList<DictVO>());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DictVO> filteredDictVOS = dictVOS.stream()
|
|
|
+ .filter(dictVO -> projectIds.contains(Long.parseLong(dictVO.getDictValue())))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return R.ok().put("data",filteredDictVOS);
|
|
|
+ }
|
|
|
}
|