8 İşlemeler 321796f4b7 ... 2194073d7c

Yazar SHA1 Mesaj Tarih
  zhijiezhao 2194073d7c 服务商任务bugfix 3 hafta önce
  zhijiezhao d0dbc5668a 服务商任务 3 hafta önce
  zhijiezhao a74194352a 协销服务商合并 3 hafta önce
  zhijiezhao 4ad378fcf5 协销服务商合并 3 hafta önce
  zhijiezhao 350dc5ff9e 协销服务商合并报错解决 1 ay önce
  zhijiezhao 399d3f3ddf 协销服务商合并报错解决 1 ay önce
  zhijiezhao 56a5779583 协销服务商合并报错解决 1 ay önce
  zhijiezhao 0b3787004c 协销小组迁移 1 ay önce
32 değiştirilmiş dosya ile 1406 ekleme ve 523 silme
  1. 1 3
      src/main/java/com/caimei365/manager/controller/caimei/keyword/KeyWordApi.java
  2. 0 16
      src/main/java/com/caimei365/manager/controller/caimei/productArchive/ProductArchiveController.java
  3. 250 68
      src/main/java/com/caimei365/manager/controller/caimei/providers/ProvidersApi.java
  4. 1 4
      src/main/java/com/caimei365/manager/dao/CmRelatedImageMapper.java
  5. 1 2
      src/main/java/com/caimei365/manager/dao/KeyWordDao.java
  6. 1 2
      src/main/java/com/caimei365/manager/dao/providers/CmProvidersContractMapper.java
  7. 54 24
      src/main/java/com/caimei365/manager/dao/providers/CmProvidersMapper.java
  8. 1 0
      src/main/java/com/caimei365/manager/dao/user/CmClubRemarksDao.java
  9. 3 0
      src/main/java/com/caimei365/manager/dao/user/UserMapper.java
  10. 10 5
      src/main/java/com/caimei365/manager/entity/caimei/CmRelatedImage.java
  11. 77 0
      src/main/java/com/caimei365/manager/entity/caimei/cmUser/CmClub.java
  12. 1 0
      src/main/java/com/caimei365/manager/entity/caimei/cmUser/CmSaleMan.java
  13. 0 49
      src/main/java/com/caimei365/manager/entity/caimei/cmUser/ServiceProviderModel.java
  14. 1 0
      src/main/java/com/caimei365/manager/entity/caimei/cmUser/VisitRemarkVo.java
  15. 25 0
      src/main/java/com/caimei365/manager/entity/caimei/providers/CmProviderTeam.java
  16. 19 10
      src/main/java/com/caimei365/manager/entity/caimei/providers/CmProvidersContract.java
  17. 54 0
      src/main/java/com/caimei365/manager/entity/caimei/providers/ProviderTask.java
  18. 54 46
      src/main/java/com/caimei365/manager/entity/caimei/providers/ServiceProviderModel.java
  19. 1 2
      src/main/java/com/caimei365/manager/service/caimei/KeyWordService.java
  20. 1 4
      src/main/java/com/caimei365/manager/service/caimei/impl/KeyWordServiceImpl.java
  21. 4 7
      src/main/java/com/caimei365/manager/service/caimei/productArchive/impl/CmProductArchiveServiceImpl.java
  22. 48 7
      src/main/java/com/caimei365/manager/service/caimei/providers/CmProvidersService.java
  23. 7 8
      src/main/java/com/caimei365/manager/service/caimei/providers/impl/CmProvidersContractServiceImpl.java
  24. 189 37
      src/main/java/com/caimei365/manager/service/caimei/providers/impl/CmProvidersServiceImpl.java
  25. 1 5
      src/main/java/com/caimei365/manager/service/caimei/user/impl/CmClubRemarksServiceImpl.java
  26. 62 0
      src/main/java/com/caimei365/manager/utils/Md5Util.java
  27. 16 0
      src/main/java/com/caimei365/manager/utils/StringSplitUtils.java
  28. 2 2
      src/main/resources/mapper/KeyWordDao.xml
  29. 26 29
      src/main/resources/mapper/providers/CmProvidersContractMapper.xml
  30. 479 185
      src/main/resources/mapper/providers/CmProvidersMapper.xml
  31. 11 8
      src/main/resources/mapper/user/CmClubRemarksDao.xml
  32. 6 0
      src/main/resources/mapper/user/UserMapper.xml

+ 1 - 3
src/main/java/com/caimei365/manager/controller/caimei/keyword/KeyWordApi.java

@@ -1,13 +1,12 @@
 package com.caimei365.manager.controller.caimei.keyword;
 
 import com.alibaba.excel.EasyExcel;
-import com.caimei365.manager.dao.KeyWordDao;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.CmKeywordInfo;
 import com.caimei365.manager.entity.caimei.CmPriorKeyword;
 import com.caimei365.manager.entity.caimei.KeyWord;
-import com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.service.caimei.KeyWordService;
 import com.caimei365.manager.service.caimei.listener.KeywordListener;
 import com.caimei365.manager.service.caimei.listener.LabelListener;
@@ -19,7 +18,6 @@ import javax.annotation.Resource;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
-import java.util.Map;
 
 
 /**

+ 0 - 16
src/main/java/com/caimei365/manager/controller/caimei/productArchive/ProductArchiveController.java

@@ -1,35 +1,19 @@
 package com.caimei365.manager.controller.caimei.productArchive;
 
-import com.caimei.utils.StringUtils;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.productArchive.CmProductArchive;
 import com.caimei365.manager.entity.caimei.productArchive.CmProductArchiveContent;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
 import com.caimei365.manager.service.caimei.productArchive.CmProductArchiveContentService;
 import com.caimei365.manager.service.caimei.productArchive.CmProductArchiveService;
-import com.caimei365.manager.service.caimei.providers.CmProvidersContractService;
-import com.caimei365.manager.service.caimei.providers.CmProvidersService;
-import com.caimei365.manager.utils.FFMPEG;
-import com.caimei365.manager.utils.ImageUtils;
-import com.caimei365.manager.utils.WaterMarkUtils;
 import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import javax.imageio.ImageIO;
-import javax.imageio.stream.ImageOutputStream;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import java.awt.image.BufferedImage;
-import java.io.*;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /**

+ 250 - 68
src/main/java/com/caimei365/manager/controller/caimei/providers/ProvidersApi.java

@@ -1,11 +1,12 @@
 package com.caimei365.manager.controller.caimei.providers;
 
-import com.caimei365.manager.FastDFS.FastDFSClient;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
-import com.caimei365.manager.entity.caimei.CmRelatedImage;
+import com.caimei365.manager.entity.caimei.cmUser.CmClub;
+import com.caimei365.manager.entity.caimei.providers.ProviderTask;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.entity.caimei.product.Product;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
+import com.caimei365.manager.entity.caimei.providers.CmProviderTeam;
 import com.caimei365.manager.entity.caimei.providers.CmProvidersContract;
 import com.caimei365.manager.service.caimei.providers.CmProvidersContractService;
 import com.caimei365.manager.service.caimei.providers.CmProvidersService;
@@ -17,17 +18,12 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.List;
 
 /**
- * 功能描述:服务商入驻Controller
- *
- * @auther: Kaick
- * @date: 2023/12/13 15:30
+ * 功能描述:服务商/协销功能已合并
  */
 @Validated
 @RestController
@@ -38,6 +34,219 @@ public class ProvidersApi {
     @Resource
     private CmProvidersContractService cmProvidersContractService;
 
+
+    @GetMapping("/task/products")
+    public ResponseJson<PaginationVo<Product>> productList(String name, String shopName, Integer productId,
+                                                           @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                           @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.productList(name, shopName, productId, pageNum, pageSize);
+    }
+
+    /**
+     * 编辑服务商任务
+     *
+     * @param task
+     * @return
+     */
+    @PostMapping("/add/task")
+    public ResponseJson addTask(@RequestBody ProviderTask task) {
+        return cmProvidersService.addTask(task);
+    }
+
+    /**
+     * 任务下发服务商
+     *
+     * @param id
+     * @param serviceProviderIds
+     * @return
+     */
+    @GetMapping("/assign/task")
+    public ResponseJson assignTask(Integer id, String serviceProviderIds) {
+        return cmProvidersService.assignTask(id, serviceProviderIds);
+    }
+
+    /**
+     * 任务列表
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/task/list")
+    public ResponseJson<PaginationVo<ProviderTask>> taskList(String shopName,
+                                                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.taskList(shopName, pageNum, pageSize);
+    }
+
+    @GetMapping("/task/detail")
+    public ResponseJson<ProviderTask> taskDetail(Integer taskId) {
+        return cmProvidersService.taskDetail(taskId);
+    }
+
+    /**
+     * 任务选择服务商列表
+     *
+     * @param taskId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/receive/list")
+    public ResponseJson<PaginationVo<ServiceProviderModel>> providerReceiveList(Integer taskId, String name, String mobile,
+                                                                                @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.providerReceiveList(taskId, name, mobile, pageNum, pageSize);
+    }
+
+    /**
+     * 任务分配列表删除服务商
+     *
+     * @param taskId
+     * @param serviceProviderId
+     * @return
+     */
+    @GetMapping("/taskProvider/del")
+    public ResponseJson taskProviderDel(Integer taskId, Integer serviceProviderId) {
+        return cmProvidersService.taskProviderDel(taskId, serviceProviderId);
+    }
+
+
+    /**
+     * 任务详情服务商列表
+     *
+     * @param taskId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/taskProvider/list")
+    public ResponseJson<PaginationVo<ServiceProviderModel>> taskProviderList(Integer taskId, String name, String mobile,
+                                                                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.taskProviderList(taskId, name, mobile, pageNum, pageSize);
+    }
+
+    @GetMapping("/task/audit")
+    public ResponseJson taskAudit(Integer taskId, Integer serviceProviderId, Integer auditStatus) {
+        if (null == taskId || null == serviceProviderId || null == auditStatus) {
+            return ResponseJson.error("请校验参数!");
+        }
+        return cmProvidersService.taskAudit(taskId, serviceProviderId, auditStatus);
+    }
+
+    /**
+     * 修改服务商密码(协销功能合并)
+     *
+     * @param userId
+     * @param password
+     * @return
+     */
+    @GetMapping("/update/pass")
+    public ResponseJson updatePassWord(Integer userId, String password) {
+        return cmProvidersService.updatePassWord(userId, password);
+    }
+
+    /**
+     * 编辑小组
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/add/team")
+    public ResponseJson addTeam(@RequestBody CmProviderTeam team) {
+        return cmProvidersService.addTeam(team);
+    }
+
+    /**
+     * 修改组长
+     *
+     * @param team
+     * @return
+     */
+    @PostMapping("/update/leader")
+    public ResponseJson updateLeader(@RequestBody CmProviderTeam team) {
+        return cmProvidersService.updateLeader(team);
+    }
+
+    @GetMapping("/del/team")
+    public ResponseJson delTeam(Integer id) {
+        return cmProvidersService.delTeam(id);
+    }
+
+    /**
+     * 小组成员列表
+     *
+     * @param id
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/groupList")
+    public ResponseJson<PaginationVo<ServiceProviderModel>> groupList(Integer id,
+                                                                      @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                      @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.groupList(id, pageNum, pageSize);
+    }
+
+    /**
+     * 添加成员列表
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/addGroups")
+    public ResponseJson<PaginationVo<ServiceProviderModel>> addGroups(String mobile, String name,
+                                                                      @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                      @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.addGroups(mobile, name, pageNum, pageSize);
+    }
+
+    @GetMapping("/del/group")
+    public ResponseJson delGroup(Integer teamId, Integer spId) {
+        return cmProvidersService.delGroup(teamId, spId);
+    }
+
+    @GetMapping("/add/group")
+    public ResponseJson addGroup(Integer teamId, String spId) {
+        return cmProvidersService.addGroup(teamId, spId);
+    }
+
+    /**
+     * 服务商小组列表
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/teamList")
+    public ResponseJson<PaginationVo<CmProviderTeam>> providerTeam(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                   @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.providerTeam(pageNum, pageSize);
+    }
+
+    /**
+     * 协销机构列表
+     *
+     * @param spId
+     * @param clubId
+     * @param name
+     * @param linkMan
+     * @param bindMobile
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/clubList")
+    public ResponseJson<PaginationVo<CmClub>> clubList(@NotNull(message = "协销Id不能为空") Integer spId, Integer clubId,
+                                                       String name, String linkMan, String bindMobile,
+                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                       @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return cmProvidersService.clubList(spId, clubId, name, linkMan, bindMobile, pageNum, pageSize);
+    }
+
+
     /**
      * 添加商品列表
      *
@@ -50,14 +259,14 @@ public class ProvidersApi {
      * @return
      */
     @GetMapping("/product/list")
-    public ResponseJson<PaginationVo<Product>> providersProductList(Integer providerId,
+    public ResponseJson<PaginationVo<Product>> providersProductList(Integer serviceProviderId,
                                                                     String shopName,
                                                                     String productName,
                                                                     Integer productId,
                                                                     Integer shopId,
                                                                     @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                     @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
-        return cmProvidersService.getProviderProducts(providerId,shopName, productName, productId, shopId, pageNum, pageSize);
+        return cmProvidersService.getProviderProducts(serviceProviderId, shopName, productName, productId, shopId, pageNum, pageSize);
     }
 
     /**
@@ -70,22 +279,21 @@ public class ProvidersApi {
      * @return
      */
     @GetMapping("/products")
-    public ResponseJson<PaginationVo<Product>> providersProducts(@NotNull(message = "服务商Id不能为空") Integer providerId,
-                                                                 String productName,
-                                                                 Integer productId,
+    public ResponseJson<PaginationVo<Product>> providersProducts(@NotNull(message = "服务商Id不能为空") Integer serviceProviderId,
+                                                                 String productName, Integer productId,
                                                                  @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                  @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
-        return cmProvidersService.getProviderProductList(providerId, productName, productId, pageNum, pageSize);
+        return cmProvidersService.getProviderProductList(serviceProviderId, productName, productId, pageNum, pageSize);
     }
 
     @GetMapping("/add/products")
-    public ResponseJson addProvidersProducts(Integer providerId, String productIds) {
-        return cmProvidersService.addProvidersProducts(providerId, productIds);
+    public ResponseJson addProvidersProducts(Integer serviceProviderId, String productIds) {
+        return cmProvidersService.addProvidersProducts(serviceProviderId, productIds);
     }
 
     @GetMapping("/del/products")
-    public ResponseJson delProvidersProducts(Integer providerId, Integer productId) {
-        return cmProvidersService.delProvidersProducts(providerId, productId);
+    public ResponseJson delProvidersProducts(Integer serviceProviderId, Integer productId) {
+        return cmProvidersService.delProvidersProducts(serviceProviderId, productId);
     }
 
     @GetMapping("/list")
@@ -98,48 +306,37 @@ public class ProvidersApi {
                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                       @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<CmProviders> cmProvidersList = cmProvidersService.getCmProvidersList(new CmProviders()
-                .setName(name)
-                .setServiceLevel(serviceLevel)
-                .setServiceCategory(serviceCategory)
-                .setQualificationId(qualificationId)
-                .setContractStartDate(contractStartDate)
-                .setContractEndDate(contractEndDate)
-        );
+        List<ServiceProviderModel> cmProvidersList = cmProvidersService.getCmProvidersList(
+                new ServiceProviderModel().setName(name).setServiceLevel(serviceLevel).setServiceCategory(serviceCategory)
+                        .setQualificationId(qualificationId).setContractStartDate(contractStartDate).setContractEndDate(contractEndDate));
         return ResponseJson.success(new PaginationVo(cmProvidersList));
     }
 
     @GetMapping("/contract/list")
     public ResponseJson providersContractList(String contractId,
-                                              @NotNull(message = "服务商ID不能为空") Integer providersId,
-                                              Date contractStartDate,
-                                              Date contractEndDate,
+                                              @NotNull(message = "服务商ID不能为空") Integer serviceProviderId,
+                                              Date contractStartDate, Date contractEndDate,
                                               @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                               @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<CmProvidersContract> cmProvidersContractList = cmProvidersContractService.getCmProvidersContractList(new CmProvidersContract()
-                .setContractId(contractId)
-                .setProvidersId(providersId)
-                .setContractStartDate(contractStartDate)
-                .setContractEndDate(contractEndDate)
-        );
+        List<CmProvidersContract> cmProvidersContractList = cmProvidersContractService.getCmProvidersContractList(
+                new CmProvidersContract().setContractId(contractId).setServiceProviderId(serviceProviderId)
+                        .setContractStartDate(contractStartDate).setContractEndDate(contractEndDate));
         return ResponseJson.success(new PaginationVo(cmProvidersContractList));
     }
 
     @GetMapping("/from")
-    public ResponseJson providersFrom(String providersId) {
-        if (StringUtils.isBlank(providersId)
-        ) {
-            return ResponseJson.error("参数异常!");
+    public ResponseJson providersFrom(Integer serviceProvidersId) {
+        if (null == serviceProvidersId) {
+            return ResponseJson.error("协销Id不为空!");
         }
-        CmProviders providers = cmProvidersService.getCmProvidersById(providersId);
+        ServiceProviderModel providers = cmProvidersService.getCmProvidersById(serviceProvidersId);
         return ResponseJson.success(providers);
     }
 
     @GetMapping("/contract/from")
     public ResponseJson providersContractFrom(String providersContractId) {
-        if (StringUtils.isBlank(providersContractId)
-        ) {
+        if (StringUtils.isBlank(providersContractId)) {
             return ResponseJson.error("参数异常!");
         }
         CmProvidersContract providersContract = cmProvidersContractService.getCmProvidersContractById(providersContractId);
@@ -147,17 +344,10 @@ public class ProvidersApi {
     }
 
     @PostMapping("/add")
-    public ResponseJson providersAdd(@RequestBody CmProviders cmProviders
-    ) {
-        if (null == cmProviders.getName() ||
-                null == cmProviders.getLinkMan() ||
-                null == cmProviders.getMobile() ||
-                null == cmProviders.getServiceLevel() ||
-                null == cmProviders.getServiceCategory() ||
-                null == cmProviders.getAddress() ||
-                null == cmProviders.getTextRelateds() ||
-                null == cmProviders.getInfoRelateds()
-        ) {
+    public ResponseJson providersAdd(@RequestBody ServiceProviderModel cmProviders) {
+        if (null == cmProviders.getName() || null == cmProviders.getMobile() || null == cmProviders.getServiceLevel()
+                || null == cmProviders.getServiceCategory() || null == cmProviders.getAddress()
+                || null == cmProviders.getTextRelateds() || null == cmProviders.getInfoRelateds()) {
             return ResponseJson.error("参数异常!");
         }
         cmProvidersService.addCmProviders(cmProviders);
@@ -165,27 +355,19 @@ public class ProvidersApi {
     }
 
     @PostMapping("/updateStatus")
-    public ResponseJson providersUpdateStatus(String userIds, Integer status) {
-        if (null == userIds) {
+    public ResponseJson providersUpdateStatus(Integer serviceProviderId, Integer status) {
+        if (null == serviceProviderId) {
             return ResponseJson.error("ID不能为空!");
         }
-        for (String userId : userIds.split(",")) {
-            cmProvidersService.updateCmProviders(new CmProviders()
-                    .setUserId(Integer.valueOf(userId))
-                    .setStatus(status == 90 ? 90 : 91)
-            );
-        }
+        cmProvidersService.updateCmProviders(new ServiceProviderModel().setServiceProviderId(serviceProviderId).setStatus(status));
         return ResponseJson.success();
     }
 
     @PostMapping("/contract/add")
     public ResponseJson providersContractAdd(@RequestBody CmProvidersContract cmProvidersContract) {
-        if (null == cmProvidersContract.getProvidersId() ||
-                null == cmProvidersContract.getContractId() ||
-                null == cmProvidersContract.getContractStartDate() ||
-                null == cmProvidersContract.getContractEndDate() ||
-                null == cmProvidersContract.getContractRelateds()
-        ) {
+        if (null == cmProvidersContract.getServiceProviderId() || null == cmProvidersContract.getContractId()
+                || null == cmProvidersContract.getContractStartDate()
+                || null == cmProvidersContract.getContractEndDate() || null == cmProvidersContract.getContractRelateds()) {
             return ResponseJson.error("参数异常!");
         }
         cmProvidersContractService.addCmProvidersContract(cmProvidersContract);

+ 1 - 4
src/main/java/com/caimei365/manager/dao/CmRelatedImageMapper.java

@@ -4,7 +4,6 @@ import java.util.List;
 
 import com.caimei365.manager.entity.caimei.CmRelatedImage;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 
 /**
  * 相关图片Mapper接口
@@ -13,8 +12,7 @@ import org.apache.ibatis.annotations.Param;
  * @date 2023-12-12
  */
 @Mapper
-public interface CmRelatedImageMapper
-{
+public interface CmRelatedImageMapper {
     /**
      * 通过对象查询相关图片列表
      *
@@ -24,7 +22,6 @@ public interface CmRelatedImageMapper
     List<CmRelatedImage> getRelatedImageList(CmRelatedImage cmRelatedImage);
 
 
-
     /**
      * 通过Id查询相关图片对象
      *

+ 1 - 2
src/main/java/com/caimei365/manager/dao/KeyWordDao.java

@@ -4,11 +4,10 @@ import com.caimei365.manager.entity.caimei.CmKeywordInfo;
 import com.caimei365.manager.entity.caimei.CmKeywordSubtag;
 import com.caimei365.manager.entity.caimei.CmPriorKeyword;
 import com.caimei365.manager.entity.caimei.KeyWord;
-import com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 

+ 1 - 2
src/main/java/com/caimei365/manager/dao/providers/CmProvidersContractMapper.java

@@ -13,8 +13,7 @@ import org.apache.ibatis.annotations.Param;
  * @date 2023-12-12
  */
 @Mapper
-public interface CmProvidersContractMapper
-{
+public interface CmProvidersContractMapper {
     /**
      * 通过对象查询列表
      *

+ 54 - 24
src/main/java/com/caimei365/manager/dao/providers/CmProvidersMapper.java

@@ -2,8 +2,11 @@ package com.caimei365.manager.dao.providers;
 
 import java.util.List;
 
+import com.caimei365.manager.entity.caimei.cmUser.CmClub;
+import com.caimei365.manager.entity.caimei.providers.ProviderTask;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.entity.caimei.product.Product;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
+import com.caimei365.manager.entity.caimei.providers.CmProviderTeam;
 import com.caimei365.manager.entity.po.UploadFilePo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -22,7 +25,7 @@ public interface CmProvidersMapper {
      * @param cmProviders
      * @return 集合
      */
-    List<CmProviders> getCmProvidersList(CmProviders cmProviders);
+    List<ServiceProviderModel> getCmProvidersList(ServiceProviderModel cmProviders);
 
     /**
      * 通过Id查询对象
@@ -30,7 +33,7 @@ public interface CmProvidersMapper {
      * @param id 主键
      * @return
      */
-    CmProviders getCmProvidersById(String id);
+    ServiceProviderModel getCmProvidersById(Integer id);
 
     /**
      * 通过对象查询对象
@@ -38,16 +41,7 @@ public interface CmProvidersMapper {
      * @param cmProviders
      * @return
      */
-    CmProviders getByCmProviders(CmProviders cmProviders);
-
-    /**
-     * 通过对象查询Id
-     *
-     * @param cmProviders
-     * @return String
-     */
-    String getById(CmProviders cmProviders);
-
+    ServiceProviderModel getByCmProviders(ServiceProviderModel cmProviders);
 
     /**
      * 通过对象查询记录总数
@@ -55,7 +49,7 @@ public interface CmProvidersMapper {
      * @param cmProviders
      * @return Integer
      */
-    int getCount(CmProviders cmProviders);
+    int getCount(ServiceProviderModel cmProviders);
 
     /**
      * 新增
@@ -63,7 +57,7 @@ public interface CmProvidersMapper {
      * @param cmProviders
      * @return 结果
      */
-    int addCmProviders(CmProviders cmProviders);
+    int addCmProviders(ServiceProviderModel cmProviders);
 
     /**
      * 修改
@@ -71,7 +65,7 @@ public interface CmProvidersMapper {
      * @param cmProviders
      * @return 结果
      */
-    int updateCmProviders(CmProviders cmProviders);
+    int updateCmProviders(ServiceProviderModel cmProviders);
 
     /**
      * 删除
@@ -81,14 +75,6 @@ public interface CmProvidersMapper {
      */
     int delCmProvidersById(String id);
 
-    /**
-     * 批量删除
-     *
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    int delCmProviders(CmProviders cmProviders);
-
     /**
      * 批量删除
      *
@@ -105,4 +91,48 @@ public interface CmProvidersMapper {
     List<Product> getProviderProductList(@Param("providerId") Integer providerId, @Param("productName") String productName, @Param("productId") Integer productId);
 
     void delProviderProduct(@Param("providerId") Integer providerId, @Param("productId") Integer productId);
+
+    void updatePass(@Param("userId") Integer userId, @Param("password") String password);
+
+    List<CmProviderTeam> getProviderTeam();
+
+    List<CmClub> findClub(CmClub club);
+
+    void addTeam(CmProviderTeam team);
+
+    void delTeam(Integer id);
+
+    void delTeamGroup(Integer id);
+
+    List<ServiceProviderModel> groupList(Integer id);
+
+    void delGroup(@Param("teamId") Integer teamId, @Param("spId") Integer spId);
+
+    void addGroup(@Param("teamId") Integer teamId, @Param("spId") List<String> spId);
+
+    void updateTeam(CmProviderTeam team);
+
+    List<ServiceProviderModel> addGroups(@Param("mobile") String mobile, @Param("name") String name);
+
+    void updateLeader(CmProviderTeam team);
+
+    void addTask(ProviderTask task);
+
+    void updateTask(ProviderTask task);
+
+    void assignTask(@Param("id") Integer id, @Param("strToList") List<String> strToList);
+
+    List<ProviderTask> taskList(String shopName);
+
+    List<ServiceProviderModel> taskProviderList(@Param("taskId") Integer taskId, @Param("name") String name, @Param("mobile") String mobile);
+
+    List<ServiceProviderModel> providerReceiveList(@Param("taskId") Integer taskId, @Param("name") String name, @Param("mobile") String mobile);
+
+    void taskProviderDel(@Param("taskId") Integer taskId, @Param("serviceProviderId") Integer serviceProviderId);
+
+    ProviderTask getTaskDetail(Integer taskId);
+
+    List<Product> getTaskProducts(@Param("name") String name, @Param("shopName") String shopName, @Param("productId") Integer productId);
+
+    void auditTask(@Param("taskId") Integer taskId, @Param("serviceProviderId") Integer serviceProviderId, @Param("auditStatus") Integer auditStatus);
 }

+ 1 - 0
src/main/java/com/caimei365/manager/dao/user/CmClubRemarksDao.java

@@ -2,6 +2,7 @@ package com.caimei365.manager.dao.user;
 
 import com.caimei365.manager.entity.caimei.cmUser.*;
 import com.caimei365.manager.entity.caimei.product.Product;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 

+ 3 - 0
src/main/java/com/caimei365/manager/dao/user/UserMapper.java

@@ -5,6 +5,7 @@ import java.util.List;
 import com.caimei365.manager.entity.ZylShop;
 import com.caimei365.manager.entity.caimei.ZylTicket;
 import com.caimei365.manager.entity.caimei.cmUser.User;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -97,4 +98,6 @@ public interface UserMapper
     String findShopIds(Integer userId);
 
     void updateGift(Integer userId);
+
+    void updateCmproviderStatus(ServiceProviderModel cmProviders);
 }

+ 10 - 5
src/main/java/com/caimei365/manager/entity/caimei/CmRelatedImage.java

@@ -1,10 +1,12 @@
 package com.caimei365.manager.entity.caimei;
 
 import java.io.Serializable;
+
 import lombok.Data;
 import lombok.experimental.Accessors;
 import org.apache.ibatis.type.Alias;
 import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.util.Date;
 
 /**
@@ -13,14 +15,15 @@ import java.util.Date;
  * @author Kaick
  * @date 2023-12-12
  */
-@Accessors(chain  = true )
+@Accessors(chain = true)
 @Data
 @Alias("CmRelatedImage")
-public class CmRelatedImage implements Serializable
-{
+public class CmRelatedImage implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    /** id */
+    /**
+     * id
+     */
     private String id;
 
     /**
@@ -56,7 +59,9 @@ public class CmRelatedImage implements Serializable
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
-    /** 添加时间 */
+    /**
+     * 添加时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 

+ 77 - 0
src/main/java/com/caimei365/manager/entity/caimei/cmUser/CmClub.java

@@ -0,0 +1,77 @@
+package com.caimei365.manager.entity.caimei.cmUser;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+@Accessors(chain = true)
+@Data
+public class CmClub {
+
+    private static final long serialVersionUID = 1L;
+
+    private String checkMan;        //审核人
+    private Integer clubId;        // 会所ID
+    private Integer userId;        // 用户ID
+    private Integer userOrganizeId;//用户组织ID
+    private String name;        // 会所名称
+    private String sname;        // 简称
+    private String contractEmail;
+    private String logo;        // logo
+    private String legalPerson;        // 法人
+    private Integer provinceId;        // 省
+    private Integer cityId;        // 市
+    private Integer townId;        // 地址ID
+    private String flag;        // 拉会所上线的用户的cmBindId,以逗号结尾
+
+    private Integer spId;        // 协销Id
+    private String scanTime;        // 扫描时间
+    private String address;        // 详细地址
+    private String linkMan;        // 联系人
+    private Integer linkManIdentity;    //联系人身份:1老板,2采购,3运营
+    private String contractPhone;        // 联系电话
+    private String contractMobile;        // 联系手机
+    private String fax;        // 传真
+    private String info;        // 公司简介
+    private String addTime;        // 注册时间
+    private String auditTime;        // 审核时间
+    private String auditNote;        // 审核备注
+    private Integer status;        // 状态
+    private String businessLicenseImage;        // 营业执照
+
+    private String mainpro;        // 主打项目
+    private String scanFlag;        // 扫描状态 0待扫描 1 已扫描 2已上线
+    private String headpic;        // 门头照
+    private Date lastModify;        // 最后更新时间
+    private String firstClubType; // 一级分类为医美=1和生美=2
+    private String secondClubType; // 医美的二级分类为诊所=1、门诊=2、医院=3。  生美没有二级分类
+    private String department; // 若为医美分类下的门诊和医院则需要填写科室。
+    private String medicalPracticeLicenseImg; // 医美分类必须上传医疗执业许可证
+    private String socialCreditCode;//统一社会编码
+
+    /**
+     * 非持久化字段
+     */
+    private String source; //注册来源: 0网站 1小程序
+    private String spName; //创客名称
+    private String account;//企业会所用户账号
+    private String mobile;
+    private String userName;  //联系人
+    private String bindMobile;  //企业绑定手机号
+    private String email;       //邮箱
+    private Date registerTime;
+    private String registerIP;// IP
+    private String town; // 区
+    private String city; // 市
+    private String province; //省
+    private String startTime;     //注册时间开始 查询条件
+    private String endTime;        //注册时间结束  查询条件
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date providerTime;     //分配协销时间 查询条件
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date loginTime;     //上次登录时间 查询条件
+    private String userIdentity;  //用户身份
+    private Integer svipUserFlag;   //超级会员用户标识,1是,2不是
+}

+ 1 - 0
src/main/java/com/caimei365/manager/entity/caimei/cmUser/CmSaleMan.java

@@ -1,5 +1,6 @@
 package com.caimei365.manager.entity.caimei.cmUser;
 
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 

+ 0 - 49
src/main/java/com/caimei365/manager/entity/caimei/cmUser/ServiceProviderModel.java

@@ -1,49 +0,0 @@
-package com.caimei365.manager.entity.caimei.cmUser;
-
-import lombok.Data;
-
-/**
- * Description
- *
- * @author : Charles
- * @date : 2023/9/7
- */
-@Data
-public class ServiceProviderModel {
-    /**
-     * 协销Id
-     */
-    private Integer serviceProviderId;
-    /**
-     * 协销名称
-     */
-    private String name;
-    /**
-     * 协销联系人名称
-     */
-    private String linkMan;
-    /**
-     * 协销用户Id
-     */
-    private Integer userId;
-    /**
-     * 协销组长Id
-     */
-    private Integer mainServiceProviderId;
-    /**
-     * 协销组长名称
-     */
-    private String mainName;
-    /**
-     * 已注册客户数
-     */
-    private Integer registeredNumber;
-    /**
-     * 未注册客户数
-     */
-    private Integer unregisteredNumber;
-    /**
-     * 协销小组编辑页面回显标记,后台取数据的时候给1
-     */
-    private Integer teamFlag;
-}

+ 1 - 0
src/main/java/com/caimei365/manager/entity/caimei/cmUser/VisitRemarkVo.java

@@ -1,6 +1,7 @@
 package com.caimei365.manager.entity.caimei.cmUser;
 
 import com.caimei365.manager.entity.caimei.product.Product;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 

+ 25 - 0
src/main/java/com/caimei365/manager/entity/caimei/providers/CmProviderTeam.java

@@ -0,0 +1,25 @@
+package com.caimei365.manager.entity.caimei.providers;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class CmProviderTeam {
+    private Integer teamId;
+    // 组长协销id
+    private Integer leaderId;
+    //组长姓名
+    private String leaderName;
+    // 小组名称
+    private String name;
+    // 组员数量
+    private Integer groupCount;
+    //组员
+    private List<ServiceProviderModel> group;
+    // 创建时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createdTime;
+}

+ 19 - 10
src/main/java/com/caimei365/manager/entity/caimei/providers/CmProvidersContract.java

@@ -18,27 +18,36 @@ import org.apache.ibatis.type.Alias;
  * @author Kaick
  * @date 2023-12-12
  */
-@Accessors(chain  = true )
+@Accessors(chain = true)
 @Data
 @Alias("CmProvidersContract")
-public class CmProvidersContract implements Serializable
-{
+public class CmProvidersContract implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    /** id */
+    /**
+     * id
+     */
     private String id;
 
-    /** 服务商id */
-    private Integer providersId;
+    /**
+     * 服务商id
+     */
+    private Integer serviceProviderId;
 
-    /** 合同编号 */
+    /**
+     * 合同编号
+     */
     private String contractId;
 
-    /** 合同起始日期 */
+    /**
+     * 合同起始日期
+     */
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date contractStartDate;
 
-    /** 合同截止日期 */
+    /**
+     * 合同截止日期
+     */
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date contractEndDate;
 
@@ -68,7 +77,7 @@ public class CmProvidersContract implements Serializable
     /**
      * 是否新增标志
      */
-    private Boolean flag=true;
+    private Boolean flag = true;
 
 
 }

+ 54 - 0
src/main/java/com/caimei365/manager/entity/caimei/providers/ProviderTask.java

@@ -0,0 +1,54 @@
+package com.caimei365.manager.entity.caimei.providers;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+@Accessors(chain = true)
+@Data
+public class ProviderTask {
+
+    private Integer id;
+    /**
+     * 赏金
+     */
+    private String reward;
+    /**
+     * 富文本内容
+     */
+    private String content;
+    /**
+     * 供应商Id
+     */
+    private Integer shopId;
+    /**
+     * 任务商品Id
+     */
+    private Integer productId;
+    /**
+     * 标题
+     */
+    private String title;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date addTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    private String shopName;
+    /**
+     * 转发封面
+     */
+    private String topPic;
+    /**
+     * 任务状态 1未开始 2任务中 3任务过期
+     */
+    private Integer status;
+}

+ 54 - 46
src/main/java/com/caimei365/manager/entity/caimei/providers/CmProviders.java → src/main/java/com/caimei365/manager/entity/caimei/providers/ServiceProviderModel.java

@@ -1,53 +1,85 @@
 package com.caimei365.manager.entity.caimei.providers;
 
-import java.io.Serializable;
-
 import com.caimei365.manager.entity.caimei.CmRelatedImage;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
-import org.apache.ibatis.type.Alias;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.util.Date;
 import java.util.List;
 
-/**
- * 对象 cm_providers
- *
- * @author Kaick
- * @date 2023-12-12
- */
 @Accessors(chain = true)
 @Data
-@Alias("CmProviders")
-public class CmProviders implements Serializable {
-    private static final long serialVersionUID = 1L;
+public class ServiceProviderModel {
+
+    private String taskDesc;
 
+    private List<String> images;
+    /**
+     * 任务提交审核状态 0未审核 1审核通过 2审核不通过
+     */
+    private Integer auditStatus;
+    /**
+     * 服务商任务领取标记
+     */
+    private Integer receiveFlag;
+    /**
+     * 服务商任务领取时间
+     */
+    private Date receiveTime;
     /**
-     * id
+     * 内外部协销标记
      */
-    private String id;
+    private Integer insiderFlag;
 
     /**
-     * 用户Id
+     * 组长Id
      */
-    private Integer userId;
+    private Integer leaderId;
 
     /**
-     * 服务商名称
+     * 联系人
      */
-    private String name;
+    private String linkMan;
 
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    private String password;
+    /**
+     * 协销Id
+     */
+    private Integer serviceProviderId;
+    /**
+     * 协销名称
+     */
+    private String name;
+    /**
+     * 协销用户Id
+     */
+    private Integer userId;
+    /**
+     * 协销组长名称
+     */
+    private String mainName;
+    /**
+     * 已注册客户数
+     */
+    private Integer registeredNumber;
+    /**
+     * 未注册客户数
+     */
+    private Integer unregisteredNumber;
     /**
      * 服务商级别为:1级,2级,3级,4 特约服务商,5品牌指定服务商
      */
     private Integer serviceLevel;
-
     /**
      * 特约品牌名称
      */
     private String brandName;
-
     /**
      * 服务商类型: 1个人,2企业
      */
@@ -56,22 +88,10 @@ public class CmProviders implements Serializable {
      * 状态:90上线,91下线
      */
     private Integer status;
-
     /**
      * 服务商地址
      */
     private String address;
-
-    /**
-     * 联系人
-     */
-    private String linkMan;
-
-    /**
-     * 联系电话
-     */
-    private String mobile;
-
     /**
      * 简介
      */
@@ -81,34 +101,25 @@ public class CmProviders implements Serializable {
      * 服务商二维码
      */
     private String qrCodeImage;
-
     /**
      * 资格证书图片
      */
     private String qualificationImage;
-
     /**
      * 资格证书编号
      */
     private String qualificationId;
 
-
     /**
      * 创建人
      */
     private String createBy;
 
-    /**
-     * 修改时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date updateTime;
-
     /**
      * 添加时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createTime;
+    private Date addTime;
 
     /**
      * 相关简介图集合
@@ -144,6 +155,3 @@ public class CmProviders implements Serializable {
      */
     private String splitCode;
 }
-
-
-

+ 1 - 2
src/main/java/com/caimei365/manager/service/caimei/KeyWordService.java

@@ -5,10 +5,9 @@ import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.CmKeywordInfo;
 import com.caimei365.manager.entity.caimei.CmPriorKeyword;
 import com.caimei365.manager.entity.caimei.KeyWord;
-import com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author zzj

+ 1 - 4
src/main/java/com/caimei365/manager/service/caimei/impl/KeyWordServiceImpl.java

@@ -9,7 +9,7 @@ import com.caimei365.manager.entity.caimei.CmKeywordInfo;
 import com.caimei365.manager.entity.caimei.CmKeywordSubtag;
 import com.caimei365.manager.entity.caimei.CmPriorKeyword;
 import com.caimei365.manager.entity.caimei.KeyWord;
-import com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.entity.caimei.enums.KeyWordEnum;
 import com.caimei365.manager.service.caimei.KeyWordService;
 import com.github.pagehelper.PageHelper;
@@ -19,12 +19,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * @author zzj

+ 4 - 7
src/main/java/com/caimei365/manager/service/caimei/productArchive/impl/CmProductArchiveServiceImpl.java

@@ -19,8 +19,7 @@ import javax.annotation.Resource;
  * @date 2023-12-22
  */
 @Service
-public class CmProductArchiveServiceImpl implements CmProductArchiveService
-{
+public class CmProductArchiveServiceImpl implements CmProductArchiveService {
     @Resource
     private CmProductArchiveMapper cmProductArchiveMapper;
 
@@ -31,10 +30,10 @@ public class CmProductArchiveServiceImpl implements CmProductArchiveService
      * @return 商品资料库
      */
     @Override
-    public List<CmProductArchive> getCmProductArchiveList(CmProductArchive cmProductArchive)
-    {
+    public List<CmProductArchive> getCmProductArchiveList(CmProductArchive cmProductArchive) {
         return cmProductArchiveMapper.getCmProductArchiveList(cmProductArchive);
     }
+
     /**
      * 通过对象查询商品资料库
      *
@@ -42,8 +41,7 @@ public class CmProductArchiveServiceImpl implements CmProductArchiveService
      * @return 商品资料库
      */
     @Override
-    public CmProductArchive getCmProductArchive(CmProductArchive cmProductArchive)
-    {
+    public CmProductArchive getCmProductArchive(CmProductArchive cmProductArchive) {
         return cmProductArchiveMapper.getByCmProductArchive(cmProductArchive);
     }
 
@@ -65,7 +63,6 @@ public class CmProductArchiveServiceImpl implements CmProductArchiveService
     }
 
 
-
 }
 
 

+ 48 - 7
src/main/java/com/caimei365/manager/service/caimei/providers/CmProvidersService.java

@@ -2,8 +2,11 @@ package com.caimei365.manager.service.caimei.providers;
 
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.caimei.cmUser.CmClub;
+import com.caimei365.manager.entity.caimei.providers.ProviderTask;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.entity.caimei.product.Product;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
+import com.caimei365.manager.entity.caimei.providers.CmProviderTeam;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -22,7 +25,7 @@ public interface CmProvidersService {
      * @param cmProviders
      * @return 集合
      */
-    List<CmProviders> getCmProvidersList(CmProviders cmProviders);
+    List<ServiceProviderModel> getCmProvidersList(ServiceProviderModel cmProviders);
 
     /**
      * 通过Id查询
@@ -30,7 +33,7 @@ public interface CmProvidersService {
      * @param id 主键
      * @return
      */
-    CmProviders getCmProvidersById(String id);
+    ServiceProviderModel getCmProvidersById(Integer id);
 
     /**
      * 通过对象查询
@@ -38,7 +41,7 @@ public interface CmProvidersService {
      * @param cmProviders
      * @return
      */
-    CmProviders getByCmProviders(CmProviders cmProviders);
+    ServiceProviderModel getByCmProviders(ServiceProviderModel cmProviders);
 
 
     /**
@@ -47,7 +50,7 @@ public interface CmProvidersService {
      * @param cmProviders
      * @return 结果
      */
-    int addCmProviders(CmProviders cmProviders);
+    int addCmProviders(ServiceProviderModel cmProviders);
 
     /**
      * 修改
@@ -55,7 +58,7 @@ public interface CmProvidersService {
      * @param cmProviders
      * @return 结果
      */
-    int updateCmProviders(CmProviders cmProviders);
+    void updateCmProviders(ServiceProviderModel cmProviders);
 
     /**
      * 下載圖片
@@ -63,13 +66,51 @@ public interface CmProvidersService {
     void downloadImage(String ids, Integer type, HttpServletRequest request, HttpServletResponse response) throws Exception;
 
 
-    ResponseJson<PaginationVo<Product>> getProviderProducts(Integer providerId,String shopName, String productName, Integer productId, Integer shopId, int pageNum, int pageSize);
+    ResponseJson<PaginationVo<Product>> getProviderProducts(Integer providerId, String shopName, String productName, Integer productId, Integer shopId, int pageNum, int pageSize);
 
     ResponseJson addProvidersProducts(Integer providerId, String productIds);
 
     ResponseJson<PaginationVo<Product>> getProviderProductList(Integer providerId, String productName, Integer productId, int pageNum, int pageSize);
 
     ResponseJson delProvidersProducts(Integer providerId, Integer productId);
+
+    ResponseJson updatePassWord(Integer userId, String password);
+
+    ResponseJson<PaginationVo<CmProviderTeam>> providerTeam(int pageNum, int pageSize);
+
+    ResponseJson<PaginationVo<CmClub>> clubList(Integer spId, Integer clubId, String name, String linkMan, String bindMobile, int pageNum, int pageSize);
+
+    ResponseJson addTeam(CmProviderTeam team);
+
+    ResponseJson delTeam(Integer id);
+
+    ResponseJson<PaginationVo<ServiceProviderModel>> groupList(Integer id, int pageNum, int pageSize);
+
+    ResponseJson delGroup(Integer teamId, Integer spId);
+
+    ResponseJson addGroup(Integer teamId, String spId);
+
+    ResponseJson<PaginationVo<ServiceProviderModel>> addGroups(String mobile, String name, int pageNum, int pageSize);
+
+    ResponseJson updateLeader(CmProviderTeam team);
+
+    ResponseJson addTask(ProviderTask task);
+
+    ResponseJson assignTask(Integer id, String serviceProviderIds);
+
+    ResponseJson<PaginationVo<ProviderTask>> taskList(String shopName, int pageNum, int pageSize);
+
+    ResponseJson<PaginationVo<ServiceProviderModel>> taskProviderList(Integer taskId, String name, String mobile, int pageNum, int pageSize);
+
+    ResponseJson<PaginationVo<ServiceProviderModel>> providerReceiveList(Integer taskId, String name, String mobile, int pageNum, int pageSize);
+
+    ResponseJson taskProviderDel(Integer taskId, Integer serviceProviderId);
+
+    ResponseJson<ProviderTask> taskDetail(Integer taskId);
+
+    ResponseJson<PaginationVo<Product>> productList(String name, String shopName, Integer productId, int pageNum, int pageSize);
+
+    ResponseJson taskAudit(Integer taskId, Integer serviceProviderId, Integer auditStatus);
 }
 
 

+ 7 - 8
src/main/java/com/caimei365/manager/service/caimei/providers/impl/CmProvidersContractServiceImpl.java

@@ -1,8 +1,6 @@
 package com.caimei365.manager.service.caimei.providers.impl;
 
 import java.awt.image.BufferedImage;
-import java.io.IOException;
-import java.net.URL;
 import java.util.Date;
 import java.util.List;
 
@@ -11,16 +9,16 @@ import com.caimei365.manager.dao.CmRelatedImageMapper;
 import com.caimei365.manager.dao.providers.CmProvidersContractMapper;
 import com.caimei365.manager.dao.providers.CmProvidersMapper;
 import com.caimei365.manager.entity.caimei.CmRelatedImage;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
 import com.caimei365.manager.entity.caimei.providers.CmProvidersContract;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.service.caimei.providers.CmProvidersContractService;
 import com.caimei365.manager.utils.ImageUtils;
 import com.caimei365.manager.service.caimei.providers.utils.ProvidersTemplate;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import javax.imageio.ImageIO;
 
 /**
  * Service业务层处理
@@ -28,6 +26,7 @@ import javax.imageio.ImageIO;
  * @author Kaick
  * @date 2023-12-12
  */
+@Slf4j
 @Service
 public class CmProvidersContractServiceImpl implements CmProvidersContractService {
     @Resource
@@ -86,11 +85,11 @@ public class CmProvidersContractServiceImpl implements CmProvidersContractServic
     @Transactional(rollbackFor = Exception.class)
     @Override
     public int addCmProvidersContract(CmProvidersContract cmProvidersContract) {
-        CmProviders cmProviders = cmProvidersMapper.getCmProvidersById(String.valueOf(cmProvidersContract.getProvidersId()));
+        ServiceProviderModel cmProviders = cmProvidersMapper.getCmProvidersById(cmProvidersContract.getServiceProviderId());
         String levelName = cmProviders.getServiceLevel() == 1 ? "一级" : cmProviders.getServiceLevel() == 2 ? "二级" : cmProviders.getServiceLevel() == 3 ? "三级" : cmProviders.getBrandName();
-        BufferedImage realQrCodeImage = ImageUtils.createRealQrCode("https://www.caimei365.com/settlementInfo.html?id=" + cmProvidersContract.getProvidersId(), 1000);                //生成二维码
-        cmProvidersMapper.updateCmProviders(new CmProviders()
-                .setId(String.valueOf(cmProvidersContract.getProvidersId()))
+        BufferedImage realQrCodeImage = ImageUtils.createRealQrCode("https://www.caimei365.com/settlementInfo.html?id=" + cmProvidersContract.getServiceProviderId(), 1000);                //生成二维码
+        cmProvidersMapper.updateCmProviders(new ServiceProviderModel()
+                .setServiceProviderId(cmProvidersContract.getServiceProviderId())
                 .setQrCodeImage(FastDFSClient.saveImage(realQrCodeImage))
                 .setQualificationImage(ProvidersTemplate.setQualificationImage(cmProviders.getServiceLevel(),
                         cmProviders.getName().replace("公司", ""),    //生成资格证书

+ 189 - 37
src/main/java/com/caimei365/manager/service/caimei/providers/impl/CmProvidersServiceImpl.java

@@ -1,7 +1,6 @@
 package com.caimei365.manager.service.caimei.providers.impl;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -17,17 +16,21 @@ import com.caimei365.manager.dao.user.UserMapper;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.CmRelatedImage;
+import com.caimei365.manager.entity.caimei.cmUser.CmClub;
+import com.caimei365.manager.entity.caimei.providers.ProviderTask;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.entity.caimei.cmUser.User;
 import com.caimei365.manager.entity.caimei.product.Product;
-import com.caimei365.manager.entity.caimei.providers.CmProviders;
+import com.caimei365.manager.entity.caimei.providers.CmProviderTeam;
 import com.caimei365.manager.entity.caimei.providers.CmProvidersContract;
 import com.caimei365.manager.entity.po.UploadFilePo;
 import com.caimei365.manager.service.caimei.providers.CmProvidersContractService;
 import com.caimei365.manager.service.caimei.providers.CmProvidersService;
 import com.caimei365.manager.utils.ImageUtils;
+import com.caimei365.manager.utils.Md5Util;
+import com.caimei365.manager.utils.StringSplitUtils;
 import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -65,7 +68,7 @@ public class CmProvidersServiceImpl implements CmProvidersService {
      * @return
      */
     @Override
-    public List<CmProviders> getCmProvidersList(CmProviders cmProviders) {
+    public List<ServiceProviderModel> getCmProvidersList(ServiceProviderModel cmProviders) {
         return cmProvidersMapper.getCmProvidersList(cmProviders);
     }
 
@@ -76,10 +79,10 @@ public class CmProvidersServiceImpl implements CmProvidersService {
      * @return
      */
     @Override
-    public CmProviders getCmProvidersById(String id) {
-        CmProviders cmProvidersById = cmProvidersMapper.getCmProvidersById(id);
-        cmProvidersById.setTextRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("2").setAuthorId(cmProvidersById.getId())));
-        cmProvidersById.setInfoRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("3").setAuthorId(cmProvidersById.getId())));
+    public ServiceProviderModel getCmProvidersById(Integer id) {
+        ServiceProviderModel cmProvidersById = cmProvidersMapper.getCmProvidersById(id);
+        cmProvidersById.setTextRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("2").setAuthorId(cmProvidersById.getServiceProviderId().toString())));
+        cmProvidersById.setInfoRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("3").setAuthorId(cmProvidersById.getServiceProviderId().toString())));
         return cmProvidersById;
     }
 
@@ -90,10 +93,10 @@ public class CmProvidersServiceImpl implements CmProvidersService {
      * @return
      */
     @Override
-    public CmProviders getByCmProviders(CmProviders cmProviders) {
-        CmProviders providers = cmProvidersMapper.getByCmProviders(cmProviders);
-        providers.setTextRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("2").setAuthorId(cmProviders.getId())));
-        providers.setInfoRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("3").setAuthorId(cmProviders.getId())));
+    public ServiceProviderModel getByCmProviders(ServiceProviderModel cmProviders) {
+        ServiceProviderModel providers = cmProvidersMapper.getByCmProviders(cmProviders);
+        providers.setTextRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("2").setAuthorId(cmProviders.getServiceProviderId().toString())));
+        providers.setInfoRelateds(cmRelatedImageMapper.getRelatedImageList(new CmRelatedImage().setType("3").setAuthorId(cmProviders.getServiceProviderId().toString())));
         return providers;
     }
 
@@ -106,16 +109,10 @@ public class CmProvidersServiceImpl implements CmProvidersService {
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public int addCmProviders(CmProviders cmProviders) {
-        if (StringUtils.isBlank(cmProviders.getId())) {
+    public int addCmProviders(ServiceProviderModel cmProviders) {
+        if (null == cmProviders.getServiceProviderId()) {
             User user = new User();
-            user.setBindMobile(cmProviders.getMobile());
-            user.setUserName(cmProviders.getLinkMan());
-            user.setName(cmProviders.getName());
-            user.setUserIdentity(9);
-            user.setRegisterUserTypeID("-1");
-            user.setRegisterTime(DateUtil.getDateTime());
-            user.setValidFlag("1");
+            user.setMobile(cmProviders.getMobile()).setBindMobile(cmProviders.getMobile()).setUserName(cmProviders.getLinkMan()).setName(cmProviders.getName()).setServiceProviderStatus(90).setUserIdentity(1).setRegisterUserTypeID("-1").setRegisterTime(DateUtil.getDateTime()).setValidFlag("1").setPassword(Md5Util.md5(cmProviders.getPassword()));
             userMapper.addUser(user);
             cmProviders.setUserId(Integer.valueOf(user.getUserID()));
             String qualificationId = "CMFW0" + cmProviders.getServiceLevel();
@@ -129,10 +126,10 @@ public class CmProvidersServiceImpl implements CmProvidersService {
             }
             cmProviders.setQualificationId(qualificationId);
             cmProviders.setStatus(90);
-            cmProviders.setCreateTime(new Date());
+            cmProviders.setAddTime(new Date());
             cmProvidersMapper.addCmProviders(cmProviders);   //新增服务商
-            String providersId = cmProviders.getId();
-            cmProviders.getContract().setProvidersId(Integer.valueOf(providersId));
+            String providersId = cmProviders.getServiceProviderId().toString();
+            cmProviders.getContract().setServiceProviderId(Integer.valueOf(providersId));
             cmProviders.getContract().setCreateBy(cmProviders.getCreateBy());
             cmProvidersContractService.addCmProvidersContract(cmProviders.getContract()); //新增服务商合同
             for (CmRelatedImage textRelatedImage : cmProviders.getTextRelateds()) {
@@ -144,14 +141,11 @@ public class CmProvidersServiceImpl implements CmProvidersService {
             return 1;
         } else {
             User user = new User();
-            user.setBindMobile(cmProviders.getMobile());
-            user.setUserName(cmProviders.getLinkMan());
-            user.setName(cmProviders.getName());
-            user.setValidFlag(cmProviders.getStatus() == 90 ? "1" : "0");
+            user.setMobile(cmProviders.getMobile()).setBindMobile(cmProviders.getMobile()).setUserName(cmProviders.getLinkMan()).setName(cmProviders.getName()).setValidFlag(cmProviders.getStatus() == 90 ? "1" : "0");
             userMapper.updateUser(user);
             String qualificationId = new StringBuffer(cmProviders.getQualificationId()).replace(5, 6, cmProviders.getServiceLevel().toString()).toString();
             cmProviders.setQualificationId(qualificationId);
-            CmRelatedImage cmRelatedImage = new CmRelatedImage().setType("3").setAuthorId(cmProviders.getId());
+            CmRelatedImage cmRelatedImage = new CmRelatedImage().setType("3").setAuthorId(cmProviders.getServiceProviderId().toString());
             cmRelatedImageMapper.delCmRelatedImage(cmRelatedImage);      //删除旧服务资料文件
             cmRelatedImage.setType("2");
             cmRelatedImageMapper.delCmRelatedImage(cmRelatedImage);      //删除旧服务商简介图
@@ -163,7 +157,7 @@ public class CmProvidersServiceImpl implements CmProvidersService {
                 cmRelatedImageMapper.addCmRelatedImage(cmRelatedImage.setImage(infoRelatedImage.getImage()).setFileName(infoRelatedImage.getFileName()));       //新增服务资料文件
             }
             cmProvidersMapper.updateCmProviders(cmProviders);
-            CmProvidersContract contract = cmProvidersContractMapper.getByCmProvidersContract(new CmProvidersContract().setProvidersId(Integer.valueOf(cmProviders.getId())));
+            CmProvidersContract contract = cmProvidersContractMapper.getByCmProvidersContract(new CmProvidersContract().setServiceProviderId(cmProviders.getServiceProviderId()));
             contract.setFlag(false);//更改新增标识
             cmProvidersContractService.addCmProvidersContract(contract); //新增服务商合同
             return 1;
@@ -177,15 +171,11 @@ public class CmProvidersServiceImpl implements CmProvidersService {
      * @return 结果
      */
     @Override
-    public int updateCmProviders(CmProviders cmProviders) {
+    public void updateCmProviders(ServiceProviderModel cmProviders) {
         if (null != cmProviders.getStatus()) {
-            userMapper.updateUser(new User()
-                    .setUserID(String.valueOf(cmProviders.getUserId()))
-                    .setValidFlag(cmProviders.getStatus() == 90 ? "1" : "0")
-            );
+            userMapper.updateCmproviderStatus(cmProviders);
         }
-        cmProviders.setUpdateTime(new Date());
-        return cmProvidersMapper.updateCmProviders(cmProviders);
+        cmProvidersMapper.updateCmProviders(cmProviders);
     }
 
 
@@ -203,6 +193,7 @@ public class CmProvidersServiceImpl implements CmProvidersService {
         log.info("【图片压缩包】,删除图片压缩包文件夹:" + ImageUtils.deleteFile(new File(tempPath)));
     }
 
+
     @Override
     public ResponseJson<PaginationVo<Product>> getProviderProducts(Integer providerId, String shopName, String productName, Integer productId, Integer shopId, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
@@ -244,12 +235,173 @@ public class CmProvidersServiceImpl implements CmProvidersService {
         return ResponseJson.success(page);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public ResponseJson delProvidersProducts(Integer providerId, Integer productId) {
         cmProvidersMapper.delProviderProduct(providerId, productId);
         return ResponseJson.success();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updatePassWord(Integer userId, String password) {
+        password = Md5Util.md5(password);
+        cmProvidersMapper.updatePass(userId, password);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<CmProviderTeam>> providerTeam(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<CmProviderTeam> teams = cmProvidersMapper.getProviderTeam();
+        PaginationVo<CmProviderTeam> page = new PaginationVo<>(teams);
+        return ResponseJson.success(page);
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<CmClub>> clubList(Integer spId, Integer clubId, String name, String linkMan, String bindMobile, int pageNum, int pageSize) {
+        CmClub club = new CmClub();
+        club.setSpId(spId).setClubId(clubId).setName(name).setLinkMan(linkMan).setBindMobile(bindMobile);
+        PageHelper.startPage(pageNum, pageSize);
+        List<CmClub> clubs = cmProvidersMapper.findClub(club);
+        PaginationVo<CmClub> page = new PaginationVo<>(clubs);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson addTeam(CmProviderTeam team) {
+        if (null == team.getTeamId()) {
+            cmProvidersMapper.addTeam(team);
+            cmProvidersMapper.addGroup(team.getTeamId(), StringSplitUtils.strToList(team.getLeaderId().toString()));
+        } else {
+            cmProvidersMapper.updateTeam(team);
+        }
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson delTeam(Integer id) {
+        cmProvidersMapper.delTeam(id);
+        cmProvidersMapper.delTeamGroup(id);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ServiceProviderModel>> groupList(Integer id, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ServiceProviderModel> group = cmProvidersMapper.groupList(id);
+        PaginationVo<ServiceProviderModel> page = new PaginationVo<>(group);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson delGroup(Integer teamId, Integer spId) {
+        cmProvidersMapper.delGroup(teamId, spId);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson addGroup(Integer teamId, String spId) {
+        cmProvidersMapper.addGroup(teamId, StringSplitUtils.strToList(spId));
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ServiceProviderModel>> addGroups(String mobile, String name, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ServiceProviderModel> group = cmProvidersMapper.addGroups(mobile, name);
+        PaginationVo<ServiceProviderModel> page = new PaginationVo<>(group);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateLeader(CmProviderTeam team) {
+        cmProvidersMapper.updateLeader(team);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson addTask(ProviderTask task) {
+        if (null == task.getId()) {
+            cmProvidersMapper.addTask(task);
+        } else {
+            cmProvidersMapper.updateTask(task);
+        }
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson assignTask(Integer id, String serviceProviderIds) {
+        cmProvidersMapper.assignTask(id, StringSplitUtils.strToList(serviceProviderIds));
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ProviderTask>> taskList(String shopName,int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ProviderTask> tasks = cmProvidersMapper.taskList(shopName);
+        PaginationVo<ProviderTask> page = new PaginationVo<>(tasks);
+        return ResponseJson.success(page);
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ServiceProviderModel>> taskProviderList(Integer taskId, String name, String mobile, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ServiceProviderModel> providers = cmProvidersMapper.taskProviderList(taskId, name, mobile);
+        PaginationVo<ServiceProviderModel> page = new PaginationVo<>(providers);
+        return ResponseJson.success(page);
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ServiceProviderModel>> providerReceiveList(Integer taskId, String name, String mobile, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ServiceProviderModel> providers = cmProvidersMapper.providerReceiveList(taskId, name, mobile);
+        PaginationVo<ServiceProviderModel> page = new PaginationVo<>(providers);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson taskProviderDel(Integer taskId, Integer serviceProviderId) {
+        cmProvidersMapper.taskProviderDel(taskId, serviceProviderId);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<ProviderTask> taskDetail(Integer taskId) {
+        return ResponseJson.success(cmProvidersMapper.getTaskDetail(taskId));
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<Product>> productList(String name, String shopName, Integer productId, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<Product> products = cmProvidersMapper.getTaskProducts(name, shopName, productId);
+        products.forEach(product -> {
+            if (StringUtil.isNotBlank(product.getMainImage())) {
+                product.setMainImage(AppUtils.getImageURL("product", product.getMainImage(), 0, "wwwServer"));
+                if (!product.getMainImage().contains("https")) {
+                    product.setMainImage("https://admin.caimei365.com/" + product.getMainImage());
+                }
+            }
+        });
+        PaginationVo<Product> page = new PaginationVo<>(products);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson taskAudit(Integer taskId, Integer serviceProviderId, Integer auditStatus) {
+        cmProvidersMapper.auditTask(taskId, serviceProviderId, auditStatus);
+        return ResponseJson.success();
+    }
+
 }
 
 

+ 1 - 5
src/main/java/com/caimei365/manager/service/caimei/user/impl/CmClubRemarksServiceImpl.java

@@ -1,19 +1,18 @@
 package com.caimei365.manager.service.caimei.user.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.MathUtil;
 import com.caimei365.manager.dao.user.CmClubRemarksDao;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.cmUser.*;
+import com.caimei365.manager.entity.caimei.providers.ServiceProviderModel;
 import com.caimei365.manager.service.caimei.CmOssArchiveService;
 import com.caimei365.manager.service.caimei.user.CmClubRemarksService;
 import com.caimei365.manager.utils.OSSUtils;
 import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -23,8 +22,6 @@ import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Description
@@ -87,7 +84,6 @@ public class CmClubRemarksServiceImpl implements CmClubRemarksService {
         // 全部协销的数据
         ServiceProviderModel service = new ServiceProviderModel();
         service.setName("全部");
-        service.setLinkMan("全部");
         service.setRegisteredNumber(registeredNumber.get());
         service.setUnregisteredNumber(unRegisteredNumber.get());
         // 在首位加入总数数据

+ 62 - 0
src/main/java/com/caimei365/manager/utils/Md5Util.java

@@ -0,0 +1,62 @@
+package com.caimei365.manager.utils;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.util.UUID;
+
+/**
+ * md5加密工具类
+ *
+ * @author : Charles
+ * @date : 2021/3/3
+ */
+public class Md5Util {
+
+    private static final String HEX_DIGITS = "0123456789ABCDEF";
+
+    /**
+	 * md5加密
+	 * @param s:待加密字符串
+	 * @return 加密后16进制字符串
+	 */
+	public static String md5(String s) {
+	    try {
+	    	//实例化MessageDigest的MD5算法对象
+	        MessageDigest md = MessageDigest.getInstance("MD5");
+	        //通过digest方法返回哈希计算后的字节数组
+	        byte[] bytes = md.digest(s.getBytes(StandardCharsets.UTF_8));
+	        //将字节数组转换为16进制字符串并返回
+	        return toHex(bytes);
+	    }
+	    catch (Exception e) {
+	        throw new RuntimeException(e);
+	    }
+	}
+
+	/**
+	 * 获取随即盐
+	 * @return salt
+	 */
+	public static String salt(){
+		//利用UUID生成随机盐
+		UUID uuid = UUID.randomUUID();
+		//返回a2c64597-232f-4782-ab2d-9dfeb9d76932
+		String[] arr = uuid.toString().split("-");
+		return arr[0];
+	}
+
+	/**
+	 * 字节数组转换为16进制字符串
+	 * @param bytes byte数组
+	 * @return 16进制字符串
+	 */
+	private static String toHex(byte[] bytes) {
+	    final char[] hexDigits = HEX_DIGITS.toCharArray();
+	    StringBuilder ret = new StringBuilder(bytes.length * 2);
+        for (byte aByte : bytes) {
+            ret.append(hexDigits[(aByte >> 4) & 0x0f]);
+            ret.append(hexDigits[aByte & 0x0f]);
+        }
+	    return ret.toString();
+	}
+}

+ 16 - 0
src/main/java/com/caimei365/manager/utils/StringSplitUtils.java

@@ -0,0 +1,16 @@
+package com.caimei365.manager.utils;
+
+import cn.hutool.core.lang.Assert;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class StringSplitUtils {
+
+    public static List<String> strToList(String str) {
+        Assert.notBlank(str);
+        return Arrays.asList(str.split(","));
+    }
+}

+ 2 - 2
src/main/resources/mapper/KeyWordDao.xml

@@ -140,13 +140,13 @@
         limit 1
     </select>
 
-    <select id="getServiceList" resultType="com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel">
+    <select id="getServiceList" resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
         SELECT
             ser.serviceProviderID AS serviceProviderId,
             ser.linkMan,
             ser.userID AS userId
         FROM serviceprovider ser
-        WHERE ser.organizeId = 0 AND ser.validFlag = 1 AND ser.status = 90 GROUP BY ser.serviceProviderID
+        WHERE ser.organizeId = 0 AND ser.status = 90 GROUP BY ser.serviceProviderID
         order by ser.addTime asc
     </select>
 

+ 26 - 29
src/main/resources/mapper/providers/CmProvidersContractMapper.xml

@@ -4,21 +4,10 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.manager.dao.providers.CmProvidersContractMapper">
 
-    <resultMap type="CmProvidersContract" id="CmProvidersContractResult">
-        <result property="id"    column="id"    />
-        <result property="providersId"    column="providersId"    />
-        <result property="contractId"    column="contractId"    />
-        <result property="contractStartDate"    column="contractStartDate"    />
-        <result property="contractEndDate"    column="contractEndDate"    />
-        <result property="createBy"    column="createBy"    />
-        <result property="updateTime"    column="updateTime"    />
-        <result property="createTime"    column="createTime"    />
-    </resultMap>
-
     <sql id="selectCmProvidersContractVo">
         select
             cm_providers_contract.id,
-            cm_providers_contract.providersId,
+            cm_providers_contract.providersId as serviceProviderId,
             cm_providers_contract.contractId,
             cm_providers_contract.contractStartDate,
             cm_providers_contract.contractEndDate,
@@ -27,26 +16,34 @@
             cm_providers_contract.createTime
     </sql>
 
-    <select id="getByCmProvidersContract" parameterType="CmProvidersContract" resultMap="CmProvidersContractResult">
-        <include refid="selectCmProvidersContractVo"/>
-        from cm_providers_contract AS cm_providers_contract
+    <select id="getByCmProvidersContract" parameterType="CmProvidersContract" resultType="com.caimei365.manager.entity.caimei.providers.CmProvidersContract">
+        select
+        id,
+        providersId as serviceProviderId,
+        contractId,
+        contractStartDate,
+        contractEndDate,
+        createBy,
+        updateTime,
+        createTime
+        from cm_providers_contract
         <where>
-            <if test="id != null  and id != ''"> and cm_providers_contract.id = #{id}</if>
-            <if test="providersId != null "> and cm_providers_contract.providersId = #{providersId}</if>
-            <if test="contractId != null  and contractId != ''"> and cm_providers_contract.contractId = #{contractId}</if>
-            <if test="contractStartDate != null "> and cm_providers_contract.contractStartDate = #{contractStartDate}</if>
-            <if test="contractEndDate != null "> and cm_providers_contract.contractEndDate = #{contractEndDate}</if>
+            <if test="id != null  and id != ''"> and id = #{id}</if>
+            <if test="serviceProviderId != null "> and providersId = #{serviceProviderId}</if>
+            <if test="contractId != null  and contractId != ''"> and contractId = #{contractId}</if>
+            <if test="contractStartDate != null "> and contractStartDate = #{contractStartDate}</if>
+            <if test="contractEndDate != null "> and contractEndDate = #{contractEndDate}</if>
         </where>
         group by cm_providers_contract.id
         limit 0,1
     </select>
 
-    <select id="getCmProvidersContractList" parameterType="CmProvidersContract" resultMap="CmProvidersContractResult">
+    <select id="getCmProvidersContractList" parameterType="CmProvidersContract" resultType="com.caimei365.manager.entity.caimei.providers.CmProvidersContract">
         <include refid="selectCmProvidersContractVo"/>
         from cm_providers_contract AS cm_providers_contract
         <where>
             <if test="id != null  and id != ''"> and cm_providers_contract.id = #{id}</if>
-            <if test="providersId != null "> and cm_providers_contract.providersId = #{providersId}</if>
+            <if test="serviceProviderId != null "> and cm_providers_contract.providersId = #{serviceProviderId}</if>
             <if test="contractId != null  and contractId != ''"> and cm_providers_contract.contractId = #{contractId}</if>
             <if test="contractStartDate != null "> and cm_providers_contract.contractStartDate >= #{contractStartDate}</if>
             <if test="contractEndDate != null "> and cm_providers_contract.contractEndDate  <![CDATA[ <= ]]> #{contractEndDate}</if>
@@ -60,14 +57,14 @@
         from cm_providers_contract AS cm_providers_contract
         <where>
             <if test="id != null  and id != ''"> and cm_providers_contract.id = #{id}</if>
-            <if test="providersId != null "> and cm_providers_contract.providersId = #{providersId}</if>
+            <if test="serviceProviderId != null "> and cm_providers_contract.providersId = #{serviceProviderId}</if>
             <if test="contractId != null  and contractId != ''"> and cm_providers_contract.contractId = #{contractId}</if>
             <if test="contractStartDate != null "> and cm_providers_contract.contractStartDate = #{contractStartDate}</if>
             <if test="contractEndDate != null "> and cm_providers_contract.contractEndDate = #{contractEndDate}</if>
         </where>
     </select>
 
-    <select id="getCmProvidersContractById" parameterType="String" resultMap="CmProvidersContractResult">
+    <select id="getCmProvidersContractById" parameterType="String" resultType="com.caimei365.manager.entity.caimei.providers.CmProvidersContract">
         <include refid="selectCmProvidersContractVo"/>
         from cm_providers_contract AS cm_providers_contract
         where  cm_providers_contract.id = #{id}
@@ -79,7 +76,7 @@
         from cm_providers_contract AS cm_providers_contract
         <where>
             <if test="id != null  and id != ''"> and cm_providers_contract.id = #{id}</if>
-            <if test="providersId != null "> and cm_providers_contract.providersId = #{providersId}</if>
+            <if test="serviceProviderId != null "> and cm_providers_contract.providersId = #{serviceProviderId}</if>
             <if test="contractId != null  and contractId != ''"> and cm_providers_contract.contractId = #{contractId}</if>
             <if test="contractStartDate != null "> and cm_providers_contract.contractStartDate = #{contractStartDate}</if>
             <if test="contractEndDate != null "> and cm_providers_contract.contractEndDate = #{contractEndDate}</if>
@@ -92,7 +89,7 @@
         insert into cm_providers_contract
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">id,</if>
-            <if test="providersId != null">providersId,</if>
+            <if test="serviceProviderId != null">providersId,</if>
             <if test="contractId != null and contractId != ''">contractId,</if>
             <if test="contractStartDate != null">contractStartDate,</if>
             <if test="contractEndDate != null">contractEndDate,</if>
@@ -102,7 +99,7 @@
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">#{id},</if>
-            <if test="providersId != null">#{providersId},</if>
+            <if test="serviceProviderId != null">#{serviceProviderId},</if>
             <if test="contractId != null and contractId != ''">#{contractId},</if>
             <if test="contractStartDate != null">#{contractStartDate},</if>
             <if test="contractEndDate != null">#{contractEndDate},</if>
@@ -115,7 +112,7 @@
     <update id="updateCmProvidersContract" parameterType="CmProvidersContract">
         update cm_providers_contract
         <trim prefix="SET" suffixOverrides=",">
-            <if test="providersId != null">providersId = #{providersId},</if>
+            <if test="serviceProviderId != null">providersId = #{serviceProviderId},</if>
             <if test="contractId != null and contractId != ''">contractId = #{contractId},</if>
             <if test="contractStartDate != null">contractStartDate = #{contractStartDate},</if>
             <if test="contractEndDate != null">contractEndDate = #{contractEndDate},</if>
@@ -136,7 +133,7 @@
         from cm_providers_contract AS cm_providers_contract
         <where>
             <if test="id != null  and id != ''"> and cm_providers_contract.id = #{id}</if>
-            <if test="providersId != null "> and cm_providers_contract.providersId = #{providersId}</if>
+            <if test="serviceProviderId != null "> and cm_providers_contract.providersId = #{serviceProviderId}</if>
             <if test="contractId != null  and contractId != ''"> and cm_providers_contract.contractId = #{contractId}</if>
             <if test="contractStartDate != null "> and cm_providers_contract.contractStartDate = #{contractStartDate}</if>
             <if test="contractEndDate != null "> and cm_providers_contract.contractEndDate = #{contractEndDate}</if>

+ 479 - 185
src/main/resources/mapper/providers/CmProvidersMapper.xml

@@ -4,164 +4,139 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.manager.dao.providers.CmProvidersMapper">
 
-    <resultMap type="CmProviders" id="CmProvidersResult">
-        <result property="id" column="id"/>
-        <result property="name" column="name"/>
-        <result property="serviceLevel" column="serviceLevel"/>
-        <result property="serviceCategory" column="serviceCategory"/>
-        <result property="address" column="address"/>
-        <result property="linkMan" column="linkMan"/>
-        <result property="mobile" column="mobile"/>
-        <result property="text" column="text"/>
-        <result property="qrCodeImage" column="qrCodeImage"/>
-        <result property="qualificationImage" column="qualificationImage"/>
-        <result property="qualificationId" column="qualificationId"/>
-        <result property="contractStartDate" column="contractStartDate"/>
-        <result property="contractEntDate" column="contractEntDate"/>
-        <result property="createBy" column="createBy"/>
-        <result property="updateTime" column="updateTime"/>
-        <result property="createTime" column="createTime"/>
-        <result property="userId" column="userId"/>
-        <result property="status" column="status"/>
-    </resultMap>
-
-    <sql id="selectCmProvidersVo">
-        select cm_providers.id,
-               cm_providers.name,
-               cm_providers.serviceLevel,
-               cm_providers.serviceCategory,
-               cm_providers.status,
-               cm_providers.userId,
-               cm_providers.address,
-               cm_providers.linkMan,
-               cm_providers.mobile,
-               cm_providers.text,
-               cm_providers.brandName,
-               cm_providers.qrCodeImage,
-               cm_providers.qualificationImage,
-               cm_providers.qualificationId,
-               cm_providers.createBy,
-               cm_providers.updateTime,
-               cm_providers.createTime,
-               cm_providers.splitCode
-    </sql>
-
-    <select id="getByCmProviders" parameterType="CmProviders" resultMap="CmProvidersResult">
-        <include refid="selectCmProvidersVo"/>
-        from cm_providers AS cm_providers
+    <select id="getByCmProviders" parameterType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel"
+            resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        select
+        serviceProviderId,
+        name,
+        serviceLevel,
+        serviceCategory,
+        status,
+        userId,
+        address,
+        linkMan,
+        contractMobile as mobile,
+        text,
+        brandName,
+        qrCodeImage,
+        qualificationImage,
+        qualificationId,
+        createBy,
+        addTime,
+        splitCode
+        from serviceprovider
         <where>
-            <if test="id != null  and id != ''">and cm_providers.id = #{id}</if>
-            <if test="name != null  and name != ''">and cm_providers.name like concat('%', #{name}, '%')</if>
-            <if test="serviceLevel != null ">and cm_providers.serviceLevel = #{serviceLevel}</if>
-            <if test="serviceCategory != null ">and cm_providers.serviceCategory = #{serviceCategory}</if>
-            <if test="status != null ">and cm_providers.status = #{status}</if>
-            <if test="userId != null ">and cm_providers.userId = #{userId}</if>
-            <if test="address != null  and address != ''">and cm_providers.address = #{address}</if>
-            <if test="linkMan != null  and linkMan != ''">and cm_providers.linkMan = #{linkMan}</if>
-            <if test="mobile != null  and mobile != ''">and cm_providers.mobile = #{mobile}</if>
-            <if test="text != null  and text != ''">and cm_providers.text = #{text}</if>
-            <if test="qrCodeImage != null  and qrCodeImage != ''">and cm_providers.qrCodeImage = #{qrCodeImage}</if>
-            <if test="qualificationImage != null  and qualificationImage != ''">and cm_providers.qualificationImage =
-                #{qualificationImage}
-            </if>
-            <if test="qualificationId != null  and qualificationId != ''">and cm_providers.qualificationId =
-                #{qualificationId}
+            <if test="serviceProviderId != null and serviceProviderId != ''">
+                and serviceProviderId = #{serviceProviderId}
             </if>
+            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
+            <if test="serviceLevel != null ">and serviceLevel = #{serviceLevel}</if>
+            <if test="serviceCategory != null ">and cserviceCategory = #{serviceCategory}</if>
+            <if test="status != null ">and status = #{status}</if>
+            <if test="userId != null ">and userId = #{userId}</if>
+            <if test="address != null  and address != ''">and address = #{address}</if>
+            <if test="linkMan != null  and linkMan != ''">andlinkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''">and contractMobile = #{mobile}</if>
         </where>
-        group by cm_providers.id
-        order by cm_providers.createTime desc
+        group by serviceProviderId
+        order by addTime desc
         limit 0,1
     </select>
 
-    <select id="getCmProvidersList" parameterType="CmProviders" resultMap="CmProvidersResult">
-        <include refid="selectCmProvidersVo"/>
-        ,cm_providers_contract.contractStartDate
-        ,cm_providers_contract.contractEndDate
-        from cm_providers AS cm_providers
-        LEFT JOIN cm_providers_contract as cm_providers_contract ON cm_providers_contract.providersId = cm_providers.id
+    <select id="getCmProvidersList" parameterType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel"
+            resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        select
+        sp.serviceProviderId,
+        sp.name,
+        sp.serviceLevel,
+        sp.serviceCategory,
+        sp.status,
+        sp.userId,
+        sp.address,
+        sp.linkMan,
+        sp.contractMobile as mobile,
+        sp.text,
+        sp.brandName,
+        sp.qrCodeImage,
+        sp.qualificationImage,
+        sp.qualificationId,
+        sp.createBy,
+        sp.addTime,
+        sp.splitCode,
+        sp.insiderFlag,
+        cm_providers_contract.contractStartDate,
+        cm_providers_contract.contractEndDate
+        from serviceprovider AS sp
+        LEFT JOIN cm_providers_contract as cm_providers_contract ON cm_providers_contract.providersId =
+        sp.serviceProviderId
         <where>
-            <if test="id != null  and id != ''">and cm_providers.id = #{id}</if>
-            <if test="name != null  and name != ''">and cm_providers.name like concat('%', #{name}, '%')</if>
-            <if test="serviceLevel != null ">and cm_providers.serviceLevel = #{serviceLevel}</if>
-            <if test="status != null ">and cm_providers.status = #{status}</if>
-            <if test="userId != null ">and cm_providers.userId = #{userId}</if>
-            <if test="serviceCategory != null ">and cm_providers.serviceCategory = #{serviceCategory}</if>
-            <if test="address != null  and address != ''">and cm_providers.address = #{address}</if>
-            <if test="linkMan != null  and linkMan != ''">and cm_providers.linkMan = #{linkMan}</if>
-            <if test="mobile != null  and mobile != ''">and cm_providers.mobile = #{mobile}</if>
-            <if test="text != null  and text != ''">and cm_providers.text = #{text}</if>
-            <if test="qrCodeImage != null  and qrCodeImage != ''">and cm_providers.qrCodeImage = #{qrCodeImage}</if>
-            <if test="qualificationImage != null  and qualificationImage != ''">and cm_providers.qualificationImage =
-                #{qualificationImage}
-            </if>
-            <if test="qualificationId != null  and qualificationId != ''">and cm_providers.qualificationId =
-                #{qualificationId}
-            </if>
-            <if test="contractStartDate != null ">and cm_providers_contract.contractStartDate >= #{contractStartDate}
-            </if>
-            <if test="contractEndDate != null ">and cm_providers_contract.contractEndDate  <![CDATA[ <= ]]>
-                #{contractEndDate}
+            <if test="serviceProviderId != null and serviceProviderId != ''">
+                and sp.serviceProviderId = #{serviceProviderId}
+            </if>
+            <if test="name != null  and name != ''">and sp.name like concat('%', #{name}, '%')</if>
+            <if test="serviceLevel != null ">and sp.serviceLevel = #{serviceLevel}</if>
+            <if test="status != null ">and sp.status = #{status}</if>
+            <if test="userId != null ">and sp.userId = #{userId}</if>
+            <if test="serviceCategory != null ">and sp.serviceCategory = #{serviceCategory}</if>
+            <if test="address != null  and address != ''">and sp.address = #{address}</if>
+            <if test="linkMan != null  and linkMan != ''">and sp.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''">and sp.contractMobile = #{mobile}</if>
+            <if test="qualificationId != null  and qualificationId != ''">
+                and sp.qualificationId = #{qualificationId}
+            </if>
+            <if test="contractStartDate != null ">
+                and cm_providers_contract.contractStartDate >= #{contractStartDate}
+            </if>
+            <if test="contractEndDate != null ">
+                and cm_providers_contract.contractEndDate  <![CDATA[ <= ]]> #{contractEndDate}
             </if>
         </where>
-        group by cm_providers.id
-        order by cm_providers.createTime desc
+        group by sp.serviceProviderId
+        order by sp.addTime desc
     </select>
 
-    <select id="getCount" parameterType="CmProviders" resultType="int">
+    <select id="getCount" parameterType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel"
+            resultType="int">
         select count(1)
-        from cm_providers AS cm_providers
+        from serviceprovider
         <where>
-            <if test="id != null  and id != ''">and cm_providers.id = #{id}</if>
-            <if test="name != null  and name != ''">and cm_providers.name like concat('%', #{name}, '%')</if>
-            <if test="serviceLevel != null ">and cm_providers.serviceLevel = #{serviceLevel}</if>
-            <if test="userId != null ">and cm_providers.userId = #{userId}</if>
-            <if test="status != null ">and cm_providers.status = #{status}</if>
-            <if test="serviceCategory != null ">and cm_providers.serviceCategory = #{serviceCategory}</if>
-            <if test="address != null  and address != ''">and cm_providers.address = #{address}</if>
-            <if test="linkMan != null  and linkMan != ''">and cm_providers.linkMan = #{linkMan}</if>
-            <if test="mobile != null  and mobile != ''">and cm_providers.mobile = #{mobile}</if>
-            <if test="text != null  and text != ''">and cm_providers.text = #{text}</if>
-            <if test="qrCodeImage != null  and qrCodeImage != ''">and cm_providers.qrCodeImage = #{qrCodeImage}</if>
-            <if test="qualificationImage != null  and qualificationImage != ''">and cm_providers.qualificationImage =
-                #{qualificationImage}
-            </if>
-            <if test="qualificationId != null  and qualificationId != ''">and cm_providers.qualificationId =
-                #{qualificationId}
+            <if test="serviceProviderId != null and serviceProviderId != ''">
+                and serviceProviderId = #{serviceProviderId}
+            </if>
+            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
+            <if test="serviceLevel != null ">and serviceLevel = #{serviceLevel}</if>
+            <if test="userId != null ">and userId = #{userId}</if>
+            <if test="status != null ">and status = #{status}</if>
+            <if test="serviceCategory != null ">and serviceCategory = #{serviceCategory}</if>
+            <if test="address != null and address != ''">and address = #{address}</if>
+            <if test="mobile != null and mobile != ''">and contractMobile = #{mobile}</if>
+            <if test="qualificationId != null and qualificationId != ''">
+                and qualificationId = #{qualificationId}
             </if>
         </where>
     </select>
 
-    <select id="getCmProvidersById" parameterType="String" resultMap="CmProvidersResult">
-        <include refid="selectCmProvidersVo"/>
-        from cm_providers AS cm_providers
-        where cm_providers.id = #{id}
-    </select>
-
-
-    <select id="getById" parameterType="CmProviders" resultType="String">
-        select id
-        from cm_providers AS cm_providers
-        <where>
-            <if test="id != null  and id != ''">and cm_providers.id = #{id}</if>
-            <if test="name != null  and name != ''">and cm_providers.name like concat('%', #{name}, '%')</if>
-            <if test="serviceLevel != null ">and cm_providers.serviceLevel = #{serviceLevel}</if>
-            <if test="serviceCategory != null ">and cm_providers.serviceCategory = #{serviceCategory}</if>
-            <if test="status != null ">and cm_providers.status = #{status}</if>
-            <if test="userId != null ">and cm_providers.userId = #{userId}</if>
-            <if test="address != null  and address != ''">and cm_providers.address = #{address}</if>
-            <if test="linkMan != null  and linkMan != ''">and cm_providers.linkMan = #{linkMan}</if>
-            <if test="mobile != null  and mobile != ''">and cm_providers.mobile = #{mobile}</if>
-            <if test="text != null  and text != ''">and cm_providers.text = #{text}</if>
-            <if test="qrCodeImage != null  and qrCodeImage != ''">and cm_providers.qrCodeImage = #{qrCodeImage}</if>
-            <if test="qualificationImage != null  and qualificationImage != ''">and cm_providers.qualificationImage =
-                #{qualificationImage}
-            </if>
-            <if test="qualificationId != null  and qualificationId != ''">and cm_providers.qualificationId =
-                #{qualificationId}
-            </if>
-        </where>
-        group by cm_providers.id
-        limit 0,1
+    <select id="getCmProvidersById" resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        select serviceProviderId,
+               name,
+               serviceLevel,
+               serviceCategory,
+               status,
+               userId,
+               address,
+               linkMan,
+               contractMobile as mobile,
+               text,
+               brandName,
+               insiderFlag,
+               qrCodeImage,
+               qualificationImage,
+               qualificationId,
+               createBy,
+               addTime,
+               splitCode
+        from serviceprovider
+        where serviceProviderId = #{id}
     </select>
 
     <select id="getProvidersUploadFileList" resultType="UploadFilePo">
@@ -173,17 +148,18 @@
             qrCodeImage as fileUrl,
         </if>
         name as fileName
-        from cm_providers AS cm_providers
+        from serviceprovider AS sp
         <where>
-            cm_providers.id in
+            sp.serviceProviderId in
             <foreach item="idsIn"
                      collection="ids.split(',')"
                      open="(" separator="," close=")">
                 #{idsIn}
             </foreach>
         </where>
-        group by cm_providers.id
+        group by sp.serviceProviderId
     </select>
+
     <select id="getProductList" resultType="com.caimei365.manager.entity.caimei.product.Product">
         SELECT
         p.productId,
@@ -211,6 +187,7 @@
             </if>
         </where>
     </select>
+
     <select id="getProviderProductList" resultType="com.caimei365.manager.entity.caimei.product.Product">
         SELECT
         p.productId,
@@ -234,31 +211,165 @@
         </where>
     </select>
 
+    <select id="getProviderTeam" resultType="com.caimei365.manager.entity.caimei.providers.CmProviderTeam">
+        SELECT DISTINCT csr.leaderId,
+                        csr.createdTime,
+                        s.name                                                                 as leaderName,
+                        csr.id                                                                 as teamId,
+                        csr.name,
+                        (SELECT COUNT(teamId) FROM cm_serviceteam_group WHERE teamId = csr.id) AS groupCount
+        FROM cm_serviceteam_role csr
+                 LEFT JOIN serviceprovider s ON csr.leaderId = s.serviceProviderID
+        order by csr.createdTime desc
+    </select>
 
-    <insert id="addCmProviders" parameterType="CmProviders" useGeneratedKeys="true" keyProperty="id">
-        insert into cm_providers
+    <select id="findClub" resultType="com.caimei365.manager.entity.caimei.cmUser.CmClub">
+        SELECT
+        a.checkMan as "checkMan",
+        a.clubID AS "clubId",
+        a.userID AS "userId",
+        u.name AS "name",
+        a.sname AS "sname",
+        a.logo AS "logo",
+        a.legalPerson AS "legalPerson",
+        a.provinceID AS "provinceId",
+        a.cityID AS "cityId",
+        a.townID AS "townId",
+        a.flag AS "flag",
+        a.spID AS "spId",
+        a.address AS "address",
+        a.linkMan AS "linkMan",
+        a.linkManIdentity AS "linkManIdentity",
+        a.contractPhone AS "contractPhone",
+        a.contractMobile AS "contractMobile",
+        a.fax AS "fax",
+        a.info AS "info",
+        a.addTime AS "addTime",
+        a.auditTime AS "auditTime",
+        a.auditNote AS "auditNote",
+        a.status AS "status",
+        a.businessLicenseImage AS "businessLicenseImage",
+        a.mainpro AS "mainpro",
+        a.scanFlag AS "scanFlag",
+        a.headpic AS "headpic",
+        a.socialCreditCode AS "socialCreditCode",
+        a.lastModify AS "lastModify",
+        a.firstClubType AS "firstClubType",
+        a.secondClubType AS "secondClubType",
+        a.department AS "department",
+        a.medicalPracticeLicenseImg AS "medicalPracticeLicenseImg",
+        a.newDeal as "newDeal",
+        case sp.status when 91 then '采美默认协销经理(官方账号)' else sp.linkMan end AS "spName",
+        d.name AS "province",
+        c.name AS "city",
+        b.name AS "town",
+        u.account AS "account",
+        u.registerTime AS "registerTime",
+        u.registerIP AS "registerIP",
+        u.userName AS "userName",
+        u.bindMobile AS "bindMobile",
+        u.email AS "email",
+        u.userOrganizeID AS "userOrganizeId",
+        u.userIdentity AS "userIdentity",
+        if(csu.delFlag = '0' and now() <![CDATA[ < ]]> csu.endTime,1,0) as svipUserFlag,
+        u.source,
+        u.loginTime
+        FROM club a
+        LEFT JOIN user u ON u.userID = a.userID
+        LEFT JOIN cm_svip_user csu ON csu.userId = u.userID
+        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = a.spID
+        LEFT JOIN town b ON b.townID=a.townID
+        LEFT JOIN city c ON c.cityID=a.cityID
+        LEFT JOIN province d ON d.provinceID=a.provinceID
+        <where>
+            (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4 AND u.userIdentity != 8
+            <if test="clubId != null and clubId != ''">
+                AND a.clubID = #{clubId}
+            </if>
+            <if test="clubId == 0">
+                AND a.clubID = #{clubId}
+            </if>
+            <if test="userId != null and userId != ''">
+                AND a.userID = #{userId}
+            </if>
+            <if test="account != null and account != ''">
+                AND u.account = #{account}
+            </if>
+            <if test="name != null and name != ''">
+                AND u.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="userName != null and userName != ''">
+                AND u.userName LIKE concat('%',#{userName},'%')
+            </if>
+            <if test="townId != null and townId != ''">
+                AND d.provinceID = #{provinceId}
+            </if>
+            <if test="cityId != null and cityId != ''">
+                AND c.cityID = #{cityId}
+            </if>
+            <if test="townId != null and townId != ''">
+                AND b.townID = #{townId}
+            </if>
+            <if test="status != null and status != ''">
+                AND a.status = #{status}
+            </if>
+            <if test="bindMobile != null and bindMobile != ''">
+                AND u.bindMobile LIKE concat('%',#{bindMobile},'%')
+            </if>
+            <if test="linkMan != null and linkMan != ''">
+                AND a.linkMan LIKE concat('%',#{linkMan},'%')
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND u.registerTime <![CDATA[ >= ]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND u.registerTime <![CDATA[ <= ]]> #{endTime}
+            </if>
+            <if test="spId != null and spId != ''">
+                AND sp.serviceProviderID = #{spId}
+            </if>
+        </where>
+        ORDER BY case when a.status = 91 then 0 else 1 end desc, a.addTime DESC
+    </select>
+
+    <select id="groupList" resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        SELECT csg.serviceId    AS serviceProviderId,
+               s.name           as name,
+               s.contractMobile as mobile,
+               csr.leaderId     as leaderId
+        FROM cm_serviceTeam_group csg
+                 LEFT JOIN serviceprovider s ON csg.serviceId = s.serviceProviderID
+                 LEFT JOIN cm_serviceteam_role csr ON csg.teamId = csr.id
+        WHERE csg.teamId = #{id}
+    </select>
+
+
+    <insert id="addCmProviders" parameterType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel"
+            useGeneratedKeys="true" keyProperty="serviceProviderId">
+        insert into serviceprovider
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null and id != ''">id,</if>
+            <if test="serviceProviderId != null and serviceProviderId != ''">id,</if>
+            <if test="insiderFlag != null and insiderFlag != ''">insiderFlag,</if>
             <if test="name != null and name != ''">name,</if>
             <if test="serviceLevel != null">serviceLevel,</if>
             <if test="serviceCategory != null">serviceCategory,</if>
             <if test="address != null and address != ''">address,</if>
             <if test="linkMan != null and linkMan != ''">linkMan,</if>
-            <if test="mobile != null and mobile != ''">mobile,</if>
+            <if test="mobile != null and mobile != ''">contractMobile,</if>
             <if test="text != null and text != ''">text,</if>
             <if test="qrCodeImage != null and qrCodeImage != ''">qrCodeImage,</if>
             <if test="qualificationImage != null and qualificationImage != ''">qualificationImage,</if>
             <if test="qualificationId != null and qualificationId != ''">qualificationId,</if>
             <if test="createBy != null and createBy != ''">createBy,</if>
-            <if test="updateTime != null">updateTime,</if>
-            <if test="createTime != null">createTime,</if>
+            <if test="addTime != null">addTime,</if>
             <if test="status != null">status,</if>
             <if test="userId != null">userId,</if>
             <if test="brandName != null and brandName != ''">brandName,</if>
             <if test="splitCode != null and splitCode != ''">splitCode,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null and id != ''">#{id},</if>
+            <if test="serviceProviderId != null and serviceProviderId != ''">#{serviceProviderId},</if>
+            <if test="insiderFlag != null and insiderFlag != ''">#{insiderFlag},</if>
             <if test="name != null and name != ''">#{name},</if>
             <if test="serviceLevel != null">#{serviceLevel},</if>
             <if test="serviceCategory != null">#{serviceCategory},</if>
@@ -270,14 +381,14 @@
             <if test="qualificationImage != null and qualificationImage != ''">#{qualificationImage},</if>
             <if test="qualificationId != null and qualificationId != ''">#{qualificationId},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="createTime != null">#{createTime},</if>
+            <if test="addTime != null">#{addTime},</if>
             <if test="status != null">#{status},</if>
             <if test="userId != null">#{userId},</if>
             <if test="brandName != null and brandName != ''">#{brandName},</if>
             <if test="splitCode != null and splitCode != ''">#{splitCode},</if>
         </trim>
     </insert>
+
     <insert id="addProviderProduct">
         INSERT INTO cm_provider_product (providerId, productId)
         VALUES
@@ -286,15 +397,157 @@
         </foreach>
     </insert>
 
-    <update id="updateCmProviders" parameterType="CmProviders">
-        update cm_providers
+    <insert id="addTeam" useGeneratedKeys="true" keyProperty="teamId">
+        INSERT INTO cm_serviceteam_role (name, leaderId, createdTime)
+        VALUES (#{name}, #{leaderId}, now())
+    </insert>
+
+    <insert id="addGroup">
+        INSERT INTO cm_serviceteam_group(teamId, serviceId)
+        values
+        <foreach collection="spId" item="item" separator=",">
+            (#{teamId}, #{item})
+        </foreach>
+    </insert>
+
+    <insert id="addTask">
+        insert into cm_provider_task(shopId, productId, title, topPic, reward, content, addTime, startTime, endTime)
+        values (#{shopId}, #{productId}, #{title}, #{topPic}, #{reward}, #{content}, now(), #{startTime}, #{endTime});
+    </insert>
+
+    <insert id="assignTask">
+        INSERT INTO provider_task_role(taskId, serviceProviderId)
+        values
+        <foreach collection="strToList" item="item" separator=",">
+            (#{id}, #{item})
+        </foreach>
+    </insert>
+
+    <select id="addGroups" resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        SELECT s.serviceProviderID AS serviceProviderId, s.linkMan as name, s.contractMobile as mobile
+        FROM serviceprovider s
+        LEFT JOIN cm_serviceTeam_group csg ON csg.serviceId = s.serviceProviderID
+        WHERE csg.serviceId is null
+        <if test="name !=null and name !=''">
+            and s.name like concat('%', #{name}, '%')
+        </if>
+        <if test="mobile !=null and mobile !=''">
+            and s.contractMobile = #{mobile}
+        </if>
+    </select>
+
+    <select id="taskList" resultType="com.caimei365.manager.entity.caimei.providers.ProviderTask">
+        select spt.id,
+               spt.shopId,
+               spt.productId,
+               spt.title,
+               spt.addTime,
+               spt.startTime,
+               spt.endTime,
+               spt.reward,
+               spt.content,
+               s.name                                  as shopName,
+               spt.topPic,
+               (CASE
+                    WHEN startTime > NOW() THEN '1'
+                    WHEN NOW() BETWEEN startTime AND endTime THEN '2'
+                    WHEN NOW() > endTime THEN '3' END) AS status
+        from cm_provider_task spt
+        left join shop s on spt.shopId = s.shopId
+        <if test="shopName != null and shopName !=''">
+            where s.name like concat('%', #{shopName}, '%')
+        </if>
+        order by addTime desc
+    </select>
+
+    <!-- 结果映射 -->
+    <resultMap id="providerTasks" type="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+
+        <result property="serviceProviderId" column="serviceProviderId"/>
+        <result property="name" column="name"/>
+        <result property="linkMan" column="linkMan"/>
+        <result property="userId" column="userId"/>
+        <result property="mobile" column="mobile"/>
+        <result property="receiveFlag" column="receiveFlag"/>
+        <result property="auditStatus" column="auditStatus"/>
+        <result property="taskDesc" column="taskDesc"/>
+
+        <collection property="images" ofType="java.lang.String">
+            <result column="image"/>
+        </collection>
+    </resultMap>
+
+    <select id="taskProviderList" resultMap="providerTasks">
+        select sp.serviceProviderId, sp.name, sp.linkMan, sp.userId, sp.contractMobile as mobile, ptr.receiveFlag,
+        ptr.auditStatus,pta.taskDesc,ptai.image
+        from serviceprovider sp
+        left join provider_task_role ptr on sp.serviceProviderId = ptr.serviceProviderId
+        left join provider_task_audit pta on ptr.taskId = pta.taskId
+        left join provider_task_audit_image ptai on pta.id = ptai.auditId
+        where ptr.taskId = #{taskId}
+        <if test="mobile != null and mobile != ''">and sp.contractMobile = #{mobile}</if>
+        <if test="name != null and name != ''">and sp.name like concat('%', #{name}, '%')</if>
+    </select>
+
+    <select id="providerReceiveList"
+            resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        select sp.serviceProviderId, name, linkMan, userId, contractMobile as mobile, ptr.receiveFlag
+        from serviceprovider sp
+        left join provider_task_role ptr on sp.serviceProviderId = ptr.serviceProviderId AND ptr.taskId = #{taskId}
+        WHERE ptr.serviceProviderId IS NULL
+        <if test="mobile != null and mobile != ''">and sp.contractMobile = #{mobile}</if>
+        <if test="name != null and name != ''">and sp.name like concat('%', #{name}, '%')</if>
+    </select>
+
+    <select id="getTaskDetail" resultType="com.caimei365.manager.entity.caimei.providers.ProviderTask">
+        select id,
+               shopId,
+               productId,
+               title,
+               topPic,
+               content,
+               reward,
+               addTime,
+               startTime,
+               endTime
+        from cm_provider_task
+        where id = #{taskId}
+    </select>
+
+    <select id="getTaskProducts" resultType="com.caimei365.manager.entity.caimei.product.Product">
+        SELECT
+        p.productId,
+        p.name as productName,
+        p.mainImage,
+        s.shopId,
+        s.name AS shopName
+        FROM product p
+        LEFT JOIN cm_organize_product_info copi ON copi.productId = p.productId
+        LEFT JOIN shop s ON s.shopId = p.shopId
+        <where>
+            copi.organizeId = 0 AND copi.validFlag = 2
+            <if test="productId != null">
+                and p.productId = #{productId}
+            </if>
+            <if test="name != null and name != ''">
+                and p.name like concat('%', #{name},'%')
+            </if>
+            <if test="shopName != null and shopName != ''">
+                and s.name like concat('%', #{shopName},'%')
+            </if>
+        </where>
+    </select>
+
+    <update id="updateCmProviders" parameterType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
+        update serviceprovider
         <trim prefix="SET" suffixOverrides=",">
             <if test="name != null and name != ''">name = #{name},</if>
+            <if test="insiderFlag != null and insiderFlag != ''">insiderFlag = #{insiderFlag},</if>
             <if test="serviceLevel != null">serviceLevel = #{serviceLevel},</if>
             <if test="serviceCategory != null">serviceCategory = #{serviceCategory},</if>
             <if test="address != null and address != ''">address = #{address},</if>
             <if test="linkMan != null and linkMan != ''">linkMan = #{linkMan},</if>
-            <if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
+            <if test="mobile != null and mobile != ''">contractMobile = #{mobile},</if>
             <if test="text != null and text != ''">text = #{text},</if>
             <if test="qrCodeImage != null and qrCodeImage != ''">qrCodeImage = #{qrCodeImage},</if>
             <if test="qualificationImage != null and qualificationImage != ''">qualificationImage =
@@ -302,51 +555,92 @@
             </if>
             <if test="qualificationId != null and qualificationId != ''">qualificationId = #{qualificationId},</if>
             <if test="createBy != null and createBy != ''">createBy = #{createBy},</if>
-            <if test="updateTime != null">updateTime = #{updateTime},</if>
-            <if test="createTime != null">createTime = #{createTime},</if>
+            <if test="addTime != null">addTime = #{addTime},</if>
             <if test="status != null">status = #{status},</if>
             <if test="userId != null">userId = #{userId},</if>
             <if test="brandName != null and brandName != ''">brandName = #{brandName},</if>
             <if test="splitCode != null and splitCode != ''">splitCode = #{splitCode},</if>
         </trim>
+        where serviceProviderID = #{serviceProviderId}
+    </update>
+
+    <update id="updatePass">
+        update user
+        set passWord = #{password}
+        where userId = #{userId}
+    </update>
+
+    <update id="updateTeam">
+        update cm_serviceteam_role
+        set name = #{name}
+        where id = #{teamId}
+    </update>
+
+    <update id="updateLeader">
+        update cm_serviceteam_role
+        set leaderId = #{leaderId}
+        where id = ${teamId}
+    </update>
+
+    <update id="updateTask">
+        update cm_provider_task
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="shopId != null and shopId != ''">shopId = #{shopId},</if>
+            <if test="productId != null and productId != ''">productId = #{productId},</if>
+            <if test="title != null and title != ''">title = #{title},</if>
+            <if test="topPic != null and topPic != ''">topPic = #{topPic},</if>
+            <if test="reward != null and reward != ''">reward = #{reward},</if>
+            <if test="content != null and content != ''">content = #{content},</if>
+            <if test="startTime != null">startTime = STR_TO_DATE(#{startTime}, '%Y-%m-%d%H:%i:%s'),</if>
+            <if test="endTime != null">endTime = STR_TO_DATE(#{endTime}, '%Y-%m-%d %H:%i:%s'),</if>
+        </trim>
         where id = #{id}
-        <if test="userId != null">or userId = #{userId}</if>
+    </update>
+
+    <update id="auditTask">
+        update provider_task_role
+        set auditStatus = #{auditStatus}
+        where taskId = #{taskId}
+          and serviceProviderId = #{serviceProviderId}
     </update>
 
     <delete id="delCmProvidersById" parameterType="String">
         delete
-        from cm_providers
+        from serviceprovider
+        where serviceProviderID = #{serviceProviderId}
+    </delete>
+
+    <delete id="delProviderProduct">
+        delete
+        from cm_provider_product
+        where productId = #{productId}
+          and providerId = #{providerId}
+    </delete>
+
+    <delete id="delTeam">
+        delete
+        from cm_serviceteam_role
         where id = #{id}
     </delete>
 
-    <delete id="delCmProviders" parameterType="CmProviders">
+    <delete id="delTeamGroup">
         delete
-        from cm_providers AS cm_providers
-        <where>
-            <if test="id != null  and id != ''">and cm_providers.id = #{id}</if>
-            <if test="name != null  and name != ''">and cm_providers.name like concat('%', #{name}, '%')</if>
-            <if test="serviceLevel != null ">and cm_providers.serviceLevel = #{serviceLevel}</if>
-            <if test="serviceCategory != null ">and cm_providers.serviceCategory = #{serviceCategory}</if>
-            <if test="status != null ">and cm_providers.status = #{status}</if>
-            <if test="userId != null ">and cm_providers.userId = #{userId}</if>
-            <if test="address != null  and address != ''">and cm_providers.address = #{address}</if>
-            <if test="linkMan != null  and linkMan != ''">and cm_providers.linkMan = #{linkMan}</if>
-            <if test="mobile != null  and mobile != ''">and cm_providers.mobile = #{mobile}</if>
-            <if test="text != null  and text != ''">and cm_providers.text = #{text}</if>
-            <if test="qrCodeImage != null  and qrCodeImage != ''">and cm_providers.qrCodeImage = #{qrCodeImage}</if>
-            <if test="qualificationImage != null  and qualificationImage != ''">and cm_providers.qualificationImage =
-                #{qualificationImage}
-            </if>
-            <if test="qualificationId != null  and qualificationId != ''">and cm_providers.qualificationId =
-                #{qualificationId}
-            </if>
-        </where>
+        from cm_serviceteam_group
+        where teamId = #{id}
     </delete>
 
-    <delete id="delProviderProduct">
-        delete from cm_provider_product
-        where productId = #{productId}
-        and providerId = #{providerId}
+    <delete id="delGroup">
+        delete
+        from cm_serviceteam_group
+        where teamId = #{teamId}
+          and serviceId = #{spId}
+    </delete>
+
+    <delete id="taskProviderDel">
+        delete
+        from provider_task_role
+        where serviceProviderId = #{serviceProviderId}
+          and taskId = #{taskId}
     </delete>
 
 </mapper>

+ 11 - 8
src/main/resources/mapper/user/CmClubRemarksDao.xml

@@ -2,18 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.manager.dao.user.CmClubRemarksDao">
 
-    <select id="getServiceList" resultType="com.caimei365.manager.entity.caimei.cmUser.ServiceProviderModel">
+    <select id="getServiceList" resultType="com.caimei365.manager.entity.caimei.providers.ServiceProviderModel">
         SELECT
             ser.serviceProviderID AS serviceProviderId,
             ser.linkMan,
             ser.userID AS userId,
-            ser.mainServiceProviderID AS mainServiceProviderId,
+            csr.leaderId AS leaderId,
             svs.linkMan as mainName
         FROM serviceprovider ser
-                 LEFT JOIN cm_serviceteam_group csg ON csg.serviceId = ser.serviceProviderID
-                 LEFT JOIN cm_serviceteam_role csr ON csr.id = csg.teamId
-                 LEFT JOIN (SELECT serviceProviderID, linkMan FROM serviceprovider WHERE validFlag = 1 AND STATUS = 90) svs ON svs.serviceProviderID = csr.leaderId
-        WHERE ser.organizeId = 0 AND ser.validFlag = 1 AND ser.status = 90 and ser.serviceProviderID not in(1371, 1342) GROUP BY ser.serviceProviderID
+        LEFT JOIN cm_serviceteam_group csg ON csg.serviceId = ser.serviceProviderID
+        LEFT JOIN cm_serviceteam_role csr ON csr.id = csg.teamId
+        LEFT JOIN (SELECT serviceProviderID, linkMan FROM serviceprovider WHERE STATUS = 90) svs ON svs.serviceProviderID = csr.leaderId
+        WHERE ser.organizeId = 0
+          AND ser.status = 90
+          and ser.serviceProviderID not in(1371, 1342)
+        GROUP BY ser.serviceProviderID
         order by csr.createdTime, ser.addTime asc
     </select>
 
@@ -90,7 +93,7 @@
         LEFT JOIN product p ON p.productID = ccr.productID
         LEFT JOIN shop sh ON sh.shopID = p.shopID
         <where>
-            s.validFlag = 1 and s.serviceProviderID not in (1371, 1342)
+            s.serviceProviderID not in (1371, 1342)
             <if test="clubId != null">
                 AND ccr.clubId = #{clubId}
             </if>
@@ -421,7 +424,7 @@
         LEFT JOIN product p ON p.productID = ccr.productID
         LEFT JOIN shop sh ON sh.shopID = p.shopID
         <where>
-            s.validFlag = 1 and s.serviceProviderID not in (1371, 1359, 1342)
+            s.serviceProviderID not in (1371, 1359, 1342)
             <if test="questionManId != null and questionManId != ''">
                 AND ccr.clubId is null
             </if>

+ 6 - 0
src/main/resources/mapper/user/UserMapper.xml

@@ -503,6 +503,12 @@
         where userId = #{userId}
     </update>
 
+    <update id="updateCmproviderStatus">
+        update user
+        set serviceProviderStatus = #{status}
+        where userId = (select userId from serviceProvider where serviceProviderId = #{serviceProviderId})
+    </update>
+
     <delete id="delUserByUserID" parameterType="String">
         delete
         from user