瀏覽代碼

Merge remote-tracking branch 'origin/developerH' into developer

Duan_xu 2 年之前
父節點
當前提交
0f2a4d7fcb

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

@@ -174,10 +174,10 @@ public class ClubApi {
                                                                Integer satisfied,
                                                                Integer followup,
                                                                String extra,
-                                                               Integer groupId,
+                                                               Integer groupId,Integer status,Integer newDeal,
                                                                @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
-        return clubService.getRemarksList(serviceProviderId, keyWord, startAddTime, endAddTime, consult, leaderId, manager, clubType, pinceSensitve, satisfied, followup, extra, groupId, pageNum, pageSize);
+        return clubService.getRemarksList(serviceProviderId, keyWord, startAddTime, endAddTime, consult, leaderId, manager, clubType, pinceSensitve, satisfied, followup, extra, groupId,status,newDeal, pageNum, pageSize);
     }
 
     @ApiOperation("关键词库联想查询")
@@ -214,6 +214,115 @@ public class ClubApi {
         return clubService.saveClubRemarks(jsonParamsDto);
     }
 
+    @ApiOperation("注册机构报备列表")
+    @GetMapping("/report/List")
+    public ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return clubService.ClubReportList(serviceProviderId,clubId,keyWord,pageNum,pageSize);
+    }
+
+    @ApiOperation("未注册机构报备列表")
+    @GetMapping("/report/visitor/List")
+    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);
+    }
+
+
+    @ApiOperation("报备详情")
+    @GetMapping("/report/details")
+    public ResponseJson<ReportVo> ClubReportList(Integer reportId) {
+        return clubService.reportDetailsList(reportId);
+    }
+
+    @ApiOperation("未确认机构报备详情")
+    @GetMapping("/report/visitor/details")
+    public ResponseJson<ReportVo> visitorReportList(Integer reportId) {
+        return clubService.visitorReportsList(reportId);
+    }
+
+
+    @ApiOperation("新建机构报备")
+    @PostMapping("/report/save")
+    public ResponseJson saveClubReport(ReportVo reportVo) {
+        return clubService.saveClubReport(reportVo);
+    }
+
+    @ApiOperation("未机构新建报备")
+    @PostMapping("/report/visitor/save")
+    public ResponseJson  addVisitorReport(ReportVo reportVo) {
+        return clubService.addVisitorReport(reportVo);
+    }
+
+
+    @ApiOperation("咨询/报备关联商品")
+    @GetMapping("/report/productList")
+    public ResponseJson<PaginationVo<ProductItemVo>> getproductList(String keyWord,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return clubService.getproductList(keyWord,pageNum,pageSize);
+    }
+
+    @ApiOperation("机构报备列表")
+    @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);
+}
+
+    @ApiOperation("未注册机构报备列表")
+    @GetMapping("/report/visitor/reportRemarks")
+    public ResponseJson<PaginationVo<ReportVo>> visitorReportRemarks(Integer manager,Integer serviceProviderId,String keyWord,@RequestParam(value = "pageNum", defaultValue = "1")int pageNum, @RequestParam(value = "pageSize", defaultValue = "10")int pageSize){
+
+        return  clubService.visitorReportRemarks(manager,serviceProviderId,keyWord,pageNum,pageSize);
+    }
+
+    @ApiOperation("关联咨询记录列表")
+    @GetMapping("/report/associatedList")
+    public ResponseJson<PaginationVo<RemarkVo>>associated(Integer manager, Integer serviceProviderId, Integer reportId, String keyWord, String startAddTime,
+                                                          String endAddTime,
+                                                          String consult,
+                                                          Integer leaderId,
+                                                          String clubType,
+                                                          Integer pinceSensitve,
+                                                          Integer satisfied,
+                                                          Integer followup,
+                                                          String extra,
+                                                          Integer groupId,Integer newDeal,Integer status,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return clubService.associated(manager,serviceProviderId,reportId,keyWord,startAddTime,endAddTime,consult,leaderId,clubType,pinceSensitve,satisfied,followup,extra,groupId,newDeal,status,pageNum,pageSize);
+    }
+
+    @ApiOperation("未注册关联咨询记录列表")
+    @GetMapping("/report/visitor/associatedList")
+    public ResponseJson<PaginationVo<RemarkVo>>visitorAssociated(Integer manager, Integer serviceProviderId, Integer reportId, String keyWord, String startAddTime,
+                                                                 String endAddTime,
+                                                                 String consult,
+                                                                 Integer leaderId,
+                                                                 String clubType,
+                                                                 Integer pinceSensitve,
+                                                                 Integer satisfied,
+                                                                 Integer followup,
+                                                                 String extra,
+                                                                 Integer groupId,Integer status,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize){
+        return clubService.visitorAssociated(manager,serviceProviderId,reportId,keyWord,startAddTime,endAddTime,consult,leaderId,clubType,pinceSensitve,satisfied,followup,extra,groupId,status,pageNum,pageSize);
+    }
+
+
+    @ApiOperation("取消咨询记录和报备的关联")
+    @GetMapping("/report/disassociation")
+    public ResponseJson<PaginationVo<RemarksVo>>disassociation(Integer remarksId) {
+        return clubService.disassociation(remarksId);
+    }
+
+    @ApiOperation("未注册机构取消咨询记录和报备的关联")
+    @GetMapping("/report/visitor/disassociation")
+    public ResponseJson<PaginationVo<RemarksVo>>visitorDisassociation(Integer remarksId) {
+        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")
     @PostMapping("/remarks/delete")
@@ -221,6 +330,7 @@ public class ClubApi {
         return clubService.deleteClubRemarks(clubRemarksDto.getRemarksId());
     }
 
+
     /**
      * 机构个人中心数据
      */
@@ -358,13 +468,13 @@ public class ClubApi {
                                                                           Integer pinceSensitve,
                                                                           Integer satisfied,
                                                                           Integer followup,
-                                                                          String extra,
+                                                                          String extra,Integer status,
                                                                           @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                           @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
         if (null == serviceProviderId) {
             return ResponseJson.error("参数异常:协销id不能为空!", null);
         }
-        return clubService.getVisitorRecordList(questionManId, keyWord, serviceProviderId, startAddTime, endAddTime, consult, leaderId, groupId, manager,clubType,pinceSensitve, satisfied,followup,extra, pageNum, pageSize);
+        return clubService.getVisitorRecordList(questionManId, keyWord, serviceProviderId, startAddTime, endAddTime, consult, leaderId, groupId, manager,clubType,pinceSensitve, satisfied,followup,extra,status, pageNum, pageSize);
     }
 
     @ApiOperation("删除潜在用户资料备注")
@@ -408,4 +518,11 @@ public class ClubApi {
         return clubService.findGroups(leaderId);
     }
 
+
+    @ApiOperation("查询行为记录链接信息")
+    @GetMapping("/recordLinkage")
+    public ResponseJson<Map<String, Object>> recordLinkage(Integer clubId) {
+        return clubService.recordLinkage(clubId);
+    }
+
 }

+ 11 - 4
src/main/java/com/caimei365/user/mapper/ClubMapper.java

@@ -26,6 +26,7 @@ public interface ClubMapper {
      */
     ClubVo getClubById(Integer clubId);
 
+
     /**
      * 修改机构信息保存用户
      *
@@ -267,15 +268,17 @@ public interface ClubMapper {
 
     void updateVisit(@Param("questionManId") String questionManId, @Param("clubId") String clubId);
 
+    void updateReport(@Param("questionManId") String questionManId, @Param("clubId") String clubId);
+
     List<VisitorRemarkVo> findConcactVisit(String questionManId);
 
     void concactVisit(RemarksVo remarksVo);
 
     String findQuestionMan(String questionManId);
 
-    List<RemarksVo> getRemarksListByKey(@Param("keyWord") String keyWord, @Param("serviceProviderId") Integer serviceProviderId,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime,@Param("pinceSensitve") Integer pinceSensitve,@Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied, @Param("con")List<String> con);
+    List<RemarksVo> getRemarksListByKey(@Param("keyWord") String keyWord, @Param("serviceProviderId") Integer serviceProviderId,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime,@Param("pinceSensitve") Integer pinceSensitve,@Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied, @Param("con")List<String> con,Integer status,Integer newDeal);
 
-    List<VisitorRemarkVo> getVisitorListByKey(@Param("serviceProviderId") Integer serviceProviderId, @Param("keyWord") String keyWord,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime,Integer pinceSensitve,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("con")List<String> con);
+    List<VisitorRemarkVo> getVisitorListByKey(@Param("serviceProviderId") Integer serviceProviderId, @Param("keyWord") String keyWord,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime,Integer pinceSensitve,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("con")List<String> con,Integer status);
     //, @Param("questionManId") String questionManId
     List<VisitorRemarkVo> getVisitRecordListByKey(@Param("keyWord") String keyWord);
 
@@ -287,11 +290,15 @@ public interface ClubMapper {
 
     ConsultVo findConsultById(String string);
 
-    List<RemarksVo> findAllRemarks(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve, @Param("con")List<String> con);
+    List<RemarksVo> findAllRemarks(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve, @Param("con")List<String> con,Integer status,Integer newDeal);
 
-    List<VisitorRemarkVo> getAllVisitRemark(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve,@Param("con")List<String> con);
+    List<VisitorRemarkVo> getAllVisitRemark(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve,@Param("con")List<String> con,Integer status);
 
     Integer findLeaderId(Integer serviceProviderId);
 
     List<CmRemarksVo> getCmRemarksList(String remarks);
+
+    ClubVo recordClubage(Integer clubId);
+
+    String serviceProviderNameage(Integer serviceProviderId);
 }

+ 65 - 0
src/main/java/com/caimei365/user/mapper/ClubReportMapper.java

@@ -0,0 +1,65 @@
+package com.caimei365.user.mapper;
+
+import com.caimei365.user.model.vo.ProductItemVo;
+import com.caimei365.user.model.vo.RemarksVo;
+import com.caimei365.user.model.vo.ReportVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2022/8/11
+ */
+@Mapper
+public interface ClubReportMapper {
+
+void addClubReport(ReportVo reportVo);
+
+List<ProductItemVo> productList(String keyWord);
+
+List<ReportVo> reportList(Integer serviceProviderId,Integer clubId,String keyWord);
+
+ReportVo reportDetailsList(Integer reportId);
+
+ReportVo visitorReportsList(Integer reportId);
+
+List<ReportVo>reportRemarks(Integer teamId,Integer serviceProviderId,String keyWord,Integer manager);
+
+List<ReportVo>repotRemark(Integer teamId,Integer serviceProviderId,String keyWord,Integer manager);
+
+List<ReportVo>visitorReportRemarks(Integer teamId,Integer serviceProviderId,String keyWord);
+
+    List<ReportVo>visitoReportRemark(Integer teamId,Integer serviceProviderId,String keyWord);
+
+Integer reportLeaderId(Integer serviceProviderId);
+
+String roeprtNa(Integer serviceProviderId);
+
+List<RemarksVo> associated(@Param("teamId")Integer teamId,@Param("serviceProviderId")Integer serviceProviderId,@Param("reportId")Integer reportId,@Param("keyWord")String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve,@Param("con")List<String> con,@Param("newDeal")Integer newDeal,@Param("status")Integer status);
+
+List<RemarksVo> visitorAssociated(@Param("teamId")Integer teamId,@Param("serviceProviderId")Integer serviceProviderId,@Param("reportId")Integer reportId,@Param("keyWord")String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, Integer leaderId, @Param("groupId") Integer groupId,@Param("followup") Integer followup,@Param("satisfied") Integer satisfied,@Param("pinceSensitve") Integer pinceSensitve,@Param("con")List<String> con,@Param("status")Integer status);
+
+void disassociation(Integer remarksId);
+
+void visitorDisassociation(Integer remarksId);
+
+List<ReportVo>visitorReportList(String questionManId,String keyWord);
+
+void addVisitorReport(ReportVo reportVo);
+
+Integer visitorMan(String questionManId);
+
+void deleteReport(Integer reportId);
+
+String questionManNameage(@Param("reportId")Integer reportId,@Param("questionManId")String questionManId,@Param("serviceProviderId")Integer serviceProviderId);
+
+
+
+
+
+
+}

+ 8 - 0
src/main/java/com/caimei365/user/model/po/ClubRemarksPo.java

@@ -62,4 +62,12 @@ public class ClubRemarksPo implements Serializable {
      * 额外说明
      */
     private String extra;
+    /**
+     *咨询商品ID
+     */
+    private Integer productID;
+    /**
+     *报备关联ID
+     */
+    private Integer reportID;
 }

+ 25 - 0
src/main/java/com/caimei365/user/model/vo/ClubVo.java

@@ -3,6 +3,7 @@ package com.caimei365.user.model.vo;
 import lombok.Data;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * Description
@@ -119,6 +120,11 @@ public class ClubVo implements Serializable {
      * 主打项目(mainpro)
      */
     private String mainProduct;
+
+    /**
+     * 主营业务列表,号隔开
+     */
+    private List<String> mainProducts;
     /**
      * 传真
      */
@@ -131,6 +137,12 @@ public class ClubVo implements Serializable {
      * 协销ID
      */
     private Integer serviceProviderId;
+
+    /*
+    *是否分配协销 0.待分配 1.已分配
+     */
+    private Integer spType;
+
     /**
      * 扫描状态 0待扫描 1 已扫描 2已上线
      */
@@ -151,4 +163,17 @@ public class ClubVo implements Serializable {
      * 最后查看订单时间
      */
     private Date lastCheckOrderDate;
+    /**
+     *新分配机构状态 1.是 2.否
+     */
+    private Integer newDeal;
+    /**
+     * 行为记录链接描述
+     */
+    private String describe;
+    /**
+     * 是否有行为记录链接 1.是 0.否
+     */
+    private Integer recordCount;
+
 }

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

@@ -234,4 +234,8 @@ public class ProductItemVo implements Serializable {
      * 超级会员优惠价标签
      */
     private String svipPriceTag;
+    /**
+     * 供应商名称回显
+     */
+    private String shopName;
 }

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

@@ -93,4 +93,40 @@ public class RemarkVo implements Serializable {
      * 非持久化字段旧协销名
      */
 //    private String oldName;以后可能会用到
+    /**
+     * 商品主图
+     */
+    private String mainImage;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 供应商名称
+     */
+    private String shopName;
+    /**
+     * 报备事由
+     */
+    private String reportText;
+    /**
+     * 报备审核状态
+     */
+    private Integer status;
+    /**
+     * 审核备注
+     */
+    private String auditText;
+    /**
+     * 新分配机构状态 0.否,1.是
+     */
+    private Integer newDeal;
+    /**
+     * 报备ID
+     */
+    private Integer reportId;
+    /**
+     * 报备商品ID
+     */
+    private Integer productId;
 }

+ 37 - 0
src/main/java/com/caimei365/user/model/vo/RemarksVo.java

@@ -96,4 +96,41 @@ public class RemarksVo implements Serializable {
      * 非持久化字段旧协销名
      */
 //    private String oldName;以后可能会用上
+
+    /**
+     * 商品主图
+     */
+    private String mainImage;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 供应商名称
+     */
+    private String shopName;
+    /**
+     * 报备事由
+     */
+    private String reportText;
+    /**
+     * 报备审核状态
+     */
+   private Integer status;
+    /**
+     * 审核备注
+     */
+    private String auditText;
+    /**
+     * 新分配机构状态 0.否,1.是
+     */
+    private Integer newDeal;
+    /**
+     * 报备ID
+     */
+    private Integer reportId;
+    /**
+     * 报备商品ID
+     */
+    private Integer productId;
 }

+ 56 - 0
src/main/java/com/caimei365/user/model/vo/ReportVo.java

@@ -0,0 +1,56 @@
+package com.caimei365.user.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2022/8/11
+ */
+@Data
+public class ReportVo implements Serializable {
+
+    private Integer reportId;
+
+    private Integer productId;//商品id
+
+    private Integer clubId;//机构ID
+
+    private String reportName;//咨询人
+
+    private String reportText;//报备事由
+
+    private String addTime;//添加时间
+
+    private Integer status;//状态
+
+    private String auditName;//审核人
+
+    private String auditTime;//审核时间
+
+    private String auditText;//审核备注
+
+    private String clubName;//机构名称
+
+    private String shopName;//供应商名称
+
+    private String productName;//商品名称
+
+    private String mainImage;//商品主图
+
+    private String linkMan;//联系人
+
+    private Integer serviceProviderId;//协销ID
+
+    private String questionManId;//咨询人ID
+
+    private String questionMan;//咨询人名称
+
+    private Integer newDeal;// 新分配机构1.是, 2.否,
+
+
+
+}

+ 37 - 0
src/main/java/com/caimei365/user/model/vo/VisitRemarkVo.java

@@ -86,4 +86,41 @@ public class VisitRemarkVo  implements Serializable {
      * 额外说明
      */
     private String extra;
+    /**
+     *报备审核状态 0.全部 1.待审核 2.已审核 3.审核未通过
+     */
+    private Integer status;
+    /**
+     * 报备ID
+     */
+    private Integer reportId;
+    /**
+     * 报备商品ID
+     */
+    private Integer productId;
+    /**
+     * 商品主图
+     */
+    private String mainImage;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 供应商名称
+     */
+    private String shopName;
+    /**
+     * 报备事由
+     */
+    private String reportText;
+    /**
+     * 审核备注
+     */
+    private String auditText;
+    /**
+     * 新分配机构状态 0.否,1.是
+     */
+    private Integer newDeal;
+
 }

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

@@ -93,4 +93,42 @@ public class VisitorRemarkVo implements Serializable {
      * 额外说明
      */
     private String extra;
+    /**
+     *报备审核状态 0.全部 1.待审核 2.已审核 3.审核未通过
+     */
+    private Integer status;
+    /**
+     * 报备ID
+     */
+    private Integer reportId;
+    /**
+     * 报备商品ID
+     */
+    private Integer productId;
+    /**
+     * 商品主图
+     */
+    private String mainImage;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 供应商名称
+     */
+    private String shopName;
+    /**
+     * 报备事由
+     */
+    private String reportText;
+    /**
+     * 审核备注
+     */
+    private String auditText;
+    /**
+     * 新分配机构状态 0.否,1.是
+     */
+    private Integer newDeal;
+
+
 }

+ 53 - 2
src/main/java/com/caimei365/user/service/ClubService.java

@@ -5,7 +5,9 @@ import com.caimei365.user.model.dto.ClubRemarksDto;
 import com.caimei365.user.model.dto.ClubUpdateDto;
 import com.caimei365.user.model.dto.JsonParamsDto;
 import com.caimei365.user.model.vo.*;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -23,6 +25,8 @@ public interface ClubService {
      */
     ResponseJson<Map<String, Object>> getClubUserInfo(Integer userId);
 
+    ResponseJson<Map<String, Object>> recordLinkage(Integer clubId);
+
     /**
      * 修改机构资料
      *
@@ -108,6 +112,47 @@ public interface ClubService {
      */
     ResponseJson saveClubRemarks(JsonParamsDto jsonParamsDto);
 
+    ResponseJson saveClubReport(ReportVo reportVo);
+
+    ResponseJson<PaginationVo<ProductItemVo>> getproductList(String keyWord, int pageNum, int pageSize);
+
+    ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId, Integer clubId, 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<ReportVo> visitorReportsList(Integer reportId);
+
+    ResponseJson<PaginationVo<RemarkVo>> associated(Integer manager, Integer serviceProviderId, Integer reportId, String keyWord, String startAddTime,
+                                                    String endAddTime,
+                                                    String consult,
+                                                    Integer leaderId,
+                                                    String clubType,
+                                                    Integer pinceSensitve,
+                                                    Integer satisfied,
+                                                    Integer followup,
+                                                    String extra,
+                                                    Integer groupId,Integer newDeal,Integer status, int pageNum, int pageSize);
+
+    ResponseJson<PaginationVo<RemarkVo>> visitorAssociated(Integer manager,Integer serviceProviderId,Integer reportId,String keyWord, String startAddTime,
+                                                           String endAddTime,
+                                                           String consult,
+                                                           Integer leaderId,
+                                                           String clubType,
+                                                           Integer pinceSensitve,
+                                                           Integer satisfied,
+                                                           Integer followup,
+                                                           String extra,
+                                                           Integer groupId,Integer status, int pageNum,  int pageSize);
+
+    ResponseJson disassociation(Integer remarksId);
+
+    ResponseJson visitorDisassociation(Integer remarksId);
+
+
     /**
      * 获取机构资料备注列表
      *
@@ -128,7 +173,7 @@ public interface ClubService {
                                                         Integer satisfied,
                                                         Integer followup,
                                                         String extra,
-                                                        Integer groupId, int pageNum, int pageSize);
+                                                        Integer groupId,Integer status,Integer newDeal, int pageNum, int pageSize);
 
     /**
      * 获取机构资料备注详情
@@ -202,7 +247,7 @@ public interface ClubService {
      */
     ResponseJson<VisitRemarkVo> getVisitRemark(Integer remarksId);
 
-    ResponseJson<PaginationVo<VisitRemarkVo>> getVisitorRecordList(String questionManId, String keyWord, Integer serviceProviderId, String startAddTime, String endAddTime, String consult, Integer leaderId, Integer groupId, Integer manager, String clubType, Integer pinceSensitve,Integer satisfied,Integer followup, String extra, int pageNum, int pageSize);
+    ResponseJson<PaginationVo<VisitRemarkVo>> getVisitorRecordList(String questionManId, String keyWord, Integer serviceProviderId, String startAddTime, String endAddTime, String consult, Integer leaderId, Integer groupId, Integer manager, String clubType, Integer pinceSensitve, Integer satisfied, Integer followup, String extra,Integer status, int pageNum, int pageSize);
 
     ResponseJson deleteVisitRemarks(String remarksId);
 
@@ -222,4 +267,10 @@ public interface ClubService {
     ResponseJson findGroups(Integer leaderId);
 
     ResponseJson getCmRemarksList(String remarks);
+
+    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);
 }

+ 448 - 18
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -3,10 +3,7 @@ package com.caimei365.user.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei365.user.components.RedisService;
-import com.caimei365.user.mapper.BaseMapper;
-import com.caimei365.user.mapper.ClubMapper;
-import com.caimei365.user.mapper.RegisterMapper;
-import com.caimei365.user.mapper.SuperVipMapper;
+import com.caimei365.user.mapper.*;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.ClubUpdateDto;
 import com.caimei365.user.model.dto.SuperVipDto;
@@ -24,8 +21,10 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
@@ -48,6 +47,8 @@ public class ClubServiceImpl implements ClubService {
     @Resource
     private ClubMapper clubMapper;
     @Resource
+    private ClubReportMapper clubReportMapper;
+    @Resource
     private BaseMapper baseMapper;
     @Resource
     private RegisterMapper registerMapper;
@@ -99,6 +100,48 @@ public class ClubServiceImpl implements ClubService {
         return ResponseJson.success(map);
     }
 
+
+
+
+    @Override
+    public ResponseJson<Map<String, Object>> recordLinkage(Integer clubId) {
+        // 机构信息
+        ClubVo club = clubMapper.recordClubage(clubId);
+        String saleName="";
+        if(!"".equals(club.getMainProduct()) && club.getMainProduct()!=null){
+            if (club.getMainProduct().contains("/")) {
+                List<String> list = Arrays.asList(club.getMainProduct().split("/"));
+                club.setMainProducts(list);
+            } else {
+                club.setMainProducts(Collections.singletonList(club.getMainProduct()));
+            }
+
+        }
+        if(club.getSpType()==1){
+            saleName= clubMapper.serviceProviderNameage(club.getServiceProviderId());
+        }
+
+        if (club == null) {
+            return ResponseJson.error("机构信息不存在", null);
+        }
+        if (null != club.getTownId()) {
+            TownVo town = baseMapper.getTown(club.getTownId());
+            CityVo city = baseMapper.getCity(town.getCityId());
+            ProvinceVo province = baseMapper.getProvince(city.getProvinceId());
+            club.setCityId(city.getCityId());
+            club.setProvinceId(province.getProvinceId());
+            club.setProvincialAddress(province.getName() + "" + city.getName() + "" + town.getName());
+        }
+        log.info("销售人名称"+saleName);
+        log.info("销售人id"+club.getServiceProviderId());
+        Map<String, Object> map = new HashMap(2);
+        map.put("club", club);
+        map.put("saleName",saleName);
+        return ResponseJson.success(map);
+    }
+
+
+
     /**
      * 修改机构资料
      *
@@ -390,6 +433,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 == clubId) {
                 return ResponseJson.error("参数异常,机构id不能为空");
             }
@@ -428,6 +473,8 @@ public class ClubServiceImpl implements ClubService {
             clubRemarksPo.setSatisfied(satisfied);
             clubRemarksPo.setFollowup(followup);
             clubRemarksPo.setExtra(extra);
+            clubRemarksPo.setProductID(productID);
+            clubRemarksPo.setReportID(reportID);
             if (newRemarks) {
                 // 新增备注
                 clubMapper.insertRemarks(clubRemarksPo);
@@ -466,6 +513,279 @@ public class ClubServiceImpl implements ClubService {
         }
     }
 
+    @Override
+    public  ResponseJson<PaginationVo<ProductItemVo>> getproductList(String keyWord,int pageNum,  int pageSize){
+        PageHelper.startPage(pageNum, pageSize);
+        List<ProductItemVo> productList=clubReportMapper.productList(keyWord);
+        return ResponseJson.success(new PaginationVo<>(productList));
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubId,String keyWord, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ReportVo>reportList=clubReportMapper.reportList(serviceProviderId,clubId,keyWord);
+        reportList.forEach(r ->{
+            r.setQuestionMan(clubReportMapper.questionManNameage(null,"",serviceProviderId));
+        });
+        return ResponseJson.success(new PaginationVo<>(reportList));
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ReportVo>> visitorReportList(String questionManId,String keyWord, int pageNum,  int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ReportVo>reportList=clubReportMapper.visitorReportList(questionManId,keyWord);
+        reportList.forEach(r ->{
+            r.setQuestionMan(clubReportMapper.questionManNameage(null,questionManId,null));
+        });
+        return ResponseJson.success(new PaginationVo<>(reportList));
+    }
+
+
+
+    @Override
+    public ResponseJson<ReportVo> reportDetailsList(Integer reportId) {
+       ReportVo reportVo=clubReportMapper.reportDetailsList(reportId);
+        reportVo.setQuestionMan(clubReportMapper.questionManNameage(reportId,"",null));
+        return ResponseJson.success(reportVo);
+    }
+
+    @Override
+    public ResponseJson<ReportVo> visitorReportsList(Integer reportId) {
+        ReportVo reportVo=clubReportMapper.visitorReportsList(reportId);
+        reportVo.setQuestionMan(clubReportMapper.questionManNameage(reportId,"",null));
+        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) {
+       Integer serviceProviderId= clubReportMapper.visitorMan(reportVo.getQuestionManId());
+        reportVo.setReportName(clubReportMapper.roeprtNa(serviceProviderId));
+        reportVo.setServiceProviderId(serviceProviderId);
+        clubReportMapper.addVisitorReport(reportVo);
+        return ResponseJson.success("保存成功");
+    }
+
+    @Override
+    public ResponseJson disassociation(Integer remarksId){
+        clubReportMapper.disassociation(remarksId);
+        return ResponseJson.success("取消成功");
+    }
+
+    @Override
+    public ResponseJson visitorDisassociation(Integer remarksId){
+        clubReportMapper.visitorDisassociation(remarksId);
+        return ResponseJson.success("取消成功");
+    }
+
+    @Override
+    public ResponseJson deleteReport(Integer reportId){
+        clubReportMapper.deleteReport(reportId);
+        return ResponseJson.success("删除成功");
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<RemarkVo>>associated(Integer manager,Integer serviceProviderId,Integer reportId,String keyWord, String startAddTime,
+                                                          String endAddTime,
+                                                          String consult,
+                                                          Integer leaderId,
+                                                          String clubType,
+                                                          Integer pinceSensitve,
+                                                          Integer satisfied,
+                                                          Integer followup,
+                                                          String extra,
+                                                          Integer groupId,Integer newDeal,Integer status, int pageNum,  int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<RemarksVo>reportList=null;
+        Integer teamId= clubReportMapper.reportLeaderId(serviceProviderId);
+        List<String> conss = new ArrayList<>();
+        if (StringUtils.isNotBlank(consult)) {
+            if (consult.contains(",")) {
+                conss = Arrays.asList(consult.split(","));
+            } else {
+                conss.add(consult);
+            }
+        }
+        if (null != manager && 1 == manager) {
+            //主管查所有注册客户咨询记录
+            log.info("方法1 管理员");
+            List<String> finalConss = conss;
+            reportList = clubReportMapper.associated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss,newDeal,status);
+        } else if (null != teamId && teamId > 0) {
+            log.info("方法2 协销组长");
+            List<String> finalConss1 = conss;
+            reportList =clubReportMapper.associated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss1,newDeal,status);
+        } else {
+            log.info("方法3 协销");
+            List<String> finalConss2 = conss;
+            reportList = clubReportMapper.associated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss2,newDeal,status);
+        }
+        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<RemarkVo>>visitorAssociated(Integer manager,Integer serviceProviderId,Integer reportId,String keyWord, String startAddTime,
+                                                                 String endAddTime,
+                                                                 String consult,
+                                                                 Integer leaderId,
+                                                                 String clubType,
+                                                                 Integer pinceSensitve,
+                                                                 Integer satisfied,
+                                                                 Integer followup,
+                                                                 String extra,
+                                                                 Integer groupId,Integer status,int pageNum,  int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<RemarksVo>reportList=null;
+        Integer teamId= clubReportMapper.reportLeaderId(serviceProviderId);
+        List<String> conss = new ArrayList<>();
+        if (StringUtils.isNotBlank(consult)) {
+            if (consult.contains(",")) {
+                conss = Arrays.asList(consult.split(","));
+            } else {
+                conss.add(consult);
+            }
+        }
+        if (null != manager && 1 == manager) {
+            //主管查所有注册客户咨询记录
+            log.info("方法1 管理员");
+            List<String> finalConss = conss;
+            reportList = clubReportMapper.visitorAssociated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss,status);
+        } else if (null != teamId && teamId > 0) {
+            log.info("方法2 协销组长");
+            List<String> finalConss1 = conss;
+            reportList = clubReportMapper.visitorAssociated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss1,status);
+        } else {
+            log.info("方法3 协销");
+            List<String> finalConss2 = conss;
+            reportList = clubReportMapper.visitorAssociated(teamId,serviceProviderId,reportId,keyWord,startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve,finalConss2,status);
+        }
+        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);
+            }
+            if (StringUtils.isNotBlank(remarksVo.getConsult())) {
+                if (remarksVo.getConsult().contains(",")) {
+                    String[] split = remarksVo.getConsult().split(",");
+                    String Cons = "";
+                    for (String con : split) {
+                        Cons += clubMapper.findConsultById(con).getClassName() + ",";
+                    }
+                    Cons = Cons.substring(0, Cons.length() - 1);
+                    remarkVo.setConsultBack(Cons);
+                } else {
+                    remarkVo.setConsultBack(clubMapper.findConsultById(remarksVo.getConsult()).getClassName());
+                }
+            }
+            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
     public ResponseJson<PaginationVo<RemarkVo>> getRemarksList(Integer serviceProviderId,
                                                                String keyWord,
@@ -479,11 +799,12 @@ public class ClubServiceImpl implements ClubService {
                                                                Integer satisfied,
                                                                Integer followup,
                                                                String extra,
-                                                               Integer groupId,
+                                                               Integer groupId,Integer status,Integer newDeal,
                                                                int pageNum, int pageSize) {
         if (null == serviceProviderId) {
             return ResponseJson.error("参数异常,协销id不能为空", null);
         }
+//        List<RemarksVo> pageInfo = null;
         PageInfo<RemarksVo> pageInfo = null;
         Integer findLeader = clubMapper.findLeaderId(serviceProviderId);
         List<String> conss = new ArrayList<>();
@@ -494,20 +815,40 @@ public class ClubServiceImpl implements ClubService {
                 conss.add(consult);
             }
         }
+
         if (null != manager && 1 == manager) {
             //主管查所有注册客户咨询记录
-            log.info("方法1 所有");
+            log.info("方法1 管理员");
             List<String> finalConss = conss;
-            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve, finalConss));
+            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve, finalConss,status,newDeal));
         } else if (null != findLeader && findLeader > 0) {
-            log.info("方法2 小组");
+            log.info("方法2 协销组长");
             List<String> finalConss1 = conss;
-            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, serviceProviderId, groupId, followup, satisfied, pinceSensitve, finalConss1));
+            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, serviceProviderId, groupId, followup, satisfied, pinceSensitve, finalConss1,status,newDeal));
         } else {
             log.info("方法3 协销");
             List<String> finalConss2 = conss;
-            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getRemarksListByKey(keyWord, serviceProviderId, startAddTime, endAddTime, pinceSensitve, leaderId, groupId, followup, satisfied, finalConss2));
+            pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getRemarksListByKey(keyWord, serviceProviderId, startAddTime, endAddTime, pinceSensitve, leaderId, groupId, followup, satisfied, finalConss2,status,newDeal));
         }
+
+//        if (null != manager && 1 == manager) {
+//            //主管查所有注册客户咨询记录
+//            log.info("方法1 管理员");
+//            List<String> finalConss = conss;
+//            PageHelper.startPage(pageNum, pageSize);
+//            pageInfo =  clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, leaderId, groupId, followup, satisfied, pinceSensitve, finalConss,status,newDeal);
+//        } else if (null != findLeader && findLeader > 0) {
+//            log.info("方法2 协销组长");
+//            PageHelper.startPage(pageNum, pageSize);
+//            List<String> finalConss1 = conss;
+//            pageInfo =  clubMapper.findAllRemarks(keyWord, startAddTime, endAddTime, serviceProviderId, groupId, followup, satisfied, pinceSensitve, finalConss1,status,newDeal);
+//        } else {
+//            log.info("方法3 协销");
+//            PageHelper.startPage(pageNum, pageSize);
+//            List<String> finalConss2 = conss;
+//            pageInfo =  clubMapper.getRemarksListByKey(keyWord, serviceProviderId, startAddTime, endAddTime, pinceSensitve, leaderId, groupId, followup, satisfied, finalConss2,status,newDeal);
+//        }
+
         ArrayList<RemarkVo> remarkVos = new ArrayList<>();
         pageInfo.getList().forEach(r -> {
             RemarkVo remarkVo = new RemarkVo();
@@ -562,13 +903,17 @@ 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);
         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.setTotalRecord((int)pageInfo.getTotal());
+            if (pageInfo.getSize() >= pageSize) {
+                pageVo.setTotalPage((int) Math.ceil(MathUtil.div(pageInfo.getTotal(), pageSize).doubleValue()));
+                log.info(">>>>>>>>>>>>>>>>>>>>"+MathUtil.div(pageInfo.getTotal(), pageSize).doubleValue());
                 pageVo.setHasNextPage(true);
             } else {
                 pageVo.setTotalPage(1);
@@ -579,7 +924,7 @@ public class ClubServiceImpl implements ClubService {
             pageVo.setHasNextPage(false);
             pageVo.setTotalRecord(0);
         }
-        return ResponseJson.success(pageVo);
+          return ResponseJson.success(pageVo);
     }
 
     @Override
@@ -592,6 +937,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(",");
@@ -605,6 +951,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());
@@ -620,6 +967,15 @@ public class ClubServiceImpl implements ClubService {
         remarkVo.setSatisfied(remarksVo.getSatisfied());
         remarkVo.setFollowup(remarksVo.getFollowup());
         remarkVo.setExtra(remarksVo.getExtra());
+        remarkVo.setMainImage(remarksVo.getMainImage());
+        remarkVo.setReportText(remarksVo.getReportText());
+        remarkVo.setProductName(remarksVo.getProductName());
+        remarkVo.setShopName(remarksVo.getShopName());
+        remarkVo.setStatus(remarksVo.getStatus());
+        remarkVo.setAuditText(remarksVo.getAuditText());
+        remarkVo.setNewDeal(remarksVo.getNewDeal());
+        remarkVo.setProductId(remarksVo.getProductId());
+        remarkVo.setReportId(remarksVo.getReportId());
         if (StringUtils.isNotBlank(remarksVo.getConsult())) {
             if (remarkVo.getConsult().contains(",")) {
                 List<String> cons = Arrays.asList(remarkVo.getConsult().split(","));
@@ -634,8 +990,57 @@ public class ClubServiceImpl implements ClubService {
             }
         }
         return ResponseJson.success(remarkVo);
+        }
+        return ResponseJson.error("remarksVo为空remarksId:"+remarksId);
     }
 
+    @Override
+   public ResponseJson<PaginationVo<ReportVo>> visitorReportRemarks(Integer manager,Integer serviceProviderId,String keyWord,int pageNum, int pageSize){
+        Integer teamId= clubReportMapper.reportLeaderId(serviceProviderId);
+        List<ReportVo> pageInfo = null;
+        PageHelper.startPage(pageNum, pageSize);
+        if (null != manager && 1 == manager) {
+            //主管查所有注册客户咨询记录
+            log.info("方法1 管理员");
+            pageInfo = clubReportMapper.visitoReportRemark(teamId,serviceProviderId,keyWord);
+        } else if (null != teamId && teamId > 0) {
+            log.info("方法2 协销组长");
+
+            pageInfo = clubReportMapper.visitorReportRemarks(teamId,serviceProviderId,keyWord);
+        } else {
+            log.info("方法3 协销");
+            pageInfo = clubReportMapper.visitorReportRemarks(teamId,serviceProviderId,keyWord);
+        }
+        pageInfo.forEach(r ->{
+            r.setQuestionMan(clubReportMapper.questionManNameage(r.getReportId(),"",null));
+        });
+        return ResponseJson.success(new PaginationVo<>(pageInfo));
+    }
+
+
+    @Override
+    public ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Integer serviceProviderId,String keyWord,int pageNum, int pageSize){
+        Integer teamId= clubReportMapper.reportLeaderId(serviceProviderId);
+        List<ReportVo> pageInfo = null;
+        PageHelper.startPage(pageNum, pageSize);
+        if (null != manager && 1 == manager) {
+            //主管查所有注册客户咨询记录
+            log.info("方法1 管理员");
+            pageInfo = clubReportMapper.repotRemark(teamId,null,keyWord,manager);
+        } else if (null != teamId && teamId > 0) {
+            log.info("方法2 协销组长");
+
+            pageInfo = clubReportMapper.reportRemarks(teamId,serviceProviderId,keyWord,manager);
+        } else {
+            log.info("方法3 协销");
+            pageInfo = clubReportMapper.reportRemarks(teamId,serviceProviderId,keyWord,manager);
+        }
+        return ResponseJson.success(new PaginationVo<>(pageInfo));
+    }
+
+
+
+
     @Override
     public ResponseJson deleteClubRemarks(Integer remarksId) {
         if (null == remarksId) {
@@ -846,6 +1251,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不能为空");
@@ -888,6 +1295,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);
@@ -936,6 +1345,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(",");
@@ -949,6 +1359,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());
@@ -964,6 +1375,15 @@ public class ClubServiceImpl implements ClubService {
         visit.setPinceSensitve(visitRemarksVo.getPinceSensitve());
         visit.setExtra(visitRemarksVo.getExtra());
 
+        visit.setMainImage(visitRemarksVo.getMainImage());
+        visit.setReportText(visitRemarksVo.getReportText());
+        visit.setProductName(visitRemarksVo.getProductName());
+        visit.setShopName(visitRemarksVo.getShopName());
+        visit.setStatus(visitRemarksVo.getStatus());
+        visit.setAuditText(visitRemarksVo.getAuditText());
+        visit.setProductId(visitRemarksVo.getProductId());
+        visit.setReportId(visitRemarksVo.getReportId());
+
         if (StringUtils.isNotBlank(visitRemarksVo.getConsult())) {
             if (visitRemarksVo.getConsult().contains(",")) {
                 List<String> cons = Arrays.asList(visitRemarksVo.getConsult().split(","));
@@ -978,10 +1398,12 @@ public class ClubServiceImpl implements ClubService {
             }
         }
         return ResponseJson.success(visit);
+        }
+        return ResponseJson.error("visitRemarksVo为空remarksId:"+remarksId);
     }
 
     @Override
-    public ResponseJson<PaginationVo<VisitRemarkVo>> getVisitorRecordList(String questionManId, String keyWord, Integer serviceProviderId, String startAddTime, String endAddTime, String consult, Integer leaderId, Integer groupId, Integer manager, String clubType, Integer pinceSensitve, Integer satisfied, Integer followup, String extra, int pageNum, int pageSize) {
+    public ResponseJson<PaginationVo<VisitRemarkVo>> getVisitorRecordList(String questionManId, String keyWord, Integer serviceProviderId, String startAddTime, String endAddTime, String consult, Integer leaderId, Integer groupId, Integer manager, String clubType, Integer pinceSensitve, Integer satisfied, Integer followup, String extra,Integer status, int pageNum, int pageSize) {
         PageInfo<VisitorRemarkVo> remarksList = null;
         List<String> conss = new ArrayList<>();
         if (StringUtils.isNotBlank(consult)) {
@@ -995,13 +1417,13 @@ public class ClubServiceImpl implements ClubService {
         if (null != manager && 1 == manager) {
             //主管查所有注册客户咨询记录
             List<String> finalConss = conss;
-            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId, pinceSensitve, satisfied, followup, finalConss));
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId, pinceSensitve, satisfied, followup, finalConss,status));
         } else if (null != findLeader && findLeader > 0) {
             List<String> finalConss1 = conss;
-            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId, pinceSensitve, satisfied, followup, finalConss1));
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId, pinceSensitve, satisfied, followup, finalConss1,status));
         } else {
             List<String> finalConss2 = conss;
-            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getVisitorListByKey(serviceProviderId, keyWord, startAddTime, endAddTime, pinceSensitve, satisfied, followup, finalConss2));
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getVisitorListByKey(serviceProviderId, keyWord, startAddTime, endAddTime, pinceSensitve, satisfied, followup, finalConss2,status));
         }
         ArrayList<VisitRemarkVo> remarkVos = new ArrayList<>();
         remarksList.getList().forEach(r -> {
@@ -1059,6 +1481,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);
@@ -1105,6 +1528,7 @@ public class ClubServiceImpl implements ClubService {
         }
         //根据咨询人查cm_visitor_remarks赋值clubid,concactTime
         clubMapper.updateVisit(questionManId, clubId);
+        clubMapper.updateReport(questionManId,clubId);
         //cm_visitor_remarks搬运到cm_club_remarks,cm_visitor_remarks_file搬运到cm_club_remarks_file
         List<VisitorRemarkVo> visits = clubMapper.findConcactVisit(questionManId);
         visits.forEach(v -> {
@@ -1123,6 +1547,9 @@ public class ClubServiceImpl implements ClubService {
             remarksVo.setFollowup(v.getFollowup());
             remarksVo.setExtra(v.getExtra());
             remarksVo.setClubType(v.getClubType());
+            remarksVo.setStatus(v.getStatus());
+            remarksVo.setProductId(v.getProductId());
+            remarksVo.setReportId(v.getReportId());
             clubMapper.concactVisit(remarksVo);
             if (null != imageList && imageList.size() > 0) {
                 imageList.forEach(i -> clubMapper.insertRemarksImage(remarksVo.getRemarksId(), i));
@@ -1172,4 +1599,7 @@ public class ClubServiceImpl implements ClubService {
         List<CmRemarksVo> remarklist = clubMapper.getCmRemarksList(remarks);
         return ResponseJson.success(remarklist);
     }
+
+
+
 }

+ 122 - 25
src/main/resources/mapper/ClubMapper.xml

@@ -3,8 +3,8 @@
 <mapper namespace="com.caimei365.user.mapper.ClubMapper">
     <insert id="insertRemarks" parameterType="com.caimei365.user.model.po.ClubRemarksPo" keyProperty="remarksId"
             useGeneratedKeys="true">
-        insert into cm_club_remarks(clubId, serviceProviderId, remarks, addTime, questionMan,consultType,clubType,pinceSensitve,satisfied,followup,extra)
-        values (#{clubId}, #{serviceProviderId}, #{remarks}, now(), #{questionMan},#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra})
+        insert into cm_club_remarks(clubId, serviceProviderId, remarks, addTime, questionMan,consultType,clubType,pinceSensitve,satisfied,followup,extra,productID,reportID)
+        values (#{clubId}, #{serviceProviderId}, #{remarks}, now(), #{questionMan},#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra},#{productID},#{reportID})
     </insert>
     <insert id="insertRemarksImage">
         insert into cm_club_remarks_file(remarksId, fileType, imageUrl)
@@ -19,8 +19,8 @@
         values (#{questionManId}, #{serviceProviderId}, #{remarks}, now(), #{questionMan}, #{concactTime})
     </insert>
     <insert id="insertVisitorRemark" keyProperty="remarksId" useGeneratedKeys="true">
-        insert into cm_visitor_remarks(questionMan, questionManId, serviceProviderId, remarks, addTime,consultType,clubType,pinceSensitve,satisfied,followup,extra)
-        values (#{questionMan}, #{questionManId}, #{serviceProviderId}, #{remarks}, now(),#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra})
+        insert into cm_visitor_remarks(questionMan, questionManId, serviceProviderId, remarks, addTime,consultType,clubType,pinceSensitve,satisfied,followup,extra,reportID,productID)
+        values (#{questionMan}, #{questionManId}, #{serviceProviderId}, #{remarks}, now(),#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra},#{reportId},#{productId})
     </insert>
     <insert id="insertVisitorRemarksImage">
         insert into cm_visitor_remarks_file(remarksId, fileType, imageUrl)
@@ -32,8 +32,8 @@
     </insert>
     <insert id="concactVisit" parameterType="com.caimei365.user.model.vo.RemarksVo" keyProperty="remarksId"
             useGeneratedKeys="true">
-        insert into cm_club_remarks(clubId, serviceProviderId, remarks, addTime, questionMan, concactTime,consultType,clubType,pinceSensitve,satisfied,followup,extra)
-        values (#{clubId}, #{serviceProviderId}, #{remarks}, #{addTime}, #{questionMan}, now(),#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra})
+        insert into cm_club_remarks(clubId, serviceProviderId, remarks, addTime, questionMan, concactTime,consultType,clubType,pinceSensitve,satisfied,followup,extra,productID,reportID)
+        values (#{clubId}, #{serviceProviderId}, #{remarks}, #{addTime}, #{questionMan}, now(),#{consult}, #{clubType}, #{pinceSensitve}, #{satisfied}, #{followup}, #{extra},#{productId},#{reportId})
     </insert>
     <update id="updateClubUserByUpdateInfo">
         update user set
@@ -139,7 +139,9 @@
                spID                      as serviceProviderId,
                addTime,
                status,
-               lastCheckOrderDate
+               lastCheckOrderDate,
+               newDeal as newDeal
+
         from club
         where clubID = #{clubId}
     </select>
@@ -205,7 +207,9 @@
             pinceSensitve=#{pinceSensitve},
             satisfied=#{satisfied},
             followup=#{followup},
-            extra=#{extra}
+            extra=#{extra},
+            productID=#{productID},
+            reportID=#{reportID}
          where id = #{remarksId}
     </update>
     <update id="updateQuestionMan">
@@ -222,7 +226,9 @@
             pinceSensitve=#{pinceSensitve},
             satisfied=#{satisfied},
             followup=#{followup},
-            extra=#{extra}
+            extra=#{extra},
+            reportID=#{reportId},
+            productID=#{productId}
         where id = #{remarksId}
     </update>
     <update id="updateVisit">
@@ -231,6 +237,14 @@
             concactTime = now()
         where questionManId = #{questionManId}
     </update>
+
+    <update id="updateReport">
+        update cm_club_report
+        set clubId  = #{clubId},
+            questionManId=null
+        where questionManId = #{questionManId}
+    </update>
+
     <select id="findAllBeansHistory" resultType="com.caimei365.user.model.vo.BeansHistoryVo">
         SELECT
         type,
@@ -293,10 +307,17 @@
         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
-        from cm_club_remarks ccr
-                 left join club c on ccr.clubId = c.clubId
-        where id = #{remarksId}
+        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,p.productId as productId,cmc.ID as reportId
+        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
     </select>
     <select id="getRemarksImageList" resultType="java.lang.String">
         select imageUrl
@@ -383,11 +404,18 @@
         ORDER BY addTime DESC
     </select>
     <select id="getVisitRemark" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
-        select id as remarksId, questionManId, remarks, questionMan, addTime as addDate,IFNULL(consultType,'') as consult,clubType,pinceSensitve,satisfied,followup,extra
-        from cm_visitor_remarks
-        where id = #{remarksId}
-          AND remarks IS NOT NULL
-          and clubId is null
+        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,p.productId as productId,cmc.ID as reportId
+        from cm_visitor_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 null
+
     </select>
     <select id="getVisitRemarksImageList" resultType="java.lang.String">
         select imageUrl
@@ -428,7 +456,9 @@
                pinceSensitve,
                satisfied,
                followup,
-               extra
+               extra,
+               productID,
+               reportID
         from cm_visitor_remarks
         where questionManId = #{questionManId}
           and remarks is not null
@@ -446,13 +476,14 @@
         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
+        (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
         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
         where ccr.serviceProviderId=#{serviceProviderId}
 
         <if test="keyWord != null and keyWord != ''">
@@ -479,7 +510,12 @@
         <if test="satisfied != '' and satisfied != null">
             and ccr.satisfied LIKE concat('%',#{satisfied},'%')
         </if>
-
+        <if test="status!=null and status!=0">
+           and cmc.status=#{status}
+        </if>
+        <if test="newDeal !=null and newDeal!=0">
+            and c.newDeal =#{newDeal}
+        </if>
         <if test="followup != '' and followup != null">
             and ccr.followup LIKE concat('%',#{followup},'%')
         </if>
@@ -496,11 +532,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.Id = ccr.reportID
         WHERE ccr.serviceProviderId = #{serviceProviderId}
         and ccr.remarks IS NOT NULL
         and ccr.clubId is null
@@ -520,7 +557,9 @@
         <if test="satisfied != '' and satisfied!=null">
             and ccr.satisfied LIKE concat('%',#{satisfied},'%')
         </if>
-
+        <if test="status!=null and status!=0">
+            and cmc.status=#{status}
+        </if>
         <if test="followup != '' and followup!=null">
             and ccr.followup LIKE concat('%',#{followup},'%')
         </if>
@@ -585,13 +624,14 @@
         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
+        (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
         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.clubId = ccr.clubId
         <where>
             <if test="keyWord != null and keyWord !=''">
                 AND (ccr.remarks LIKE concat('%',#{keyWord},'%')
@@ -601,6 +641,9 @@
             <if test="leaderId != null and leaderId>0">
                 and csr.leaderId = #{leaderId}
             </if>
+            <if test="status!=null and status!=0">
+               and cmc.status=#{status}
+            </if>
             <if test="groupId != null and groupId>0">
                 and ccr.serviceProviderId = #{groupId}
             </if>
@@ -621,6 +664,9 @@
             <if test="followup != '' and followup !=null">
                 and ccr.followup LIKE concat('%',#{followup},'%')
             </if>
+            <if test="newDeal !=null and newDeal!=0">
+                and c.newDeal =#{newDeal}
+            </if>
 
             <if test="con != null and con.size > 0">
                 and
@@ -636,11 +682,12 @@
         ccr.id AS remarksId, ccr.remarks,ccr.addTime as addDate,ccr.questionMan,IFNULL(ccr.consultType,'') as consult,ccr.serviceProviderId,ccr.questionManId,
         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
+        (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,cmc.status as status
         FROM cm_visitor_remarks ccr
         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
         <where>
             and ccr.remarks IS NOT NULL
             and ccr.clubId is null
@@ -670,6 +717,9 @@
             <if test="followup != '' and followup !=null">
                 and ccr.followup LIKE concat('%',#{followup},'%')
             </if>
+             <if test="status!=null and status!=0">
+                and cmc.status=#{status}
+             </if>
             <if test="con != null and con.size > 0">
                 and
                 <foreach collection="con" item="item" index="index" open="(" close=")" separator="OR">
@@ -689,4 +739,51 @@
         WHERE remarks like concat('%',#{remarks},'%')
         order by addtime DESC
     </select>
+
+    <select id="recordClubage" resultType="com.caimei365.user.model.vo.ClubVo">
+        select c.clubID                    as clubId,
+              c.userID                    as userId,
+               c.name,
+               c.sname                     as shortName,
+               c.contractMobile,
+               c.contractEmail,
+               c.contractPhone,
+               c.linkMan,
+               c.provinceID                as proviceId,
+               c.cityID                    as cityId,
+               c.townID                    as townId,
+               c.address,
+               c.headpic                   as shopPhoto,
+               c.businessLicenseImage      as businessLicense,
+               c.socialCreditCode,
+               c.firstClubType,
+               c.secondClubType,
+               c.department,
+               c.medicalPracticeLicenseImg as medicalPracticeLicense,
+               c.mainpro                   as mainProduct,
+               c.fax,
+               c.info                      as profile,
+               c.spID                      as serviceProviderId,
+               c.addTime,
+               c.status,
+               c.lastCheckOrderDate,
+               c.newDeal as newDeal,
+               IF(c.spid IS NOT NULL,1,0) AS spType,
+               r.describe,
+               u.userIdentity as userIdentity
+
+        from club c
+        LEFT JOIN record_link r ON r.`clubId`=c.`clubID`
+        left join user u on u.clubId = c.clubId
+        where c.clubID = #{clubId}
+        ORDER BY r.id DESC
+        LIMIT 1
+
+    </select>
+
+    <select id="serviceProviderNameage" resultType="java.lang.String">
+        select linkMan from `serviceprovider`
+        where serviceProviderID=#{serviceproviderId}
+    </select>
+
 </mapper>

+ 409 - 0
src/main/resources/mapper/ClubReport.xml

@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.user.mapper.ClubReportMapper">
+
+    <insert id="addClubReport">
+        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 (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 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 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>
+        </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>
+            and (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="reportDetailsList" 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,
+               c.name          AS clubName,
+                ccr.questionMan as questionMan,
+               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 cm_club_remarks ccr ON cmc.Id = ccr.reportId
+                 LEFT JOIN product p ON p.productID = cmc.productID
+                 LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE cmc.id = #{reportId}
+          and cmc.clubID is not null
+        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 cmc.Id = ccr.reportId
+                 LEFT JOIN product p ON p.productID = cmc.productID
+                 LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE cmc.id = #{reportId}
+          and cmc.clubID is  null
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+
+
+    <select id="reportRemarks" resultType="com.caimei365.user.model.vo.ReportVo">
+        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 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>
+            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="serviceProviderId!=null">
+                and cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+        </where>
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+    <select id="repotRemark" resultType="com.caimei365.user.model.vo.ReportVo">
+        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 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
+             cmc.clubID is not null
+
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+
+    <select id="visitorReportRemarks" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+        cmc.id AS reportId , cmc.productID as productId,cmc.serviceProviderID as serviceProviderId,cmc.questionManId AS questionManId, 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 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>
+            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 cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+        </where>
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+    <select id="visitoReportRemark" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+        cmc.id AS reportId , cmc.productID as productId,cmc.serviceProviderID as serviceProviderId,cmc.questionManId AS questionManId, 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 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
+             cmc.clubID is null
+
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+    <select id="reportLeaderId" resultType="java.lang.Integer">
+        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 DISTINCT linkMan
+        FROM serviceprovider
+        WHERE serviceProviderID = #{serviceProviderId}
+        LIMIT 1
+    </select>
+
+    <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 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
+        <where>
+            and cmc.id=#{reportId}
+            and cmc.clubID is not null
+            <if test="teamId!=null">
+                and csg.teamId = #{teamId}
+            </if>
+            <if test="teamId==null and serviceProviderId!=null">
+                and cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+            and reportID is not null
+            <if test="keyWord != null and keyWord !=''">
+                and cmc.reportText LIKE CONCAT('%', #{keyWord}, '%')
+            </if>
+            <if test="leaderId != null and leaderId>0">
+                and csr.leaderId = #{leaderId}
+            </if>
+            <if test="groupId != null and groupId>0">
+                and ccr.serviceProviderId = #{groupId}
+            </if>
+            <if test="startAddTime !='' and startAddTime !=null">
+                and ccr.addTime <![CDATA[  >  ]]> #{startAddTime}
+            </if>
+            <if test="endAddTime != '' and endAddTime!=null">
+                and ccr.addTime <![CDATA[  <  ]]> #{endAddTime}
+            </if>
+
+            <if test="pinceSensitve != '' and pinceSensitve!=null">
+                and ccr.pinceSensitve LIKE concat('%',#{pinceSensitve},'%')
+            </if>
+            <if test="satisfied != '' and satisfied!=null">
+                and ccr.satisfied LIKE concat('%',#{satisfied},'%')
+            </if>
+
+            <if test="followup != '' and followup !=null">
+                and ccr.followup LIKE concat('%',#{followup},'%')
+            </if>
+            <if test="newDeal !=null and newDeal != 0">
+                and c.newDeal =#{newDeal}
+            </if>
+            <if test="status!=null and status!=0">
+                and cmc.status=#{status}
+            </if>
+            <if test="con != null and con.size > 0">
+                and
+                <foreach collection="con" item="item" index="index" open="(" close=")" separator="OR">
+                    ccr.consultType LIKE CONCAT('%',#{consultType},'%')
+                </foreach>
+            </if>
+
+        </where>
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+
+    <select id="visitorAssociated" resultType="com.caimei365.user.model.vo.RemarksVo">
+        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
+        <where>
+            and cmc.id=#{reportId}
+            and cmc.clubID is null
+            and reportID is not null
+            <if test="teamId!=null">
+                and csg.teamId = #{teamId}
+            </if>
+            <if test="teamId==null and serviceProviderId!=null">
+                and cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+            <if test="keyWord != null and keyWord !=''">
+                and cmc.reportText LIKE CONCAT('%', #{keyWord}, '%')
+            </if>
+            <if test="leaderId != null and leaderId>0">
+                and csr.leaderId = #{leaderId}
+            </if>
+            <if test="groupId != null and groupId>0">
+                and ccr.serviceProviderId = #{groupId}
+            </if>
+            <if test="startAddTime !='' and startAddTime !=null">
+                and ccr.addTime <![CDATA[  >  ]]> #{startAddTime}
+            </if>
+            <if test="endAddTime != '' and endAddTime!=null">
+                and ccr.addTime <![CDATA[  <  ]]> #{endAddTime}
+            </if>
+
+            <if test="pinceSensitve != '' and pinceSensitve!=null">
+                and ccr.pinceSensitve LIKE concat('%',#{pinceSensitve},'%')
+            </if>
+            <if test="satisfied != '' and satisfied!=null">
+                and ccr.satisfied LIKE concat('%',#{satisfied},'%')
+            </if>
+            <if test="status!=null and status!=0">
+                and cmc.status=#{status}
+            </if>
+            <if test="followup != '' and followup !=null">
+                and ccr.followup LIKE concat('%',#{followup},'%')
+            </if>
+        </where>
+        ORDER BY cmc.`addTime` DESC
+    </select>
+
+
+    <update id="disassociation">
+        UPDATE cm_club_remarks
+        SET reportId=NULL
+#             clubId=NULL
+        WHERE Id = #{remarksId}
+    </update>
+
+    <update id="visitorDisassociation">
+        UPDATE cm_visitor_remarks
+        SET reportId=NULL
+#             questionManId=NULL
+        WHERE Id = #{remarksId}
+    </update>
+
+
+    <select id="visitorReportList" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+        cmc.id as reportId,cmc.productID as productId,cmc.reportName as reportName,ccr.questionMan AS questionMan,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_visitor_remarks ccr ON cmc.Id = ccr.reportID
+        LEFT JOIN serviceprovider s ON cmc.serviceProviderId = s.serviceProviderID
+        LEFT JOIN product p ON p.productID = cmc.productID
+        <where>
+            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>
+
+    <select id="questionManNameage" resultType="java.lang.String">
+        SELECT ccr.questionMan FROM cm_club_report cmc
+        LEFT JOIN cm_visitor_remarks ccr ON cmc.questionManId = ccr.questionManId
+        <where>
+        <if test="reportId!=null">
+            cmc.id=#{reportId}
+        </if>
+            <if test="questionManId!='' and questionManId!=null">
+                cmc.questionManId=#{questionManId}
+            </if>
+            <if test="serviceProviderId!=null">
+                cmc.serviceProviderId=#{serviceProviderId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+
+
+
+
+
+
+</mapper>

+ 4 - 3
src/main/resources/mapper/SellerMapper.xml

@@ -102,14 +102,15 @@
     </select>
 
     <select id="findClubs" resultType="com.caimei365.user.model.vo.ClubVo">
-        select c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile, c.contractEmail as contractEmail,
+        select DISTINCT c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile, c.contractEmail as contractEmail,
         c.contractPhone, c.linkMan, c.provinceID as proviceId, c.cityID as cityId, c.townID as townId,
         c.address, c.headpic as shopPhoto, c.businessLicenseImage as businessLicense, c.socialCreditCode,
         c.firstClubType, c.secondClubType, c.department, c.medicalPracticeLicenseImg as medicalPracticeLicense,
         c.mainpro as mainProduct, c.fax, c.info as profile, c.spID as serviceProviderId, c.addTime, c.status, c.lastCheckOrderDate,
-        u.userIdentity
+        u.userIdentity,c.newDeal as newDeal,IF(r.id IS NOT NULL,1,0) AS recordCount
         from club c
         left join user u on c.userID = u.userID
+        LEFT JOIN record_link r ON r.`clubId`=c.`clubID`
         where c.spID = #{serviceProviderId}
         <if test="status != null and status != 66">
             AND c.status = #{status}
@@ -126,7 +127,7 @@
         order by c.clubID desc
     </select>
     <select id="getAllClubList" resultType="com.caimei365.user.model.vo.ClubVo">
-        SELECT c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile, c.contractEmail as contractEmail,
+        SELECT DISTINCT c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile, c.contractEmail as contractEmail,
         c.contractPhone, c.linkMan, c.provinceID as proviceId, c.cityID as cityId, c.townID as townId,
         c.address, c.headpic as shopPhoto, c.businessLicenseImage as businessLicense, c.socialCreditCode,
         c.firstClubType, c.secondClubType, c.department, c.medicalPracticeLicenseImg as medicalPracticeLicense,