Переглянути джерело

(咨询记录)日常更新

Duan_xu 2 роки тому
батько
коміт
16d27a9152

+ 16 - 4
src/main/java/com/caimei365/user/controller/ClubApi.java

@@ -222,7 +222,7 @@ public class ClubApi {
 
     @ApiOperation("未注册机构报备列表")
     @GetMapping("/report/visitor/List")
-    public ResponseJson<PaginationVo<ReportVo>> visitorReportList(Integer questionManId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    public ResponseJson<PaginationVo<ReportVo>> visitorReportList(String questionManId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return clubService.visitorReportList(questionManId,keyWord,pageNum,pageSize);
     }
 
@@ -233,6 +233,12 @@ public class ClubApi {
         return clubService.reportDetailsList(reportId);
     }
 
+    @ApiOperation("未确认机构报备详情")
+    @GetMapping("/report/visitor/details")
+    public ResponseJson<ReportVo> visitorReportList(Integer reportId) {
+        return clubService.visitorReportsList(reportId);
+    }
+
 
     @ApiOperation("新建机构报备")
     @PostMapping("/report/save")
@@ -257,7 +263,7 @@ public class ClubApi {
     @GetMapping("/report/reportRemarks")
 public ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Integer serviceProviderId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1")int pageNum, @RequestParam(value = "pageSize", defaultValue = "10")int pageSize){
 
-        return  clubService.reportRemarks(manager,serviceProviderId,keyWord,pageNum,pageSize);
+        return clubService.reportRemarks(manager,serviceProviderId,keyWord,pageNum,pageSize);
 }
 
     @ApiOperation("未注册机构报备列表")
@@ -269,13 +275,13 @@ public ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Intege
 
     @ApiOperation("关联咨询记录列表")
     @GetMapping("/report/associatedList")
-    public ResponseJson<PaginationVo<RemarksVo>>associated(Integer reportId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    public ResponseJson<PaginationVo<RemarkVo>>associated(Integer reportId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return clubService.associated(reportId,keyWord,pageNum,pageSize);
     }
 
     @ApiOperation("未注册关联咨询记录列表")
     @GetMapping("/report/visitor/associatedList")
-    public ResponseJson<PaginationVo<RemarksVo>>visitorAssociated(Integer reportId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    public ResponseJson<PaginationVo<RemarkVo>>visitorAssociated(Integer reportId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return clubService.visitorAssociated(reportId,keyWord,pageNum,pageSize);
     }
 
@@ -292,6 +298,12 @@ public ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Intege
         return clubService.visitorDisassociation(remarksId);
     }
 
+    @ApiOperation("删除机构报备")
+    @PostMapping("/report/delete")
+    public ResponseJson deleteReport(Integer reportId) {
+        return clubService.deleteReport(reportId);
+    }
+
 
     @ApiOperation("删除机构资料备注")
     @ApiImplicitParam(required = true, name = "remarksId", value = "机构id")

+ 7 - 2
src/main/java/com/caimei365/user/mapper/ClubReportMapper.java

@@ -24,6 +24,8 @@ List<ReportVo> reportList(Integer serviceProviderId,Integer clubId,String keyWor
 
 ReportVo reportDetailsList(Integer reportId);
 
+ReportVo visitorReportsList(Integer reportId);
+
 List<ReportVo>reportRemarks(Integer teamId,Integer serviceProviderId,String keyWord);
 
 List<ReportVo>visitorReportRemarks(Integer teamId,Integer serviceProviderId,String keyWord);
@@ -40,11 +42,14 @@ void disassociation(Integer remarksId);
 
 void visitorDisassociation(Integer remarksId);
 
-List<ReportVo>visitorReportList(Integer questionManId,String keyWord);
+List<ReportVo>visitorReportList(String questionManId,String keyWord);
 
 void addVisitorReport(ReportVo reportVo);
 
-String visitorMan(Integer questionManId);
+Integer visitorMan(String questionManId);
+
+void deleteReport(Integer reportId);
+
 
 
 

+ 4 - 0
src/main/java/com/caimei365/user/model/vo/RemarkVo.java

@@ -117,4 +117,8 @@ public class RemarkVo implements Serializable {
      * 审核备注
      */
     private String auditText;
+    /**
+     * 新分配机构状态 0.否,1.是
+     */
+    private Integer newDeal;
 }

+ 3 - 1
src/main/java/com/caimei365/user/model/vo/ReportVo.java

@@ -45,10 +45,12 @@ public class ReportVo implements Serializable {
 
     private Integer serviceProviderId;//协销ID
 
-    private Integer questionManId;//咨询人ID
+    private String questionManId;//咨询人ID
 
     private String questionMan;//咨询人名称
 
+    private Integer newDeal;// 新分配机构1.是, 2.否,
+
 
 
 }

+ 2 - 0
src/main/java/com/caimei365/user/model/vo/VisitorRemarkVo.java

@@ -129,4 +129,6 @@ public class VisitorRemarkVo implements Serializable {
      * 新分配机构状态 0.否,1.是
      */
     private Integer newDeal;
+
+
 }

+ 7 - 3
src/main/java/com/caimei365/user/service/ClubService.java

@@ -116,15 +116,17 @@ public interface ClubService {
 
     ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubId,String keyWord, int pageNum,  int pageSize);
 
-    ResponseJson<PaginationVo<ReportVo>> visitorReportList(Integer questionManId,String keyWord, int pageNum,  int pageSize);
+    ResponseJson<PaginationVo<ReportVo>> visitorReportList(String questionManId,String keyWord, int pageNum,  int pageSize);
 
     ResponseJson addVisitorReport(ReportVo reportVo);
 
     ResponseJson<ReportVo> reportDetailsList(Integer reportId);
 
-    ResponseJson<PaginationVo<RemarksVo>>associated(Integer reportId,String keyWord, int pageNum,int pageSize);
+    ResponseJson<ReportVo> visitorReportsList(Integer reportId);
 
-    ResponseJson<PaginationVo<RemarksVo>>visitorAssociated(Integer reportId,String keyWord, int pageNum,  int pageSize);
+    ResponseJson<PaginationVo<RemarkVo>>associated(Integer reportId,String keyWord, int pageNum,int pageSize);
+
+    ResponseJson<PaginationVo<RemarkVo>>visitorAssociated(Integer reportId,String keyWord, int pageNum,  int pageSize);
 
     ResponseJson disassociation(Integer remarksId);
 
@@ -249,4 +251,6 @@ public interface ClubService {
     ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Integer serviceProviderId,String keyWord,int pageNum, int pageSize);
 
     ResponseJson<PaginationVo<ReportVo>> visitorReportRemarks(Integer manager,Integer serviceProviderId,String keyWord,int pageNum, int pageSize);
+
+    ResponseJson deleteReport(Integer reportId);
 }

+ 144 - 6
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -485,7 +485,7 @@ public class ClubServiceImpl implements ClubService {
     }
 
     @Override
-    public ResponseJson<PaginationVo<ReportVo>> visitorReportList(Integer questionManId,String keyWord, int pageNum,  int pageSize) {
+    public ResponseJson<PaginationVo<ReportVo>> visitorReportList(String questionManId,String keyWord, int pageNum,  int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         List<ReportVo>reportList=clubReportMapper.visitorReportList(questionManId,keyWord);
         return ResponseJson.success(new PaginationVo<>(reportList));
@@ -499,16 +499,25 @@ public class ClubServiceImpl implements ClubService {
         return ResponseJson.success(reportVo);
     }
 
+    @Override
+    public ResponseJson<ReportVo> visitorReportsList(Integer reportId) {
+        ReportVo reportVo=clubReportMapper.visitorReportsList(reportId);
+        return ResponseJson.success(reportVo);
+    }
+
         @Override
     public ResponseJson saveClubReport(ReportVo reportVo) {
         reportVo.setReportName(clubReportMapper.roeprtNa(reportVo.getServiceProviderId()));
+        reportVo.setServiceProviderId(reportVo.getServiceProviderId());
         clubReportMapper.addClubReport(reportVo);
            return ResponseJson.success("保存成功");
     }
 
     @Override
     public ResponseJson addVisitorReport(ReportVo reportVo) {
-        reportVo.setReportName(clubReportMapper.visitorMan(reportVo.getQuestionManId()));
+       Integer serviceProviderId= clubReportMapper.visitorMan(reportVo.getQuestionManId());
+        reportVo.setReportName(clubReportMapper.roeprtNa(serviceProviderId));
+        reportVo.setServiceProviderId(serviceProviderId);
         clubReportMapper.addVisitorReport(reportVo);
         return ResponseJson.success("保存成功");
     }
@@ -525,19 +534,128 @@ public class ClubServiceImpl implements ClubService {
         return ResponseJson.success("取消成功");
     }
 
+    @Override
+    public ResponseJson deleteReport(Integer reportId){
+        clubReportMapper.deleteReport(reportId);
+        return ResponseJson.success("删除成功");
+    }
+
 
     @Override
-    public ResponseJson<PaginationVo<RemarksVo>>associated(Integer reportId,String keyWord, int pageNum,  int pageSize) {
+    public ResponseJson<PaginationVo<RemarkVo>>associated(Integer reportId,String keyWord, int pageNum,  int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         List<RemarksVo>reportList=clubReportMapper.associated(reportId,keyWord);
-        return ResponseJson.success(new PaginationVo<>(reportList));
+        ArrayList<RemarkVo> remarkVos = new ArrayList<>();
+        RemarkVo remarkVo = new RemarkVo();
+        reportList.forEach(remarksVo->{
+            List<Map<String, String>> strings = new ArrayList<>();
+            String rk = null == remarksVo.getRemarks() ? "" : remarksVo.getRemarks();
+            if (rk.contains(",")) {
+                String[] split = rk.split(",");
+                for (String remark : split) {
+                    HashMap<String, String> map = new HashMap<>();
+                    map.put("label", remark);
+                    strings.add(map);
+                }
+            } else {
+                HashMap<String, String> map = new HashMap<>();
+                map.put("label", rk);
+                strings.add(map);
+            }
+            remarkVo.setLeaderName(remarksVo.getLeaderName());
+            remarkVo.setRecordName(remarksVo.getRecordName());
+            remarkVo.setServiceProviderId(remarksVo.getServiceProviderId());
+            remarkVo.setRemarks(strings);
+            remarkVo.setQuestionMan(remarksVo.getQuestionMan());
+            remarkVo.setRemarksId(remarksVo.getRemarksId());
+            remarkVo.setAddTime(remarksVo.getAddTime());
+            remarkVo.setClubName(clubMapper.findClubName(remarksVo.getClubId()));
+            remarkVo.setClubName(remarksVo.getClubName());
+            remarkVo.setConsult(remarksVo.getConsult());
+            remarkVo.setClubType(remarksVo.getClubType());
+            remarkVo.setExtra(remarksVo.getExtra());
+            remarkVo.setSatisfied(remarksVo.getSatisfied());
+            remarkVo.setPinceSensitve(remarksVo.getPinceSensitve());
+            remarkVo.setFollowup(remarksVo.getFollowup());
+            remarkVo.setStatus(remarksVo.getStatus());
+            remarkVo.setNewDeal(remarksVo.getNewDeal());
+            remarkVos.add(remarkVo);
+        });
+        PaginationVo<RemarkVo> pageVo = new PaginationVo<>(remarkVos);
+        if (null != remarkVos && remarkVos.size() > 0) {
+            pageVo.setTotalRecord(remarkVos.size());
+            if (remarkVos.size() > pageSize) {
+                pageVo.setTotalPage((int) Math.ceil(MathUtil.div(remarkVos.size(), pageSize).doubleValue()));
+                pageVo.setHasNextPage(true);
+            } else {
+                pageVo.setTotalPage(1);
+                pageVo.setHasNextPage(false);
+            }
+        } else {
+            pageVo.setTotalPage(0);
+            pageVo.setHasNextPage(false);
+            pageVo.setTotalRecord(0);
+        }
+        return  ResponseJson.success(pageVo);
     }
 
     @Override
-    public ResponseJson<PaginationVo<RemarksVo>>visitorAssociated(Integer reportId,String keyWord, int pageNum,  int pageSize) {
+    public ResponseJson<PaginationVo<RemarkVo>>visitorAssociated(Integer reportId,String keyWord, int pageNum,  int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         List<RemarksVo>reportList=clubReportMapper.visitorAssociated(reportId,keyWord);
-        return ResponseJson.success(new PaginationVo<>(reportList));
+        ArrayList<RemarkVo> remarkVos = new ArrayList<>();
+        RemarkVo remarkVo = new RemarkVo();
+        reportList.forEach(remarksVo->{
+            List<Map<String, String>> strings = new ArrayList<>();
+            String rk = null == remarksVo.getRemarks() ? "" : remarksVo.getRemarks();
+            if (rk.contains(",")) {
+                String[] split = rk.split(",");
+                for (String remark : split) {
+                    HashMap<String, String> map = new HashMap<>();
+                    map.put("label", remark);
+                    strings.add(map);
+                }
+            } else {
+                HashMap<String, String> map = new HashMap<>();
+                map.put("label", rk);
+                strings.add(map);
+            }
+            remarkVo.setLeaderName(remarksVo.getLeaderName());
+            remarkVo.setRecordName(remarksVo.getRecordName());
+            remarkVo.setServiceProviderId(remarksVo.getServiceProviderId());
+            remarkVo.setRemarks(strings);
+            remarkVo.setQuestionMan(remarksVo.getQuestionMan());
+            remarkVo.setRemarksId(remarksVo.getRemarksId());
+            remarkVo.setAddTime(remarksVo.getAddTime());
+            remarkVo.setClubName(clubMapper.findClubName(remarksVo.getClubId()));
+            remarkVo.setClubName(remarksVo.getClubName());
+            remarkVo.setConsult(remarksVo.getConsult());
+            remarkVo.setClubType(remarksVo.getClubType());
+            remarkVo.setExtra(remarksVo.getExtra());
+            remarkVo.setSatisfied(remarksVo.getSatisfied());
+            remarkVo.setPinceSensitve(remarksVo.getPinceSensitve());
+            remarkVo.setFollowup(remarksVo.getFollowup());
+            remarkVo.setStatus(remarksVo.getStatus());
+            remarkVo.setNewDeal(remarksVo.getNewDeal());
+            remarkVos.add(remarkVo);
+        });
+        PaginationVo<RemarkVo> pageVo = new PaginationVo<>(remarkVos);
+        if (null != remarkVos && remarkVos.size() > 0) {
+            pageVo.setTotalRecord(remarkVos.size());
+            if (remarkVos.size() > pageSize) {
+                pageVo.setTotalPage((int) Math.ceil(MathUtil.div(remarkVos.size(), pageSize).doubleValue()));
+                pageVo.setHasNextPage(true);
+            } else {
+                pageVo.setTotalPage(1);
+                pageVo.setHasNextPage(false);
+            }
+        } else {
+            pageVo.setTotalPage(0);
+            pageVo.setHasNextPage(false);
+            pageVo.setTotalRecord(0);
+        }
+        return  ResponseJson.success(pageVo);
+//        return ResponseJson.success(new PaginationVo<>(reportList));
     }
 
     @Override
@@ -636,6 +754,8 @@ public class ClubServiceImpl implements ClubService {
             remarkVo.setPinceSensitve(r.getPinceSensitve());
             remarkVo.setFollowup(r.getFollowup());
 //            remarkVo.setOldName(r.getOldName());
+            remarkVo.setStatus(r.getStatus());
+            remarkVo.setNewDeal(r.getNewDeal());
             remarkVos.add(remarkVo);
         });
         PaginationVo<RemarkVo> pageVo = new PaginationVo<>(remarkVos);
@@ -666,6 +786,7 @@ public class ClubServiceImpl implements ClubService {
         List<RemarksFileVo> fileList = clubMapper.getRemarksFileList(remarksId);
         fileList.forEach(file -> file.setFileUrl(OssUtil.getOssUrl(file.getOssName())));
         List<Map<String, String>> strings = new ArrayList<>();
+        if(remarksVo!=null){
         String rk = null == remarksVo.getRemarks() ? "" : remarksVo.getRemarks();
         if (rk.contains(",")) {
             String[] split = rk.split(",");
@@ -679,6 +800,7 @@ public class ClubServiceImpl implements ClubService {
             map.put("label", rk);
             strings.add(map);
         }
+
         RemarkVo remarkVo = new RemarkVo();
         remarkVo.setClubId(remarksVo.getClubId());
         remarkVo.setUserId(remarksVo.getUserId());
@@ -700,6 +822,7 @@ public class ClubServiceImpl implements ClubService {
         remarkVo.setShopName(remarksVo.getShopName());
         remarkVo.setStatus(remarksVo.getStatus());
         remarkVo.setAuditText(remarksVo.getAuditText());
+        remarkVo.setNewDeal(remarksVo.getNewDeal());
         if (StringUtils.isNotBlank(remarksVo.getConsult())) {
             if (remarkVo.getConsult().contains(",")) {
                 List<String> cons = Arrays.asList(remarkVo.getConsult().split(","));
@@ -714,6 +837,8 @@ public class ClubServiceImpl implements ClubService {
             }
         }
         return ResponseJson.success(remarkVo);
+        }
+        return ResponseJson.error("参数错误remarksId:"+remarksId);
     }
 
     @Override
@@ -970,6 +1095,8 @@ public class ClubServiceImpl implements ClubService {
             Integer satisfied = jsonObject.getInteger("satisfied");
             Integer followup = jsonObject.getInteger("followup");
             String extra = jsonObject.getString("extra");
+            Integer productID = jsonObject.getInteger("productId");
+            Integer reportID = jsonObject.getInteger("reportId");
 
             if (null == questionManId) {
                 return ResponseJson.error("参数异常,咨询人id不能为空");
@@ -1012,6 +1139,8 @@ public class ClubServiceImpl implements ClubService {
             visitorRemarkVo.setSatisfied(satisfied);
             visitorRemarkVo.setFollowup(followup);
             visitorRemarkVo.setExtra(extra);
+            visitorRemarkVo.setReportId(reportID);
+            visitorRemarkVo.setProductId(productID);
             if (newRemarks) {
                 // 新增备注
                 clubMapper.insertVisitorRemark(visitorRemarkVo);
@@ -1060,6 +1189,7 @@ public class ClubServiceImpl implements ClubService {
         List<RemarksFileVo> fileList = clubMapper.getVisitRemarksFileList(remarksId);
         fileList.forEach(file -> file.setFileUrl(OssUtil.getOssUrl(file.getOssName())));
         List<Map<String, String>> strings = new ArrayList<>();
+        if(visitRemarksVo!=null){
         String rk = null == visitRemarksVo.getRemarks() ? "" : visitRemarksVo.getRemarks();
         if (rk.contains(",")) {
             String[] split = rk.split(",");
@@ -1073,6 +1203,7 @@ public class ClubServiceImpl implements ClubService {
             map.put("label", rk);
             strings.add(map);
         }
+
         VisitRemarkVo visit = new VisitRemarkVo();
         visit.setConsult(visitRemarksVo.getConsult());
         visit.setQuestionMan(visitRemarksVo.getQuestionMan());
@@ -1109,6 +1240,8 @@ public class ClubServiceImpl implements ClubService {
             }
         }
         return ResponseJson.success(visit);
+        }
+        return ResponseJson.error("参数错误remarksId:"+remarksId);
     }
 
     @Override
@@ -1190,6 +1323,7 @@ public class ClubServiceImpl implements ClubService {
             visit.setSatisfied(r.getSatisfied());
             visit.setFollowup(r.getFollowup());
             visit.setExtra(r.getExtra());
+            visit.setStatus(r.getStatus());
             remarkVos.add(visit);
         });
         PaginationVo<VisitRemarkVo> pageVo = new PaginationVo<>(remarkVos);
@@ -1254,6 +1388,7 @@ public class ClubServiceImpl implements ClubService {
             remarksVo.setFollowup(v.getFollowup());
             remarksVo.setExtra(v.getExtra());
             remarksVo.setClubType(v.getClubType());
+            remarksVo.setStatus(v.getStatus());
             clubMapper.concactVisit(remarksVo);
             if (null != imageList && imageList.size() > 0) {
                 imageList.forEach(i -> clubMapper.insertRemarksImage(remarksVo.getRemarksId(), i));
@@ -1303,4 +1438,7 @@ public class ClubServiceImpl implements ClubService {
         List<CmRemarksVo> remarklist = clubMapper.getCmRemarksList(remarks);
         return ResponseJson.success(remarklist);
     }
+
+
+
 }

+ 15 - 10
src/main/resources/mapper/ClubMapper.xml

@@ -297,15 +297,18 @@
         order by addTime desc
     </select>
     <select id="getRemarks" resultType="com.caimei365.user.model.vo.RemarksVo">
-        SELECT ccr.id AS remarksId, ccr.remarks, ccr.questionMan, ccr.addTime, ccr.clubId, c.userID,IFNULL(ccr.consultType,'')AS consult,
-               ccr.clubType,ccr.pinceSensitve,ccr.satisfied,ccr.followup,ccr.extra,p.`mainImage` AS mainImage,p.name AS productName,s.name AS shopName,
-               cmc.`reportText` as reportText,cmc.`status` as status,cmc.`auditText` as auditText
+        SELECT DISTINCT
+         ccr.id AS remarksId, ccr.remarks, ccr.questionMan, ccr.addTime, ccr.clubId, c.userID,IFNULL(ccr.consultType,'')AS consult,
+         ccr.clubType,ccr.pinceSensitve,ccr.satisfied,ccr.followup,ccr.extra,p.`mainImage` AS mainImage,p.name AS productName,s.name AS shopName,
+         cmc.`reportText` as reportText,cmc.`status` as status,cmc.`auditText` as auditText,c.newDeal as newDeal
         FROM cm_club_remarks ccr
         LEFT JOIN club c ON ccr.clubId = c.clubId
         LEFT JOIN product p ON p.productID = ccr.productID
         LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
         LEFT JOIN shop s ON s.shopID = p.shopID
         where ccr.id = #{remarksId}
+        AND ccr.remarks IS NOT NULL
+        AND cmc.clubId IS NOT NULL
     </select>
     <select id="getRemarksImageList" resultType="java.lang.String">
         select imageUrl
@@ -392,7 +395,7 @@
         ORDER BY addTime DESC
     </select>
     <select id="getVisitRemark" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
-        select ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.questionMan, ccr.addTime as addDate,IFNULL(ccr.consultType,'') as consult,ccr.clubType,ccr.pinceSensitve,ccr.satisfied,ccr.followup,ccr.extra,
+        select DISTINCT ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.questionMan, ccr.addTime as addDate,IFNULL(ccr.consultType,'') as consult,ccr.clubType,ccr.pinceSensitve,ccr.satisfied,ccr.followup,ccr.extra,
                p.`mainImage` AS mainImage,p.name AS productName,s.name AS shopName,
                cmc.`reportText` as reportText,cmc.`status` as status,cmc.`auditText` as auditText
         from cm_visitor_remarks ccr
@@ -400,9 +403,10 @@
          LEFT JOIN product p ON p.productID = ccr.productID
          LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
          LEFT JOIN shop s ON s.shopID = p.shopID
-        where id = #{remarksId}
-          AND remarks IS NOT NULL
-          and clubId is null
+        where ccr.id = #{remarksId}
+          AND ccr.remarks IS NOT NULL
+          and cmc.clubId is null
+
     </select>
     <select id="getVisitRemarksImageList" resultType="java.lang.String">
         select imageUrl
@@ -512,11 +516,12 @@
         ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.addTime as addDate, ccr.questionMan,IFNULL(ccr.consultType,'') as consult,
         ccr.serviceProviderId,ccr.clubType,ccr.pinceSensitve,ccr.satisfied,ccr.followup,ccr.extra,
         (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,
-        (select name from serviceprovider s where s.serviceProviderID = csr.leaderId) as leaderName
+        (select name from serviceprovider s where s.serviceProviderID = csr.leaderId) as leaderName,cmc.status as status
         FROM cm_visitor_remarks ccr
         left join cm_serviceteam_group csg on csg.serviceId = ccr.serviceProviderID
         left join cm_serviceteam_role csr on csr.id = csg.teamId
         left join serviceprovider s on ccr.serviceProviderID = s.serviceProviderID
+        LEFT JOIN cm_club_report cmc ON cmc.questionManId = ccr.questionManId
         WHERE ccr.serviceProviderId = #{serviceProviderId}
         and ccr.remarks IS NOT NULL
         and ccr.clubId is null
@@ -608,7 +613,7 @@
         LEFT JOIN club c ON c.clubId=ccr.clubId
         LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
         LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
-        LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
+        LEFT JOIN cm_club_report cmc ON cmc.clubId = ccr.clubId
         <where>
             <if test="keyWord != null and keyWord !=''">
                 AND (ccr.remarks LIKE concat('%',#{keyWord},'%')
@@ -661,7 +666,7 @@
         LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
         LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
         LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
-        LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
+        LEFT JOIN cm_club_report cmc ON cmc.questionManId = ccr.questionManId
         <where>
             and ccr.remarks IS NOT NULL
             and ccr.clubId is null

+ 171 - 91
src/main/resources/mapper/ClubReport.xml

@@ -3,191 +3,271 @@
 <mapper namespace="com.caimei365.user.mapper.ClubReportMapper">
 
     <insert id="addClubReport">
-        INSERT INTO cm_club_report (clubID,productID,reportName,reportText,addTime,status)  VALUES(#{clubId},#{productId},#{reportName},#{reportText},now(),2)
+        INSERT INTO cm_club_report (serviceProviderID, clubID, productID, reportName, reportText, addTime)
+        VALUES (#{serviceProviderId}, #{clubId}, #{productId}, #{reportName}, #{reportText}, now())
     </insert>
 
     <insert id="addVisitorReport">
-        INSERT INTO cm_club_report (productID,reportName,reportText,addTime,status)  VALUES(#{productId},#{reportName},#{reportText},now(),2)
+        INSERT INTO cm_club_report (serviceProviderID, questionManId, productID, reportName, reportText, addTime)
+        VALUES (#{serviceProviderId}, #{questionManId}, #{productId}, #{reportName}, #{reportText}, now())
     </insert>
 
 
-    <select id="productList"  resultType="com.caimei365.user.model.vo.ProductItemVo">
-        SELECT p.productID,p.mainImage as image,p.name,p.price,s.name as shopName FROM `product` p
+    <select id="productList" resultType="com.caimei365.user.model.vo.ProductItemVo">
+        SELECT DISTINCT
+                p.productID as productId,p.mainImage as image,p.name,p.price,s.name as shopName
+        FROM `product` p
         LEFT JOIN shop s ON s.shopID = p.shopID
-        LEFT JOIN cm_club_report cmc ON p.productID = cmc.productID
+        LEFT JOIN cm_club_report cmc ON cmc.productID = p.productID
         <where>
-         (p.validFlag=9 or p.validFlag=2)
-        <if test="keyWord != null and keyWord !=''">
-           and p.name LIKE concat('%',#{keyWord},'%')
-        </if>
+            (p.validFlag=9 or p.validFlag=2)
+            <if test="keyWord != null and keyWord !=''">
+                and p.name LIKE concat('%',#{keyWord},'%')
+            </if>
+        </where>
+        ORDER BY cmc.`addTime` DESC
+    </select>
 
+    <select id="reportList" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+        cmc.Id as reportId,cmc.clubID as clubId,cmc.status as status,cmc.productID as productId,c.`name` as
+        clubName,cmc.`addTime`,p.`name` as productName,p.`mainImage` as mainImage,cmc.`reportText` as
+        reportText,cmc.`auditText` as auditText
+        FROM cm_club_report cmc
+        LEFT JOIN cm_club_remarks ccr ON ccr.clubID = cmc.clubID
+        LEFT JOIN club c ON c.clubID = cmc.clubID
+        LEFT JOIN product p ON cmc.productID = p.productID
+        <where>
+            (cmc.`serviceProviderId`=#{serviceProviderId} and cmc.`clubID`=#{clubId} and cmc.clubID is not null)
+            <if test="keyWord != null and keyWord !=''">
+                AND (p.name LIKE concat('%',#{keyWord},'%')
+                or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
+            </if>
 
         </where>
+        ORDER BY cmc.`addTime` DESC
     </select>
 
-<select id="reportList" resultType="com.caimei365.user.model.vo.ReportVo">
-    SELECT c.`name` as clubName,cmc.`addTime`,p.`name` as productName,p.`mainImage` as mainImage,cmc.`reportText`
-    FROM cm_club_report cmc
-    LEFT JOIN cm_club_remarks ccr ON ccr.reportID = cmc.id
-    LEFT JOIN club c ON c.clubID = cmc.clubID
-    LEFT JOIN product p ON p.productID = cmc.productID
-    <where>
-         (ccr.`serviceProviderId`=#{serviceProviderId} OR cmc.`clubID`=#{clubId})
-        <if test="keyWord != null and keyWord !=''">
-            AND (p.name LIKE concat('%',#{keyWord},'%')
-            or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
-        </if>
-
-</where>
-</select>
-
     <select id="reportDetailsList" resultType="com.caimei365.user.model.vo.ReportVo">
-        SELECT c.name AS clubName,c.linkMan,cmc.`reportName`,cmc.`addTime`,p.`name` as productName,p.`mainImage`,cmc.`reportText`,s.name as shopName
+        SELECT DISTINCT
+                cmc.Id          as reportId,
+               cmc.clubID      as clubId,
+               cmc.status      as status,
+               p.productID     as productId,
+               c.name          AS clubName,
+               c.linkMan,
+               cmc.`reportName`,
+               cmc.`addTime`,
+               p.`name`        as productName,
+               p.`mainImage`,
+               cmc.`reportText`,
+               s.name          as shopName,
+               cmc.`auditText` as auditText
         FROM cm_club_report cmc
-        LEFT JOIN club c ON c.clubID = cmc.clubID
-        LEFT JOIN product p ON p.productID = cmc.productID
-        LEFT JOIN shop s ON s.shopID = p.shopID
-        WHERE cmc.id=#{reportId}
+                 LEFT JOIN club c ON c.clubID = cmc.clubID
+                 LEFT JOIN product p ON p.productID = cmc.productID
+                 LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE cmc.id = #{reportId}
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+    <select id="visitorReportsList" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+            cmc.Id          as reportId,
+            cmc.clubID      as clubId,
+            cmc.status      as status,
+            p.productID     as productId,
+           ccr.questionMan as questionMan,
+            cmc.`reportName`,
+            cmc.`addTime`,
+            p.`name`        as productName,
+            p.`mainImage`,
+            cmc.`reportText`,
+            s.name          as shopName,
+            cmc.`auditText` as auditText
+        FROM cm_club_report cmc
+                 LEFT JOIN cm_visitor_remarks ccr ON ccr.questionManId = cmc.questionManId
+                 LEFT JOIN product p ON p.productID = cmc.productID
+                 LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE cmc.id = #{reportId}
+        ORDER BY cmc.`addTime` DESC
     </select>
 
+
+
     <select id="reportRemarks" resultType="com.caimei365.user.model.vo.ReportVo">
-        SELECT
-        ccr.serviceProviderID, cmc.id AS reportId , c.name AS clubName,c.`newDeal` AS newDeal,cmc.reportName AS reportName,cmc.`addTime` AS ADDTIME,p.`mainImage` AS mainImage,p.name AS productName,cmc.`reportText`
+        SELECT DISTINCT
+        cmc.id AS reportId ,cmc.productID as productId,ccr.serviceProviderID as serviceProviderId,  c.name AS clubName,c.`newDeal` AS newDeal,cmc.reportName AS
+        reportName,cmc.`addTime` AS ADDTIME,p.`mainImage` AS mainImage,p.name AS productName,cmc.`reportText` as
+        reportText,cmc.status AS status,cmc.`auditText` as auditText,ccr.questionMan as questionMan
         FROM cm_club_report cmc
         LEFT JOIN club c ON c.clubId=cmc.clubId
-        LEFT JOIN cm_club_remarks ccr ON cmc.ID = ccr.reportID
+        LEFT JOIN cm_club_remarks ccr ON cmc.clubId = ccr.clubId
         LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
         LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
         LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
         LEFT JOIN product p ON p.productID = cmc.productID
-                    <where>
-                        <if test="keyWord != null and keyWord !=''">
-                            AND (p.name LIKE concat('%',#{keyWord},'%')
-                            or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
-                        </if>
-                        <if test="teamId!=null">
-                           and csg.teamId = #{teamId}
-                        </if>
-                        <if test="teamId==null and serviceProviderId!=null">
-                          and ccr.serviceProviderId=#{serviceProviderId}
-                        </if>
-                    </where>
+        <where>
+            and cmc.clubID is not null
+            <if test="keyWord != null and keyWord !=''">
+                AND (p.name LIKE concat('%',#{keyWord},'%')
+                or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
+            </if>
+            <if test="teamId!=null">
+                and csg.teamId = #{teamId}
+            </if>
+            <if test="teamId==null and serviceProviderId!=null">
+                and cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+            ORDER BY cmc.`addTime` DESC
+        </where>
     </select>
 
     <select id="visitorReportRemarks" resultType="com.caimei365.user.model.vo.ReportVo">
-        SELECT
-        ccr.serviceProviderID, cmc.id AS reportId , c.name AS clubName,c.`newDeal` AS newDeal,cmc.reportName AS reportName,cmc.`addTime` AS ADDTIME,p.`mainImage` AS mainImage,p.name AS productName,cmc.`reportText`
+        SELECT DISTINCT
+        cmc.id AS reportId , cmc.productID as productId,cmc.serviceProviderID as serviceProviderId,ccr.questionMan AS questionMan, c.name AS clubName,c.`newDeal` AS
+        newDeal,cmc.reportName AS reportName,cmc.`addTime` AS ADDTIME,p.`mainImage` AS mainImage,p.name AS
+        productName,cmc.`reportText` as reportText,cmc.status AS status,cmc.`auditText` as auditText
         FROM cm_club_report cmc
         LEFT JOIN club c ON c.clubId=cmc.clubId
-        LEFT JOIN cm_visitor_remarks ccr ON cmc.ID = ccr.reportID
+        LEFT JOIN cm_visitor_remarks ccr ON cmc.questionManId = ccr.questionManId
         LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
         LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
         LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
         LEFT JOIN product p ON p.productID = cmc.productID
         <where>
-            <if test="keyWord != null and keyWord !=''">
-                AND (p.name LIKE concat('%',#{keyWord},'%')
-                or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
+            and cmc.clubID is null
+            and reportID is not null
+            <if test="keyWord != null and keyWord != ''">
+                AND p.name LIKE concat('%',#{keyWord},'%')
+                or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%')
             </if>
             <if test="teamId!=null">
                 and csg.teamId = #{teamId}
             </if>
             <if test="teamId==null and serviceProviderId!=null">
-                and ccr.serviceProviderId=#{serviceProviderId}
+                and cmc.serviceProviderId=#{serviceProviderId}
             </if>
         </where>
+        ORDER BY cmc.`addTime` DESC
     </select>
 
 
-
     <select id="reportLeaderId" resultType="java.lang.Integer">
-        SELECT id FROM cm_serviceteam_role csr
-        LEFT JOIN serviceprovider s ON s.serviceProviderId=csr.leaderId
+        SELECT DISTINCT id
+        FROM cm_serviceteam_role csr
+        LEFT JOIN serviceprovider s ON s.serviceProviderId = csr.leaderId
         WHERE s.serviceProviderID = #{serviceProviderId}
     </select>
 
 
-
     <select id="roeprtNa" resultType="java.lang.String">
-        SELECT NAME FROM serviceprovider WHERE serviceProviderID=#{serviceProviderId}
+        SELECT DISTINCT linkMan
+        FROM serviceprovider
+        WHERE serviceProviderID = #{serviceProviderId}
+        LIMIT 1
     </select>
 
-    <select id="visitorMan" resultType="java.lang.String">
-        SELECT questionMan FROM cm_visitor_remarks WHERE questionManId=#{questionManId}
+    <select id="visitorMan" resultType="java.lang.Integer">
+        SELECT DISTINCT serviceProviderId
+        FROM cm_visitor_remarks
+        WHERE questionManId = #{questionManId}
+        LIMIT 1
     </select>
 
 
+
     <select id="associated" resultType="com.caimei365.user.model.vo.RemarksVo">
-        SELECT
-            ccr.id AS remarksId, ccr.remarks,ccr.addTime,ccr.questionMan,ccr.serviceProviderId AS serviceProviderId,
-            csr.leaderId AS leaderId,IFNULL(ccr.consultType,'') AS consult, c.Name AS clubName,
-            ccr.clubType AS clubType,ccr.pinceSensitve AS pinceSensitve,ccr.satisfied AS satisfied,ccr.followup AS followup,ccr.extra AS extra,
-            (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID= csr.leaderId) AS leaderName,
-            (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderID) AS recordName,c.newDeal AS newDeal,cmc.status AS STATUS
-#         (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.oldserviceProviderId) AS oldName
+        SELECT DISTINCT
+        ccr.id AS remarksId, ccr.remarks,ccr.addTime,ccr.serviceProviderId AS serviceProviderId,
+        csr.leaderId AS leaderId,IFNULL(ccr.consultType,'') AS consult, c.Name AS clubName,
+        ccr.clubType AS clubType,ccr.pinceSensitve AS pinceSensitve,ccr.satisfied AS satisfied,ccr.followup AS
+        followup,ccr.extra AS extra,
+        (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID= csr.leaderId) AS leaderName,
+        (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderID) AS
+        recordName,c.newDeal AS newDeal,cmc.status AS status,cmc.`auditText` as auditText
+        # (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.oldserviceProviderId) AS oldName
         FROM cm_club_remarks ccr
-                 LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
-                 LEFT JOIN club c ON c.clubId=ccr.clubId
-                 LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
-                 LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
-                 LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
+        LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
+        LEFT JOIN club c ON c.clubId=ccr.clubId
+        LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
+        LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
+        LEFT JOIN cm_club_report cmc ON cmc.clubId = ccr.clubId
         <where>
-        and cmc.id=#{reportId}
+            and cmc.id=#{reportId}
+            and reportID is not null
             <if test="keyWord != null and keyWord !=''">
                 and cmc.reportText LIKE CONCAT('%', #{keyWord}, '%')
             </if>
-          </where>
+        </where>
+        ORDER BY cmc.`addTime` DESC
     </select>
 
 
     <select id="visitorAssociated" resultType="com.caimei365.user.model.vo.RemarksVo">
-        SELECT
-            ccr.id AS remarksId, ccr.remarks,ccr.addTime,ccr.questionMan,ccr.serviceProviderId AS serviceProviderId,
-            csr.leaderId AS leaderId,IFNULL(ccr.consultType,'') AS consult, c.Name AS clubName,
-            ccr.clubType AS clubType,ccr.pinceSensitve AS pinceSensitve,ccr.satisfied AS satisfied,ccr.followup AS followup,ccr.extra AS extra,
-            (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID= csr.leaderId) AS leaderName,
-            (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderID) AS recordName,c.newDeal AS newDeal,cmc.status AS STATUS
-#         (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.oldserviceProviderId) AS oldName
+        SELECT DISTINCT
+        ccr.id AS remarksId, ccr.remarks,ccr.addTime,ccr.questionMan,ccr.serviceProviderId AS serviceProviderId,
+        csr.leaderId AS leaderId,IFNULL(ccr.consultType,'') AS consult, c.Name AS clubName,
+        ccr.clubType AS clubType,ccr.pinceSensitve AS pinceSensitve,ccr.satisfied AS satisfied,ccr.followup AS
+        followup,ccr.extra AS extra,
+        (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID= csr.leaderId) AS leaderName,
+        (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderID) AS
+        recordName,c.newDeal AS newDeal,cmc.status AS status,cmc.`auditText` as auditText
+        # (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.oldserviceProviderId) AS oldName
         FROM cm_visitor_remarks ccr
-                 LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
-                 LEFT JOIN club c ON c.clubId=ccr.clubId
-                 LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
-                 LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
-                 LEFT JOIN cm_club_report cmc ON cmc.ID = ccr.reportID
+        LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
+        LEFT JOIN club c ON c.clubId=ccr.clubId
+        LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
+        LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
+        LEFT JOIN cm_club_report cmc ON cmc.questionManId = ccr.questionManId
         <where>
             and cmc.id=#{reportId}
+            and reportID is not null
             <if test="keyWord != null and keyWord !=''">
                 and cmc.reportText LIKE CONCAT('%', #{keyWord}, '%')
             </if>
         </where>
+        ORDER BY cmc.`addTime` DESC
     </select>
 
 
-
     <update id="disassociation">
-        UPDATE cm_club_remarks SET reportId=NULL WHERE Id=#{remarksId}
+        UPDATE cm_club_remarks
+        SET reportId=NULL
+#             clubId=NULL
+        WHERE Id = #{remarksId}
     </update>
 
     <update id="visitorDisassociation">
-        UPDATE cm_visitor_remarks SET reportId=NULL WHERE Id=#{remarksId}
+        UPDATE cm_visitor_remarks
+        SET reportId=NULL
+#             questionManId=NULL
+        WHERE Id = #{remarksId}
     </update>
 
 
     <select id="visitorReportList" resultType="com.caimei365.user.model.vo.ReportVo">
-        SELECT ccr.questionMan as questionMan,c.`name` as clubName,cmc.`addTime`,p.`name` as productName,p.`mainImage` as mainImage,cmc.`reportText`
+        SELECT DISTINCT
+        cmc.id as reportId,cmc.productID as productId,cmc.reportName as reportName,ccr.questionMan AS questionMan,c.`name` as clubName,cmc.`addTime`,p.`name` as
+        productName,p.`mainImage` as mainImage,cmc.`reportText`,cmc.status AS status,cmc.`auditText` as auditText
         FROM cm_club_report cmc
-        LEFT JOIN cm_club_remarks ccr ON ccr.reportID = cmc.id
+        LEFT JOIN cm_visitor_remarks ccr ON ccr.questionManId = cmc.questionManId
+        LEFT JOIN serviceprovider s ON cmc.serviceProviderId = s.serviceProviderID
         LEFT JOIN club c ON c.clubID = cmc.clubID
         LEFT JOIN product p ON p.productID = cmc.productID
         <where>
-            and ccr.`questionManId`=#{questionManId}
+            and cmc.`questionManId`=#{questionManId} and cmc.clubID is  null
             <if test="keyWord != null and keyWord !=''">
                 AND (p.name LIKE concat('%',#{keyWord},'%')
                 or cmc.reportText LIKE CONCAT('%', #{keyWord}, '%'))
             </if>
 
         </where>
+         ORDER BY cmc.`addTime` DESC
     </select>
 
+    <delete id="deleteReport">
+        DELETE FROM cm_club_report WHERE id=#{reportId}
+    </delete>
 
 </mapper>