Parcourir la source

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

huangzhiguo il y a 1 an
Parent
commit
83f5881b95
25 fichiers modifiés avec 973 ajouts et 51 suppressions
  1. 97 8
      src/main/java/com/caimei/modules/club/controller/CmOperationUserController.java
  2. 111 0
      src/main/java/com/caimei/modules/club/dao/CmOperationUserDao.java
  3. 3 3
      src/main/java/com/caimei/modules/club/entity/CmOperationUser.java
  4. 92 0
      src/main/java/com/caimei/modules/club/entity/CmOrganizeProcure.java
  5. 3 1
      src/main/java/com/caimei/modules/club/entity/CmUser.java
  6. 46 1
      src/main/java/com/caimei/modules/club/service/CmOperationUserService.java
  7. 212 9
      src/main/java/com/caimei/modules/club/service/impl/CmOperationUserServiceImpl.java
  8. 2 0
      src/main/java/com/caimei/modules/groupbuy/service/ProcureService.java
  9. 4 4
      src/main/java/com/caimei/modules/order/controller/OrderPayShopController.java
  10. 1 1
      src/main/java/com/caimei/modules/order/controller/OrganizeOrderController.java
  11. 2 0
      src/main/java/com/caimei/modules/order/dao/NewOrderDao.java
  12. 1 1
      src/main/java/com/caimei/modules/order/dao/PayShopDao.java
  13. 6 4
      src/main/java/com/caimei/modules/order/entity/NewOrder.java
  14. 4 0
      src/main/java/com/caimei/modules/order/entity/NewShopOrder.java
  15. 6 0
      src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfo.java
  16. 6 0
      src/main/java/com/caimei/modules/order/entity/ReceiptVo.java
  17. 1 1
      src/main/java/com/caimei/modules/order/service/PayShopService.java
  18. 5 2
      src/main/java/com/caimei/modules/order/service/impl/NewOrderServiceImpl.java
  19. 8 4
      src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java
  20. 54 2
      src/main/java/com/caimei/modules/order/util/OrderUtils.java
  21. 22 1
      src/main/resources/mapper/CmDiscernReceiptMapper.xml
  22. 263 3
      src/main/resources/mapper/CmOperationUserMapper.xml
  23. 5 3
      src/main/resources/mapper/CmUserMapper.xml
  24. 18 2
      src/main/resources/mapper/NewOrderMapper.xml
  25. 1 1
      src/main/resources/mapper/PayShopDao.xml

+ 97 - 8
src/main/java/com/caimei/modules/club/controller/CmOperationUserController.java

@@ -1,23 +1,27 @@
 package com.caimei.modules.club.controller;
 
 import com.caimei.modules.club.entity.CmOperationUser;
+import com.caimei.modules.club.entity.CmOrganizeProcure;
 import com.caimei.modules.club.entity.NewCmClub;
 import com.caimei.modules.club.entity.Page;
 import com.caimei.modules.club.service.CmOperationUserService;
 import com.caimei.modules.club.service.NewCmClubService;
 import com.caimei.utils.JsonModel;
 import com.caimei.utils.RandomCodeGenerator;
+import com.caimei.utils.ResponseJson;
 import com.caimei.utils.SMSUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.util.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
-import org.thymeleaf.util.StringUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Random;
 
 @Api(tags = "机构api")
@@ -32,17 +36,20 @@ public class CmOperationUserController {
 
     @ApiOperation("查看运营人员")
     @GetMapping("/list")
-    public JsonModel list(CmOperationUser cmOperationUser, Page page) {
-        PageHelper.startPage(page.getIndex(), page.getPageSize());
-        List<CmOperationUser> operationUserList = cmOperationUserService.findList(cmOperationUser);
-        Page<CmOperationUser> userPage = new Page<>(operationUserList);
-        return JsonModel.newInstance().success(userPage);
+    public ResponseJson<Page<CmOperationUser>> list(CmOperationUser cmOperationUser,
+                                                    @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                    @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        if (null == cmOperationUser.getClubId()) {
+            return ResponseJson.error(-1, "机构Id不能为空", null);
+        }
+        return cmOperationUserService.findList(cmOperationUser, pageNum, pageSize);
     }
 
 
     @ApiOperation("添加运营人员")
     @PostMapping(value = "save")
     public JsonModel save(@RequestBody CmOperationUser cmOperationUser) {
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         JsonModel jsonModel = JsonModel.newInstance();
         //判断该运营人手机号是否已存在
         List<CmOperationUser> listBuyBindMobile1 = cmOperationUserService.findListBuyBindMobile(cmOperationUser);
@@ -76,7 +83,7 @@ public class CmOperationUserController {
         }
         cmOperationUser.setUpdateTime(date);
         cmOperationUser.setDelFlag("0");
-        cmOperationUser.setAddTime(date);
+        cmOperationUser.setAddTime(dateFormat.format(date));
         cmOperationUserService.save(cmOperationUser);
         return jsonModel.success();
     }
@@ -137,4 +144,86 @@ public class CmOperationUserController {
         cmOperationUserService.untiedOperationUser(cmOperationUser);
         return JsonModel.newInstance().success();
     }
-}
+
+    /**
+     * 采购员列表
+     * @param cmOrganizeProcure
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation("采购员列表")
+    @GetMapping(value = "/findProcureList")
+    public ResponseJson<Page<CmOrganizeProcure>> findProcureList(CmOrganizeProcure cmOrganizeProcure,
+                                                                 @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                 @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+
+        return cmOperationUserService.findProcureList(cmOrganizeProcure, pageNum, pageSize);
+    }
+
+    /**
+     * 采购员上下线
+     * @param status
+     * @param serviceProviderId
+     * @return
+     */
+    @ApiOperation("采购员上下线")
+    @GetMapping(value = "/setStatus")
+    public ResponseJson setStatus(Integer status, Integer serviceProviderId) {
+
+        if (null == serviceProviderId) {
+            return ResponseJson.error(-1, "采购员Id不能为空", null);
+        }
+        if (null == status) {
+            return ResponseJson.error(-1, "修改状态不能为空", null);
+        }
+        return cmOperationUserService.setStatus(status, serviceProviderId);
+    }
+
+    /**
+     * 采购员信息回显
+     * @param serviceProviderId
+     * @return
+     */
+    @ApiOperation(value = "采购员信息回显")
+    @GetMapping(value = "/detailsEcho/{serviceProviderId}")
+    public ResponseJson<CmOrganizeProcure> detailsEcho(@PathVariable("serviceProviderId") Integer serviceProviderId) {
+        if (null == serviceProviderId) {
+            return ResponseJson.error(-1, "采购员Id不能为空", null);
+        }
+        return cmOperationUserService.detailsEcho(serviceProviderId);
+    }
+
+    /**
+     * 未绑定采购员机构
+     * @param club
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation("未绑定采购员机构列表")
+    @GetMapping(value = "/getClubEchoList")
+    public ResponseJson<Page<NewCmClub>> getClubEchoList(NewCmClub club, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                         @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        if (null == club.getUserOrganizeId()) {
+            return ResponseJson.error(-1, "组织Id不能为空", null);
+        }
+        return cmOperationUserService.getClubEchoList(club, pageNum, pageSize);
+    }
+
+    /**
+     * 保存采购员信息
+     * @param cmOrganizeProcure
+     * @return
+     */
+    @PostMapping(value = "/saveProcure")
+    public ResponseJson<Map<String, Object>> save(@RequestBody CmOrganizeProcure cmOrganizeProcure) {
+        if (StringUtils.isBlank(cmOrganizeProcure.getName())) {
+            return ResponseJson.error(-1, "姓名不能为空", null);
+        }
+        if (StringUtils.isBlank(cmOrganizeProcure.getMobile())) {
+            return ResponseJson.error(-1, "手机号不能为空", null);
+        }
+        return cmOperationUserService.save(cmOrganizeProcure);
+    }
+}

+ 111 - 0
src/main/java/com/caimei/modules/club/dao/CmOperationUserDao.java

@@ -1,7 +1,11 @@
 package com.caimei.modules.club.dao;
 
 import com.caimei.modules.club.entity.CmOperationUser;
+import com.caimei.modules.club.entity.CmOrganizeProcure;
+import com.caimei.modules.club.entity.CmUser;
+import com.caimei.modules.club.entity.NewCmClub;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -19,4 +23,111 @@ public interface CmOperationUserDao {
     void update(CmOperationUser cmOperationUser);
 
     void untiedOperationUser(CmOperationUser cmOperationUser);
+
+    /**
+     * 采购员信息集合
+     * @param cmOrganizeProcure
+     * @return
+     */
+    List<CmOrganizeProcure> getProcure(CmOrganizeProcure cmOrganizeProcure);
+
+    /**
+     * 机构信息
+     * @param spIds
+     * @return
+     */
+    List<NewCmClub> getClubInfo(@Param("spIds") List<Integer> spIds);
+
+    /**
+     * 采购员信息
+     * @param serviceProviderId
+     * @return
+     */
+    CmOrganizeProcure getProcureById(Integer serviceProviderId);
+
+    /**
+     * 采购员上下线
+     * @param status
+     * @param serviceProviderId
+     */
+    void setStatus(@Param("status") Integer status, @Param("serviceProviderId") Integer serviceProviderId);
+
+    /**
+     * 用户采购员上下线状态
+     * @param status
+     * @param serviceProviderId
+     */
+    void setUserServiceStatus(@Param("status") Integer status, @Param("serviceProviderId") Integer serviceProviderId, @Param("userId") Integer userId, @Param("validFlag") Integer validFlag, @Param("userPermission") Integer userPermission);
+
+    /**
+     * 采购员信息
+     * @param serviceProviderId
+     * @return
+     */
+    CmOrganizeProcure getProcureInfo(@Param("serviceProviderId") Integer serviceProviderId);
+
+    /**
+     * 采购员关联机构
+     * @param serviceProviderId
+     * @return
+     */
+    List<NewCmClub> getClubs(@Param("serviceProviderId") Integer serviceProviderId);
+
+    /**
+     * 采购员未关联机构集合
+     * @param club
+     * @return
+     */
+    List<NewCmClub> getClubEchoInfo(NewCmClub club);
+
+    /**
+     * 根据手机号获取用户
+     * @return
+     */
+    Integer getUserId(@Param("mobile") String mobile);
+    /**
+     * 添加用户
+     * @param cmUser
+     */
+    void insertUser(CmUser cmUser);
+
+    /**
+     * 添加采购人员
+     * @param cmOrganizeProcure
+     */
+    void insertProcure(CmOrganizeProcure cmOrganizeProcure);
+
+    /**
+     * 修改采购人员信息
+     * @param cmOrganizeProcure
+     */
+    void updateProcure(CmOrganizeProcure cmOrganizeProcure);
+
+    /**
+     * 修改用户信息
+     * @param mobile
+     * @param userName
+     * @param userId
+     */
+    void updateUserData(@Param("mobile") String mobile, @Param("userName") String userName, @Param("userId") Integer userId);
+
+    /**
+     * 修改用户协销Id
+     * @param serviceProviderId
+     * @param userId
+     */
+    void updateUserSpId(@Param("serviceProviderId") Integer serviceProviderId,@Param("userId") Integer userId);
+    /**
+     * 机构采购员
+     * @param serviceProviderId
+     * @param clubId
+     */
+    void updateClub(@Param("serviceProviderId") Integer serviceProviderId,@Param("clubId") Integer clubId);
+
+    /**
+     * 用户采购员
+     * @param serviceProviderId
+     * @param clubId
+     */
+    void updateUser(@Param("serviceProviderId") Integer serviceProviderId,@Param("clubId") Integer clubId);
 }

+ 3 - 3
src/main/java/com/caimei/modules/club/entity/CmOperationUser.java

@@ -29,9 +29,9 @@ public class CmOperationUser implements Serializable {
     private String nickName;        // 微信昵称
     private String openid;        // 小程序openid
     private Date invitationCodeTime;        // 邀请码生成时间(此时间起48小时有效)
-    private Date bindTime;        // 绑定时间
+    private String bindTime;        // 绑定时间
     private Date updateTime;        // 更新时间
-    private Date addTime;        // 添加时间
+    private String addTime;        // 添加时间
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date beginAddTime;        // 开始 添加时间
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -39,4 +39,4 @@ public class CmOperationUser implements Serializable {
     private String effectiveFlag;//邀请码是否有效 1有效,2已使用,3已失效
     private String configFlag;//确认标志
     private String delFlag; //0 有效 其它无效
-}
+}

+ 92 - 0
src/main/java/com/caimei/modules/club/entity/CmOrganizeProcure.java

@@ -0,0 +1,92 @@
+package com.caimei.modules.club.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2023/5/30
+ */
+@Data
+public class CmOrganizeProcure {
+    /**
+     * 用户Id
+     */
+    private Integer userId;
+    /**
+     * 组织Id
+     */
+    private Integer organizeId;
+    /**
+     * 绑定微信Id
+     */
+    private Integer operaId;
+    /**
+     * 采购员Id
+     */
+    private Integer serviceProviderId;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String mobile;
+    /**
+     * 联系人
+     */
+    private String linkMan;
+    /**
+     * 关联机构
+     */
+    private List<String> clubNames;
+    /**
+     * 审核状态
+     */
+    private Integer auditStatus;
+    /**
+     * 审核时间
+     */
+    private String auditTime;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 是否可用 1可用
+     */
+    private Integer validFlag;
+    /**
+     * 绑定微信
+     */
+    private Integer isWx;
+    /**
+     * 添加时间
+     */
+    private String addTime;
+    /**
+     * 绑定时间
+     */
+    private Date bindTime;
+    /**
+     * 绑定状态
+     */
+    private String bindInfo;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
+    /**
+     * 关联机构
+     */
+    private List<NewCmClub> clubList;
+}

+ 3 - 1
src/main/java/com/caimei/modules/club/entity/CmUser.java

@@ -88,10 +88,12 @@ public class CmUser implements Serializable {
     private String socialCreditCode;
     @ApiModelProperty("审核人")
     private String checkMan;
+    @ApiModelProperty("采购员姓名")
+    private String spName;
 
     //会所用户信息
     private String town; // 区
     private String city; // 市
     private String province; //省
     private String address;        // 详细地址
-}
+}

+ 46 - 1
src/main/java/com/caimei/modules/club/service/CmOperationUserService.java

@@ -1,12 +1,17 @@
 package com.caimei.modules.club.service;
 
 import com.caimei.modules.club.entity.CmOperationUser;
+import com.caimei.modules.club.entity.CmOrganizeProcure;
+import com.caimei.modules.club.entity.NewCmClub;
+import com.caimei.modules.club.entity.Page;
+import com.caimei.utils.ResponseJson;
 
 import java.util.List;
+import java.util.Map;
 
 public interface CmOperationUserService {
 
-    List<CmOperationUser> findList(CmOperationUser cmOperationUser);
+    ResponseJson<Page<CmOperationUser>> findList(CmOperationUser cmOperationUser,Integer pageNum, Integer pageSize);
 
     List<CmOperationUser> findListBuyBindMobile(CmOperationUser cmOperationUser);
 
@@ -15,4 +20,44 @@ public interface CmOperationUserService {
     void save(CmOperationUser cmOperationUser);
 
     void untiedOperationUser(CmOperationUser cmOperationUser);
+
+    /**
+     * 采购员列表
+     * @param cmOrganizeProcure
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    ResponseJson<Page<CmOrganizeProcure>> findProcureList(CmOrganizeProcure cmOrganizeProcure, int pageNum, int pageSize);
+
+    /**
+     * 采购员上下线
+     * @param status
+     * @param serviceProviderId
+     * @return
+     */
+    ResponseJson setStatus(Integer status, Integer serviceProviderId);
+
+    /**
+     * 编辑回显
+     * @param serviceProviderId
+     * @return
+     */
+    ResponseJson<CmOrganizeProcure> detailsEcho(Integer serviceProviderId);
+
+    /**
+     * 未绑定采购员 机构集合
+     * @param club
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    ResponseJson<Page<NewCmClub>> getClubEchoList(NewCmClub club, Integer pageNum, Integer pageSize);
+
+    /**
+     * 保存采购员信息
+     * @param cmOrganizeProcure
+     * @return
+     */
+    ResponseJson<Map<String, Object>> save(CmOrganizeProcure cmOrganizeProcure);
 }

+ 212 - 9
src/main/java/com/caimei/modules/club/service/impl/CmOperationUserServiceImpl.java

@@ -1,16 +1,21 @@
 package com.caimei.modules.club.service.impl;
 
 import com.caimei.modules.club.dao.CmOperationUserDao;
-import com.caimei.modules.club.entity.CmOperationUser;
+import com.caimei.modules.club.entity.*;
 import com.caimei.modules.club.service.CmOperationUserService;
+import com.caimei.utils.AppKeys;
+import com.caimei.utils.DateUtils;
+import com.caimei.utils.MD5Util;
+import com.caimei.utils.ResponseJson;
+import com.github.pagehelper.PageHelper;
+import org.bouncycastle.jcajce.provider.digest.MD5;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.thymeleaf.util.StringUtils;
 
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class CmOperationUserServiceImpl implements CmOperationUserService {
@@ -18,9 +23,10 @@ public class CmOperationUserServiceImpl implements CmOperationUserService {
     private CmOperationUserDao cmOperationUserDao;
 
     @Override
-    public List<CmOperationUser> findList(CmOperationUser cmOperationUser) {
+    public ResponseJson<Page<CmOperationUser>> findList(CmOperationUser cmOperationUser, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
         List<CmOperationUser> operationUserList = cmOperationUserDao.findList(cmOperationUser);
-        if (null != operationUserList) {
+        /*if (null != operationUserList) {
             for (CmOperationUser user : operationUserList) {
                 //判断邀请码是否有效
                 // 1未绑定,2已绑定
@@ -46,8 +52,9 @@ public class CmOperationUserServiceImpl implements CmOperationUserService {
                     }
                 }
             }
-        }
-        return operationUserList;
+        }*/
+        Page<CmOperationUser> page = new Page<>(operationUserList);
+        return ResponseJson.success(page);
     }
 
     @Override
@@ -73,4 +80,200 @@ public class CmOperationUserServiceImpl implements CmOperationUserService {
     public void untiedOperationUser(CmOperationUser cmOperationUser) {
         cmOperationUserDao.untiedOperationUser(cmOperationUser);
     }
+
+    /**
+     * 采购员列表
+     * @param cmOrganizeProcure
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public ResponseJson<Page<CmOrganizeProcure>> findProcureList(CmOrganizeProcure cmOrganizeProcure, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        // 采购员列表
+        List<CmOrganizeProcure> procure = cmOperationUserDao.getProcure(cmOrganizeProcure);
+        if (null != procure) {
+            // 采购员Id集合
+            List<Integer> collect = procure.stream().map(CmOrganizeProcure::getServiceProviderId).collect(Collectors.toList());
+            // 采购员机构集合
+            List<NewCmClub> clubInfo = cmOperationUserDao.getClubInfo(collect);
+            procure.forEach(p -> {
+                // 关联机构
+                if (null != clubInfo) {
+                    List<String> names = clubInfo.stream().filter(c -> c.getSpId().equals(p.getServiceProviderId())).map(NewCmClub::getName).collect(Collectors.toList());
+                    p.setClubNames(names);
+                }
+                // 是否绑定微信
+                if (null == p.getBindTime()) {
+                    p.setBindInfo("暂未绑定微信");
+                }
+            });
+        }
+        Page<CmOrganizeProcure> page = new Page<>(procure);
+        return ResponseJson.success(page);
+    }
+
+    /**
+     * 采购员上下线
+     *
+     * @param status
+     * @param serviceProviderId
+     * @return
+     */
+    @Override
+    public ResponseJson setStatus(Integer status, Integer serviceProviderId) {
+        // 获取采购员信息
+        CmOrganizeProcure procure = cmOperationUserDao.getProcureById(serviceProviderId);
+        // 协销上下线状态
+        cmOperationUserDao.setStatus(status, serviceProviderId);
+        // 用户协销状态
+        if (90 == status) {
+            cmOperationUserDao.setUserServiceStatus(status, serviceProviderId, procure.getUserId(), 1, 4);
+        } else {
+            cmOperationUserDao.setUserServiceStatus(status, serviceProviderId, procure.getUserId(), 0, 1);
+        }
+        return ResponseJson.success();
+    }
+
+    /**
+     * 编辑回显
+     *
+     * @param serviceProviderId
+     * @return
+     */
+    @Override
+    public ResponseJson<CmOrganizeProcure> detailsEcho(Integer serviceProviderId) {
+        // 采购员信息
+        CmOrganizeProcure procureInfo = cmOperationUserDao.getProcureInfo(serviceProviderId);
+        // 采购员关联机构集合
+        if (null != procureInfo) {
+            List<NewCmClub> clubs = cmOperationUserDao.getClubs(serviceProviderId);
+            procureInfo.setClubList(clubs);
+        } else {
+            return ResponseJson.error(-1, "该采购员不存在,或已下线");
+        }
+        return ResponseJson.success(procureInfo);
+    }
+
+    /**
+     * 未绑定采购员 机构集合
+     *
+     * @param club
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public ResponseJson<Page<NewCmClub>> getClubEchoList(NewCmClub club, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<NewCmClub> clubEchoInfo = cmOperationUserDao.getClubEchoInfo(club);
+        Page<NewCmClub> page = new Page<>(clubEchoInfo);
+        return ResponseJson.success(page);
+    }
+
+    /**
+     * 保存采购员信息
+     *
+     * @param cmOrganizeProcure
+     * @return
+     */
+    @Override
+    public ResponseJson<Map<String, Object>> save(CmOrganizeProcure cmOrganizeProcure) {
+        Map<String, Object> map = new HashMap<>();
+        Date date = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (null == cmOrganizeProcure.getServiceProviderId()) {
+            // 校验是否已存在该用户手机号
+            Integer userId = cmOperationUserDao.getUserId(cmOrganizeProcure.getMobile());
+            if (null != userId) {
+                return ResponseJson.error(-1, "该手机号已使用", null);
+            }
+            // 注册成为用户
+            CmUser cmUser = new CmUser();
+            cmUser.setPassword(MD5Util.md5("1111aaaa"));
+            cmUser.setUserOrganizeId(cmOrganizeProcure.getOrganizeId());
+            cmUser.setMobile(cmOrganizeProcure.getMobile());
+            cmUser.setBindMobile(cmOrganizeProcure.getMobile());
+            cmUser.setUserIdentity(1);
+            cmUser.setRegisterTime(dateFormat.format(date));
+            cmUser.setServiceProviderStatus("90");
+            cmUser.setUserPermission(4);
+            cmUser.setRealName(cmOrganizeProcure.getName());
+            cmUser.setUserName(cmOrganizeProcure.getName());
+            cmUser.setName(cmOrganizeProcure.getName());
+            cmUser.setClubStatus("90");
+            cmUser.setAuditStatus("1");
+            cmUser.setValidFlag(1);
+            cmUser.setAuditTime(dateFormat.format(date));
+            cmOperationUserDao.insertUser(cmUser);
+            // 添加采购员
+            cmOrganizeProcure.setUserId(cmUser.getUserId());
+            cmOrganizeProcure.setAddTime(dateFormat.format(date));
+            cmOrganizeProcure.setValidFlag(1);
+            cmOrganizeProcure.setStatus(90);
+            cmOrganizeProcure.setAuditStatus(1);
+            cmOrganizeProcure.setAuditTime(dateFormat.format(date));
+            cmOrganizeProcure.setLinkMan(cmOrganizeProcure.getName());
+            cmOperationUserDao.insertProcure(cmOrganizeProcure);
+            // 采购员id
+            cmOperationUserDao.updateUserSpId(cmOrganizeProcure.getServiceProviderId(),cmUser.getUserId());
+            // 修改机构采购员
+            if (null != cmOrganizeProcure.getClubList()) {
+                List<Integer> collect = cmOrganizeProcure.getClubList().stream().map(NewCmClub::getClubId).collect(Collectors.toList());
+                for (Integer id : collect) {
+                    // 机构
+                    cmOperationUserDao.updateClub(cmOrganizeProcure.getServiceProviderId(), id);
+                    // 用户
+                    cmOperationUserDao.updateUser(cmOrganizeProcure.getServiceProviderId(),id);
+                }
+            }
+        } else {
+            // 修改采购员信息
+            cmOrganizeProcure.setValidFlag(1);
+            cmOrganizeProcure.setLinkMan(cmOrganizeProcure.getName());
+            cmOperationUserDao.updateProcure(cmOrganizeProcure);
+            // 修改用户信息
+            cmOperationUserDao.updateUserData(cmOrganizeProcure.getMobile(), cmOrganizeProcure.getName(), cmOrganizeProcure.getUserId());
+            // 修改绑定机构
+            ArrayList<Integer> arrayList = new ArrayList<>();
+            // 采购员绑定机构
+            List<NewCmClub> clubs = cmOperationUserDao.getClubs(cmOrganizeProcure.getServiceProviderId());
+            if (null != cmOrganizeProcure.getClubList()) {
+                // 重新选择的机构集合
+                List<Integer> collect = cmOrganizeProcure.getClubList().stream().map(NewCmClub::getClubId).collect(Collectors.toList());
+                // 不在绑定在该采购员的集合
+                for (NewCmClub club : clubs) {
+                    if (!collect.contains(club.getClubId())) {
+                        arrayList.add(club.getClubId());
+                    }
+                }
+                // 重新选择的机构采购员更新
+                for (Integer id : collect) {
+                    // 机构
+                    cmOperationUserDao.updateClub(cmOrganizeProcure.getServiceProviderId(), id);
+                    // 用户
+                    cmOperationUserDao.updateUser(cmOrganizeProcure.getServiceProviderId(),id);
+                }
+                // 不在该采购员名下机构 采购员设置为默认空
+                for (Integer arr: arrayList) {
+                    // 机构
+                    cmOperationUserDao.updateClub(0, arr);
+                    // 用户
+                    cmOperationUserDao.updateUser(0, arr);
+                }
+            } else {
+                // 未选择绑定机构,将名下所有机构改为空
+                for (NewCmClub club : clubs) {
+                    // 机构
+                    cmOperationUserDao.updateClub(0, club.getClubId());
+                    // 用户
+                    cmOperationUserDao.updateUser(0, club.getClubId());
+                }
+            }
+        }
+        map.put("code",1);
+        map.put("msg","保存成功");
+        return ResponseJson.success(map);
+    }
 }

+ 2 - 0
src/main/java/com/caimei/modules/groupbuy/service/ProcureService.java

@@ -157,7 +157,9 @@ public class ProcureService {
             String format = dateFormat.format(new Date(p.getSaveTime()));
             buyerDto.setSaveTime(format);
             int count = (int) mongoTemplate.count(Query.query(Criteria.where("procureId").is(p.getId())), AdditionalPo.class);
+            log.info("p.getUserId()======"+p.getUserId());
             CmUser linkMan = userDao.findLinkMan(p.getUserId());
+            log.info("linkMan======"+linkMan);
             buyerDto.setLinkMan(linkMan.getLinkMan());
             buyerDto.setMobile(linkMan.getMobile());
             buyerDto.setClubCount(count);

+ 4 - 4
src/main/java/com/caimei/modules/order/controller/OrderPayShopController.java

@@ -149,9 +149,9 @@ public class OrderPayShopController {
     }
 
     @ApiOperation("订单收付款记录")
-    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
-    @GetMapping("/receipt/record/{orderId}/{shopOrderId}")
-    public ResponseJson<Map<String, Object>> findReceiptRecord(@PathVariable Integer orderId,@PathVariable Integer shopOrderId) {
-        return payShopService.findReceiptRecord(orderId,shopOrderId);
+    @ApiImplicitParam(name = "shopOrderId", value = "订单id", required = true)
+    @GetMapping("/receipt/record/{shopOrderId}")
+    public ResponseJson<Map<String, Object>> findReceiptRecord(@PathVariable Integer shopOrderId) {
+        return payShopService.findReceiptRecord(shopOrderId);
     }
 }

+ 1 - 1
src/main/java/com/caimei/modules/order/controller/OrganizeOrderController.java

@@ -68,7 +68,7 @@ public class OrganizeOrderController {
     }
 
     /**
-     * 查询参数 :订单Id,订单编号,下单时间/终止时间,买家,收货人,订单状态,收款状态,发货状态,退款状态,待审核退款
+     * 查询参数 :订单Id,订单编号,下单时间/终止时间,买家,收货人,订单状态,收款状态,发货状态,退款状态,待审核退款,订单类型
      */
     @ApiOperation("订单列表")
     @GetMapping("orderList")

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/NewOrderDao.java

@@ -28,6 +28,8 @@ public interface NewOrderDao {
 
     List<NewShopOrder> getShopOrderByOrderId(Integer orderId);
 
+    Integer getOrderById(Integer shopOrderId);
+
     Double getPaidShopAmount(Integer shopOrderId);
 
     void updateShopOrderByPayStatus(Integer shopOrderId, Double paidShop, Integer payStatus);

+ 1 - 1
src/main/java/com/caimei/modules/order/dao/PayShopDao.java

@@ -75,7 +75,7 @@ public interface PayShopDao {
 
     List<SplitRecord> findSplitRecord(Integer orderId);
 
-    List<OrderPayShopRecord> findPayShopRecordsByOrder(Integer orderId);
+    List<OrderPayShopRecord> findPayShopRecordsByOrder(Integer shopOrderId);
 
     void backPayRecord(Integer id);
 

+ 6 - 4
src/main/java/com/caimei/modules/order/entity/NewOrder.java

@@ -33,6 +33,9 @@ public class NewOrder implements Serializable {
 
     private Integer organizeId;
 
+    @ApiModelProperty("订单类型  0协销订单、 1普通订单、 2呵呵订单")
+    private Integer orderType;
+
     @ApiModelProperty("订单提交类型")
     private String orderSubmitType;
 
@@ -67,6 +70,9 @@ public class NewOrder implements Serializable {
     @ApiModelProperty("协销id")
     private Integer spId;
 
+    @ApiModelProperty("协销名称")
+    private String spName;
+
     @ApiModelProperty("订单备注(买家留言)")
     private String note;
 
@@ -147,9 +153,6 @@ public class NewOrder implements Serializable {
     @ApiModelProperty("退货退款类型:0无退款、1部分退、2全部退")
     private String refundType;
 
-    private String orderType;//    订单类型 0协销订单、 1普通订单、 2呵呵订单
-
-
     @ApiModelProperty("邮费订单标识 1是邮费订单  0不是邮费订单")
     private String postageOrderFlag = "0";
 
@@ -266,7 +269,6 @@ public class NewOrder implements Serializable {
     private String startRefundTime;
     private String endRefundTime;
     private String shopNameInfo;//
-    private String spName;
     private Integer serviceProviderId;  //协销Id
     private Double settleAmount;   // 已结算金额
     private Integer splitCount;  //分账记录数

+ 4 - 0
src/main/java/com/caimei/modules/order/entity/NewShopOrder.java

@@ -183,6 +183,10 @@ public class NewShopOrder {
     private String sendOutStatus;
     @ApiModelProperty("收货人")
     private String receiver;
+    @ApiModelProperty("手机")
+    private String mobile;
+    @ApiModelProperty("地址")
+    private String address;
     @ApiModelProperty("'0'=不是邮费商品子订单; '1'=是邮费商品子订单")
     private String postFeeCos = "0";
     @ApiModelProperty("机构名称")

+ 6 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfo.java

@@ -38,6 +38,12 @@ public class ReceiptOrderInfo implements Serializable {
     @ApiModelProperty("机构名称")
     private String clubName;
 
+    @ApiModelProperty("订单类型")
+    private Integer orderType;
+
+    @ApiModelProperty("协销名称")
+    private String spName;
+
     @ApiModelProperty("订单收款状态:1待收款、2部分收款、3已收款")
     private Integer receiptStatus;
 

+ 6 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptVo.java

@@ -59,6 +59,12 @@ public class ReceiptVo implements Serializable {
     @ApiModelProperty("组织id")
     private Integer organizeId;
 
+    @ApiModelProperty("查询条件:订单类型")
+    private Integer orderType;
+
+    @ApiModelProperty("协销名称")
+    private String spName;
+
     @ApiModelProperty("查询条件:机构名称")
     private String clubName;
 

+ 1 - 1
src/main/java/com/caimei/modules/order/service/PayShopService.java

@@ -37,7 +37,7 @@ public interface PayShopService {
 
     ResponseJson<Map<String,Object>> findSplitRecord(Integer orderId);
 
-    ResponseJson<Map<String,Object>> findReceiptRecord(Integer orderId,Integer shopOrderId);
+    ResponseJson<Map<String,Object>> findReceiptRecord(Integer shopOrderId);
 
     ResponseJson backPay(Integer id);
 

+ 5 - 2
src/main/java/com/caimei/modules/order/service/impl/NewOrderServiceImpl.java

@@ -13,6 +13,7 @@ import com.caimei.utils.AppUtils;
 import com.caimei.utils.NewOrderStatus;
 import com.caimei.utils.ResponseJson;
 import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -25,6 +26,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class NewOrderServiceImpl implements NewOrderService {
 
     @Resource
@@ -68,9 +70,9 @@ public class NewOrderServiceImpl implements NewOrderService {
             AtomicReference<Double> totalAddedValueTax = new AtomicReference<>(0D);
             if (CollectionUtils.isNotEmpty(shopOrders)) {
                 for (NewShopOrder shopOrder : shopOrders) {
+                    orderUtil.setShopOrderStatus(shopOrder);
                     List<NewOrderProduct> pList = newOrderProductDao.findListByShopOrderId(shopOrder.getShopOrderId());
                     list.addAll(pList);
-                    shopOrder.setNewOrderProducts(pList);
                     if (pList.stream().anyMatch(p -> p.getProductId() == 999)) {
                         shopOrder.setPostFeeCos("1");
                     }
@@ -82,7 +84,7 @@ public class NewOrderServiceImpl implements NewOrderService {
                             item.setReturnedNum(returnedNum);
                         }
                         /**确认收货信息*/
-                        if (NewOrderStatus.hasReceived(newOrder.getStatus())) {
+                        if (NewOrderStatus.hasReceived(shopOrder.getShopStatus())) {
                             Integer receivedNum = newOrderProductDao.getReceivedNum(item.getOrderProductId());
                             item.setReceivedNum(receivedNum);
                         }
@@ -94,6 +96,7 @@ public class NewOrderServiceImpl implements NewOrderService {
                     });
                     Double payed = cmPayShopRecordDao.sumByShopOrderId(shopOrder.getShopOrderId());
                     shopOrder.setPayed(payed);
+                    shopOrder.setNewOrderProducts(pList);
                 }
                 newOrder.setNewShopOrders(shopOrders);
             }

+ 8 - 4
src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java

@@ -491,19 +491,23 @@ public class PayShopServiceImpl implements PayShopService {
     }
 
     @Override
-    public ResponseJson<Map<String, Object>> findReceiptRecord(Integer orderId,Integer shopOrderId) {
+    public ResponseJson<Map<String, Object>> findReceiptRecord(Integer shopOrderId) {
         Map<String, Object> val = new HashMap<>(3);
+        // 根据子订单Id查询主订单
+        Integer orderId = newOrderDao.getOrderById(shopOrderId);
         //过滤子订单
         NewOrder newOrder = newOrderDao.get(orderId.toString());
         orderUtils.setReceiverVal(newOrder);
         orderUtils.setOrderValue(newOrder);
-
-        List<NewShopOrder>  newShopOrders= newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderId().equals(shopOrderId)).collect(Collectors.toList());
+        // 设置子订单信息
+        List<NewShopOrder> newShopOrders = newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderId().equals(shopOrderId)).collect(Collectors.toList());
         newOrder.setNewShopOrders(newShopOrders);
+        // 设置运费展示信息
         if(newOrder.getNewShopOrders()!=null&&newOrder.getNewShopOrders().size()>0){
             newOrder.getNewShopOrders().get(0).setPostageInfo(newOrder.getPostageInfo());
         }
-        val.put("order", newOrder);
+
+        val.put("shopOrder", newShopOrders.get(0));
         newOrder.setShopOrderId(shopOrderId);
         List<ReceiptVo> receiptVos = orderUtils.getReceiptRecord(newOrder);
         val.put("receiptList", receiptVos);

+ 54 - 2
src/main/java/com/caimei/modules/order/util/OrderUtils.java

@@ -48,6 +48,8 @@ public class OrderUtils {
     @Resource
     private CmReturnedPurchaseDao returnDao;
     @Resource
+    private NewOrderProductDao newOrderProductDao;
+    @Resource
     private CmDiscernReceiptDao receiptDao;
     @Resource
     private  NewOrderService newOrderService;
@@ -60,12 +62,12 @@ public class OrderUtils {
      * @param shopOrder
      */
     public NewShopOrder getShouldPay(NewShopOrder shopOrder) {
+        setShopOrderStatus(shopOrder);
         List<NewOrderProduct> products = payShopDao.findPayOrderProducts(shopOrder.getShopOrderId());
         shopOrder.setShopOrderNos(payShopDao.findShopOrderNos(shopOrder.getOrderId()));
         AtomicReference<BigDecimal> organizeFee = new AtomicReference<>();
         AtomicReference<BigDecimal> shopFee = new AtomicReference<>();
         AtomicReference<BigDecimal> totalAmount = new AtomicReference<>();
-        shopOrder.setNewOrderProducts(products);
         products.forEach(p -> {
             // 商品总价 * 供应商成本比例 - 手续费 = 应付供应商
             shopFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), MathUtil.div(p.getShopPercent(), 100), 2), shopFee.get()));
@@ -73,7 +75,15 @@ public class OrderUtils {
             organizeFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), MathUtil.div(p.getOrganizePercent(), 100), 2), organizeFee.get()));
             // 商品总价
             totalAmount.set(MathUtil.add(p.getTotalAmount(), totalAmount.get()));
+            /**
+             * 确认收货信息
+             */
+            if (NewOrderStatus.hasReceived(shopOrder.getShopStatus())) {
+                Integer receivedNum = newOrderProductDao.getReceivedNum(p.getOrderProductId());
+                p.setReceivedNum(receivedNum);
+            }
         });
+        shopOrder.setNewOrderProducts(products);
         // 子订单总额 - 付供应商成本 - 付组织 = 应付采美
         Double cmFee = MathUtil.sub(totalAmount.get(), MathUtil.add(shopFee.get(), organizeFee.get())).doubleValue();
 
@@ -397,6 +407,12 @@ public class OrderUtils {
         order.setPaidAmount(MathUtil.add(totalPaidCm, totalPaidShop).doubleValue());
         setRefundVal(order);
         setOrderPostInfo(order);
+        // 设置基础信息
+        shopOrders.forEach(shopOrder -> {
+            shopOrder.setReceiver(order.getReceiver());
+            shopOrder.setMobile(order.getMobile());
+            shopOrder.setAddress(order.getAddress());
+        });
         return order;
     }
 
@@ -467,6 +483,42 @@ public class OrderUtils {
         }
     }
 
+    /**
+     * 设置子订单状态
+     * shopStatus  0:待确认 1:已确认 2:交易完成 3:订单完成 4:已关闭 5:交易全退
+     *
+     * payStatus (付款供应商)付款状态:1待付款、2部分付款、3已付款
+     * sendOutStatus  发货状态:1待发货、2部分发货、3已发货
+     * receiptStatus 收款状态:1待收款、2部分收款、3已收款
+     */
+    public void setShopOrderStatus(NewShopOrder newShopOrder) {
+        // 11, 待付待收待发
+        if (("1".equals(newShopOrder.getShopStatus()) || "2".equals(newShopOrder.getShopStatus()) || "3".equals(newShopOrder.getShopStatus())) && "1".equals(newShopOrder.getOrderStatusFlag()) && "1".equals(newShopOrder.getRefundStatus())) {
+            if ( "1".equals(newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())){
+                newShopOrder.setShopStatus("11");
+            } else if ( "1".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("12");
+            } else if ( "1".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("13");
+            } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("21");
+            } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("22");
+            } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("23");
+            } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("31");
+            } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("32");
+            } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
+                newShopOrder.setShopStatus("33");
+            }
+        }
+        if (!"1".equals(newShopOrder.getOrderStatusFlag()) || !"1".equals(newShopOrder.getRefundStatus())) {
+            newShopOrder.setShopStatus("5");
+        }
+    }
+
     /**
      * 设置收货人信息
      *
@@ -511,7 +563,7 @@ public class OrderUtils {
     }
 
     public List<OrderPayShopRecord> getPayRecords(NewOrder newOrder) {
-        return payShopDao.findPayShopRecordsByOrder(newOrder.getOrderId());
+        return payShopDao.findPayShopRecordsByOrder(newOrder.getShopOrderId());
     }
 
     public Boolean setDeliverStatus(List<NewOrderProduct> orderProducts) {

+ 22 - 1
src/main/resources/mapper/CmDiscernReceiptMapper.xml

@@ -61,12 +61,17 @@
         cof.bankAccount AS bankNameType,
         cr.organizeId AS organizeId,
         cr.orderNo,
+        cr.orderType,
+        (CASE WHEN cr.orderType = '0' THEN sp.linkMan
+        ELSE ''
+        END) AS spName,
         c.name as clubName
         FROM cm_discern_receipt a
         left join cm_receipt_order_relation crr on crr.receiptId = a.id and crr.delFlag = '0'
         LEFT JOIN cm_shop_order cso ON cso.shopOrderId = crr.orderId
         LEFT JOIN cm_order cr ON cr.orderId = cso.orderId
         LEFT JOIN club c ON cr.userId = c.userId
+        left join serviceprovider sp ON cr.spID = sp.serviceProviderID
         LEFT JOIN cm_offline_collection cof ON a.payType = cof.type
         <where>
             crr.relationType = 1
@@ -102,6 +107,9 @@
             <if test="receiptProgress != null">
                 AND cr.receiptStatus = #{receiptProgress}
             </if>
+            <if test="orderType != null">
+                AND cr.orderType = #{orderType}
+            </if>
             <if test="associationNum != null and associationNum != ''">
                 <if test="associationNum == 1">
                     and (select count(1) from cm_receipt_order_relation where receiptId = a.id and delFlag = '0') = 1
@@ -131,12 +139,17 @@
         cof.bankAccount AS bankNameType,
         cr.organizeId AS organizeId,
         cr.orderNo,
+        cr.orderType,
+        (CASE WHEN cr.orderType = '0' THEN sp.linkMan
+        ELSE ''
+        END) AS spName,
         c.name as clubName
         FROM cm_discern_receipt a
         LEFT JOIN cm_receipt_order_relation crr ON crr.receiptId = a.id AND crr.delFlag = '0'
         LEFT JOIN cm_shop_order cso ON cso.orderId = crr.orderId
         LEFT JOIN cm_order cr ON cr.orderId = cso.orderId
         LEFT JOIN club c ON cr.userId = c.userId
+        left join serviceprovider sp ON c.spID = sp.serviceProviderID
         LEFT JOIN cm_offline_collection cof ON a.payType = cof.type
         <where>
             crr.relationType != 1
@@ -174,6 +187,9 @@
             <if test="receiptProgress != null">
                 AND cr.receiptStatus = #{receiptProgress}
             </if>
+            <if test="orderType != null">
+                AND cr.orderType = #{orderType}
+            </if>
             <if test="associationNum != null and associationNum != ''">
                 <if test="associationNum == 1">
                     and (select count(1) from cm_receipt_order_relation where receiptId = a.id and delFlag = '0') = 1
@@ -214,6 +230,7 @@
                co.orderId,
                co.payTotalFee as orderAmount,
                co.payableAmount,
+               co.orderType,
                (select ifnull(sum(cror.associateAmount),0)
                 from cm_receipt_order_relation cror
                          left join cm_order o on o.orderId = cror.orderId
@@ -225,9 +242,13 @@
                )              AS receiptAmount,
                c.name       AS clubName,
                co.receiptStatus,
-               co.orderTime
+               co.orderTime,
+               (CASE WHEN co.orderType = '0' THEN sp.linkMan
+                     ELSE ''
+                   END) AS spName
         from cm_order co
         left join club c on co.userId = c.userId
+        left join serviceprovider sp ON co.spID = sp.serviceProviderID
         where co.orderId = #{orderId}
 
     </select>

+ 263 - 3
src/main/resources/mapper/CmOperationUserMapper.xml

@@ -27,7 +27,7 @@
         <include refid="cmOperationUserColumns"/>
         FROM cm_mall_operation_user a
         <where>
-
+            a.delFlag = 0 and a.clubID = #{clubId}
             <if test="mobile != null and mobile != ''">
                 AND a.mobile LIKE
                 concat('%',#{mobile},'%')
@@ -48,7 +48,6 @@
             <if test="clubId != null and clubId != ''">
                 AND a.clubID = #{clubId}
             </if>
-            AND a.delFlag = 0
         </where>
             ORDER BY a.addTime DESC
     </select>
@@ -172,4 +171,265 @@
 		AND  userOrganizeID = #{userOrganizeId}
 		and  userID = #{userId}
 	</update>
-</mapper>
+    <select id="getProcure" resultType="com.caimei.modules.club.entity.CmOrganizeProcure">
+        SELECT
+        a.serviceProviderID AS "serviceProviderId",
+        a.userID AS "userID",
+        a.organizeID as organizeId,
+        a.name AS "name",
+        a.linkMan AS "linkMan",
+        a.contractMobile AS "mobile",
+        a.status AS "status",
+        cmou.id AS "operaId",
+        cmou.bindTime AS "bindTime",
+        a.addTime AS "addTime"
+        FROM serviceprovider a
+        LEFT JOIN cm_mall_operation_user cmou ON a.userId = cmou.userId
+        <where>
+            a.organizeID = #{organizeId} AND a.validFlag = 1
+            <if test="name != null and name != ''">
+                and a.name like concat('%',#{name},'%')
+            </if>
+            <if test="mobile != null and mobile != ''">
+                and a.contractMobile like concat('%',#{mobile},'%')
+            </if>
+            <if test="status != null and status != ''">
+                and a.status = #{status}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                and a.addTime <![CDATA[ > ]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                and a.addTime <![CDATA[ < ]]> #{endTime}
+            </if>
+        </where>
+        order by a.addTime desc
+    </select>
+    <select id="getClubInfo" resultType="com.caimei.modules.club.entity.NewCmClub">
+        select userID as userId, clubID as clubId, name, spID as spId from club
+        <where>
+            <if test="spIds.size() > 0">
+                spId in
+                <foreach collection="spIds" item="spId" open="(" separator="," close=")">
+                    #{spId}
+                </foreach>
+            </if>
+        </where>
+    </select>
+    <select id="getProcureById" resultType="com.caimei.modules.club.entity.CmOrganizeProcure">
+        SELECT
+            a.serviceProviderID AS "serviceProviderId",
+            a.userID AS "userID",
+            a.organizeID as organizeId,
+            a.name AS "name",
+            a.linkMan AS "linkMan",
+            a.contractMobile AS "mobile",
+            a.status AS "status",
+            cmou.id AS "operaId",
+            cmou.bindTime AS "bindTime",
+            a.addTime AS "addTime"
+        FROM serviceprovider a
+        LEFT JOIN cm_mall_operation_user cmou ON a.userId = cmou.userId
+        where a.serviceProviderID = #{serviceProviderId}
+    </select>
+    <update id="setStatus">
+        update serviceprovider
+        set status = #{status}
+        where serviceProviderID = #{serviceProviderId}
+    </update>
+    <select id="setUserServiceStatus">
+        update user
+        set serviceProviderStatus = #{status},
+            userPermission = #{userPermission},
+            validFlag = #{validFlag}
+        where userId = #{userId}
+    </select>
+    <select id="getProcureInfo" resultType="com.caimei.modules.club.entity.CmOrganizeProcure">
+        select serviceProviderID AS serviceProviderId,
+               userID AS userID,
+               organizeID as organizeId,
+               name AS name,
+               status,
+               linkMan AS linkMan,
+               contractMobile AS mobile
+        from serviceprovider
+        where validFlag = 1 and serviceProviderID = #{serviceProviderId}
+    </select>
+    <select id="getClubs" resultType="com.caimei.modules.club.entity.NewCmClub">
+        select
+            clubID as clubId,
+            userID as userId,
+            name,
+            status,
+            linkMan,
+            contractMobile,
+            spId
+        from club
+        where spId = #{serviceProviderId}
+        order by addTime desc
+    </select>
+    <select id="getClubEchoInfo" resultType="com.caimei.modules.club.entity.NewCmClub">
+        select
+            c.clubID as clubId,
+            c.userID as userId,
+            c.name,
+            c.status,
+            c.linkMan,
+            c.contractMobile,
+            c.spId
+        from club c
+        left join user u on u.userID = c.userID
+        <where>
+            (c.spId is null or c.spId = 1342) and u.userOrganizeID = #{userOrganizeId} and c.status = 90
+            <if test="name != null and name != ''">
+                and c.name like concat('%',#{name},'%')
+            </if>
+            <if test="mobile != null and mobile != ''">
+                and c.contractMobile like concat('%',#{mobile},'%')
+            </if>
+        </where>
+        order by c.addTime desc
+    </select>
+    <select id="getUserId" resultType="java.lang.Integer">
+        SELECT userID FROM USER WHERE mobile = #{mobile}
+    </select>
+    <insert id="insertUser" parameterType="com.caimei.modules.club.entity.CmUser" keyProperty="userId" keyColumn="userID" useGeneratedKeys="true">
+        INSERT INTO user(
+        userOrganizeID,
+        account,
+        realName,
+        userIdentity,
+        mobile,
+        bindMobile,
+        userPermission,
+        email,
+        userName,
+        image,
+        password,
+        name,
+        registerUserTypeID,
+        manufacturerStatus,
+        shopID,
+        auditStatus,
+        auditTime,
+        auditNote,
+        registerTime,
+        loginTime,
+        validFlag,
+        clubStatus,
+        <if test="clubId != null and clubId != ''">
+            clubID,
+        </if>
+        agreeFlag,
+        serviceProviderStatus,
+        serviceProviderID,
+        userMoney,
+        ableUserMoney,
+        userBeans
+        ) VALUES (
+        #{userOrganizeId},
+        #{account},
+        #{realName},
+        #{userIdentity},
+        #{mobile},
+        #{bindMobile},
+        #{userPermission},
+        #{email},
+        #{userName},
+        #{image},
+        #{password},
+        #{name},
+        #{registerUserTypeId},
+        #{manufacturerStatus},
+        #{shopId},
+        #{auditStatus},
+        #{auditTime},
+        #{auditNote},
+        #{registerTime},
+        #{loginTime},
+        #{validFlag},
+        #{clubStatus},
+        <if test="clubId != null and clubId != ''">
+            #{clubId},
+        </if>
+        #{agreeFlag},
+        #{serviceProviderStatus},
+        #{serviceProviderId},
+        #{userMoney},
+        #{ableUserMoney},
+        #{userBeans}
+        )
+    </insert>
+    <insert id="insertProcure" parameterType="com.caimei.modules.club.entity.CmOrganizeProcure" useGeneratedKeys="true" keyColumn="serviceProviderID" keyProperty="serviceProviderId">
+        INSERT INTO serviceprovider(
+            organizeID,
+            userID,
+            name,
+            contractMobile,
+            linkMan,
+            auditStatus,
+            auditTime,
+            validFlag,
+            status,
+            addTime
+        ) VALUES (
+             #{organizeId},
+             #{userId},
+             #{name},
+             #{mobile},
+             #{linkMan},
+             #{auditStatus},
+             #{auditTime},
+             #{validFlag},
+             #{status},
+             #{addTime}
+         )
+    </insert>
+    <update id="updateProcure">
+        UPDATE serviceprovider SET
+           userID = #{userId},
+           name = #{name},
+           contractMobile = #{mobile},
+           linkMan = #{linkMan},
+           auditStatus = #{auditStatus},
+           auditTime = #{auditTime},
+           validFlag = #{validFlag},
+           status = #{status}
+        WHERE serviceProviderID = #{serviceProviderId}
+    </update>
+    <update id="updateUserData">
+        update user
+        set bindMobile = #{mobile},
+            userName = #{userName}
+        where userId = #{userId}
+    </update>
+    <update id="updateUserSpId">
+        update user
+        set serviceProviderID = #{serviceProviderId}
+        where userId = #{userId}
+    </update>
+    <update id="updateClub">
+        update club
+        <set>
+            <if test="serviceProviderId == 0">
+                spId = null
+            </if>
+            <if test="serviceProviderId != 0">
+                spId = #{serviceProviderId}
+            </if>
+        </set>
+        where clubId = #{clubId}
+    </update>
+    <update id="updateUser">
+        update user
+        <set>
+            <if test="serviceProviderId == 0">
+                serviceProviderID = null
+            </if>
+            <if test="serviceProviderId != 0">
+                serviceProviderID = #{serviceProviderId}
+            </if>
+        </set>
+        where clubId = #{clubId}
+    </update>
+</mapper>

+ 5 - 3
src/main/resources/mapper/CmUserMapper.xml

@@ -19,9 +19,11 @@
         c.address AS "address",
         a.userId,
         c.checkMan,
-        c.auditTime
-        FROM user a
-        LEFT JOIN club c on c.userId = a.userId
+        c.auditTime,
+        sp.linkMan AS "spName"
+        FROM club c
+        LEFT JOIN user a on c.userId = a.userId
+        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
         LEFT JOIN town t on t.townId = c.townId
         LEFT JOIN city ci ON ci.cityId = c.cityId
         LEFT JOIN province p ON p.provinceId = c.provinceId

+ 18 - 2
src/main/resources/mapper/NewOrderMapper.xml

@@ -276,6 +276,7 @@
         co.orderId AS orderId,
         co.orderNo AS orderNo,
         co.organizeId AS organizeId,
+        co.orderType AS orderType,
         co.onlinePayFlag AS onlinePayFlag,
         bou.shouHuoRen AS receiver,
         bou.name AS buyer,
@@ -293,6 +294,9 @@
         co.postageOrderFlag AS postageOrderFlag,
         co.orderSource AS orderSource,
         c.name as clubName,
+        (CASE WHEN co.orderType = '0' THEN sp.linkMan
+            ELSE ''
+            END) AS spName,
         (SELECT IF(COUNT(orderId)>0,1,0) FROM cm_returned_purchase
         WHERE STATUS = 1
         AND delFlag = 0
@@ -301,6 +305,7 @@
         LEFT JOIN bp_order_userinfo bou ON bou.orderId = co.orderId
         left join cm_order_product cop on co.orderId = cop.orderId
         left join club c on co.userId = c.userId
+        LEFT JOIN serviceprovider sp ON co.spID = sp.serviceProviderID
         <where>
              co.organizeId = #{organizeId}
 
@@ -313,7 +318,9 @@
             <if test="clubName != null and clubName != ''">
                 AND c.name = #{clubName}
             </if>
-
+            <if test="orderType != null">
+                AND co.orderType = #{orderType}
+            </if>
             <if test="status != null and status != ''">
                 <choose>
                     <when test="status == '99'.toString()">
@@ -429,9 +436,14 @@
     <select id="get" resultType="com.caimei.modules.order.entity.NewOrder">
         SELECT
         <include refid="columns"/>
-        ,c.name as clubName
+        ,c.name as clubName,
+        a.orderType as orderType,
+        (CASE WHEN a.orderType = '0' THEN sp.linkMan
+            ELSE ''
+            END) AS spName
         FROM cm_order a
         left join club c on a.userId = c.userId
+        LEFT JOIN serviceprovider sp ON a.spID = sp.serviceProviderID
         WHERE a.orderId = #{id}
     </select>
 
@@ -546,6 +558,10 @@
           AND orderId = #{orderId}
     </select>
 
+    <select id="getOrderById" resultType="java.lang.Integer">
+        select orderId from cm_shop_order where shopOrderId = #{shopOrderId} limit 1
+    </select>
+
     <select id="getPaidShopAmount" resultType="java.lang.Double">
         SELECT ifnull(SUM(payAmount),0)
         FROM cm_pay_shop_record

+ 1 - 1
src/main/resources/mapper/PayShopDao.xml

@@ -576,7 +576,7 @@
         FROM cm_pay_shop_record a
         LEFT JOIN cm_offline_collection f ON a.payType = f.type
         left join cm_pay_shop cps on a.shopID = cps.shopID
-        WHERE a.shopOrderID in (select shopOrderId from cm_shop_order where orderId = #{orderId})
+        WHERE a.shopOrderID = #{shopOrderId}
           and a.delFlag = 0
           and cps.delFlag = 0
           and a.status = 1