Browse Source

注册客户报备记录

Duan_xu 2 years ago
parent
commit
831e5c315d

+ 23 - 0
src/main/java/com/caimei365/user/controller/ClubApi.java

@@ -214,12 +214,35 @@ public class ClubApi {
         return clubService.saveClubRemarks(jsonParamsDto);
     }
 
+    @ApiOperation("注册机构报备列表")
+    @GetMapping("/report/List")
+    public ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return clubService.ClubReportList(serviceProviderId,clubID,pageNum,pageSize);
+    }
+
+
+    @ApiOperation("报备详情")
+    @GetMapping("/report/DetailsList")
+    public ResponseJson<ReportVo> ClubReportList(Integer reportId) {
+        return clubService.reportDetailsList(reportId);
+    }
+
+
     @ApiOperation("新建机构报备")
     @PostMapping("/report/save")
     public ResponseJson saveClubReport(ReportVo reportVo) {
         return clubService.saveClubReport(reportVo);
     }
 
+    @ApiOperation("咨询/报备关联商品")
+    @GetMapping("/report/productList")
+    public ResponseJson<PaginationVo<ProductItemVo>> getproductList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return clubService.getproductList(pageNum,pageSize);
+    }
+
+
+
+
     @ApiOperation("删除机构资料备注")
     @ApiImplicitParam(required = true, name = "remarksId", value = "机构id")
     @PostMapping("/remarks/delete")

+ 16 - 1
src/main/java/com/caimei365/user/mapper/ClubReportMapper.java

@@ -1,8 +1,11 @@
 package com.caimei365.user.mapper;
 
+import com.caimei365.user.model.vo.ProductItemVo;
 import com.caimei365.user.model.vo.ReportVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -12,6 +15,18 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface ClubReportMapper {
 
-Integer addClubReport(ReportVo reportVo);
+void addClubReport(ReportVo reportVo);
+
+List<ProductItemVo> productList();
+
+List<ReportVo> reportList(Integer serviceProviderId,Integer clubID);
+
+ReportVo reportDetailsList(Integer reportId);
+
+List<ReportVo>reportRemarks(Integer teamId);
+
+Integer reportLeaderId(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;
 }

+ 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;
 }

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

@@ -93,4 +93,28 @@ 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;
 }

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

@@ -96,4 +96,33 @@ 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;
 }

+ 21 - 9
src/main/java/com/caimei365/user/model/vo/ReportVo.java

@@ -13,22 +13,34 @@ import java.io.Serializable;
 @Data
 public class ReportVo implements Serializable {
 
-    private Integer productID;
+    private Integer productID;//商品id
 
-    private Integer clubID;
+    private Integer clubID;//机构ID
 
-    private String reportName;
+    private String reportName;//咨询人
 
-    private String reportText;
+    private String reportText;//报备事由
 
-    private String addTime;
+    private String addTime;//添加时间
 
-    private Integer status;
+    private Integer status;//状态
 
-    private String auditName;
+    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 String auditTime;
 
-    private String auditText;
 
 }

+ 17 - 8
src/main/java/com/caimei365/user/service/ClubService.java

@@ -5,6 +5,7 @@ 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.Map;
 
@@ -110,14 +111,20 @@ public interface ClubService {
 
     ResponseJson saveClubReport(ReportVo reportVo);
 
-    /**
-     * 获取机构资料备注列表
-     *
-     * @param serviceProviderId 协销id
-     * @param pageNum           页码
-     * @param pageSize          每页数量
-     * @return
-     */
+    ResponseJson<PaginationVo<ProductItemVo>> getproductList(int pageNum,int pageSize);
+
+    ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize);
+
+    ResponseJson<ReportVo> reportDetailsList(Integer reportId);
+
+        /**
+         * 获取机构资料备注列表
+         *
+         * @param serviceProviderId 协销id
+         * @param pageNum           页码
+         * @param pageSize          每页数量
+         * @return
+         */
     ResponseJson<PaginationVo<RemarkVo>> getRemarksList(Integer serviceProviderId,
                                                         String keyWord,
                                                         String startAddTime,
@@ -224,4 +231,6 @@ public interface ClubService {
     ResponseJson findGroups(Integer leaderId);
 
     ResponseJson getCmRemarksList(String remarks);
+
+    ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Integer serviceProviderId,int pageNum, int pageSize);
 }

+ 57 - 7
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 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;
@@ -389,6 +390,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不能为空");
             }
@@ -427,6 +430,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);
@@ -465,15 +470,30 @@ public class ClubServiceImpl implements ClubService {
         }
     }
 
+    @Override
+    public  ResponseJson<PaginationVo<ProductItemVo>> getproductList(int pageNum,  int pageSize){
+        PageHelper.startPage(pageNum, pageSize);
+        List<ProductItemVo> productList=clubReportMapper.productList();
+        return ResponseJson.success(new PaginationVo<>(productList));
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ReportVo>> ClubReportList(Integer serviceProviderId,Integer clubID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ReportVo>reportList=clubReportMapper.reportList(serviceProviderId,clubID);
+        return ResponseJson.success(new PaginationVo<>(reportList));
+    }
 
     @Override
+    public ResponseJson<ReportVo> reportDetailsList(Integer reportId) {
+       ReportVo reportVo=clubReportMapper.reportDetailsList(reportId);
+        return ResponseJson.success(reportVo);
+    }
+
+        @Override
     public ResponseJson saveClubReport(ReportVo reportVo) {
-       Integer i= clubReportMapper.addClubReport(reportVo);
-       if(i>0){
+        clubReportMapper.addClubReport(reportVo);
            return ResponseJson.success("保存成功");
-       }else {
-           return ResponseJson.success("保存失败");
-       }
     }
 
 
@@ -507,11 +527,11 @@ public class ClubServiceImpl implements ClubService {
         }
         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));
         } 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));
         } else {
@@ -631,6 +651,12 @@ 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());
         if (StringUtils.isNotBlank(remarksVo.getConsult())) {
             if (remarkVo.getConsult().contains(",")) {
                 List<String> cons = Arrays.asList(remarkVo.getConsult().split(","));
@@ -647,6 +673,30 @@ public class ClubServiceImpl implements ClubService {
         return ResponseJson.success(remarkVo);
     }
 
+    @Override
+   public ResponseJson<PaginationVo<ReportVo>> reportRemarks(Integer manager,Integer serviceProviderId,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.reportRemarks(teamId);
+        } else if (null != teamId && teamId > 0) {
+            log.info("方法2 协销组长");
+
+            pageInfo = clubReportMapper.reportRemarks(teamId);
+        } else {
+            log.info("方法3 协销");
+            pageInfo = clubReportMapper.reportRemarks(teamId);
+        }
+        return ResponseJson.success(new PaginationVo<>(pageInfo));
+    }
+
+
+
+
     @Override
     public ResponseJson deleteClubRemarks(Integer remarksId) {
         if (null == remarksId) {

+ 21 - 9
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)
@@ -205,7 +205,9 @@
             pinceSensitve=#{pinceSensitve},
             satisfied=#{satisfied},
             followup=#{followup},
-            extra=#{extra}
+            extra=#{extra},
+            productID=#{productID},
+            reportID=#{reportID}
          where id = #{remarksId}
     </update>
     <update id="updateQuestionMan">
@@ -293,10 +295,15 @@
         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 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
+        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}
     </select>
     <select id="getRemarksImageList" resultType="java.lang.String">
         select imageUrl
@@ -446,13 +453,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 != ''">
@@ -585,13 +593,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>
             <if test="keyWord != null and keyWord !=''">
                 AND (ccr.remarks LIKE concat('%',#{keyWord},'%')
@@ -621,6 +630,9 @@
             <if test="followup != '' and followup !=null">
                 and ccr.followup LIKE concat('%',#{followup},'%')
             </if>
+            <if test="newDeal !=null">
+                and c.newDeal =#{newDeal}
+            </if>
 
             <if test="con != null and con.size > 0">
                 and

+ 51 - 2
src/main/resources/mapper/ClubReport.xml

@@ -2,9 +2,58 @@
 <!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" parameterType="integer">
-        INSERT INTO cm_club_report (clubID,productID,reportName,reportText,addTime,status)  VALUES(#{clubID},#{productID},#{reportName},#{reportText},#{addTime},#{status})
+    <insert id="addClubReport">
+        INSERT INTO cm_club_report (clubID,productID,reportName,reportText,addTime,status)  VALUES(#{clubID},#{productID},#{reportName},#{reportText},now(),2)
     </insert>
 
 
+    <select id="productList"  resultType="com.caimei365.user.model.vo.ProductItemVo">
+        SELECT p.productID,p.mainImage as image,p.name,p.price,s.name as shopName FROM `product` p
+        LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE p.validFlag=2 OR p.validFlag=9
+    </select>
+
+<select id="reportList" resultType="com.caimei365.user.model.vo.ReportVo">
+    SELECT c.`name` as clubName,cmc.`addTime`,p.`name` as productName,p.`mainImage` as mainImage,cmc.`reportText`
+    FROM cm_club_report cmc
+    LEFT JOIN cm_club_remarks ccr ON ccr.reportID = cmc.id
+    LEFT JOIN club c ON c.clubID = cmc.clubID
+    LEFT JOIN product p ON p.productID = cmc.productID
+    WHERE ccr.`serviceProviderId`=#{serviceProviderId}
+          AND cmc.`clubID`=#{clubID}
+</select>
+
+    <select id="reportDetailsList" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT c.name AS clubName,c.linkMan,cmc.`reportName`,cmc.`addTime`,p.`name` as productName,p.`mainImage`,cmc.`reportText`,s.name as shopName
+        FROM cm_club_report cmc
+        LEFT JOIN club c ON c.clubID = cmc.clubID
+        LEFT JOIN product p ON p.productID = cmc.productID
+        LEFT JOIN shop s ON s.shopID = p.shopID
+        WHERE cmc.id=#{reportId}
+    </select>
+
+    <select id="reportRemarks" resultType="com.caimei365.user.model.vo.ReportVo">
+        SELECT DISTINCT
+           cmc.id AS reportId , c.name AS clubName,c.`newDeal` AS newDeal,cmc.reportName AS reportName,cmc.`addTime` AS ADDTIME,p.`mainImage` AS mainImage,p.name AS productName,cmc.`reportText`
+        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>
+                        <if test="teamId!=null">
+                           and csg.teamId = #{teamId}
+                        </if>
+                    </where>
+    </select>
+
+    <select id="reportLeaderId" resultType="java.lang.Integer">
+        SELECT id FROM cm_serviceteam_role csr
+        LEFT JOIN serviceprovider s ON s.serviceProviderId=csr.leaderId
+        WHERE s.serviceProviderID = #{serviceProviderId}
+    </select>
+
+
 </mapper>