浏览代码

财务-销售及助理对应关系 参与的广告主筛选

yangzian 3 年之前
父节点
当前提交
0f7b779f1c

+ 17 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsSaleAssistantInfoController.java

@@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
 import org.jeecg.ctop.finance.policy.service.ICwjsSaleAssistantInfoService;
 import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.modules.ctop.entity.ProjectMember;
 import org.jeecg.modules.system.service.ISysRoleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -193,13 +194,26 @@ public class CwjsSaleAssistantInfoController {
 	 }
 
 
-
 	 @ApiOperation(value="政策新增-销售回显下拉框", notes="政策新增-销售回显下拉框")
 	 @GetMapping(value = "/getCwSaleAndAssistantList")
-	 public Result<IPage<CwjsSaleAssistantInfo>> getCwSaleAndAssistantList(@RequestParam(name="userId") String userId) {
-		return cwjsSaleAssistantInfoService.getCwSaleAndAssistantList(userId);
+	 public Result getCwSaleAndAssistantList(@RequestParam(name="userId") String userId) {
+		List<CwjsSaleAssistantInfo> list = cwjsSaleAssistantInfoService.getCwSaleAndAssistantList(userId);
+		return Result.successMsg("查询成功。",list);
+	 }
+
+
+
+
+	 @ApiOperation(value="政策新增-销售回显下拉框", notes="政策新增-销售回显下拉框")
+	 @GetMapping(value = "/cwjsParticipateList")
+	 public Result cwjsParticipateList(@RequestBody ProjectMember projectMember) {
+		 return  cwjsSaleAssistantInfoService.cwjsParticipateList(projectMember);
 
 	 }
 
 
+
+
+
+
 }

+ 4 - 4
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsSaleAssistantInfoMapper.xml

@@ -53,9 +53,9 @@
                             </if>
                         )
         <if test="userId !=null and userId != ''">
-            OR u.id = #{userId};
+            OR u.id = #{userId}
         </if>
-        GROUP BY u.create_time DESC
+        GROUP BY u.create_time DESC;
 
 
     </select>
@@ -73,9 +73,9 @@
                             </if>
                         )
         <if test="userId !=null and userId != ''">
-            OR u.id = #{userId};
+            OR u.id = #{userId}
         </if>
-        GROUP BY u.create_time DESC
+        GROUP BY u.create_time DESC;
     </select>
 
 

+ 7 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsSaleAssistantInfoService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
 import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
+import org.jeecg.modules.ctop.entity.ProjectMember;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -18,6 +19,11 @@ public interface ICwjsSaleAssistantInfoService extends IService<CwjsSaleAssistan
 
     Result getSaleListByUserDepart(String userId);
 
-    Result getCwSaleAndAssistantList(String userId);
+    List<CwjsSaleAssistantInfo> getCwSaleAndAssistantList(String userId);
+
+    List<String> getCwSaleAndAssistantListStr(String userId);
+
+
+    Result cwjsParticipateList(ProjectMember projectMember);
 
 }

+ 76 - 9
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsSaleAssistantInfoServiceImpl.java

@@ -1,23 +1,28 @@
 package org.jeecg.ctop.finance.policy.service.impl;
 
+import cn.com.ctop.common.module.mapper.ProjectMapper;
 import cn.com.ctop.common.module.mapper.SysRoleMapper;
 import cn.com.ctop.common.module.mapper.SysUserMapper;
+import cn.com.ctop.common.module.utils.Check;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
 import org.jeecg.ctop.finance.policy.mapper.CwjsSaleAssistantInfoMapper;
 import org.jeecg.ctop.finance.policy.service.ICwjsSaleAssistantInfoService;
-import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.modules.ctop.entity.ProjectMember;
+import org.jeecg.modules.ctop.service.IProjectMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.TreeSet;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -27,6 +32,7 @@ import java.util.stream.Collectors;
  * @version V1.0
  */
 @Service
+@Slf4j
 public class CwjsSaleAssistantInfoServiceImpl extends ServiceImpl<CwjsSaleAssistantInfoMapper, CwjsSaleAssistantInfo> implements ICwjsSaleAssistantInfoService {
 
 
@@ -44,7 +50,7 @@ public class CwjsSaleAssistantInfoServiceImpl extends ServiceImpl<CwjsSaleAssist
 
 
 
-    public Result getCwSaleAndAssistantList(String userId){
+    public List<CwjsSaleAssistantInfo> getCwSaleAndAssistantList(String userId){
         List<CwjsSaleAssistantInfo> resultList = new ArrayList();
         String roleCode = roleMapper.getRoleCodeByUserId(userId);
         //管理员 查询全部
@@ -61,17 +67,78 @@ public class CwjsSaleAssistantInfoServiceImpl extends ServiceImpl<CwjsSaleAssist
             List <CwjsSaleAssistantInfo> assistantList = cwjsSaleAssistantInfoMapper.getCwAssistantNameList(userId);
             resultList.addAll(assistantList);
             resultList = resultList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CwjsSaleAssistantInfo :: getSaleId))),ArrayList :: new));
-            return Result.successMsg("查询成功-管理员。",resultList);
+            log.info("查询成功-管理员。");
+            return resultList;
         }
         //查询助理
         List <CwjsSaleAssistantInfo> assistantList = cwjsSaleAssistantInfoMapper.getCwAssistantNameList(userId);
         //如果该用户是 助理角色 则 对应的销售加自己的id list 必然 > 2
         if (assistantList.size() < 2){
-            return Result.successMsg("查询成功-销售。",cwjsSaleAssistantInfoMapper.getCwSaleNameList(userId));
+            log.info("查询成功-销售。");
+            return cwjsSaleAssistantInfoMapper.getCwSaleNameList(userId);
         }
-        return Result.successMsg("查询成功-助理。",assistantList);
+        log.info("查询成功-助理。");
+        return assistantList;
+    }
+
+
+
+    @Override
+    public List<String> getCwSaleAndAssistantListStr(String userId) {
+        List<CwjsSaleAssistantInfo> list = getCwSaleAndAssistantList(userId);
+        List<String> userIds = list.stream().map(CwjsSaleAssistantInfo::getSaleId).collect(Collectors.toList());
+        return userIds;
+    }
+
+
+    @Resource
+    private SysRoleMapper sysRoleMapper;
 
+    @Resource
+    private ProjectMapper projectMapper;
+
+    @Resource
+    private IProjectMemberService projectMemberService;
 
+    @Override
+    public Result cwjsParticipateList(ProjectMember projectMember) {
+        String userId = projectMember.getUserId();
+        if (Check.isNull(userId)) {
+            return Result.error("未获取到关联用户信息");
+        }
+        String projectName = projectMember.getProjectName();
+        Long productId = projectMember.getProductId();
+
+        QueryWrapper<ProjectMember> queryWrapper = new QueryWrapper<>();
+        String roleCode = sysRoleMapper.getRoleCodeByUserId(userId);
+        if (!"admin".equals(roleCode)) {
+            List<String> userIds = getCwSaleAndAssistantListStr(projectMember.getUserId());
+            queryWrapper.in("user_id", userIds);
+        }
+        if (!Check.isNull(projectName)) {
+            queryWrapper.like("project_name", projectName);
+        }
+        if (!Check.isNull(productId)) {
+            List<Long> projectIds = projectMapper.getProjectIdsByProductId(productId);
+            if (Check.isNull(projectIds)) {
+                return Result.error("该产品下暂无关联项目");
+            }
+            queryWrapper.in("project_id", projectIds);
+        }
+        queryWrapper.groupBy("project_id");
+        queryWrapper.orderByDesc("create_time");
+        List<ProjectMember> projectMembers = projectMemberService.list(queryWrapper);
+        projectMembers = projectMemberService.getMapsByProjectList(projectMembers);
+        List<ProjectMember> resultList = new ArrayList<>();
+        if (!Check.isNull(projectMembers)) {
+                Map<String, List<ProjectMember>> groupByMedia = projectMembers.stream().filter(p -> (!Check.isNull(p.getMediaId()))).collect(Collectors.groupingBy(ProjectMember::getMediaId));
+                resultList = groupByMedia.get(projectMember.getMediaId());
+                if (!Check.isNull(resultList)) {
+                    resultList.stream().filter(p -> (!Check.isNull(p.getAdvertiserName()))).collect(Collectors.toList());
+                    resultList = resultList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ProjectMember::getAdvertiserId))), ArrayList::new));
+                }
+            }
+        return Result.successMsg("成功。", resultList);
     }