diff --git a/pom.xml b/pom.xml
index 5c2de88..a629c66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -178,6 +178,13 @@
3.7.0
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.2.5
+
+
com.belerweb
diff --git a/src/main/java/com/kiisoo/ic/employee/controller/EmployeeController.java b/src/main/java/com/kiisoo/ic/employee/controller/EmployeeController.java
index 8f77176..48dd763 100644
--- a/src/main/java/com/kiisoo/ic/employee/controller/EmployeeController.java
+++ b/src/main/java/com/kiisoo/ic/employee/controller/EmployeeController.java
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -44,6 +45,20 @@ public class EmployeeController extends BaseController {
return fail();
}
}
+ /**
+ * 新增成员
+ * @param employee 成员实体
+ * @return
+ * @throws WxErrorException
+ */
+ @RequestMapping(value = "qrCode",method = RequestMethod.GET)
+ public void downLoadQrCode(HttpServletResponse response){
+ try {
+ employeeService.downLoadQrCode(response);
+ }catch (Exception e){
+ log.error("添加用户失败",e);
+ }
+ }
/**
* 新增成员
diff --git a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java
index 830e875..3f176bc 100644
--- a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java
+++ b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java
@@ -1,5 +1,7 @@
package com.kiisoo.ic.employee.service;
+import java.io.*;
+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kiisoo.ic.department.entity.PrivilageCpUserDepartmentDO;
import com.kiisoo.ic.department.mapper.PrivilageCpUserDepartmentDOMapper;
@@ -19,9 +21,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
import static com.kiisoo.ic.employee.constant.Constants.*;
@@ -51,19 +60,22 @@ public class EmployeeService {
/**
* 查询成员
+ *
* @param employee 成员实体
* @return
* @throws WxErrorException
*/
@Transactional(rollbackFor = Exception.class)
- public List listUser() {
+ public List listUser() {
QueryWrapper params = new QueryWrapper<>();
List privilageCpUserDOS = privilageCpUserDOMapper.selectList(params);
return privilageCpUserDOS;
}
+
/**
* 新增成员
+ *
* @param employee 成员实体
* @return
* @throws WxErrorException
@@ -72,12 +84,12 @@ public class EmployeeService {
public String addUser(EmployeeDO employee) throws Exception {
//排重---根据企业微信账号查询是否存在用户
QueryWrapper cuUserIdParams = new QueryWrapper<>();
- cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY,employee.getUserId());
+ cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY, employee.getUserId());
List cuUserIdUser = privilageCpUserDOMapper.selectList(cuUserIdParams);
//创建实体对象
PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO();
- BeanUtils.copyProperties(employee,privilageCpUserDO);
+ BeanUtils.copyProperties(employee, privilageCpUserDO);
privilageCpUserDO.setCpUserId(employee.getUserId());
//创建实体和店铺的关系对象
@@ -85,10 +97,10 @@ public class EmployeeService {
cpUserStoreDO.setStoreId(employee.getStoreId());
//是否存在账号
- if (CollectionUtils.isEmpty(cuUserIdUser)){
+ if (CollectionUtils.isEmpty(cuUserIdUser)) {
//不存在则创建账号并绑定与部门的关系
int insert = privilageCpUserDOMapper.insert(privilageCpUserDO);
- if (insert == 0){
+ if (insert == 0) {
throw new Exception("创建成员失败");
}
@@ -96,8 +108,8 @@ public class EmployeeService {
Long[] departIds = employee.getDepartIds();
Integer[] orders = employee.getOrders();
Integer[] isLeaderInDept = employee.getIsLeaderInDept();
- for (int i = 0;i cpStoreRationParams = new QueryWrapper<>();
- cpStoreRationParams.eq(DATABASE_CP_USER_ID_KEY,cpUserId);
+ cpStoreRationParams.eq(DATABASE_CP_USER_ID_KEY, cpUserId);
PrivilageCpUserStoreDO privilageCpUserStoreDO = privilageCpUserStoreDOMapper.selectOne(cpStoreRationParams);
- if (privilageCpUserStoreDO != null){
+ if (privilageCpUserStoreDO != null) {
//绑定过店铺不做任何操作,返回已绑定码和绑定的店铺名,用&分割
PoiStore poiStore = poiStoreDOMapper.selectById(privilageCpUserStoreDO.getStoreId());
return ADD_CP_CODE_BINDED + "&" + poiStore.getName();
@@ -128,6 +140,7 @@ public class EmployeeService {
/**
* 同步成员
+ *
* @param employee 成员实体
* @return
* @throws WxErrorException
@@ -135,34 +148,34 @@ public class EmployeeService {
@Transactional(rollbackFor = Exception.class)
public void syncUser() throws Exception {
List wxCpUsers = qwMailListManageService.syncUser();
- if (CollectionUtils.isNotEmpty(wxCpUsers)){
+ if (CollectionUtils.isNotEmpty(wxCpUsers)) {
wxCpUsers.forEach(wxCpUser -> {
QueryWrapper cuUserIdParams = new QueryWrapper<>();
- cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY,wxCpUser.getUserId());
+ cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY, wxCpUser.getUserId());
List cuUserIdUser = privilageCpUserDOMapper.selectList(cuUserIdParams);
PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO();
- BeanUtils.copyProperties(wxCpUser,privilageCpUserDO);
+ BeanUtils.copyProperties(wxCpUser, privilageCpUserDO);
privilageCpUserDO.setCpUserId(wxCpUser.getUserId());
- if (CollectionUtils.isEmpty(cuUserIdUser)){
+ if (CollectionUtils.isEmpty(cuUserIdUser)) {
//添加用户
int insert = privilageCpUserDOMapper.insert(privilageCpUserDO);
- }else{
+ } else {
privilageCpUserDO.setId(cuUserIdUser.get(0).getId());
//修改用户
int update = privilageCpUserDOMapper.updateById(privilageCpUserDO);
//维护部门关系——删除原有部门关系
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq(DATABASE_CP_USER_ID_KEY,cuUserIdUser.get(0).getId());
+ queryWrapper.eq(DATABASE_CP_USER_ID_KEY, cuUserIdUser.get(0).getId());
privilageCpUserDepartmentDOMapper.delete(queryWrapper);
}
Long[] departIds = wxCpUser.getDepartIds();
Integer[] orders = wxCpUser.getOrders();
Integer[] isLeaderInDept = wxCpUser.getIsLeaderInDept();
- for (int i = 0;i queryWrapper = new QueryWrapper<>();
- queryWrapper.eq(DATABASE_CP_USER_ID_KEY,privilageCpUserDO.getId());
+ queryWrapper.eq(DATABASE_CP_USER_ID_KEY, privilageCpUserDO.getId());
privilageCpUserDepartmentDOMapper.delete(queryWrapper);
Long[] departIds = employee.getDepartIds();
Integer[] orders = employee.getOrders();
Integer[] isLeaderInDept = employee.getIsLeaderInDept();
- for (int i = 0;i(privilageCpUserDO));
}
+ /**
+ * 下载员工二维码
+ * @param response
+ * @throws WxErrorException
+ * @throws IOException
+ */
+ public void downLoadQrCode(HttpServletResponse response) throws WxErrorException, IOException {
+ List wxCpUsers = qwMailListManageService.syncUser();
+
+
+ byte[] buffer = new byte[1024];
+ // 生成的ZIP文件名为Demo.zip
+ String strZipName = "bsd_qr_code.zip";
+ ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName));
+
+
+ int count = wxCpUsers.size();
+
+ for (int i = 0; i < count; i++) {
+ System.out.println("总进度:" + count + " | 当前进度:" + i);
+ WxCpUser wxCpUser = wxCpUsers.get(i);
+ String url = wxCpUser.getQrCode();
+ String code = wxCpUser.getName();
+
+ InputStream inStream = getInputStream(url);
+ out.putNextEntry(new ZipEntry(code + ".png"));
+ int len;
+ // 读入需要下载的文件的内容,打包到zip文件
+ while ((len = inStream.read(buffer)) > 0) {
+ out.write(buffer, 0, len);
+ }
+ out.closeEntry();
+ inStream.close();
+ }
+ out.flush();
+ out.close();
+ System.out.println("生成压缩包成功");
+
+
+ ServletOutputStream outputStream = response.getOutputStream();
+ byte[] bufferNew = new byte[1024];
+ FileInputStream inStream = new FileInputStream(new File(strZipName));
+ int lenNew;
+ // 读入需要下载的文件的内容,打包到zip文件
+ while ((lenNew = inStream.read(bufferNew)) > 0) {
+ outputStream.write(bufferNew, 0, lenNew);
+ }
+
+ }
+
+ /**
+ * 下载url文件
+ * @param fileUrl 文件url
+ * @return
+ */
+ private InputStream getInputStream(String fileUrl) {
+
+ URLConnection connection = null;
+ try {
+ connection = new URL(fileUrl).openConnection();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ InputStream inputStream = null;
+ try {
+ inputStream = connection.getInputStream();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return inputStream;
+ }
+
}
diff --git a/src/main/java/com/kiisoo/ic/store/constant/Constants.java b/src/main/java/com/kiisoo/ic/store/constant/Constants.java
new file mode 100644
index 0000000..33162cc
--- /dev/null
+++ b/src/main/java/com/kiisoo/ic/store/constant/Constants.java
@@ -0,0 +1,16 @@
+package com.kiisoo.ic.store.constant;
+/**
+ * @Description: 店铺相关 静态量
+ * @Auther: yechenhao
+ * @Date: 2020/4/9 14:44
+ * @Version: v1
+ */
+public class Constants {
+ /**
+ * 数据库中的 mobile 字段
+ */
+ public static final String DATABASE_STORE_ID_KEY = "store_id";
+
+
+
+}
diff --git a/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java
new file mode 100644
index 0000000..96bcbdd
--- /dev/null
+++ b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java
@@ -0,0 +1,43 @@
+package com.kiisoo.ic.store.controller;
+
+import com.kiisoo.ic.common.BaseController;
+import com.kiisoo.ic.store.service.StoreEmployeeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.Map;
+
+/**
+ * @Description: 门店号管理controller
+ * @Auther: yechenhao
+ * @Date: 2020/4/9 18:23
+ * @Version: v1
+ */
+@Controller
+@RequestMapping("/store/emp")
+@Slf4j
+public class StoreEmployeeController extends BaseController {
+
+ private StoreEmployeeService storeEmployeeService;
+
+ /**
+ *
+ * @return
+ */
+ @RequestMapping(value = "list",method = RequestMethod.POST)
+ @ResponseBody
+ public Map listStoreUser(@RequestParam("storeId")Long storeId, @RequestParam("regionId")Long regionId,
+ @RequestParam("pageNum")Integer pageNum, @RequestParam("pageSize")Integer pageSize){
+ try {
+ storeEmployeeService.listStoreUser(storeId,regionId,pageNum, pageSize);
+ return data(null);
+ }catch (Exception e){
+ log.error("添加用户失败",e);
+ return fail();
+ }
+ }
+}
diff --git a/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java b/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java
new file mode 100644
index 0000000..4647847
--- /dev/null
+++ b/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java
@@ -0,0 +1,33 @@
+package com.kiisoo.ic.store.entity;
+
+import lombok.Data;
+
+/**
+ * @Description: 门店号数据显示实体
+ * @Auther: yechenhao
+ * @Date: 2020/4/9 18:27
+ * @Version: v1
+ */
+@Data
+public class StoreUserDTO extends PoiStore{
+ /**
+ * 序号
+ */
+ private Integer orderNum;
+ /**
+ * 企业微信账号
+ */
+ private String cpUserId;
+ /**
+ * 导购人数
+ */
+ private Integer staffNum;
+ /**
+ * 顾客人数
+ */
+ private Integer customerNum;
+ /**
+ * 二维码
+ */
+ private Integer qrCodeAction;
+}
diff --git a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java
new file mode 100644
index 0000000..2eedbd4
--- /dev/null
+++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java
@@ -0,0 +1,85 @@
+package com.kiisoo.ic.store.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
+import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
+import com.kiisoo.ic.store.entity.PoiStore;
+import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
+import com.kiisoo.ic.store.entity.StoreUserDTO;
+import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
+import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
+import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+import static com.kiisoo.ic.store.constant.Constants.DATABASE_STORE_ID_KEY;
+
+/**
+ * @Description: 门店号管理service
+ * @Auther: yechenhao
+ * @Date: 2020/4/9 18:27
+ * @Version: v1
+ */
+@Service
+public class StoreEmployeeService {
+
+ private PoiStoreDOMapper poiStoreDOMapper;
+
+ private PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper;
+
+ private PrivilageCpUserDOMapper privilageCpUserDOMapper;
+
+ private PoiStoreStaffDOMapper poiStoreStaffDOMapper;
+
+ /**
+ * 查询门店号
+ * @param storeId 门店id
+ * @param regionId 区域id
+ * @param pageNum 页码
+ * @param pageSize 每页显示条数
+ */
+ public void listStoreUser(Long storeId, Long regionId, Integer pageNum, Integer pageSize) {
+ Map result = new HashMap<>();
+ List poiStores = null;
+ PageHelper.startPage(pageNum, pageSize);
+ if (storeId != null){
+ QueryWrapper storeParams = new QueryWrapper<>();
+ poiStores = poiStoreDOMapper.selectList(storeParams);
+ }else if(regionId != null){
+ poiStores = poiStoreDOMapper.selectRegionShop(regionId);
+ }else{
+ poiStores = poiStoreDOMapper.selectList(null);
+ }
+ List storeUserDTOS = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(poiStores)){
+ int orderNum = (pageNum -1) * pageSize;
+ for(PoiStore store : poiStores) {
+ StoreUserDTO storeUserDTO = new StoreUserDTO();
+ BeanUtils.copyProperties(store,storeUserDTO);
+ //设置序号
+ storeUserDTO.setOrderNum(++orderNum);
+ //查询店铺绑定的企业微信
+ QueryWrapper relationParams = new QueryWrapper<>();
+ relationParams.eq(DATABASE_STORE_ID_KEY,storeUserDTO.getId());
+ PrivilageCpUserStoreDO cpUserStoreDO = privilageCpUserStoreDOMapper.selectOne(relationParams);
+ if (cpUserStoreDO != null){
+ //企业微信存在则查询数据
+ PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectById(cpUserStoreDO.getCpUserId());
+ storeUserDTO.setCpUserId(privilageCpUserDO.getCpUserId());
+ }
+
+ //查询导购数目
+
+// poiStoreStaffDOMapper
+ }
+ }
+
+ Page pageList = (Page)storeUserDTOS;
+
+ }
+}