Przeglądaj źródła

联合丽格1.0.1

huangzhiguo 2 lat temu
rodzic
commit
b4f345bac3
20 zmienionych plików z 858 dodań i 34 usunięć
  1. 0 1
      src/main/java/com/caimei/modules/order/web/NewOrderController.java
  2. 53 1
      src/main/java/com/caimei/modules/weisha/dao/CmMallOrganizeDao.java
  3. 24 0
      src/main/java/com/caimei/modules/weisha/dao/CmOrganizeStoreDao.java
  4. 98 0
      src/main/java/com/caimei/modules/weisha/entity/CmOrganizeOperate.java
  5. 183 0
      src/main/java/com/caimei/modules/weisha/entity/CmOrganizeProcure.java
  6. 10 1
      src/main/java/com/caimei/modules/weisha/entity/CmOrganizeStore.java
  7. 59 1
      src/main/java/com/caimei/modules/weisha/service/CmMallOrganizeService.java
  8. 12 0
      src/main/java/com/caimei/modules/weisha/service/CmOrganizeStoreService.java
  9. 57 0
      src/main/java/com/caimei/modules/weisha/web/CmMallOrganizeController.java
  10. 36 4
      src/main/java/com/caimei/modules/weisha/web/CmOrganizeStoreController.java
  11. 1 1
      src/main/resources/mappings/modules/user/CmSpMapper.xml
  12. 63 0
      src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml
  13. 34 2
      src/main/resources/mappings/modules/weisha/CmOrganizeStoreMapper.xml
  14. 1 1
      src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp
  15. 13 21
      src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp
  16. 1 1
      src/main/webapp/WEB-INF/views/modules/weisha/CmMallUserList.jsp
  17. 1 0
      src/main/webapp/WEB-INF/views/modules/weisha/cmMallOrganizeList.jsp
  18. 83 0
      src/main/webapp/WEB-INF/views/modules/weisha/cmOrganizeOperate.jsp
  19. 14 0
      src/main/webapp/WEB-INF/views/modules/weisha/cmOrganizeStoreList.jsp
  20. 115 0
      src/main/webapp/WEB-INF/views/modules/weisha/cmProcure.jsp

+ 0 - 1
src/main/java/com/caimei/modules/order/web/NewOrderController.java

@@ -1438,7 +1438,6 @@ public class NewOrderController extends BaseController {
             PostageInfo = order.getFreePostFlag() == "-1" ? "到付" : order.getFreePostFlag() == "0" ? "包邮" : "¥" + order.getFreight();
         }
         //支付凭证
-        Integer orderID = order.getOrderID() == null ? 0: order.getOrderID();
         List<CmOrderPaymentVoucherVo> voucherVo = newOrderService.findVoucherVoOrderID(order.getOrderID());
         //订单已收金额
         Double brokerage = cmUtilsDao.selectPayTotalFees(order.getOrderID());

+ 53 - 1
src/main/java/com/caimei/modules/weisha/dao/CmMallOrganizeDao.java

@@ -1,10 +1,15 @@
 package com.caimei.modules.weisha.dao;
 
+import com.caimei.modules.user.entity.NewCmClub;
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
+import com.caimei.modules.weisha.entity.CmOrganizeProcure;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.caimei.modules.weisha.entity.CmMallOrganize;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 组织列表DAO接口
  *
@@ -23,4 +28,51 @@ public interface CmMallOrganizeDao extends CrudDao<CmMallOrganize> {
      * @return
      */
     CmMallOrganize findOrganizeMobileOnly(CmMallOrganize cmMallOrganize);
-}
+
+    /**
+     * 采购人员列表
+     * @param cmOrganizeProcure
+     * @return
+     */
+    List<CmOrganizeProcure> getServiceInfo(CmOrganizeProcure cmOrganizeProcure);
+
+    /**
+     * 上下线状态
+     * @param status
+     * @param serviceProviderId
+     */
+    void setStatus(@Param("status") String status, @Param("serviceProviderId") String serviceProviderId);
+
+    /**
+     * 采购人员下属机构
+     * @param spIds
+     * @return
+     */
+    List<NewCmClub> getClubNameList(@Param("spIds") List<Integer> spIds);
+
+    /**
+     * 根据Id删除用户
+     * @param userId
+     */
+    void delUser(@Param("userId") Integer userId);
+
+    /**
+     * 删除采购人员
+     * @param serviceProviderId
+     */
+    void delService(@Param("serviceProviderId") Integer serviceProviderId);
+
+    /**
+     * 修改机构采购员信息
+     * @param spId
+     * @param clubId
+     */
+    void updateClub(@Param("spId") Integer spId, @Param("clubId") Integer clubId);
+
+    /**
+     * 修改用户采购员信息
+     * @param spId
+     * @param userId
+     */
+    void updateUser(@Param("spId") Integer spId, @Param("userId") Integer userId);
+}

+ 24 - 0
src/main/java/com/caimei/modules/weisha/dao/CmOrganizeStoreDao.java

@@ -1,5 +1,8 @@
 package com.caimei.modules.weisha.dao;
 
+import com.caimei.modules.user.entity.NewCmClub;
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
+import com.caimei.modules.weisha.entity.CmOrganizeProcure;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.caimei.modules.weisha.entity.CmOrganizeStore;
@@ -27,4 +30,25 @@ public interface CmOrganizeStoreDao extends CrudDao<CmOrganizeStore> {
     List<CmOrganizeStore> findListByMobile(CmOrganizeStore cmOrganizeStore);
 
     String findOrganizeNameById(Integer organizeId);
+
+
+    /**
+     * 运营人员列表
+     * @param cmOrganizeOperate
+     * @return
+     */
+    List<CmOrganizeOperate> getOperate(CmOrganizeOperate cmOrganizeOperate);
+
+    /**
+     * 获取机构名称
+     * @param clubId
+     * @return
+     */
+    String getClubName(@Param("clubId") Integer clubId);
+
+    /**
+     * 解绑微信
+     * @param id
+     */
+    void outWx(@Param("id") Integer id);
 }

+ 98 - 0
src/main/java/com/caimei/modules/weisha/entity/CmOrganizeOperate.java

@@ -0,0 +1,98 @@
+package com.caimei.modules.weisha.entity;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+
+import java.util.Date;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2023/5/23
+ */
+public class CmOrganizeOperate extends DataEntity<CmOrganizeOperate> {
+    /**
+     * 组织Id
+     */
+    private Integer organizeId;
+    /**
+     * 机构Id
+     */
+    private Integer clubId;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String mobile;
+    /**
+     * 是否绑定微信
+     */
+    private Integer status;
+    /**
+     * 绑定时间
+     */
+    private Date bindTime;
+    /**
+     * 添加时间
+     */
+    private Date addTime;
+
+    public Integer getOrganizeId() {
+        return organizeId;
+    }
+
+    public void setOrganizeId(Integer organizeId) {
+        this.organizeId = organizeId;
+    }
+
+    public Integer getClubId() {
+        return clubId;
+    }
+
+    public void setClubId(Integer clubId) {
+        this.clubId = clubId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Date getBindTime() {
+        return bindTime;
+    }
+
+    public void setBindTime(Date bindTime) {
+        this.bindTime = bindTime;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+}

+ 183 - 0
src/main/java/com/caimei/modules/weisha/entity/CmOrganizeProcure.java

@@ -0,0 +1,183 @@
+package com.caimei.modules.weisha.entity;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2023/5/23
+ */
+public class CmOrganizeProcure extends DataEntity<CmOrganizeProcure> {
+    /**
+     * 用户Id
+     */
+    private Integer userID;
+    /**
+     * 组织Id
+     */
+    private Integer organizeId;
+    /**
+     * 绑定微信Id
+     */
+    private Integer operaId;
+    /**
+     * Id
+     */
+    private Integer serviceProviderId;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String mobile;
+    /**
+     * 关联机构
+     */
+    private List<String> clubNames;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 绑定微信
+     */
+    private Integer isWx;
+    /**
+     * 添加事件
+     */
+    private Date addTime;
+    /**
+     * 绑定时间
+     */
+    private Date bindTime;
+    /**
+     * 绑定状态
+     */
+    private String bindInfo;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    public Integer getUserID() {
+        return userID;
+    }
+
+    public void setUserID(Integer userID) {
+        this.userID = userID;
+    }
+
+    public Integer getOrganizeId() {
+        return organizeId;
+    }
+
+    public void setOrganizeId(Integer organizeId) {
+        this.organizeId = organizeId;
+    }
+
+    public Integer getServiceProviderId() {
+        return serviceProviderId;
+    }
+
+    public Integer getOperaId() {
+        return operaId;
+    }
+
+    public void setOperaId(Integer operaId) {
+        this.operaId = operaId;
+    }
+
+    public void setServiceProviderId(Integer serviceProviderId) {
+        this.serviceProviderId = serviceProviderId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public List<String> getClubNames() {
+        return clubNames;
+    }
+
+    public void setClubNames(List<String> clubNames) {
+        this.clubNames = clubNames;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getIsWx() {
+        return isWx;
+    }
+
+    public void setIsWx(Integer isWx) {
+        this.isWx = isWx;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+
+    public Date getBindTime() {
+        return bindTime;
+    }
+
+    public void setBindTime(Date bindTime) {
+        this.bindTime = bindTime;
+    }
+
+    public String getBindInfo() {
+        return bindInfo;
+    }
+
+    public void setBindInfo(String bindInfo) {
+        this.bindInfo = bindInfo;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+}

+ 10 - 1
src/main/java/com/caimei/modules/weisha/entity/CmOrganizeStore.java

@@ -26,7 +26,8 @@ public class CmOrganizeStore extends DataEntity<CmOrganizeStore> {
 	private String address;		// 详细地址
 	private Integer status;		// 门店状态:1已上线,2已下线
 	private Date addTime;		// 添加时间
-	private  Integer isWx; 		// 是否绑定微信
+	private Integer isWx; 		// 是否绑定微信
+	private String shopName;	// 采购员姓名
 
 	private String startTime;	// 查询条件,开始时间
 	private String endTime;	// 查询条件,结束时间
@@ -156,6 +157,14 @@ public class CmOrganizeStore extends DataEntity<CmOrganizeStore> {
 		this.isWx = isWx;
 	}
 
+	public String getShopName() {
+		return shopName;
+	}
+
+	public void setShopName(String shopName) {
+		this.shopName = shopName;
+	}
+
 	public String getStartTime() {
 		return startTime;
 	}

+ 59 - 1
src/main/java/com/caimei/modules/weisha/service/CmMallOrganizeService.java

@@ -1,14 +1,20 @@
 package com.caimei.modules.weisha.service;
 
+import com.caimei.modules.user.entity.NewCmClub;
 import com.caimei.modules.weisha.dao.CmMallOrganizeDao;
+import com.caimei.modules.weisha.dao.CmOrganizeStoreDao;
 import com.caimei.modules.weisha.entity.CmMallOrganize;
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
+import com.caimei.modules.weisha.entity.CmOrganizeProcure;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 组织列表Service
@@ -22,6 +28,8 @@ public class CmMallOrganizeService extends CrudService<CmMallOrganizeDao, CmMall
 
     @Autowired
     private CmMallOrganizeDao organizeDao;
+    @Autowired
+    private CmOrganizeStoreDao cmOrganizeStoreDao;
 
     public CmMallOrganize get(String id) {
         return super.get(id);
@@ -48,4 +56,54 @@ public class CmMallOrganizeService extends CrudService<CmMallOrganizeDao, CmMall
     public CmMallOrganize findOrganizeMobileOnly(CmMallOrganize cmMallOrganize) {
         return organizeDao.findOrganizeMobileOnly(cmMallOrganize);
     }
-}
+
+
+    public Page<CmOrganizeProcure> getProcure(Page<CmOrganizeProcure> page, CmOrganizeProcure cmOrganizeProcure) {
+        cmOrganizeProcure.setPage(page);
+        // 采购人员
+        List<CmOrganizeProcure> serviceInfo = organizeDao.getServiceInfo(cmOrganizeProcure);
+        // 采购人员id集合
+        List<Integer> collect = serviceInfo.stream().map(CmOrganizeProcure::getServiceProviderId).collect(Collectors.toList());
+        // 采购人员机构集合
+        List<NewCmClub> clubNameList = organizeDao.getClubNameList(collect);
+        serviceInfo.forEach(s -> {
+            List<String> strings = clubNameList.stream().filter(c -> c.getSpID().equals(s.getServiceProviderId())).collect(Collectors.toList()).stream().map(NewCmClub::getName).collect(Collectors.toList());
+            s.setClubNames(strings);
+            if (null == s.getBindTime()) {
+                s.setBindInfo("暂未绑定微信");
+            }
+        });
+        page.setList(serviceInfo);
+        return page;
+    }
+
+    @Transactional(readOnly = false)
+    public void setStatus(String status, String id) {
+        organizeDao.setStatus(status, id);
+    }
+
+    @Transactional(readOnly = false)
+    public void cleanWx(Integer id, Integer operaId, Integer userId) {
+        if(null != id) {
+            // 删除用户微信绑定
+            cmOrganizeStoreDao.outWx(id);
+        }
+        if (null != operaId) {
+            // 删除采购员
+            organizeDao.delService(operaId);
+            List<Integer> collect = new ArrayList<>();
+            collect.add(operaId);
+            List<NewCmClub> clubList = organizeDao.getClubNameList(collect);
+            // 更改采购员名下机构 用户采购员信息
+            clubList.forEach(c -> {
+                organizeDao.updateClub(1342, c.getClubID());
+                organizeDao.updateUser(1342, c.getUserID());
+            });
+        }
+        if (null != userId) {
+            // 删除用户
+            organizeDao.delUser(userId);
+        }
+    }
+
+}

+ 12 - 0
src/main/java/com/caimei/modules/weisha/service/CmOrganizeStoreService.java

@@ -2,6 +2,7 @@ package com.caimei.modules.weisha.service;
 
 import java.util.List;
 
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
 import com.caimei.utils.AppKeys;
 import com.caimei.utils.AppUtils;
 import com.thinkgem.jeesite.common.config.Global;
@@ -57,4 +58,15 @@ public class CmOrganizeStoreService extends CrudService<CmOrganizeStoreDao, CmOr
 		cmOrganizeStores.setHeadpic(AppUtils.getImageURL("club", cmOrganizeStores.getHeadpic(), AppKeys.CLUB_LOGO_SIZE, wwwServer));
 		return cmOrganizeStores;
 	}
+	public Page<CmOrganizeOperate> findOperatePage(Page<CmOrganizeOperate> page, CmOrganizeOperate cmOrganizeOperate) {
+		cmOrganizeOperate.setPage(page);
+		List<CmOrganizeOperate> operate = cmOrganizeStoreDao.getOperate(cmOrganizeOperate);
+		page.setList(operate);
+		return page;
+	}
+
+	@Transactional(readOnly = false)
+	public void outWx(Integer id) {
+		cmOrganizeStoreDao.outWx(id);
+	}
 }

+ 57 - 0
src/main/java/com/caimei/modules/weisha/web/CmMallOrganizeController.java

@@ -6,7 +6,11 @@ import com.caimei.modules.user.entity.CmUser;
 import com.caimei.modules.user.entity.NewCmClub;
 import com.caimei.modules.user.service.CmUserService;
 import com.caimei.modules.user.service.NewCmClubService;
+import com.caimei.modules.weisha.dao.CmMallOrganizeDao;
+import com.caimei.modules.weisha.dao.CmOrganizeStoreDao;
 import com.caimei.modules.weisha.entity.CmMallOrganize;
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
+import com.caimei.modules.weisha.entity.CmOrganizeProcure;
 import com.caimei.modules.weisha.service.CmMallOrganizeService;
 import com.caimei.utils.AppKeys;
 import com.caimei.utils.RandomCodeGenerator;
@@ -24,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
@@ -48,6 +53,8 @@ public class CmMallOrganizeController extends BaseController {
 
     @Autowired
     private CmUserService cmUserService;
+    @Resource private CmMallOrganizeDao cmMallOrganizeDao;
+    @Resource private CmOrganizeStoreDao cmOrganizeStoreDao;
 
     @Autowired
     private NewCmClubService newCmClubService;
@@ -166,5 +173,55 @@ public class CmMallOrganizeController extends BaseController {
         cmMallOrganizeService.onlineAndOffline(organizeId, status);
         return "redirect:" + Global.getAdminPath() + "/weisha/cmMallOrganize/?repage";
     }
+    /**
+     * 采购人员列表
+     * @param cmOrganizeProcure
+     * @param model
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping("/procure")
+    public String procure(CmOrganizeProcure cmOrganizeProcure, Model model, HttpServletRequest request, HttpServletResponse response) {
+        Page<CmOrganizeProcure> procure = cmMallOrganizeService.getProcure(new Page<>(request,response), cmOrganizeProcure);
+        String organizeName = cmOrganizeStoreDao.findOrganizeNameById(cmOrganizeProcure.getOrganizeId());
+        model.addAttribute("page", procure);
+        model.addAttribute("cmOrganizeProcure",cmOrganizeProcure);
+        model.addAttribute("organizeName", organizeName);
+        return "modules/weisha/cmProcure";
+    }
 
+    /**
+     * 修改上线下状态
+     * @param status
+     * @param id
+     * @param organizeId
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping("/setStatus")
+    public String setStatus(String status, String id, Integer organizeId, RedirectAttributes redirectAttributes) {
+        if(StringUtils.isEmpty(id) || StringUtils.isBlank(id)) {
+            addMessage(redirectAttributes, "id为空,状态修改失败");
+            return "redirect:"+Global.getAdminPath()+"/weisha/cmMallOrganize/procure?organizeId="+organizeId;
+        }
+        cmMallOrganizeService.setStatus(status,id);
+        addMessage(redirectAttributes, "状态修改成功");
+        return "redirect:"+Global.getAdminPath()+"/weisha/cmMallOrganize/procure?organizeId="+organizeId;
+    }
+    /**
+     * 解除绑定微信
+     * @param id
+     * @param operaId
+     * @param organizeId
+     * @param userId
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping("/cleanWX")
+    public String cleanWX(Integer id, Integer operaId, Integer organizeId, Integer userId, RedirectAttributes redirectAttributes) {
+        cmMallOrganizeService.cleanWx(id, operaId, userId);
+        addMessage(redirectAttributes, "微信绑定解除成功");
+        return "redirect:"+Global.getAdminPath()+"/weisha/cmMallOrganize/procure?organizeId="+organizeId;
+    }
 }

+ 36 - 4
src/main/java/com/caimei/modules/weisha/web/CmOrganizeStoreController.java

@@ -9,14 +9,14 @@ import com.caimei.modules.common.entity.City;
 import com.caimei.modules.common.entity.Province;
 import com.caimei.modules.common.entity.Town;
 import com.caimei.modules.weisha.dao.CmOrganizeStoreDao;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+import com.caimei.modules.weisha.entity.CmOrganizeOperate;
+import com.caimei.modules.weisha.entity.CmOrganizeProcure;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import com.thinkgem.jeesite.common.config.Global;
@@ -71,15 +71,16 @@ public class CmOrganizeStoreController extends BaseController {
 			cmOrganizeStore.setEndTime(cmOrganizeStore.getEndTime().trim() + " 23:59:59");
 		}
 		Page<CmOrganizeStore> page = cmOrganizeStoreService.findPage(new Page<CmOrganizeStore>(request, response), cmOrganizeStore);
-		List<Integer> organizeUser = cmOrganizeStoreDao.getOrganizeUser(cmOrganizeStore.getOrganizeId());
+		/*List<Integer> organizeUser = cmOrganizeStoreDao.getOrganizeUser(cmOrganizeStore.getOrganizeId());
 		page.getList().forEach(p -> {
 			if (organizeUser.contains(p.getUserId())) {
 				p.setIsWx(1);
 			} else {
 				p.setIsWx(0);
 			}
-		});
+		});*/
 		model.addAttribute("page", page);
+		model.addAttribute("cmOrganizeStore",cmOrganizeStore);
 		String organizeName = cmOrganizeStoreDao.findOrganizeNameById(cmOrganizeStore.getOrganizeId());
 		model.addAttribute("organizeName", organizeName);
 		return "modules/weisha/cmOrganizeStoreList";
@@ -184,5 +185,36 @@ public class CmOrganizeStoreController extends BaseController {
 		addMessage(redirectAttributes, "删除门店成功");
 		return "redirect:"+Global.getAdminPath()+"/weisha/cmOrganizeStore/?repage";
 	}
+	/**
+	 * 查看运营人员
+	 * @return
+	 */
+	@RequestMapping("/getOperate")
+	public String getOperate(CmOrganizeOperate cmOrganizeOperate, Model model, HttpServletRequest request, HttpServletResponse response) {
+		Page<CmOrganizeOperate> operatePage = cmOrganizeStoreService.findOperatePage(new Page<CmOrganizeOperate>(request, response), cmOrganizeOperate);
+		String clubName = cmOrganizeStoreDao.getClubName(cmOrganizeOperate.getClubId());
+		model.addAttribute("cmOrganizeOperate", cmOrganizeOperate);
+		model.addAttribute("page", operatePage);
+		model.addAttribute("clubName", clubName);
+		return "modules/weisha/cmOrganizeOperate";
+	}
 
+	/**
+	 * 解除绑定微信
+	 * @param id
+	 * @param organizeId
+	 * @param clubId
+	 * @param redirectAttributes
+	 * @return
+	 */
+	@RequestMapping("/outWx")
+	public String outWx(Integer id, Integer organizeId, Integer clubId, RedirectAttributes redirectAttributes) {
+		if(null == id) {
+			addMessage(redirectAttributes, "id为空,微信绑定解除失败");
+			return "redirect:"+Global.getAdminPath()+"/weisha/cmOrganizeStore/getOperate?organizeId="+organizeId+"&clubId="+clubId;
+		}
+		cmOrganizeStoreService.outWx(id);
+		addMessage(redirectAttributes, "微信绑定解除成功");
+		return "redirect:"+Global.getAdminPath()+"/weisha/cmOrganizeStore/getOperate?organizeId="+organizeId+"&clubId="+clubId;
+	}
 }

+ 1 - 1
src/main/resources/mappings/modules/user/CmSpMapper.xml

@@ -41,7 +41,7 @@
 		LEFT JOIN c_serviceproviderstatus cs ON a.`status` = cs.c_serviceProviderStatusID
 		<include refid="newCmSpJoins"/>
 		<where>
-
+			a.organizeID = 0
 			<if test="serviceProviderID != null and serviceProviderID != ''">
 				AND a.serviceProviderID = #{serviceProviderID}
 			</if>

+ 63 - 0
src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml

@@ -142,4 +142,67 @@
 		</if>
 	</select>
 
+	<select id="getServiceInfo" resultType="com.caimei.modules.weisha.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="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="getClubNameList" resultType="com.caimei.modules.user.entity.NewCmClub">
+		select userID, clubID, name, 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>
+	<delete id="delUser">
+		delete from user where userID = #{userId}
+	</delete>
+	<delete id="delService">
+		delete from serviceprovider where serviceProviderID = #{serviceProviderId}
+	</delete>
+	<update id="updateClub">
+		update club
+		set spId = #{spId}
+		where clubID = #{clubId}
+	</update>
+	<update id="updateUser">
+		update user
+		set serviceProviderID = #{spId}
+		where userID = #{userId}
+	</update>
 </mapper>

+ 34 - 2
src/main/resources/mappings/modules/weisha/CmOrganizeStoreMapper.xml

@@ -100,9 +100,11 @@
 	<select id="findList" resultType="CmOrganizeStore">
 		SELECT
 		<include refid="cmOrganizeUserinfo"/>,
-		<include refid="addressName"/>
+		<include refid="addressName"/>,
+		case sp.serviceProviderID = 1342 or sp.status when 91 then '默认采购员' else sp.linkMan end as shopName
 		FROM USER u
 		LEFT JOIN club c ON c.userId = u.userId
+		left join serviceprovider sp on c.spId = sp.serviceProviderID
 		<include refid="cmOrganizeStoreJoins"/>
 		<where>
 			<if test="name != null and name != ''">
@@ -126,6 +128,9 @@
 			<if test="status != null and status != ''">
 				AND c.status = #{status}
 			</if>
+			<if test="shopName != null and shopName != ''">
+				AND sp.linkMan like concat('%',#{shopName},'%')
+			</if>
 			<if test="startTime != null and startTime != ''">
 				AND c.addTime >= #{startTime}
 			</if>
@@ -213,7 +218,34 @@
 	<select id="findOrganizeNameById" resultType="java.lang.String">
 		select organizeName from cm_mall_organize where id = #{organizeId}
 	</select>
-
+	<select id="getOperate" resultType="com.caimei.modules.weisha.entity.CmOrganizeOperate">
+		SELECT
+		cmou.id,
+		cmou.userOrganizeID as organizeId,
+		cmou.clubId,
+		u.userName AS name,
+		u.bindMobile AS mobile,
+		cmou.status,
+		cmou.bindTime,
+		cmou.addTime
+		FROM cm_mall_operation_user cmou
+		LEFT JOIN USER u ON cmou.userId = u.userId
+		<where>
+			cmou.delFlag = 0 AND cmou.userOrganizeID = #{organizeId} AND cmou.clubId = #{clubId}
+			<if test="name != null and name != ''">
+				and u.userName like concat('%',#{name},'%')
+			</if>
+			<if test="mobile != null and mobile != ''">
+				and u.bindMobile like concat('%',#{mobile},'%')
+			</if>
+		</where>
+	</select>
+	<select id="getClubName" resultType="java.lang.String">
+		select name from club where clubId = #{clubId}
+	</select>
+	<delete id="outWx">
+		delete from cm_mall_operation_user where id = #{id}
+	</delete>
 	<insert id="insert" parameterType="CmOrganizeStore"  keyProperty="id" useGeneratedKeys="true">
 		INSERT INTO cm_organize_store(
 			organizeId,

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp

@@ -152,7 +152,7 @@
     <div>
         <div class="receipt-title">
             <h5>收款信息</h5>
-            <c:if test="${vo.receiptStatus != 5 && vo.payWay eq 2}">
+            <c:if test="${vo.receiptStatus != 5 && vo.payWay eq 2 && organizeID != 4}">
                 <a href="#" onclick="cancel(${vo.receiptID})" class="receipt-order-recall">撤销收款</a>
             </c:if>
         </div>

+ 13 - 21
src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp

@@ -409,10 +409,7 @@
         <td>返佣订单: ${(order.rebateOrder ne '0' || order.rebateFlag eq '1')?'是':'否'}</td>
     </tr>
     <tr>
-        <c:if test="${order.organizeID != 4}">
-            <td>订单类型: <c:if test="${order.orderType == 1}">自主订单</c:if><c:if
-                    test="${order.orderType == 0}">协销订单</c:if></td>
-        </c:if>
+        <td>订单类型: <c:if test="${order.orderType == 1}">自主订单</c:if><c:if test="${order.orderType == 0}">协销订单</c:if></td>
         <td>订单来源: ${fns:getDictLabel(order.orderSource,"bp_orderSource","" )}</td>
         <td>订单状态:
             <c:if test="${order.status eq 11 || order.status eq 12 || order.status eq 13 ||order.status eq 21 ||order.status eq 22 ||
@@ -879,26 +876,21 @@
                 <c:if test="${order.organizeID != 4&&shopOrder.commercialCode eq 'E1807059160' && (order.receiptStatus == 2 || order.receiptStatus == 3)}">
                     <font color="red">(采美信息线上收款)</font>
                 </c:if>
-                <c:if test="${order.organizeID == 4}">
-                    <c:if test="${order.organizeID == 4&& voucherVo eq null }">
-                        <font color="red">(联合丽格线上收款)</font>
-                    </c:if>
-                    <c:if test="${order.organizeID == 4&& voucherVo ne null }">
-                        <font color="red">(联合丽格线下收款)</font>
-                    </c:if>
-                </c:if>
             </span>
             <span>待付金额:<fmt:formatNumber value="${shopOrder.restAmount}" type="currency"/></span>
             <br/>
-            <span>收款状态:
-                <c:if test="${shopOrder.shopReceiptStatus == 1}">
-                    <font color="red">待收款</font>
-                </c:if>
-                <c:if test="${shopOrder.shopReceiptStatus == 2}">
-                    <font color="#ff8c00">部分收款</font>
-                </c:if>
-                <c:if test="${shopOrder.shopReceiptStatus == 3}">
-                    <font color="green">已收款</font>
+            <span>
+                <c:if test="${order.onlinePayFlag == 0}">
+                    收款状态:
+                    <c:if test="${shopOrder.shopReceiptStatus == 1}">
+                        <font color="red">待收款</font>
+                    </c:if>
+                    <c:if test="${shopOrder.shopReceiptStatus == 2}">
+                        <font color="#ff8c00">部分收款</font>
+                    </c:if>
+                    <c:if test="${shopOrder.shopReceiptStatus == 3}">
+                        <font color="green">已收款</font>
+                    </c:if>
                 </c:if>
             </span>
             <span>付款状态:

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/weisha/CmMallUserList.jsp

@@ -34,7 +34,7 @@
                onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
-<%--        &nbsp;&nbsp;<input class="btn btn-primary" style="width: 80px" onclick="window.location='${ctx}/weisha/cmMallUser/mallUserForm?organizeId=${cmMallOrganize.id}'" value="添加"/>--%>
+        &nbsp;&nbsp;<input class="btn btn-primary" style="width: 80px" onclick="window.location='${ctx}/weisha/cmMallUser/mallUserForm?organizeId=${cmMallOrganize.id}'" value="添加"/>
         <div class="clearfix"></div>
     </div>
 </form:form>

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/weisha/cmMallOrganizeList.jsp

@@ -119,6 +119,7 @@
 <%--						<a href="${ctx}/weisha/cmOrganizeBuyer?organizeId=${cmUserOrganize.id}">采购员</a>--%>
 						<a href="${ctx}/weisha/cmOrganizeStore/list?organizeId=${cmUserOrganize.id}">机构列表</a>
 						<a href="${ctx}/weisha/cmOrganizeProduct/list?organizeId=${cmUserOrganize.id}">商品列表</a>
+						<a href="${ctx}/weisha/cmMallOrganize/procure?organizeId=${cmUserOrganize.id}">采购员列表</a>
 						<a href="${ctx}/weisha/cmMallUser/getMallUser?organizeId=${cmUserOrganize.id}">后台用户</a>
 <%--						<a href="${ctx}/weisha/cmOrganizePromotions/list?organizeId=${cmUserOrganize.id}&type=1">促销活动</a>--%>
 					</td>

+ 83 - 0
src/main/webapp/WEB-INF/views/modules/weisha/cmOrganizeOperate.jsp

@@ -0,0 +1,83 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<html>
+<head>
+    <title>查看运营人员</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table th{text-align: center;}
+        .table td{text-align: center;}
+    </style>
+
+</head>
+<body>
+<ul class="nav nav-tabs">
+    <li><a href="${ctx}/weisha/cmMallOrganize">组织列表</a></li>
+    <li><a href="${ctx}/weisha/cmOrganizeStore?organizeId=${cmOrganizeOperate.organizeId}">机构列表</a></li>
+    <li class="active"><a href="${ctx}/weisha/cmOrganizeStore/getOperate?organizeId=${cmOrganizeOperate.organizeId}&clubId=${cmOrganizeOperate.clubId}">查看运营人员</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="cmOrganizeOperate" action="${ctx}/weisha/cmOrganizeStore/getOperate?organizeId=${cmOrganizeOperate.organizeId}&clubId=${cmOrganizeOperate.clubId}" method="post" class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <form:hidden path="organizeId"/>
+    <div class="ul-form">
+        <label>姓名:</label>
+            <form:input path="name" htmlEscape="false" maxlength="30" class="input-medium"/>
+        <label>手机号:</label>
+            <form:input path="mobile" htmlEscape="false" maxlength="11" class="input-medium"/>
+        &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="搜索"/>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<font color="blue">当前机构:${clubName}</font>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+    <thead>
+    <tr>
+        <th>姓名</th>
+        <th>手机号</th>
+        <th>绑定时间</th>
+        <th>添加时间</th>
+        <th>操作</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${page.list}" var="operatePage">
+        <tr>
+            <td>
+                    ${operatePage.name}
+            </td>
+            <td>
+                    ${operatePage.mobile}
+            </td>
+            <td>
+                <fmt:formatDate value="${operatePage.bindTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+            </td>
+            <td>
+                <fmt:formatDate value="${operatePage.addTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+            </td>
+            <td>
+                <c:if test="${operatePage.status eq 2}">
+                    <a href="${ctx}/weisha/cmOrganizeStore/outWx?id=${operatePage.id}&organizeId=${operatePage.organizeId}&clubId=${operatePage.clubId}"
+                       onclick="return confirmx('确定解绑该机构微信吗?解绑后需要重新添加。', this.href)">解绑微信</a>
+                </c:if>
+                <c:if test="${operatePage.status ne 2}"> --- </c:if>
+            </td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+    $(document).ready(function() {
+
+    });
+    function page(n,s){
+        $("#pageNo").val(n);
+        $("#pageSize").val(s);
+        $("#searchForm").submit();
+        return false;
+    }
+</script>
+</body>
+</html>

+ 14 - 0
src/main/webapp/WEB-INF/views/modules/weisha/cmOrganizeStoreList.jsp

@@ -26,6 +26,8 @@
 				<form:input path="linkMan" htmlEscape="false" maxlength="15" class="input-medium"/>
 			 <label>手机号:</label>
 				<form:input path="mobile" htmlEscape="false" maxlength="11" class="input-medium"/>
+			<label>采购员:</label>
+				<form:input path="shopName" htmlEscape="false" maxlength="30" class="input-medium"/>
 			 <label>上线状态:</label>
 			<form:select path="status" class="input-mini">
 				<form:option value="" label="请选择"/>
@@ -57,6 +59,7 @@
 				<th>联系人</th>
 				<th>手机号</th>
 				<th>机构地址</th>
+				<th>采购员</th>
 				<th>状态</th>
 				<th>微信绑定</th>
 				<th>注册时间</th>
@@ -92,6 +95,14 @@
 						 ${cmOrganizeStore.address}
 					</c:if>
 				</td>
+				<td>
+					<c:if test="${empty cmOrganizeStore.shopName}">
+						---
+					</c:if>
+					<c:if test="${!empty cmOrganizeStore.shopName}">
+						${cmOrganizeStore.shopName}
+					</c:if>
+				</td>
 				<td>
 					<c:if test="${cmOrganizeStore.status eq 90}">
 						<font color="green">已上线</font>
@@ -125,6 +136,9 @@
 						<a href="${ctx}/weisha/cmOrganizeStore/cleanWx?userId=${cmOrganizeStore.userId}&organizeId=${cmOrganizeStore.organizeId}"
 						   onclick="return confirmx('确定解绑该机构微信吗?解绑后将不能自动登录小程序。', this.href)">解绑微信</a>
 					</c:if>
+					<c:if test="${cmOrganizeStore.status eq 90 || cmOrganizeStore.status eq 91}">
+						<a href="${ctx}/weisha/cmOrganizeStore/getOperate?organizeId=${cmOrganizeStore.organizeId}&clubId=${cmOrganizeStore.clubId}">查看运营人员</a>
+					</c:if>
 					<a href="javascript: void(0)" onclick="updatePwd(${cmOrganizeStore.userId})">重置密码</a>
 				</td>
 			</tr>

+ 115 - 0
src/main/webapp/WEB-INF/views/modules/weisha/cmProcure.jsp

@@ -0,0 +1,115 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<html>
+<head>
+    <title>查看运营人员</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table th{text-align: center;}
+        .table td{text-align: center;}
+    </style>
+
+</head>
+<body>
+<ul class="nav nav-tabs">
+    <li><a href="${ctx}/weisha/cmMallOrganize">组织列表</a></li>
+    <li class="active"><a href="${ctx}/weisha/cmMallOrganize/procure?organizeId=${cmOrganizeProcure.organizeId}">采购列表</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="cmOrganizeProcure" action="${ctx}/weisha/cmMallOrganize/procure" method="post" class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <form:hidden path="organizeId"/>
+    <div class="ul-form">
+        <label>姓名:</label>
+        <form:input path="name" htmlEscape="false" maxlength="30" class="input-medium"/>
+        <label>手机号:</label>
+        <form:input path="mobile" htmlEscape="false" maxlength="11" class="input-medium"/>
+        <label>状态:</label>
+        <form:select path="status" htmlEscape="false" class="input-medium">
+            <form:option value="" label="请选择"/>
+            <form:option value="90" label="已上线"/>
+            <form:option value="91" label="已下线"/>
+        </form:select>
+        <label>注册时间:</label>
+        <form:input path="startTime" type="text" maxlength="20" class="input-mini Wdate"
+                    value="${visit.startTime}" cssStyle="width: 130px"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+        -
+        <form:input path="endTime" type="text" maxlength="20" class="input-mini Wdate"
+                    value="${visit.startTime}" cssStyle="width: 130px"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+
+        &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="搜索"/>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<font color="blue">当前组织:${organizeName}</font>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+    <thead>
+    <tr>
+        <th>姓名</th>
+        <th>手机号</th>
+        <th>关联机构</th>
+        <th>状态</th>
+        <th>添加时间</th>
+        <th>绑定时间</th>
+        <th>操作</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${page.list}" var="procure">
+        <tr>
+            <td>
+                    ${procure.name}
+            </td>
+            <td>
+                    ${procure.mobile}
+            </td>
+            <td>
+                <c:forEach items="${procure.clubNames}" var="club">
+                    <p>${club}</p>
+                </c:forEach>
+                <c:if test="${empty procure.clubNames}">暂未关联机构</c:if>
+            </td>
+            <td>
+                <c:if test="${procure.status eq 90}">
+                    <font color="green">已上线</font>
+                    <a href="${ctx}/weisha/cmMallOrganize/setStatus?status=91&id=${procure.serviceProviderId}&organizeId=${procure.organizeId}" onclick="return confirmx('确定下线该机构吗?下线后机构将不能登录小程序。', this.href)">下线</a>
+                </c:if>
+                <c:if test="${procure.status eq 91}">
+                    <font color="red">已下线</font>
+                    <a href="${ctx}/weisha/cmMallOrganize/setStatus?status=90&id=${procure.serviceProviderId}&organizeId=${procure.organizeId}" onclick="return confirmx('确定上线该机构吗?', this.href)" >上线</a>
+                </c:if>
+            </td>
+            <td>
+                <fmt:formatDate value="${procure.bindTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+            </td>
+            <td>
+                <fmt:formatDate value="${procure.addTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+            </td>
+            <td>
+                <c:if test="${procure.status eq 90}">
+                    <a href="${ctx}/weisha/cmMallOrganize/cleanWX?id=${procure.operaId}&operaId=${procure.serviceProviderId}&organizeId=${procure.organizeId}&userId=${procure.userID}"
+                       onclick="return confirmx('确定解绑该机构微信吗?解绑后需要重新添加。', this.href)">解绑微信</a>
+                </c:if>
+                <c:if test="${procure.status ne 90}"> --- </c:if>
+            </td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+    $(document).ready(function() {
+
+    });
+    function page(n,s){
+        $("#pageNo").val(n);
+        $("#pageSize").val(s);
+        $("#searchForm").submit();
+        return false;
+    }
+</script>
+</body>
+</html>