门店号管理接口

master
LegnaYet 6 years ago
parent 66085d3172
commit bf6d5614ac

@ -178,6 +178,13 @@
<version>3.7.0</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--pinyin 4j-->
<dependency>
<groupId>com.belerweb</groupId>

@ -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);
}
}
/**
*

@ -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<PrivilageCpUserDO> listUser() {
public List<PrivilageCpUserDO> listUser() {
QueryWrapper<PrivilageCpUserDO> params = new QueryWrapper<>();
List<PrivilageCpUserDO> 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<PrivilageCpUserDO> cuUserIdParams = new QueryWrapper<>();
cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY,employee.getUserId());
cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY, employee.getUserId());
List<PrivilageCpUserDO> 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<departIds.length; i++){
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(),departIds[i],orders[i],isLeaderInDept[i]);
for (int i = 0; i < departIds.length; i++) {
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(), departIds[i], orders[i], isLeaderInDept[i]);
privilageCpUserDepartmentDOMapper.insert(relation);
}
@ -108,13 +120,13 @@ public class EmployeeService {
//成功则添加用户到企业微信
qwMailListManageService.addUser(employee);
return ADD_CP_CODE_SUCCESS;
}else{
} else {
Long cpUserId = cuUserIdUser.get(0).getId();
//账号存在则查询是否已经绑定过店铺
QueryWrapper<PrivilageCpUserStoreDO> 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<WxCpUser> wxCpUsers = qwMailListManageService.syncUser();
if (CollectionUtils.isNotEmpty(wxCpUsers)){
if (CollectionUtils.isNotEmpty(wxCpUsers)) {
wxCpUsers.forEach(wxCpUser -> {
QueryWrapper<PrivilageCpUserDO> cuUserIdParams = new QueryWrapper<>();
cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY,wxCpUser.getUserId());
cuUserIdParams.eq(DATABASE_CP_USER_ID_KEY, wxCpUser.getUserId());
List<PrivilageCpUserDO> 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<PrivilageCpUserDepartmentDO> 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<departIds.length; i++){
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(),departIds[i],orders[i],isLeaderInDept[i]);
for (int i = 0; i < departIds.length; i++) {
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(), departIds[i], orders[i], isLeaderInDept[i]);
privilageCpUserDepartmentDOMapper.insert(relation);
}
@ -172,6 +185,7 @@ public class EmployeeService {
/**
*
*
* @param employee
* @return
* @throws WxErrorException
@ -179,25 +193,25 @@ public class EmployeeService {
@Transactional(rollbackFor = Exception.class)
public Boolean updateUser(EmployeeDO employee) throws Exception {
PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO();
BeanUtils.copyProperties(employee,privilageCpUserDO);
BeanUtils.copyProperties(employee, privilageCpUserDO);
privilageCpUserDO.setCpUserId(employee.getUserId());
int update = privilageCpUserDOMapper.updateById(privilageCpUserDO);
if (update == 0){
if (update == 0) {
throw new Exception("修改成员失败");
}
//维护部门关系——删除原有部门关系
QueryWrapper<PrivilageCpUserDepartmentDO> 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<departIds.length; i++){
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(),departIds[i],orders[i],isLeaderInDept[i]);
for (int i = 0; i < departIds.length; i++) {
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(), departIds[i], orders[i], isLeaderInDept[i]);
privilageCpUserDepartmentDOMapper.insert(relation);
}
@ -208,6 +222,7 @@ public class EmployeeService {
/**
*
*
* @param employee
* @return
* @throws WxErrorException
@ -215,12 +230,12 @@ public class EmployeeService {
@Transactional(rollbackFor = Exception.class)
public Boolean deleteUser(Long cpUserId) throws Exception {
PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectById(cpUserId);
if (privilageCpUserDO == null){
if (privilageCpUserDO == null) {
return false;
}
int delete = privilageCpUserDOMapper.deleteById(cpUserId);
if (delete == 0){
if (delete == 0) {
throw new Exception("删除成员失败");
}
//成功则添加用户到企业微信
@ -230,12 +245,86 @@ public class EmployeeService {
/**
*
*
* @param phone
*/
public PrivilageCpUserDO getUserWX(String phone){
public PrivilageCpUserDO getUserWX(String phone) {
PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO();
privilageCpUserDO.setMobile(phone);
return privilageCpUserDOMapper.selectOne(new QueryWrapper<>(privilageCpUserDO));
}
/**
*
* @param response
* @throws WxErrorException
* @throws IOException
*/
public void downLoadQrCode(HttpServletResponse response) throws WxErrorException, IOException {
List<WxCpUser> 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;
}
}

@ -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";
}

@ -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<String,Object> 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();
}
}
}

@ -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;
}

@ -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<String,Object> result = new HashMap<>();
List<PoiStore> poiStores = null;
PageHelper.startPage(pageNum, pageSize);
if (storeId != null){
QueryWrapper<PoiStore> storeParams = new QueryWrapper<>();
poiStores = poiStoreDOMapper.selectList(storeParams);
}else if(regionId != null){
poiStores = poiStoreDOMapper.selectRegionShop(regionId);
}else{
poiStores = poiStoreDOMapper.selectList(null);
}
List<StoreUserDTO> 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<PrivilageCpUserStoreDO> 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<StoreUserDTO> pageList = (Page<StoreUserDTO>)storeUserDTOS;
}
}
Loading…
Cancel
Save