huangzhiguo пре 2 година
родитељ
комит
b0de4b0fea

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

+ 83 - 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,83 @@ 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 status
+     * @param serviceProviderId
+     */
+    void setStatus(@Param("status") Integer status, @Param("serviceProviderId") Integer serviceProviderId);
+
+    /**
+     * 采购员信息
+     * @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 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);
 }

+ 198 - 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,186 @@ 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) {
+        cmOperationUserDao.setStatus(status, serviceProviderId);
+        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.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.setAuditStatus("1");
+            cmUser.setValidFlag(1);
+            cmUser.setServiceProviderStatus("90");
+            cmUser.setUserPermission(4);
+            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);
+            // 修改机构采购员
+            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);
+            cmOperationUserDao.updateProcure(cmOrganizeProcure);
+            // 修改绑定机构
+            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(1342, arr);
+                    // 用户
+                    cmOperationUserDao.updateUser(1342, arr);
+                }
+            } else {
+                // 未选择绑定机构,将名下所有机构改为默认采购员
+                for (NewCmClub club : clubs) {
+                    // 机构
+                    cmOperationUserDao.updateClub(1342, club.getClubId());
+                    // 用户
+                    cmOperationUserDao.updateUser(1342, club.getClubId());
+                }
+            }
+        }
+        map.put("code",1);
+        map.put("msg","保存成功");
+        return ResponseJson.success(map);
+    }
 }

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

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

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

@@ -30,6 +30,9 @@ public class NewOrder implements Serializable {
 
     private Integer organizeId;
 
+    @ApiModelProperty("订单类型")
+    private Integer orderType;
+
     @ApiModelProperty("订单提交类型")
     private String orderSubmitType;
 
@@ -64,6 +67,9 @@ public class NewOrder implements Serializable {
     @ApiModelProperty("协销id")
     private Integer spId;
 
+    @ApiModelProperty("协销名称")
+    private String spName;
+
     @ApiModelProperty("订单备注(买家留言)")
     private String note;
 

+ 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

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

+ 17 - 2
src/main/resources/mapper/CmDiscernReceiptMapper.xml

@@ -61,10 +61,16 @@
         cof.bankAccount AS bankNameType,
         cr.organizeId AS organizeId,
         cr.orderNo,
+        cr.orderType,
+        (CASE WHEN cr.orderType = '0' THEN
+        ( CASE sp.status WHEN 91 THEN '默认采购员(官方账号)' ELSE sp.linkMan END )
+        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_order cr on cr.orderId = crr.orderId
+        left join serviceprovider sp ON cr.spID = sp.serviceProviderID
         left join club c on cr.userId = c.userId
         left join cm_shop_order cso on cso.orderId = crr.orderId
         LEFT JOIN cm_offline_collection cof ON a.payType = cof.type
@@ -102,6 +108,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
@@ -137,6 +146,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
@@ -148,9 +158,14 @@
                )              AS receiptAmount,
                c.name       AS clubName,
                co.receiptStatus,
-               co.orderTime
+               co.orderTime,
+               (CASE WHEN co.orderType = '0' THEN
+                         ( CASE sp.status WHEN 91 THEN '默认采购员(官方账号)' ELSE sp.linkMan END )
+                     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>
@@ -209,4 +224,4 @@
         from cm_offline_collection
         where organizeId = 4
     </select>
-</mapper>
+</mapper>

+ 215 - 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,217 @@
 		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>
+    <update id="setStatus">
+        update serviceprovider
+        set status = #{status}
+        where serviceProviderID = #{serviceProviderId}
+    </update>
+    <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 != ''">
+                c.name like comcat('%',#{name},'%')
+            </if>
+            <if test="mobile != null and mobile != ''">
+                c.contractMobile like comcat('%',#{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="updateClub">
+        update club
+        set spId = #{serviceProviderId}
+        where clubId = #{clubId}
+    </update>
+    <update id="updateUser">
+        update user
+        set serviceProviderID = #{serviceProviderId}
+        where clubId = #{clubId}
+    </update>
+</mapper>

+ 6 - 4
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,
+        CASE sp.status WHEN 91 THEN '默认采购员(官方账号)' ELSE sp.linkMan END 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
@@ -241,4 +243,4 @@
         </set>
         WHERE userId = #{userId}
     </update>
-</mapper>
+</mapper>

+ 16 - 1
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,
@@ -292,6 +293,10 @@
         co.status AS status,
         co.postageOrderFlag AS postageOrderFlag,
         c.name as clubName,
+        (CASE WHEN co.orderType = '0' THEN
+            ( CASE sp.status WHEN 91 THEN '默认采购员(官方账号)' ELSE sp.linkMan END )
+            ELSE ''
+            END) AS spName,
         (SELECT IF(COUNT(orderId)>0,1,0) FROM cm_returned_purchase
         WHERE STATUS = 1
         AND delFlag = 0
@@ -300,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 c.spID = sp.serviceProviderID
         <where>
             <if test="orderId != null">
                 AND co.orderId = #{orderId}
@@ -310,6 +316,9 @@
             <if test="organizeId != null">
                 AND co.organizeId = #{organizeId}
             </if>
+            <if test="orderType != null">
+                AND co.orderType = #{orderType}
+            </if>
             <if test="status != null and status != ''">
                 <choose>
                     <when test="status == '99'.toString()">
@@ -425,9 +434,15 @@
     <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 co.orderType = '0' THEN
+            ( CASE sp.status WHEN 91 THEN '默认采购员(官方账号)' ELSE sp.linkMan END )
+            ELSE ''
+            END) AS spName
         FROM cm_order a
         left join club c on a.userId = c.userId
+        left join serviceprovider sp ON c.spID = sp.serviceProviderID
         WHERE a.orderId = #{id}
     </select>