Przeglądaj źródła

优化查询接口participateList--去除不必要的返回字段,清除循环查询数据库的代码逻辑

songyh 3 lat temu
rodzic
commit
c783693303

+ 3 - 46
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectMemberController.java

@@ -90,58 +90,18 @@ public class ProjectMemberController {
      * @param userId
      * @return
      */
-
-
     @GetMapping(value = "/participateList")
     public Map<String, Object> participateList(String userId) {
         Map<String, Object> map = new HashMap<>();
         try {
-            QueryWrapper<ProjectMember> queryWrapper = new QueryWrapper<>();
             String roleCode = sysRoleService.getRoleCodeByUserId(userId);
             if (!"admin".equals(roleCode) && !roleCode.contains("sale") && !"meidaManager".equals(roleCode)) {
-                queryWrapper.eq("user_id", userId);
-            }
-            queryWrapper.groupBy("project_id");
-            queryWrapper.orderByDesc("create_time");
-            List<ProjectMember> projectMembers = projectMemberMapper.selectList(queryWrapper);
-            List<ProjectMember> projectMemberList = new ArrayList<>();
-            if (!Check.isNull(projectMembers)) {
-                for (ProjectMember projectMember : projectMembers) {
-                    if (Check.isNull(projectMember)) {
-                        continue;
-                    }
-                    Project project = projectService.getById(projectMember.getProjectId());
-                    if (!Check.isNull(project)) {
-                        SysUser responsible = sysUserService.getById(project.getResponsibleId());
-                        if (!Check.isNull(responsible)) {
-                            projectMember.setResponsibleName(responsible.getRealname());
-                        }
-
-                        SysUser designResponsible = sysUserService.getById(project.getDesignResponsibleId());
-                        if (!Check.isNull(designResponsible)) {
-                            projectMember.setDesignResponsibleName(designResponsible.getRealname());
-                        }
-
-                        projectMember.setProjectName(project.getProjectName());
-                        Product product = productService.getById(project.getProductId());
-                        if (!Check.isNull(product)) {
-                            projectMember.setProductId(product.getId());
-                            projectMember.setProductName(product.getProductName());
-                        }
-                        Advertiser advertiser = advertiserService.getById(project.getAdvertiserId());
-                        if (!Check.isNull(advertiser)) {
-                            projectMember.setAdvertiserName(advertiser.getName());
-                        }
-                        projectMember.setAdvertiserId(project.getAdvertiserId());
-                        projectMember.setMediaId(project.getMediaId());
-                        projectMember.setMaxBid(project.getMaxBid());
-                        projectMemberList.add(projectMember);
-                    }
-                }
+                userId = null;
             }
+            List <ProjectMember> projectMembers = projectMemberMapper.getlistByUserId(userId);
             map.put("code", 0);
             map.put("success", true);
-            map.put("result", projectMemberList);
+            map.put("result", projectMembers);
         } catch (Exception e) {
             e.printStackTrace();
             map.put("success", false);
@@ -231,9 +191,6 @@ public class ProjectMemberController {
         }
     }
 
-    @Autowired
-    private IProductService productService;
-
     @GetMapping(value = "/participateListV2")
     public Result<IPage<ProjectMember>> participateListV2(ProjectMember projectMember,
                                                           @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/ProjectMemberMapper.java

@@ -52,4 +52,6 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
     List<ProjectMember> getProductIds(@Param("userId") String userId, @Param("mediaList") List<Integer> mediaList, @Param("productId") Long productId);
 
     List<Long> getProjectIdsByProductId(@Param("productId") Long productId, @Param("userId") String userId);
+
+    List<ProjectMember> getlistByUserId(@Param("userId")String userId);
 }

+ 11 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/ProjectMemberMapper.xml

@@ -276,6 +276,17 @@
         GROUP BY
         t1.id
     </select>
+    <select id="getlistByUserId" resultType="org.jeecg.modules.ctop.entity.ProjectMember">
+        select cp.id as id, cp.project_name as project_name, cp.media_id as media_id, ca.name as advertiser_name
+        from ctop_project_member cpm
+                 left join ctop_project cp on cpm.project_id = cp.id
+                 left join ctop_advertiser ca on ca.id = cp.advertiser_id
+        where 1=1
+        <if test="userId!=null">
+            and cpm.user_id = #{userId}
+        </if>
+        group by cp.id
+    </select>
 
 
 </mapper>