Parcourir la source

Merge remote-tracking branch 'origin/test' into test

zhaoxian il y a 2 ans
Parent
commit
6a84874709
30 fichiers modifiés avec 1684 ajouts et 16 suppressions
  1. 55 1
      ruixuan-common/src/main/java/com/ruixuan/common/utils/DateUtils.java
  2. 3 3
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java
  3. 148 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleFinacePolicyController.java
  4. 7 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueInfoMapper.java
  5. 23 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyApprovalLogMapper.java
  6. 83 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyInfoMapper.java
  7. 25 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyProductInfoMapper.java
  8. 28 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyRebateInfoMapper.java
  9. 1 1
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallRecordPojo.java
  10. 6 1
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallResultPojo.java
  11. 3 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueInfoPojo.java
  12. 44 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinanceCompanySubjectInfoPojo.java
  13. 46 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyApprovalLogPojo.java
  14. 107 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyInfoPojo.java
  15. 50 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyProductInfoPojo.java
  16. 33 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyRebateInfoPojo.java
  17. 86 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/AddSaleFinancePolicyInfoVo.java
  18. 41 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/PolicyApprovalVo.java
  19. 59 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/SaleFinancePolicyInfoVo.java
  20. 2 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/SaleRecordVo.java
  21. 37 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/ISaleFinacePolicyService.java
  22. 22 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueCallRecordServiceImpl.java
  23. 8 5
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueInfoServiceImpl.java
  24. 336 0
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleFinacePolicyServiceImpl.java
  25. 29 5
      ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/TelephoneRobotServiceImpl.java
  26. 19 0
      ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueInfoMapper.xml
  27. 43 0
      ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyApprovalLogMapper.xml
  28. 266 0
      ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyInfoMapper.xml
  29. 31 0
      ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyProductInfoMapper.xml
  30. 43 0
      ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyRebateInfoMapper.xml

+ 55 - 1
ruixuan-common/src/main/java/com/ruixuan/common/utils/DateUtils.java

@@ -239,7 +239,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         //System.out.println(parseDateToStr(YYYY_MM_DD,getBeginDayOfWeek()));
         // System.out.println(parseDateToStr(YYYY_MM_DD,getEendDayOfWeek()));
 
-        System.out.println(strDateToInt("2022-05"));
+        //System.out.println(strDateToInt("2022-05"));
+        System.out.println(getSubtractTime(new Date(),6));
+
     }
 
     /**
@@ -286,4 +288,56 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         return DateFormatUtils.format(date, YYYYMMDD);
     }
 
+
+
+    /**
+     * 返回 日期-天数 的string 日期
+     *
+     * @param time        时间
+     * @param daysBetween 天数
+     * @return
+     */
+    public static String getSubtractTime(Date time, Integer daysBetween) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar rightNow = Calendar.getInstance();
+        rightNow.setTime(time);
+        if (daysBetween.intValue() > 0) {
+            rightNow.add(Calendar.DAY_OF_YEAR, -daysBetween.intValue());
+        } else {
+            rightNow.add(Calendar.DAY_OF_YEAR, -1);//日期 -1
+        }
+        Date rightNowTime = rightNow.getTime();
+        String nowTime = sdf.format(rightNowTime);
+        return nowTime;
+    }
+
+
+
+    /**
+     * 根据时间获取季度
+     * 1即Q1(1,2,3月),以此类推
+     *
+     * @param date
+     * @return
+     */
+    public static int getQuarter(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        //获取当前月份
+        int month = cal.get(Calendar.MONTH) + 1;
+        if (month <= 3) {
+            return 1;
+        } else if (month <= 6) {
+            return 2;
+        } else if (month <= 9) {
+            return 3;
+        } else if (month <= 12) {
+            return 4;
+        }
+
+        return 0;
+    }
+
+
+
 }

+ 3 - 3
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java

@@ -116,10 +116,10 @@ public class SaleClueInfoController extends BaseController {
 
 
 
-    @ApiOperation(value = "销售线索-分配",notes = "销售线索-分配-(可以传多个卖家id)")
+    @ApiOperation(value = "销售线索-分配",notes = "销售线索-分配-(可以传多个销售线索id,废弃入参传卖家id)")
     @PostMapping(value = "/saleClueDistribution")
     public ResultResponse saleClueDistribution(
-            @ApiParam(value = "卖家ids") @RequestParam(value = "sellerIds") String sellerIds,
+            @ApiParam(value = "销售线索ids") @RequestParam(value = "sellerIds") String sellerIds,
             @ApiParam(value = "销售id") @RequestParam(value = "saleId") Long saleId,
             @ApiParam(value = "创建人id") @RequestParam(value = "createUserId") Long createUserId){
         List<String> sellerList = Arrays.asList(StringUtils.split(sellerIds,","));
@@ -279,7 +279,7 @@ public class SaleClueInfoController extends BaseController {
     @ApiOperation(value = "外呼机器人-通话记录查询",notes = "外呼机器人-通话记录查询")
     @GetMapping(value = "/getRobotTelephoneResultList")
     public ResultResponse<List<SaleClueCallResultPojo>> getRobotTelephoneResultList(@ApiParam("创建时间") @RequestParam(value = "createTime",required = false) String createTime,
-                                                                                    @ApiParam("销售线索状态 1-未开始 2-进行中 3-已结束") @RequestParam(value = "sellerName",required = false) Integer state){
+                                                                                    @ApiParam("销售线索状态 1-未开始 2-进行中 3-已结束") @RequestParam(value = "state",required = false) Integer state){
 
         return telephoneRobotService.getRobotTelephoneResultList(createTime,state);
     }

+ 148 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleFinacePolicyController.java

@@ -0,0 +1,148 @@
+package com.ruixuan.salesLeads.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.common.annotation.RateLimiter;
+import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.domain.ResultResponse;
+import com.ruixuan.common.core.domain.entity.SysRole;
+import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.common.utils.StringUtils;
+import com.ruixuan.common.utils.file.FileTypeUtils;
+import com.ruixuan.salesLeads.pojo.*;
+import com.ruixuan.salesLeads.pojo.vo.PolicyApprovalVo;
+import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
+import com.ruixuan.salesLeads.pojo.vo.SaleTaskInfoVo;
+import com.ruixuan.salesLeads.service.ISaleClueCallRecordService;
+import com.ruixuan.salesLeads.service.ISaleClueInfoService;
+import com.ruixuan.salesLeads.service.ISaleFinacePolicyService;
+import com.ruixuan.salesLeads.service.impl.TelephoneRobotServiceImpl;
+import com.ruixuan.system.service.ISysRoleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+
+
+@Slf4j
+@Api(tags = "政策结算",description = "saleFinacePolicyController")
+@RestController
+@RequestMapping("sale/saleFinacePolicyController")
+public class SaleFinacePolicyController extends BaseController {
+
+
+    @Autowired
+    private ISaleClueInfoService saleClueInfoServiceImpl;
+
+
+    @Autowired
+    private TelephoneRobotServiceImpl telephoneRobotService;
+
+    @Autowired
+    private ISaleFinacePolicyService saleFinacePolicyService;
+
+
+    @Autowired
+    private ISysRoleService sysRoleService;
+
+
+
+
+
+
+    @ApiOperation(value = "政策列表查询",notes = "政策列表查询")
+    @GetMapping(value = "/selectPolicyList")
+    public ResultResponse<List<SaleFinancePolicyInfoPojo>> selectPolicyList(SaleFinancePolicyInfoVo saleFinancePolicyInfoVo){
+        //查询用户角色
+        List<SysRole> roleList = sysRoleService.selectRolesByUserId(Long.valueOf(saleFinancePolicyInfoVo.getCreateUserId()));
+        List<String> roleKeyList = roleList.stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+        if (roleKeyList.contains("admin")){
+            saleFinancePolicyInfoVo.setCreateUserId(null);
+        }
+        return saleFinacePolicyService.selectPolicyList(saleFinancePolicyInfoVo);
+
+    }
+
+
+    @ApiOperation(value = "查看政策详情",notes = "根据政策id查看政策详情")
+    @GetMapping(value = "/selectPolicyInfoById")
+    public ResultResponse<SaleFinancePolicyInfoPojo> selectPolicyInfoById(@ApiParam("政策id") @RequestParam(value = "policyId")String policyId){
+
+        return saleFinacePolicyService.selectPolicyInfoById(policyId);
+
+    }
+
+
+    @ApiOperation(value = "新增政策",notes = "新增政策")
+    @PostMapping(value = "/addSaleFinancePolicyInfo")
+    public ResultResponse addSaleFinancePolicyInfo(SaleFinancePolicyInfoPojo policyInfoPojo){
+
+        return saleFinacePolicyService.addSaleFinancePolicyInfo(policyInfoPojo);
+
+    }
+
+
+    @ApiOperation(value = "政策返点比例查询",notes = "政策返点比例查询")
+    @PostMapping(value = "/selectFinacePolicyRebateInfo")
+    public ResultResponse<SaleFinancePolicyRebateInfoPojo> selectFinacePolicyRebateInfo(){
+        return saleFinacePolicyService.selectFinacePolicyRebateInfo();
+    }
+
+
+    @ApiOperation(value = "新增政策的返点比例",notes = "新增政策的返点比例")
+    @PostMapping(value = "/addSaleFinancePolicyRebateInfo")
+    public ResultResponse addSaleFinancePolicyRebateInfo(SaleFinancePolicyRebateInfoPojo policyRebateInfoPojo){
+        return saleFinacePolicyService.addSaleFinancePolicyRebateInfo(policyRebateInfoPojo);
+    }
+
+
+
+    @ApiOperation(value = "政策审核",notes = "政策审核")
+    @PostMapping(value = "/policyApproval")
+    public ResultResponse policyApproval(PolicyApprovalVo policyApprovalVo){
+        return saleFinacePolicyService.policyApproval(policyApprovalVo);
+    }
+
+
+
+
+    @ApiOperation(value = "政策手动转审",notes = "政策审核")
+    @PostMapping(value = "/policyApprovalManual")
+    public ResultResponse policyApprovalManual(PolicyApprovalVo policyApprovalVo){
+        return saleFinacePolicyService.policyApproval(policyApprovalVo);
+    }
+
+
+
+    @ApiOperation(value = "查询账户以及公司广告主列表",notes = "查询账户以及公司广告主列表")
+    @GetMapping(value = "/selectPolicyCustomerList")
+    public ResultResponse selectPolicyCustomerList(){
+        return saleFinacePolicyService.selectPolicyCustomerList();
+    }
+
+
+    @ApiOperation(value = "查询公司主体列表",notes = "查询公司主体列表")
+    @GetMapping(value = "/selectCompanySubjectInfoList")
+    public ResultResponse<SaleFinanceCompanySubjectInfoPojo> selectCompanySubjectInfoList(){
+        return saleFinacePolicyService.selectCompanySubjectInfoList();
+    }
+
+
+
+
+}

+ 7 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueInfoMapper.java

@@ -104,6 +104,13 @@ public interface SaleClueInfoMapper {
      */
      void updateSaleClueOfflineFlag(@Param(value = "sellerId") Long sellerId,@Param(value = "offlineSaleFlag") int offlineSaleFlag,@Param(value = "saleId") Long saleId);
 
+    /**
+     * 修改销售线索 导入电话记录的状态
+     * @param id 销售线索的id
+     * @param importPhoneFlag  是否导入电话记录 0-否 1-是
+     */
+     void updateSaleClueImportPhoneFlag(@Param(value = "id") Long id,@Param(value = "importPhoneFlag") int importPhoneFlag);
+
 
 
 

+ 23 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyApprovalLogMapper.java

@@ -0,0 +1,23 @@
+package com.ruixuan.salesLeads.mapper;
+
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyApprovalLogPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策的返点比例
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface SaleFinancePolicyApprovalLogMapper {
+
+    /**
+     * 新增政策的审核意见
+     * @param approvalLogPojo
+     */
+    void addSaleFinancePolicyApprovalLog(SaleFinancePolicyApprovalLogPojo approvalLogPojo);
+
+
+}

+ 83 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyInfoMapper.java

@@ -0,0 +1,83 @@
+package com.ruixuan.salesLeads.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.salesLeads.pojo.SaleFinanceCompanySubjectInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo;
+import com.ruixuan.salesLeads.pojo.TestPojo;
+import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: TODO
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface SaleFinancePolicyInfoMapper {
+
+
+    /**
+     * 查看政策列表
+     * @param saleFinancePolicyInfoVo
+     * @return
+     */
+    List<SaleFinancePolicyInfoPojo> selectPolicyList(SaleFinancePolicyInfoVo saleFinancePolicyInfoVo);
+
+    /**
+     * 查看政策详情
+     * @param policyId 政策id
+     * @return
+     */
+    SaleFinancePolicyInfoPojo selectPolicyInfoById(String policyId);
+
+    /**
+     * 新增政策
+     * @param policyInfoPojo
+     */
+    Integer addSaleFinancePolicyInfo(SaleFinancePolicyInfoPojo policyInfoPojo);
+
+    /**
+     *  查询 政策审核人信息
+     * @return
+     */
+    List<JSONObject> selectPolicyApprovalUser();
+
+    /**
+     * 通过用户查询 政策审核人信息
+     * @param approvalUserId 审核人id
+     * @return
+     */
+    JSONObject selectPolicyApprovalUserByUserId(String approvalUserId);
+
+    /**
+     * 通过当前审核人的级别查询 政策下一级审核人信息
+     * @param approvalUserId
+     * @return
+     */
+    JSONObject selectNextApprovalUser(String approvalUserId);
+
+    /**
+     *修改政策审核状态
+     * @param policyId 政策id
+     * @param approvedProgress 审核人id
+     * @param approvedStatus 状态 0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝
+     */
+    void updatePolicyStatus(@Param("policyId")Integer policyId,@Param("approvedProgress")String approvedProgress,@Param("approvedStatus")Integer approvedStatus);
+
+    /**
+     * 查询快手账户以及公司和资质
+     * @return
+     */
+    List<JSONObject> selectPolicyCustomerList();
+
+    /**
+     * 查询公司主体列表
+     * @return
+     */
+    List<SaleFinanceCompanySubjectInfoPojo> selectCompanySubjectInfoList();
+
+}

+ 25 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyProductInfoMapper.java

@@ -0,0 +1,25 @@
+package com.ruixuan.salesLeads.mapper;
+
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyProductInfoPojo;
+import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
+
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: TODO
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface SaleFinancePolicyProductInfoMapper {
+
+    /**
+     * 新增政策的产品
+     * @param policyProductInfoPojo
+     */
+    void addSaleFinancePolicyProductInfo(SaleFinancePolicyProductInfoPojo policyProductInfoPojo);
+
+}

+ 28 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleFinancePolicyRebateInfoMapper.java

@@ -0,0 +1,28 @@
+package com.ruixuan.salesLeads.mapper;
+
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyProductInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策的返点比例
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface SaleFinancePolicyRebateInfoMapper {
+
+    /**
+     * 新增政策的返点比例
+     * @param policyRebateInfoPojo
+     */
+    void addSaleFinancePolicyRebateInfo(SaleFinancePolicyRebateInfoPojo policyRebateInfoPojo);
+
+    /**
+     * 查询最新的返点比例
+     * @return
+     */
+    SaleFinancePolicyRebateInfoPojo selectFinacePolicyRebateInfo();
+
+}

+ 1 - 1
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallRecordPojo.java

@@ -31,7 +31,7 @@ public class SaleClueCallRecordPojo {
     private Long taskId;
 
     @ApiModelProperty("创建时间")
-    private String cteateTime;
+    private String createTime;
 
     @ApiModelProperty("创建人")
     private int createUserId;

+ 6 - 1
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallResultPojo.java

@@ -86,9 +86,14 @@ public class SaleClueCallResultPojo {
     @ApiModelProperty("客户关注点")
     private String focus;
 
-    @ApiModelProperty("对话内容")
+    @ApiModelProperty("对话内容-原数据")
     private String content;
 
+    @ApiModelProperty("机器人对话内容")
+    private List robotContent;
+    @ApiModelProperty("客户对话内容")
+    private List speakerContent;
+
     @ApiModelProperty("创建时间")
     private Date createTime;
 

+ 3 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueInfoPojo.java

@@ -68,6 +68,9 @@ public class SaleClueInfoPojo {
     @ApiModelProperty("是否分配销售 0-否 1-是'")
     private int distributionSaleFlag;
 
+    @ApiModelProperty("是否导入电话记录 0-否 1-是")
+    private int importPhoneFlag;
+
     @ApiModelProperty("销售人员id")
     private Long saleId;
     @ApiModelProperty("销售人员")

+ 44 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinanceCompanySubjectInfoPojo.java

@@ -0,0 +1,44 @@
+package com.ruixuan.salesLeads.pojo;
+
+import com.ruixuan.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 政策-公司主体表
+ * @author zian Y
+ * @date   2022-07-28
+ * @version V1.0
+ */
+@Data
+@ApiModel(value="saleFinanceCompanySubjectInfoPojo", description="政策-公司主体表")
+public class SaleFinanceCompanySubjectInfoPojo {
+
+	/**主键自增*/
+	@ApiModelProperty(value = "主键自增")
+	private Integer id;
+	/**公司id-区域*/
+	@ApiModelProperty(value = "公司id")
+	private String companyId;
+	/**公司主体名称*/
+	@ApiModelProperty(value = "公司主体名称")
+	private String companySubjectName;
+	/**区域*/
+	@ApiModelProperty(value = "区域")
+	private String areaInfo;
+	/**删除状态(0,正常,1已删除)*/
+	@ApiModelProperty(value = "删除状态(0,正常,1已删除)")
+	private Integer delFlag;
+	/**创建人id*/
+	@ApiModelProperty(value = "创建人id")
+	private String createUserId;
+	/**创建时间*/
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**更新时间*/
+	@ApiModelProperty(value = "更新时间")
+	private Date updateTime;
+}

+ 46 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyApprovalLogPojo.java

@@ -0,0 +1,46 @@
+package com.ruixuan.salesLeads.pojo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 政策审核日志
+ * @author zian Y
+ * @date   2022-07-28
+ * @version V1.0
+ */
+@Data
+@ApiModel(value="saleFinancePolicyApprovalLogPojo", description="政策审核日志")
+public class SaleFinancePolicyApprovalLogPojo {
+
+	private Integer id;
+    @ApiModelProperty(value = "政策id")
+	private Integer policyId;
+    @ApiModelProperty(value = "审核状态: 1-审核通过 2-审核拒绝 3-手动转审 4-自动转审")
+	private Integer approvalStatus;
+    @ApiModelProperty(value = "审核意见")
+	private String approvalContent;
+    @ApiModelProperty(value = "创建人id")
+	private Integer createUserId;
+    @ApiModelProperty(value = "创建时间")
+	private Date createTime;
+    @ApiModelProperty(value = "更新时间")
+	private Date updateTime;
+
+
+
+	public SaleFinancePolicyApprovalLogPojo() {
+	}
+
+
+	public SaleFinancePolicyApprovalLogPojo(Integer policyId, Integer approvalStatus, String approvalContent, Integer createUserId) {
+		this.policyId = policyId;
+		this.approvalStatus = approvalStatus;
+		this.approvalContent = approvalContent;
+		this.createUserId = createUserId;
+	}
+
+}

+ 107 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyInfoPojo.java

@@ -0,0 +1,107 @@
+package com.ruixuan.salesLeads.pojo;
+
+
+import com.ruixuan.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 财务政策信息表
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+
+@Data
+@ApiModel(value = "saleFinancePolicyInfoPojo", description = "财务政策信息表")
+public class SaleFinancePolicyInfoPojo {
+
+    public static final String POLICY_APPROVAL_USER = "123";
+
+
+
+
+    private int id;
+
+    @ApiModelProperty(value = "快手id")
+    private Long ksId;
+    /**公司名称*/
+    @ApiModelProperty(value = "公司名称")
+    private String companyName;
+    /**广告主id*/
+    @ApiModelProperty(value = "广告主名称")
+    private String advertiserName;
+
+    @ApiModelProperty(value = "产品名称")
+    private String productName;
+
+    @ApiModelProperty(value = "投放类型")
+    private String releaseType;
+
+    @ApiModelProperty(value = "我司主体")
+    private Integer companySubjectId;
+
+    /**运营方式: 0:自运营  1:代运营*/
+    @Excel(name = "运营方式: 0:自运营  1:代运营", width = 15)
+    @ApiModelProperty(value = "运营方式: 0:自运营  1:代运营")
+    private Integer promotionType;
+
+    /**是否预付:0:否  1:是*/
+    @ApiModelProperty(value = "是否预付:0:否  1:是 ")
+    private Integer advancePay;
+
+
+    /**返点类型:0:返现  1:返货   2:返现+返货*/
+    @ApiModelProperty(value = "返点类型:0:返现  1:返货   2:返现+返货")
+    private Integer rebateType;
+    /**返点比例*/
+    @ApiModelProperty(value = "返点比例")
+    private BigDecimal rebateRate;
+
+    /**账期*/
+    @Excel(name = "账期", width = 15)
+    @ApiModelProperty(value = "账期")
+    private String accountingPeriod;
+
+    @ApiModelProperty(value = "操盘结算类型:1:服务费   2:货品佣金")
+    private Integer operateSettlementType;
+    
+    @ApiModelProperty(value = "0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝")
+    private Integer approvedStatus;
+
+
+    @ApiModelProperty(value = "审核进度,当前该谁审核,审核人")
+    private String approvedProgress;
+
+
+    /**政策开始时间*/
+    @ApiModelProperty(value = "政策开始时间")
+    private String policyStartDate;
+    /**政策结束时间*/
+    @Excel(name = "政策结束时间", width = 15)
+    @ApiModelProperty(value = "政策结束时间")
+    private String policyEndDate;
+    /**备注:如果没人填的话记录被拒次数*/
+    @ApiModelProperty(value = "备注")
+    private Object remarks;
+
+    @ApiModelProperty(value = "销售id")
+    private int saleId;
+    @ApiModelProperty(value = "销售姓名")
+    private String saleName;
+
+
+    @ApiModelProperty(value = "删除状态(0,正常,1已删除)")
+    private Integer delFlag;
+    /**销售人员(信息创建人)*/
+    @ApiModelProperty(value = "创建人")
+    private String createUserId;
+    private Date createTime;
+
+}

+ 50 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyProductInfoPojo.java

@@ -0,0 +1,50 @@
+package com.ruixuan.salesLeads.pojo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 政策产品关系表
+ * @author zian Y
+ * @date   2022-07-28
+ * @version V1.0
+ */
+@Data
+@ApiModel(value="saleFinancePolicyProductInfoPojo", description="政策产品关系表")
+public class SaleFinancePolicyProductInfoPojo {
+    
+	/**主键id*/
+	private Integer id;
+	/**政策id*/
+    @ApiModelProperty(value = "政策id")
+	private Integer policyId;
+	/**产品名称*/
+    @ApiModelProperty(value = "产品名称")
+	private String policyProductName;
+	/**删除状态(0,正常,1已删除)*/
+    @ApiModelProperty(value = "删除状态(0,正常,1已删除)")
+	private Integer delFlag;
+	/**创建人id*/
+    @ApiModelProperty(value = "创建人id")
+	private String createUserId;
+	/**创建时间*/
+    @ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**更新时间*/
+    @ApiModelProperty(value = "更新时间")
+	private Date updateTime;
+
+	public SaleFinancePolicyProductInfoPojo() {
+	}
+
+	public SaleFinancePolicyProductInfoPojo(Integer policyId, String policyProductName, String createUserId) {
+		this.policyId = policyId;
+		this.policyProductName = policyProductName;
+		this.createUserId = createUserId;
+	}
+}

+ 33 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleFinancePolicyRebateInfoPojo.java

@@ -0,0 +1,33 @@
+package com.ruixuan.salesLeads.pojo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 政策-返点比例信息表(超过该季度返点比例则自动转审老板审批)
+ * @author zian Y
+ * @date   2022-07-28
+ * @version V1.0
+ */
+@Data
+@ApiModel(value="saleFinancePolicyRebateInfoPojo", description="政策-返点比例信息表")
+public class SaleFinancePolicyRebateInfoPojo {
+
+	private Integer id;
+    @ApiModelProperty(value = "日期")
+	private Date operationTime;
+    @ApiModelProperty(value = "季度")
+	private Integer quarter;
+    @ApiModelProperty(value = "返点比例")
+	private Double rebateRate;
+    @ApiModelProperty(value = "创建人id")
+	private String createUserId;
+    @ApiModelProperty(value = "创建时间")
+	private Date createTime;
+    @ApiModelProperty(value = "更新时间")
+	private Date updateTime;
+
+}

+ 86 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/AddSaleFinancePolicyInfoVo.java

@@ -0,0 +1,86 @@
+package com.ruixuan.salesLeads.pojo.vo;
+
+
+import com.ruixuan.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 财务政策信息表
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+
+@Data
+@ApiModel(value = "addSaleFinancePolicyInfoVo", description = "财务政策信息添加实体vo")
+public class AddSaleFinancePolicyInfoVo {
+
+    @ApiModelProperty(value = "快手id")
+    private Long ksId;
+
+    @ApiModelProperty(value = "产品名称")
+    private String productName;
+
+    @ApiModelProperty(value = "投放类型")
+    private String releaseType;
+
+    @ApiModelProperty(value = "我司主体id")
+    private Integer companySubjectId;
+
+    /**运营方式: 0:自运营  1:代运营*/
+    @ApiModelProperty(value = "运营方式: 0:自运营  1:代运营")
+    private Integer promotionType;
+
+    @ApiModelProperty(value = "是否预付:0:否  1:是 ")
+    private Integer advancePay;
+
+    /**返点类型:0:返现  1:返货   2:返现+返货*/
+    @ApiModelProperty(value = "返点类型:0:返现  1:返货   2:返现+返货")
+    private Integer rebateType;
+    /**返点比例*/
+    @ApiModelProperty(value = "返点比例")
+    private BigDecimal rebateRate;
+
+    /**账期*/
+    @ApiModelProperty(value = "账期")
+    private String accountingPeriod;
+
+    @ApiModelProperty(value = "操盘结算类型:1:服务费   2:货品佣金")
+    private Integer operateSettlementType;
+
+    @ApiModelProperty(value = "0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝")
+    private Integer approvedStatus;
+
+    @ApiModelProperty(value = "审核进度,当前该谁审核,审核人")
+    private String approvedProgress;
+
+    /**政策开始时间*/
+    @ApiModelProperty(value = "政策开始时间")
+    private String policyStartDate;
+    /**政策结束时间*/
+    @ApiModelProperty(value = "政策结束时间")
+    private String policyEndDate;
+    /**备注:如果没人填的话记录被拒次数*/
+    @Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private Object remarks;
+
+    @ApiModelProperty(value = "销售id")
+    private int saleId;
+
+    /**销售人员(信息创建人)*/
+    @ApiModelProperty(value = "创建人")
+    private String createUserId;
+
+
+
+
+
+}

+ 41 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/PolicyApprovalVo.java

@@ -0,0 +1,41 @@
+package com.ruixuan.salesLeads.pojo.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策审核
+ * @CreateDate: 2022-05-24
+ * ****************************************************
+ */
+
+
+@Data
+@ApiModel(value = "policyApprovalVo", description = "政策审核")
+public class PolicyApprovalVo {
+
+
+    @ApiModelProperty("政策id")
+    private Integer policyId;
+
+    @ApiModelProperty("审核状态: 1-审核通过 2-审核拒绝 3-手动转审 4-自动转审")
+    private Integer approvalStatus;
+
+    @ApiModelProperty("'审核意见'")
+    private String approvalContent;
+
+    @ApiModelProperty("创建人")
+    private Integer createUserId;
+
+    @ApiModelProperty("创建时间")
+    private String createTime;
+
+
+
+
+
+}

+ 59 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/SaleFinancePolicyInfoVo.java

@@ -0,0 +1,59 @@
+package com.ruixuan.salesLeads.pojo.vo;
+
+
+import com.ruixuan.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 财务政策信息表
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+
+@Data
+@ApiModel(value = "saleClueCallRecordPojo", description = "财务政策信息")
+public class SaleFinancePolicyInfoVo {
+
+    /**公司名称*/
+    @ApiModelProperty(value = "公司名称")
+    private String companyName;
+    /**广告主id*/
+    @ApiModelProperty(value = "广告主名称")
+    private String advertiserName;
+
+    @ApiModelProperty(value = "产品名称")
+    private String productName;
+
+    @ApiModelProperty(value = "投放类型1磁力金牛-投流、2 磁力金牛-操盘")
+    private String releaseType;
+
+    /**返点类型:0:返现  1:返货   2:返现+返货*/
+    @ApiModelProperty(value = "返点类型:0:返现  1:返货   2:返现+返货")
+    private Integer rebateType;
+
+    @ApiModelProperty(value = "销售姓名")
+    private String saleName;
+
+    @ApiModelProperty(value = "创建人id")
+    private String createUserId;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTimeStart;
+    @ApiModelProperty(value = "创建时间")
+    private String createTimeEnd;
+
+
+
+
+
+
+}

+ 2 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/vo/SaleRecordVo.java

@@ -63,6 +63,8 @@ public class SaleRecordVo {
 
     @ApiModelProperty("是否分配销售 0-否 1-是'")
     private int distributionSaleFlag;
+    @ApiModelProperty("导入电话记录 0-否 1-是")
+    private int importPhoneFlag;
 
     @ApiModelProperty("销售人员id")
     private Long saleId;

+ 37 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/ISaleFinacePolicyService.java

@@ -0,0 +1,37 @@
+package com.ruixuan.salesLeads.service;
+
+import com.ruixuan.common.core.domain.ResultResponse;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo;
+import com.ruixuan.salesLeads.pojo.vo.PolicyApprovalVo;
+import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface ISaleFinacePolicyService {
+
+
+    ResultResponse selectPolicyList(SaleFinancePolicyInfoVo saleFinancePolicyInfoVo);
+
+    ResultResponse selectPolicyInfoById(String policyId);
+
+    ResultResponse addSaleFinancePolicyInfo(SaleFinancePolicyInfoPojo policyInfoPojo);
+
+    ResultResponse addSaleFinancePolicyRebateInfo(SaleFinancePolicyRebateInfoPojo policyRebateInfoPojo);
+
+    ResultResponse selectFinacePolicyRebateInfo();
+
+    ResultResponse policyApproval(PolicyApprovalVo policyApprovalVo);
+
+    ResultResponse policyApprovalManual(PolicyApprovalVo policyApprovalVo);
+
+    ResultResponse selectPolicyCustomerList();
+
+    ResultResponse selectCompanySubjectInfoList();
+}

+ 22 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueCallRecordServiceImpl.java

@@ -1,12 +1,14 @@
 package com.ruixuan.salesLeads.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruixuan.common.core.domain.ResultResponse;
 import com.ruixuan.common.utils.PageUtils;
 import com.ruixuan.common.utils.StringUtils;
 import com.ruixuan.salesLeads.mapper.SaleClueCallRecordMapper;
 import com.ruixuan.salesLeads.mapper.SaleClueCallResultMapper;
+import com.ruixuan.salesLeads.mapper.SaleClueInfoMapper;
 import com.ruixuan.salesLeads.mapper.TestMapper;
 import com.ruixuan.salesLeads.pojo.SaleClueCallResultPojo;
 import com.ruixuan.salesLeads.pojo.TestPojo;
@@ -15,6 +17,7 @@ import com.ruixuan.salesLeads.service.ITestService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.List;
 
@@ -37,6 +40,8 @@ public class SaleClueCallRecordServiceImpl implements ISaleClueCallRecordService
     @Autowired
     private SaleClueCallResultMapper saleClueCallResultMapper;
 
+    @Autowired
+    private SaleClueInfoMapper saleClueInfoMapper;
 
     /**
      *
@@ -57,6 +62,23 @@ public class SaleClueCallRecordServiceImpl implements ISaleClueCallRecordService
             log.info("callBackUrl-----type----{}----->>>{}","importPhone",json);
             //保存 导入号码的 回调信息
             saleClueCallRecordMapper.addSaleCallRecord(json.toJSONString());
+
+            JSONArray array = json.getJSONArray("error");
+            if (!array.isEmpty()){
+                log.info("销售线索导入失败------》》》》{}",array);
+            }
+
+            JSONArray success = json.getJSONArray("success");
+            if (!success.isEmpty()){
+                for (Object obj : success) {
+                    JSONObject jsonObject = (JSONObject) JSONObject.toJSON(obj);
+                    //修改线索的导入记录状态
+                    saleClueInfoMapper.updateSaleClueImportPhoneFlag(Long.valueOf(jsonObject.getString("id")),1);
+                    log.info("销售线索导入成功,修改线索导入状态------线索id》》》》{}",jsonObject.getString("id"));
+                }
+            }
+
+
             return ResultResponse.successMsg("callBackUrl--->>>导入号码回调信息成功",json);
         }
         log.info("callBackUrl-----type----{}----->>>{}","phoneResult",json);

+ 8 - 5
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueInfoServiceImpl.java

@@ -158,7 +158,7 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
                 continue;
             }
 
-
+            //log.info("datamap----{}",dataMap);
             SaleClueInfoPojo clue = new SaleClueInfoPojo();
             SaleQuotaInfoPojo quota = new SaleQuotaInfoPojo();
 
@@ -325,7 +325,7 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
      *
      * @description: 销售线索-分配
      *
-     * @param sellerIds 卖家ids
+     * @param sellerIds 销售线索ids
      * @param saleId 销售id
      * @param createUserId
      * @return: com.ruixuan.common.core.domain.ResultResponse
@@ -335,12 +335,15 @@ public class SaleClueInfoServiceImpl implements ISaleClueInfoService {
     public ResultResponse saleClueDistribution(List<String> sellerIds, Long saleId,Long createUserId){
 
          sellerIds.forEach(sellerId -> {
+             //销售线索id查询
+             SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoById(Integer.valueOf(sellerId));
+
              //修改销售线索 销售
-             saleClueInfoMapper.updateSaleClueSale(Long.valueOf(sellerId),saleId,1);
+             saleClueInfoMapper.updateSaleClueSale(saleInfo.getSellerId(),saleId,1);
              // 修改线索 状态
-             saleClueInfoMapper.updateSaleClueState(Long.valueOf(sellerId),2);
+             saleClueInfoMapper.updateSaleClueState(saleInfo.getSellerId(),2);
              //添加 分配记录
-             saleClueDistributionInfoMapper.insertSaleClueDistribution(new SaleClueDistributionInfoPojo(Long.valueOf(sellerId),saleId,createUserId));
+             saleClueDistributionInfoMapper.insertSaleClueDistribution(new SaleClueDistributionInfoPojo(saleInfo.getSellerId(),saleId,createUserId));
          });
 
         return ResultResponse.successMsg("分配销售成功。",null);

+ 336 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleFinacePolicyServiceImpl.java

@@ -0,0 +1,336 @@
+package com.ruixuan.salesLeads.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.common.core.domain.ResultResponse;
+import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.utils.Check;
+import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.common.utils.PageUtils;
+import com.ruixuan.salesLeads.mapper.SaleFinancePolicyApprovalLogMapper;
+import com.ruixuan.salesLeads.mapper.SaleFinancePolicyInfoMapper;
+import com.ruixuan.salesLeads.mapper.SaleFinancePolicyProductInfoMapper;
+import com.ruixuan.salesLeads.mapper.SaleFinancePolicyRebateInfoMapper;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyApprovalLogPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyProductInfoPojo;
+import com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo;
+import com.ruixuan.salesLeads.pojo.vo.PolicyApprovalVo;
+import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
+import com.ruixuan.salesLeads.service.ISaleFinacePolicyService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: 政策
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+@Slf4j
+@Service
+public class SaleFinacePolicyServiceImpl implements ISaleFinacePolicyService {
+
+
+    @Autowired
+    private SaleFinancePolicyInfoMapper saleFinancePolicyInfoMapper;
+
+    @Autowired
+    private SaleFinancePolicyProductInfoMapper saleFinancePolicyProductInfoMapper;
+
+    @Autowired
+    private SaleFinancePolicyRebateInfoMapper saleFinancePolicyRebateInfoMapper;
+
+    @Autowired
+    private SaleFinancePolicyApprovalLogMapper saleFinancePolicyApprovalLogMapper;
+
+
+
+    /**
+     *
+     * @description: 政策列表查询
+     *
+     * @param saleFinancePolicyInfoVo
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse selectPolicyList(SaleFinancePolicyInfoVo saleFinancePolicyInfoVo) {
+        PageUtils.startPage();
+        List<SaleFinancePolicyInfoPojo> list = saleFinancePolicyInfoMapper.selectPolicyList(saleFinancePolicyInfoVo);
+        return ResultResponse.successMsg("政策信息查询成功",new TableDataInfo(list,list.size()));
+    }
+
+
+    /**
+     *
+     * @description: 政策详情查询
+     *
+     * @param policyId 政策id
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse selectPolicyInfoById(String policyId) {
+        return ResultResponse.successMsg("政策详情查询成功", saleFinancePolicyInfoMapper.selectPolicyInfoById(policyId));
+    }
+
+
+
+    /**
+     *
+     * @description: 政策新增
+     *
+     * @param policyInfoPojo
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse addSaleFinancePolicyInfo(SaleFinancePolicyInfoPojo policyInfoPojo) {
+        //0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝
+        policyInfoPojo.setApprovedStatus(1);
+
+        //审核人
+        String approvaluUser;
+        //查询所有审核人
+        List<JSONObject> approvalUserList = saleFinancePolicyInfoMapper.selectPolicyApprovalUser();
+        //是否预付  0:否  1:是
+        /**
+         * 是否预付 0-否 需要法务(1级审核人)进行审核
+         * 1-是 直接跨过法务 由上级(2级审核人)进行审核
+         */
+        if (StringUtils.equals(policyInfoPojo.getAdvancePay()+"","0")){
+            approvaluUser = approvalUserList.get(0).getString("approval_user_id");
+        }else {
+            approvaluUser = approvalUserList.get(1).getString("approval_user_id");
+        }
+
+        //添加审核人
+        policyInfoPojo.setApprovedProgress(approvaluUser);
+        //保存政策
+        saleFinancePolicyInfoMapper.addSaleFinancePolicyInfo(policyInfoPojo);
+
+        //添加产品
+        SaleFinancePolicyProductInfoPojo productInfoPojo = new SaleFinancePolicyProductInfoPojo(policyInfoPojo.getId(),
+                policyInfoPojo.getProductName(),
+                policyInfoPojo.getCreateUserId());
+        saleFinancePolicyProductInfoMapper.addSaleFinancePolicyProductInfo(productInfoPojo);
+
+        return ResultResponse.successMsg("政策添加成功",null);
+    }
+
+
+
+    /**
+     *
+     * @description: 政策返点比例查询
+     *
+     * @param
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse selectFinacePolicyRebateInfo() {
+        SaleFinancePolicyRebateInfoPojo rebateInfoPojo = new SaleFinancePolicyRebateInfoPojo();
+        rebateInfoPojo = saleFinancePolicyRebateInfoMapper.selectFinacePolicyRebateInfo();
+        if (Check.isNull(rebateInfoPojo)){
+            rebateInfoPojo.setOperationTime(new Date());
+            rebateInfoPojo.setQuarter(DateUtils.getQuarter(new Date()));
+            rebateInfoPojo.setRebateRate(0.00);
+        }
+        return ResultResponse.successMsg("政策返点比例查询成功",rebateInfoPojo);
+    }
+
+
+    /**
+     *
+     * @description: 新增政策的返点比例
+     *
+     * @param policyRebateInfoPojo
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse addSaleFinancePolicyRebateInfo(SaleFinancePolicyRebateInfoPojo policyRebateInfoPojo) {
+        saleFinancePolicyRebateInfoMapper.addSaleFinancePolicyRebateInfo(policyRebateInfoPojo);
+        return ResultResponse.successMsg("政策返点比例添加成功",null);
+    }
+
+    /**
+     *
+     * @description: 政策审核
+     *
+     * @param policyApprovalVo
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse policyApproval(PolicyApprovalVo policyApprovalVo){
+
+        /**
+         * 审核人是否是终审 -- 老板 是:直接通过或拒绝  否:走审核流程
+         * 审核是否通过  1-通过 2-拒绝
+         * 政策状态 0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝
+         * 通过 - 是否有下一个审核人               无  则 符合条件的转审老板                                    或 结束
+         *                               转审条件:1:账期不为0  2:类型为 预付 且 返点大于设定的值
+         * 拒绝 -  流程返回创建人
+         *
+         */
+
+        // 审核人是终审 -- 老板
+        if (StringUtils.equals(policyApprovalVo.getCreateUserId()+"",SaleFinancePolicyInfoPojo.POLICY_APPROVAL_USER)){
+            log.info("---当前审核人是老板---");
+            //通过
+            if (policyApprovalVo.getApprovalStatus() == 1){
+                //政策修改下一步审核人和 政策状态 0:草稿 1:待审核 2:审核中 3:审核通过 4:审核拒绝
+                saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),policyApprovalVo.getCreateUserId()+"",3);
+                log.info("老板审核---通过---政策id-{}-------政策状态---{}",policyApprovalVo.getPolicyId(),3);
+            }
+            //拒绝
+             if (policyApprovalVo.getApprovalStatus() == 2){
+                 //查询所有审核人
+                 List<JSONObject> approvalUserList = saleFinancePolicyInfoMapper.selectPolicyApprovalUser();
+                 //下一步审核人
+                 String nextApprovalUser = approvalUserList.get(1).getString("approval_user_id");
+                 //政策修改下一步审核人和状态
+                 saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),nextApprovalUser,4);
+                 log.info("老板审核---拒绝---政策id-{}-------政策状态---{}---下一步审核人-----{}",policyApprovalVo.getPolicyId(),4,nextApprovalUser);
+            }
+            //保存审核意见
+            SaleFinancePolicyApprovalLogPojo approvalLogPojo = new SaleFinancePolicyApprovalLogPojo(
+                    policyApprovalVo.getPolicyId(),
+                    policyApprovalVo.getApprovalStatus(),
+                    policyApprovalVo.getApprovalContent(),
+                    policyApprovalVo.getCreateUserId()
+            );
+            saleFinancePolicyApprovalLogMapper.addSaleFinancePolicyApprovalLog(approvalLogPojo);
+            log.info("老板审核保存意见------->>>",approvalLogPojo);
+            return ResultResponse.successMsg("终审成功。", null);
+        }
+
+
+        if (policyApprovalVo.getApprovalStatus() == 1){
+            log.info("审核---通过---政策id-{}----审核人-{}---",policyApprovalVo.getPolicyId(),policyApprovalVo.getCreateUserId());
+            //通过当前审核人 查询 下一级审核人信息
+            JSONObject nextApprovalUser = saleFinancePolicyInfoMapper.selectNextApprovalUser(policyApprovalVo.getCreateUserId()+"");
+            if (Check.isNull(nextApprovalUser)){
+                //符合条件则自动转审 否-结束政策
+                //政策详情
+                SaleFinancePolicyInfoPojo policyInfoPojo = saleFinancePolicyInfoMapper.selectPolicyInfoById(String.valueOf(policyApprovalVo.getPolicyId()));
+                //返点比例
+                SaleFinancePolicyRebateInfoPojo rebateInfoPojo = saleFinancePolicyRebateInfoMapper.selectFinacePolicyRebateInfo();
+                // 账期 > 0 ||  (预付 && 政策返点比例 > 配置的返点比例)
+                if(Integer.valueOf(policyInfoPojo.getAccountingPeriod()) > 0
+                        || (policyInfoPojo.getAdvancePay() == 1 && Check.isNotNull(rebateInfoPojo) && policyInfoPojo.getRebateRate().doubleValue() > rebateInfoPojo.getRebateRate())){
+                    //自动转审
+                    //政策修改下一步审核人和状态
+                    //政策状态 0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝
+                    saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),SaleFinancePolicyInfoPojo.POLICY_APPROVAL_USER,2);
+                    log.info("审核---通过---政策id-{}------自动转审给了老板---账期:{}--预付:{}----政策返点比例:{}---配置的最新比例:{}", policyApprovalVo.getPolicyId(),policyInfoPojo.getAccountingPeriod(),policyInfoPojo.getAdvancePay(),policyInfoPojo.getRebateRate(),rebateInfoPojo.getRebateRate());
+                    //保存审核意见
+                    SaleFinancePolicyApprovalLogPojo approvalLogPojo = new SaleFinancePolicyApprovalLogPojo(
+                            policyApprovalVo.getPolicyId(),
+                            4,
+                            policyApprovalVo.getApprovalContent(),
+                            policyApprovalVo.getCreateUserId()
+                    );
+                    saleFinancePolicyApprovalLogMapper.addSaleFinancePolicyApprovalLog(approvalLogPojo);
+                    log.info("保存意见------政策自动转审->>>",approvalLogPojo);
+                    return ResultResponse.successMsg("政策审核成功-自动转审。",null);
+                }else {
+                    saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),policyApprovalVo.getCreateUserId()+"",3);
+                    log.info("审核---通过---政策id-{}----政策状态-{}---审核结束---",policyApprovalVo.getPolicyId(),3);
+                }
+            }else {
+                //政策修改下一步审核人和状态
+                saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),nextApprovalUser.getString("approval_user_id"),2);
+                log.info("审核---通过---政策id-{}----政策状态-{}---设置下一步审核人---{}---",policyApprovalVo.getPolicyId(),2,nextApprovalUser);
+            }
+
+        }
+
+
+        //拒绝
+        if (policyApprovalVo.getApprovalStatus() == 2){
+            //查询所有审核人
+            List<JSONObject> approvalUserList = saleFinancePolicyInfoMapper.selectPolicyApprovalUser();
+            //下一步审核人
+            String nextApprovalUser = approvalUserList.get(1).getString("approval_user_id");
+            //政策修改下一步审核人和状态
+            saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),nextApprovalUser,4);
+            log.info("审核---拒绝---政策id-{}----政策状态-{}---设置下一步审核人---{}---",policyApprovalVo.getPolicyId(),4,nextApprovalUser);
+            return ResultResponse.successMsg("政策审核拒绝。",null);
+        }
+
+        //保存审核意见
+        SaleFinancePolicyApprovalLogPojo approvalLogPojo = new SaleFinancePolicyApprovalLogPojo(
+                policyApprovalVo.getPolicyId(),
+                policyApprovalVo.getApprovalStatus(),
+                policyApprovalVo.getApprovalContent(),
+                policyApprovalVo.getCreateUserId()
+        );
+        saleFinancePolicyApprovalLogMapper.addSaleFinancePolicyApprovalLog(approvalLogPojo);
+        log.info("保存意见------->>>",approvalLogPojo);
+        return ResultResponse.successMsg("政策审核成功。",null);
+    }
+
+    /**
+     *
+     * @description: 手动转审
+     *
+     * @param policyApprovalVo
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse policyApprovalManual(PolicyApprovalVo policyApprovalVo) {
+        //政策修改下一步审核人和状态
+        //政策状态 0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝
+        saleFinancePolicyInfoMapper.updatePolicyStatus(policyApprovalVo.getPolicyId(),SaleFinancePolicyInfoPojo.POLICY_APPROVAL_USER,2);
+        log.info("政策手动转审---政策id-{}------手动转审给了老板---", policyApprovalVo.getPolicyId());
+        //保存审核意见
+        SaleFinancePolicyApprovalLogPojo approvalLogPojo = new SaleFinancePolicyApprovalLogPojo(
+                policyApprovalVo.getPolicyId(),
+                policyApprovalVo.getApprovalStatus(),
+                policyApprovalVo.getApprovalContent(),
+                policyApprovalVo.getCreateUserId()
+        );
+        saleFinancePolicyApprovalLogMapper.addSaleFinancePolicyApprovalLog(approvalLogPojo);
+        return ResultResponse.successMsg("政策手动转审成功。",null);
+    }
+
+    /**
+     *
+     * @description:查询快手账户以及公司和资质
+     *
+     * @param
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse selectPolicyCustomerList() {
+        return ResultResponse.successMsg("查询所有客户广告主名称成功。",saleFinancePolicyInfoMapper.selectPolicyCustomerList());
+    }
+
+    /**
+     *
+     * @description:查询公司主体列表
+     *
+     * @param
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse selectCompanySubjectInfoList() {
+        return ResultResponse.successMsg("查询公司主体列表成功。",saleFinancePolicyInfoMapper.selectCompanySubjectInfoList());
+    }
+
+
+}

+ 29 - 5
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/TelephoneRobotServiceImpl.java

@@ -32,10 +32,13 @@ import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * ***************************************************
@@ -102,7 +105,7 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
 
     /**
      *
-     * @description: 外呼机器人-导入号码
+     * @description: 外呼机器人-导入号码-master
      *
      * @param sellerIds
      * @param userId
@@ -110,6 +113,7 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
      * @author: zianY
      */
     @Override
+    @Transactional
     public ResultResponse importRobotTelephone(List<Long> sellerIds,String userId) throws Exception{
         Map<String,String> headers = new HashMap<>();
         Map<String,Object> result = new HashMap<>();
@@ -125,14 +129,25 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
             //SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoBySellerId(sellerId);
             //销售线索id查询
             SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoById(sellerId.intValue());
+            if (saleInfo == null){
+                //TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                log.info("销售线索查询为空或已导入过联系方式---》》》线索id---{}",sellerId);
+                continue;
+            }
             Map<String,Object> param = new HashMap<>();
             param.put("id",saleInfo.getId());
             param.put("name",saleInfo.getSellerId());
             param.put("companyName",saleInfo.getSellerName());
-            param.put("phone","17778037644");
+            param.put("phone",saleInfo.getTelephone());
             param.put("website","");
+
             customerList.add(param);
         }
+
+        if (customerList.isEmpty()){
+            return ResultResponse.error("销售线索查询为空或已导入。");
+        }
+
         result.put("customerList",customerList);
         //headers.put("Auth-Token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndW95YW5saW5nIiwiZXhwIjoxNjU4MTMyMjEyfQ.OyhpastRRzBxAlSc8JOfdxO3rK3NG592U3Qlh752xDQ");
         JSONObject tokenObj = redisCache.getCacheObject("salesLeads:robotToken:str");
@@ -149,13 +164,14 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         JSONObject jsonObject = JSONObject.parseObject(content);
         if (!"0".equals(jsonObject.getString("code"))){
             log.info("导入数据接口异常======>>>>>{}"+jsonObject);
-            return ResultResponse.error("第三方接口异常,请稍候再试");
+            return ResultResponse.error("访问过于频繁,请稍后再试。");
         }
 
         Thread.sleep(500);
         //更新最新的记录 用户信息
         //1分钟只能调取导入接口一次 所以可以保证最新的记录就是刚通过回调接口回来的数据信息
         saleClueCallRecordMapper.updateCallRecordUser(userId,flowCode);
+
         log.info("------更新操作用户-------");
         //查询 最新的记录
         SaleClueCallRecordPojo recordPojo = saleClueCallRecordMapper.selectCallRecordInfo();
@@ -192,7 +208,7 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
             recordPojo.setSuccessList(recordJson.getJSONArray("success"));
             recordPojo.setErrorList(recordJson.getJSONArray("error"));
         }
-        return ResultResponse.successMsg("查询导入记录成功。",callRecordList);
+        return ResultResponse.successMsg("查询导入记录成功。",new TableDataInfo(callRecordList,new Long(new PageInfo(callRecordList).getTotal()).intValue()));
     }
 
     /**
@@ -211,7 +227,15 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         //查询导入记录
         List<SaleClueCallResultPojo> callResultList = saleClueCallResultMapper.getSaleClueCallResultList(createTime,state);
 
-        return ResultResponse.successMsg("查询通话记录成功。",callResultList);
+        for (SaleClueCallResultPojo resultPojo : callResultList) {
+            List<Map> contentList = JSONObject.parseArray(resultPojo.getContent(),Map.class);
+            Map<String,List<Map>> map = contentList.stream().collect(Collectors.groupingBy(m -> m.get("speaker").toString()));
+            resultPojo.setSpeakerContent(map == null ? null : map.get("Contact"));
+            resultPojo.setRobotContent(map == null ? null : map.get("Robot"));
+        }
+
+
+        return ResultResponse.successMsg("查询通话记录成功。",new TableDataInfo(callResultList,new Long(new PageInfo(callResultList).getTotal()).intValue()));
     }
 
 

+ 19 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueInfoMapper.xml

@@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		transition_flag,
 		upload_date,
 		distribution_sale_flag,
+		import_phone_flag,
 		sale_id,
 		`state`,
 		offline_sale_flag,
@@ -39,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			#{info.transitionFlag},
 			#{info.uploadDate},
 			#{info.distributionSaleFlag},
+			#{info.importPhoneFlag},
 			#{info.saleId},
 			#{info.state},
 			#{info.offlineSaleFlag},
@@ -68,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			s.transition_flag,
 			s.upload_date,
 			s.distribution_sale_flag,
+			s.import_phone_flag,
 			s.sale_id,
 			(SELECT u.nick_name FROM sys_user u WHERE u.user_id = s.sale_id ) saleName,
 			s.state,
@@ -134,6 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			s.transition_flag,
 			s.upload_date,
 			s.distribution_sale_flag,
+			s.import_phone_flag,
 			s.sale_id,
 			(SELECT u.nick_name FROM sys_user u WHERE u.user_id = s.sale_id ) saleName,
 			s.state,
@@ -172,6 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			s.transition_flag,
 			s.upload_date,
 			s.distribution_sale_flag,
+			s.import_phone_flag,
 			s.sale_id,
 			s.state,
 			s.offline_sale_flag,
@@ -200,6 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			sale_id = #{saleId}
 			WHERE
 				seller_id = #{sellerId}
+			  and sale_id != null
 	</update>
 
 
@@ -248,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		s.transition_flag,
 		s.upload_date,
 		s.distribution_sale_flag,
+		s.import_phone_flag,
 		s.sale_id,
 		(SELECT u.nick_name FROM sys_user u WHERE u.user_id = s.sale_id ) saleName,
 		s.state,
@@ -292,6 +299,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		s.transition_flag,
 		s.upload_date,
 		s.distribution_sale_flag,
+		s.import_phone_flag,
 		s.sale_id,
 		(SELECT u.nick_name FROM sys_user u WHERE u.user_id = s.sale_id ) saleName,
 		s.state,
@@ -307,6 +315,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		sale_clue_info s
 		LEFT JOIN sale_quota_info q on s.seller_id = q.seller_id
 		where s.id = #{id}
+		and s.import_phone_flag = 0
 		ORDER BY q.create_time DESC
 		limit 1
 	</select>
@@ -324,6 +333,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</update>
 
 
+	<!--  修改销售线索 导入电话记录的状态 -->
+	<update id="updateSaleClueImportPhoneFlag">
+		UPDATE sale_clue_info
+		SET
+			import_phone_flag = #{importPhoneFlag}
+		WHERE
+			id = #{id}
+	</update>
+
+
 
 
 

+ 43 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyApprovalLogMapper.xml

@@ -0,0 +1,43 @@
+<?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.ruixuan.salesLeads.mapper.SaleFinancePolicyApprovalLogMapper">
+
+
+<!-- 新增政策的审核意见-->
+	<insert id="addSaleFinancePolicyApprovalLog">
+		insert into sale_finance_policy_approval_log(
+			policy_id,
+			approval_status,
+			approval_content,
+			create_user_id,
+			create_time
+			)
+		values
+		(
+			#{policyId},
+			#{approvalStatus},
+			#{approvalContent},
+			#{createUserId},
+			NOW()
+		)
+	</insert>
+
+<!-- 查询最新的返点比例 -->
+	<select id="selectFinacePolicyRebateInfo" resultType="com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo">
+		SELECT
+			*
+		FROM
+			`sale_finace_policy_rebate_info`
+		ORDER BY
+			create_time DESC
+			LIMIT 1
+
+	</select>
+
+
+
+
+
+</mapper> 

+ 266 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyInfoMapper.xml

@@ -0,0 +1,266 @@
+<?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.ruixuan.salesLeads.mapper.SaleFinancePolicyInfoMapper">
+
+
+	<!-- 查看政策列表 -->
+	<select id="selectPolicyList" resultType="com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo">
+		SELECT
+			s.id,
+			s.ks_id,
+			c.customer_name 'companyName',
+			i.main_body_name 'advertiserName',
+			s.release_type,
+			s.company_subject_id,
+			s.promotion_type,
+			s.advance_pay,
+			s.operate_settlement_type,
+			s.approved_status,
+			s.approved_progress,
+			s.rebate_type,
+			s.rebate_rate,
+			s.accounting_period,
+			s.policy_start_date,
+			s.policy_end_date,
+			s.remarks,
+			s.sale_id,
+			u.nick_name 'saleName',
+			s.del_flag,
+			s.create_user_id,
+			s.create_time,
+			s.update_time,
+			p.policy_product_name 'productName'
+		FROM
+			sale_finance_policy_info s
+				LEFT JOIN sale_finance_policy_product_info p ON s.id = p.policy_id
+				LEFT JOIN kuaishou_live_customer c ON s.ks_id = c.ks_id
+				LEFT JOIN kuaishou_live_customer_invoice i ON i.ks_id = c.ks_id
+				LEFT JOIN sys_user u on u.user_id = s.sale_id
+		WHERE
+			s.del_flag = 0
+		  AND p.del_flag = 0
+		<if test="companyName != null and companyName != ''">
+			AND c.customer_name like concat(concat('%',#{companyName}),'%')
+		</if>
+
+		<if test="advertiserName != null and advertiserName != ''">
+			AND i.main_body_name like concat(concat('%',#{advertiserName}),'%')
+		</if>
+
+		<if test="productName != null and productName != ''">
+			AND p.policy_product_name like concat(concat('%',#{productName}),'%')
+		</if>
+
+		<if test="releaseType != null and releaseType != ''">
+			AND  s.release_type = #{releaseType}
+		</if>
+
+		<if test="rebateType != null">
+			AND s.rebate_type = #{rebateType}
+		</if>
+
+		<if test="saleName != null and saleName != ''">
+			AND u.nick_name like concat(concat('%',#{saleName}),'%')
+		</if>
+
+		<if test="createUserId != null and createUserId != ''">
+			AND (s.sale_id = #{createUserId} or s.approved_progress = #{createUserId})
+		</if>
+
+		<if test="createTimeStart != null and createTimeStart != ''">
+			AND s.create_time  &gt;= #{createTimeStart}
+		</if>
+		<if test="createTimeEnd != null and createTimeEnd != ''">
+			AND s.create_time  &lt;= #{createTimeEnd}
+		</if>
+		order by s.create_time DESC
+
+	</select>
+
+
+	<!-- 查看政策详情 -->
+	<select id="selectPolicyInfoById" resultType="com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo">
+		SELECT
+			s.id,
+			s.ks_id,
+			c.customer_name 'companyName',
+			i.main_body_name 'advertiserName',
+			s.release_type,
+			s.company_subject_id,
+			s.promotion_type,
+			s.advance_pay,
+			s.operate_settlement_type,
+			s.approved_status,
+			s.approved_progress,
+			s.rebate_type,
+			s.rebate_rate,
+			s.accounting_period,
+			s.policy_start_date,
+			s.policy_end_date,
+			s.remarks,
+			s.sale_id,
+			u.nick_name 'saleName',
+			s.del_flag,
+			s.create_user_id,
+			s.create_time,
+			s.update_time,
+			p.policy_product_name 'productName'
+		FROM
+			sale_finance_policy_info s
+				LEFT JOIN sale_finance_policy_product_info p ON s.id = p.policy_id
+				LEFT JOIN kuaishou_live_customer c ON s.ks_id = c.ks_id
+				LEFT JOIN kuaishou_live_customer_invoice i ON i.ks_id = c.ks_id
+				LEFT JOIN sys_user u on u.user_id = s.sale_id
+		WHERE
+			s.del_flag = 0
+		  AND p.del_flag = 0
+		  AND s.id = #{policyId}
+			limit 1
+	</select>
+
+<!-- 新增政策-->
+	<insert id="addSaleFinancePolicyInfo" parameterType="com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo"
+			useGeneratedKeys="true"
+			keyColumn="id"
+			keyProperty="id">
+		insert into sale_finance_policy_info(
+			ks_id,
+			release_type,
+			company_subject_id,
+			promotion_type,
+			advance_pay,
+			operate_settlement_type,
+			approved_status,
+			approved_progress,
+			rebate_type,
+			rebate_rate,
+			accounting_period,
+			policy_start_date,
+			policy_end_date,
+			remarks,
+			sale_id,
+			del_flag,
+			create_user_id,
+			create_time,
+			update_time
+			)
+		values
+		(
+			#{ksId},
+			#{releaseType},
+			#{companySubjectId},
+			#{promotionType},
+			#{advancePay},
+			#{operateSettlementType},
+			#{approvedStatus},
+			#{approvedProgress},
+			#{rebateType},
+			#{rebateRate},
+			#{accountingPeriod},
+			#{policyStartDate},
+			#{policyEndDate},
+			#{remarks},
+			#{saleId},
+			0,
+			#{createUserId},
+			NOW(),
+			NOW()
+		)
+	</insert>
+
+
+	<!-- 查询 政策审核人信息 -->
+	<select id="selectPolicyApprovalUser" resultType="com.alibaba.fastjson.JSONObject">
+		SELECT
+			*
+		FROM
+			`sale_finance_policy_approval_user_info`
+		WHERE
+			del_flag = 0
+		ORDER BY
+			`level`
+
+	</select>
+
+
+
+	<!-- 通过用户查询 政策审核人信息  -->
+	<select id="selectPolicyApprovalUserByUserId" resultType="com.alibaba.fastjson.JSONObject">
+		SELECT
+			*
+		FROM
+			`sale_finance_policy_approval_user_info`
+		WHERE
+			del_flag = 0
+		and approval_user_id = #{approvalUserId}
+		limit 1
+
+	</select>
+
+	<!-- 通过当前审核人的级别查询 政策下一级审核人信息  -->
+	<select id="selectNextApprovalUser" resultType="com.alibaba.fastjson.JSONObject">
+		SELECT
+			*
+		FROM
+			`sale_finance_policy_approval_user_info`
+		WHERE
+			del_flag = 0
+		  AND `level` > (
+			SELECT
+				`level`
+			FROM
+				`sale_finance_policy_approval_user_info`
+			WHERE
+				del_flag = 0
+			  AND approval_user_id = #{approvalUserId}
+			LIMIT 1)
+			limit 1
+
+
+
+	</select>
+
+
+
+	<!-- 修改政策审核状态 -->
+	<update id="updatePolicyStatus">
+		UPDATE `ruixuan`.`sale_finance_policy_info`
+		SET approved_status = #{approvedStatus},
+			approved_progress = #{approvedProgress},
+			update_time = NOW()
+		WHERE
+			id = #{policyId};
+	</update>
+
+
+
+
+	<!-- 查询快手账户以及公司和资质  -->
+	<select id="selectPolicyCustomerList" resultType="com.alibaba.fastjson.JSONObject">
+		SELECT
+			c.ks_id 'ksId',
+			c.customer_name 'companyName',
+			i.main_body_name 'advertiserName'
+		FROM
+			kuaishou_live_customer c
+				RIGHT JOIN kuaishou_live_customer_invoice i ON c.ks_id = i.ks_id
+
+	</select>
+
+	<!-- 查询公司主体列表 -->
+	<select id="selectCompanySubjectInfoList" resultType="com.ruixuan.salesLeads.pojo.SaleFinanceCompanySubjectInfoPojo">
+		SELECT
+			*
+		FROM
+			`sale_finance_company_subject_info`
+		WHERE
+			del_flag = 0
+	</select>
+
+
+
+
+
+</mapper> 

+ 31 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyProductInfoMapper.xml

@@ -0,0 +1,31 @@
+<?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.ruixuan.salesLeads.mapper.SaleFinancePolicyProductInfoMapper">
+
+
+<!-- 新增政策的产品-->
+	<insert id="addSaleFinancePolicyProductInfo">
+		insert into sale_finance_policy_product_info(
+			policy_id,
+			policy_product_name,
+			del_flag,
+			create_user_id,
+			create_time
+			)
+		values
+		(
+			#{policyId},
+			#{policyProductName},
+			0,
+			#{createUserId},
+			NOW()
+		)
+	</insert>
+
+
+
+
+
+</mapper> 

+ 43 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleFinancePolicyRebateInfoMapper.xml

@@ -0,0 +1,43 @@
+<?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.ruixuan.salesLeads.mapper.SaleFinancePolicyRebateInfoMapper">
+
+
+<!-- 新增政策的返点比例-->
+	<insert id="addSaleFinancePolicyRebateInfo">
+		insert into sale_finance_policy_rebate_info(
+			operation_time,
+			quarter,
+			rebate_rate,
+			create_user_id,
+			create_time
+			)
+		values
+		(
+			#{operationTime},
+			#{quarter},
+			#{rebateRate},
+			#{createUserId},
+			NOW()
+		)
+	</insert>
+
+<!-- 查询最新的返点比例 -->
+	<select id="selectFinacePolicyRebateInfo" resultType="com.ruixuan.salesLeads.pojo.SaleFinancePolicyRebateInfoPojo">
+		SELECT
+			*
+		FROM
+			`sale_finance_policy_rebate_info`
+		ORDER BY
+			create_time DESC
+			LIMIT 1
+
+	</select>
+
+
+
+
+
+</mapper>