推广管理接口

master
yinliujing 6 years ago
parent f81c54cf52
commit f22b1b1d91

@ -84,7 +84,7 @@ public class EmployeeController extends BaseController {
*/
@RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> addUser(@RequestBody EmployeeDO employee){
public Map<String,Object> addUser(EmployeeDO employee){
try {
String code = employeeService.addUser(employee);
return data(code);

@ -47,7 +47,7 @@ public class EmployeeDO {
/**
* 12
*/
private Gender gender;
private int gender;
/**
* 6~64emailmobile/email
*/

@ -96,29 +96,28 @@ public class EmployeeService {
//创建实体和店铺的关系对象
PrivilageCpUserStoreDO cpUserStoreDO = new PrivilageCpUserStoreDO();
cpUserStoreDO.setStoreId(employee.getStoreId());
PoiStore store = poiStoreDOMapper.selectShopByName(employee.getAlias());
if (null == store) store = new PoiStore();
cpUserStoreDO.setStoreId(store.getId());
//是否存在账号
if (CollectionUtils.isEmpty(cuUserIdUser)) {
//不存在则创建账号并绑定与部门的关系
//不存在则创建账号
privilageCpUserDO.setStatus(1);
int insert = privilageCpUserDOMapper.insert(privilageCpUserDO);
if (insert == 0) {
throw new Exception("创建成员失败");
}
//绑定部门关系
Long[] departIds = employee.getDepartIds();
Integer[] orders = employee.getOrders();
Integer[] isLeaderInDept = employee.getIsLeaderInDept();
/* 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]);
PrivilageCpUserDepartmentDO relation = new PrivilageCpUserDepartmentDO(privilageCpUserDO.getId(), departIds[i], null, null);
privilageCpUserDepartmentDOMapper.insert(relation);
}
//插入账号-店铺关系
cpUserStoreDO.setCpUserId(privilageCpUserDO.getId());
privilageCpUserStoreDOMapper.insert(cpUserStoreDO);
//成功则添加用户到企业微信
qwMailListManageService.addUser(employee);
return ADD_CP_CODE_SUCCESS;
@ -255,6 +254,14 @@ public class EmployeeService {
if (delete == 0) {
throw new Exception("删除成员失败");
}
//维护部门关系——删除原有部门关系
QueryWrapper<PrivilageCpUserDepartmentDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(DATABASE_CP_USER_ID_KEY, cpUserId);
privilageCpUserDepartmentDOMapper.delete(queryWrapper);
//删除用户和店铺的关系
QueryWrapper<PrivilageCpUserStoreDO> storeDOQueryWrapper = new QueryWrapper<>();
storeDOQueryWrapper.eq(DATABASE_CP_USER_ID_KEY, cpUserId);
privilageCpUserStoreDOMapper.delete(storeDOQueryWrapper);
//成功则添加用户到企业微信
qwMailListManageService.deleteUser(privilageCpUserDO.getCpUserId());
return true;

@ -1,7 +1,9 @@
package com.kiisoo.ic.store.controller;
import com.github.pagehelper.PageInfo;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.employee.entity.ImportErrorDTO;
import com.kiisoo.ic.store.entity.StoreUserDTO;
import com.kiisoo.ic.store.service.StoreEmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -35,13 +37,13 @@ public class StoreEmployeeController extends BaseController {
*/
@RequestMapping(value = "list",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> listStoreUser(@RequestParam("storeId")Long storeId, @RequestParam("regionId")Long regionId,
public Map<String,Object> listStoreUser(@RequestParam("userId")Long userId,@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);
PageInfo<StoreUserDTO> storeUserDTOS = storeEmployeeService.listStoreUser(userId,storeId,regionId,pageNum, pageSize);
return data(storeUserDTOS);
}catch (Exception e){
log.error("添加用户失败",e);
log.error("查询门店号列表失败",e);
return fail();
}
}

@ -42,9 +42,9 @@ public class StoreStaffController extends BaseController {
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> staffList(int pageNum, int pageSize, long userId, Long shopId, Long regionId) {
public Map<String, Object> staffList(int pageNum, int pageSize, Long shopId) {
try {
IPage<PoiStoreStaffVO> storeStaffIs = poiStoreStaffService.getStaffByUserAndDate( pageNum, pageSize, userId, shopId, regionId);
IPage<PoiStoreStaffVO> storeStaffIs = poiStoreStaffService.getStaffByUserAndDate( pageNum, pageSize, shopId);
return data(storeStaffIs);
} catch (Exception e) {
log.error("获取店铺人员", e);

@ -111,4 +111,10 @@ public class PoiStoreStaffVO {
private String login;
private Long roleId;
/**
*
*/
private Integer customerNum;
private String isOpen;
}

@ -29,5 +29,5 @@ public class StoreUserDTO extends PoiStore{
/**
*
*/
private Integer qrCodeAction;
private String qrCodeAction;
}

@ -13,6 +13,7 @@ import java.util.Map;
/**
* Mapper
*
* @author jinchaofan
* @since 2020-02-19
*/
@ -22,11 +23,14 @@ public interface PoiStoreDOMapper extends BaseMapper<PoiStore> {
/**
*
*
* @param regionId id
* @return
*/
List<PoiStore> selectRegionShop(@Param("regionId") long regionId);
PoiStore selectShopByName(@Param("name") String name);
ShopRegionDO selectShopMsg(long shopId);
CompanyStoreDO selectCompanyStore(long sellerId);

@ -2,8 +2,12 @@ package com.kiisoo.ic.store.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
import com.kiisoo.ic.store.entity.StoreUserDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* -- Mapper
@ -12,5 +16,5 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public interface PrivilageCpUserStoreDOMapper extends BaseMapper<PrivilageCpUserStoreDO> {
List<StoreUserDTO> selectCpUserByShops (@Param("shopIds") List<Long> shops);
}

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kiisoo.ic.constants.Constants;
import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation;
import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper;
import com.kiisoo.ic.domain.service.PrivilageDomainService;
import com.kiisoo.ic.employee.entity.QrCodeDO;
import com.kiisoo.ic.employee.entity.QrCodeVO;
@ -71,29 +73,19 @@ public class PoiStoreStaffService {
private QrCodeService qrCodeService;
@Autowired
private PrivilageRoleDOMapper privilageRoleDOMapper;
@Autowired
private OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper;
/**
*
*
* @param userId id
* @param shopId id
* @param regionId id
*/
public IPage<PoiStoreStaffVO> getStaffByUserAndDate(int pageNum, int pageSize, long userId, Long shopId, Long regionId) {
List<Long> shopIds = new ArrayList<>();
public IPage<PoiStoreStaffVO> getStaffByUserAndDate(int pageNum, int pageSize, Long shopId) {
//根据店铺查询所有扫码客户信息
QueryWrapper<PoiStoreStaff> wrapper = new QueryWrapper<>();
//如果有店铺则查店铺
if (shopId != null) {
shopIds.add(shopId);
} else if (regionId != null) {
//如果有区域则查区域店铺
List<PoiStore> shops = poiStoreService.getRegionShop(regionId);
shopIds = shops.stream().map(p -> p.getId()).collect(Collectors.toList());
} else {
//查询用户权限店铺
shopIds = new ArrayList<>(privilageDomainService.listUserDatePermission(userId));
}
wrapper.in("store_id", shopIds);
wrapper.eq("store_id", shopId);
//状态有效
wrapper.eq("status", 1);
wrapper.orderByDesc("id");
@ -107,15 +99,25 @@ public class PoiStoreStaffService {
PoiStoreStaffVO poiStoreStaffVO = new PoiStoreStaffVO();
BeanUtils.copyProperties(poiStoreStaff, poiStoreStaffVO);
poiStoreStaffVO.setRole(Constants.SELLER_TYPE.get(poiStoreStaff.getType()));
//拿到用户信息
PrivilageUserBean privilageUserBean = privilageUserDOMapper.selectUserInfoAndRoleInfo(poiStoreStaff.getUserId());
if(null != privilageUserBean){
poiStoreStaffVO.setName(privilageUserBean.getName());
poiStoreStaffVO.setMobil(privilageUserBean.getMobil());
}
//店铺信息
PoiStore poiStore = poiStoreDOMapper.selectById(poiStoreStaff.getStoreId());
if (null != poiStore) {
poiStoreStaffVO.setStoreName(poiStore.getName());
}
//导购对应的客户数
QueryWrapper<OpSellerCustomerRelation> wrapper2 = new QueryWrapper<>();
wrapper2.eq("store_id",shopId);
wrapper2.eq("user_id",poiStoreStaff.getUserId());
wrapper2.eq("type",1);
List<OpSellerCustomerRelation> opRelations = opSellerCustomerRelationDOMapper.selectList(wrapper2);
long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count();
poiStoreStaffVO.setCustomerNum((int)count);
list.add(poiStoreStaffVO);
});
resultList.setTotal(poiStoreStaffs.getTotal());
@ -135,8 +137,10 @@ public class PoiStoreStaffService {
if (null == userId ) return 0;
//添加用户和角色的关系
privilageUserRoleService.insertUserRoleRelation(userId,poiStoreStaffVO.getRoleId());
//添加一个账号
privilageAccountService.insertAccount(poiStoreStaffVO.getStaffCode(), AccountEnum.ACCOUNT_FIRST_PWD.getDescribe(), userId);
if (StringUtils.isNotBlank(poiStoreStaffVO.getIsOpen())){
//添加一个账号
privilageAccountService.insertAccount(poiStoreStaffVO.getStaffCode(), AccountEnum.ACCOUNT_FIRST_PWD.getDescribe(), userId);
}
//去生成一个推广人员二维码
QrCodeVO qrCodeVO = parseQrCode(poiStoreStaffVO);
//添加一个店铺人员

@ -3,14 +3,20 @@ 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.github.pagehelper.PageInfo;
import com.kiisoo.ic.common.utils.ExcelUtils;
import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation;
import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper;
import com.kiisoo.ic.department.entity.DepartmentDO;
import com.kiisoo.ic.department.mapper.PrivilageDepartmentDOMapper;
import com.kiisoo.ic.domain.service.PrivilageDomainService;
import com.kiisoo.ic.employee.entity.EmployeeDO;
import com.kiisoo.ic.employee.entity.ImportErrorDTO;
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
import com.kiisoo.ic.employee.service.EmployeeService;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember;
import com.kiisoo.ic.store.bean.PoiStoreStaffDTO;
import com.kiisoo.ic.store.entity.PoiStore;
import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
import com.kiisoo.ic.store.entity.StoreUserDTO;
@ -31,10 +37,8 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static com.kiisoo.ic.employee.constant.Constants.ADD_CP_CODE_BINDED;
import static com.kiisoo.ic.store.constant.Constants.*;
@ -66,48 +70,63 @@ public class StoreEmployeeService {
@Autowired
private EmployeeService employeeService;
@Autowired
private PrivilageDomainService privilageDomainService;
@Autowired
private OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper;
/**
*
* @param storeId id
* @param regionId id
*/
public void listStoreUser(Long storeId, Long regionId, Integer pageNum, Integer pageSize) {
public PageInfo<StoreUserDTO> listStoreUser(Long userId ,Long storeId, Long regionId, Integer pageNum, Integer pageSize) {
Map<String,Object> result = new HashMap<>();
List<PoiStore> poiStores = null;
PageHelper.startPage(pageNum, pageSize);
List<Long> shopIds = new ArrayList<>();
if (storeId != null){
QueryWrapper<PoiStore> storeParams = new QueryWrapper<>();
poiStores = poiStoreDOMapper.selectList(storeParams);
shopIds.add(storeId);
}else if(regionId != null){
poiStores = poiStoreDOMapper.selectRegionShop(regionId);
shopIds = privilageDomainService.listUserDatePermission(userId);
//有区域就查区域店铺
List<PoiStore> stores = poiStoreDOMapper.selectRegionShop(regionId);
shopIds = stores.stream().map(i -> i.getId()).collect(Collectors.toList());
}else{
poiStores = poiStoreDOMapper.selectList(null);
//查询用户权限店铺
shopIds = new ArrayList<>(privilageDomainService.listUserDatePermission(userId));
}
List<StoreUserDTO> storeUserDTOS = new ArrayList<>();
if (CollectionUtils.isNotEmpty(poiStores)){
PageHelper.startPage(pageNum, pageSize);
List<StoreUserDTO> cpUserStoreDO = privilageCpUserStoreDOMapper.selectCpUserByShops(shopIds);
if (CollectionUtils.isNotEmpty(cpUserStoreDO)){
int orderNum = (pageNum -1) * pageSize;
for(PoiStore store : poiStores) {
StoreUserDTO storeUserDTO = new StoreUserDTO();
BeanUtils.copyProperties(store,storeUserDTO);
for(StoreUserDTO cpUserStore : cpUserStoreDO) {
//设置序号
storeUserDTO.setOrderNum(++orderNum);
cpUserStore.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());
PoiStore poiStore = poiStoreDOMapper.selectById(cpUserStore.getId());
if (null != poiStore){
cpUserStore.setName(poiStore.getName());
cpUserStore.setCode(poiStore.getCode());
}
//查询导购数目
// poiStoreStaffDOMapper
List<Long> shops = Arrays.asList(cpUserStore.getId());
List<PoiStoreStaffDTO> sellerList = poiStoreStaffDOMapper.selectSellersByShopIds(shops);
int staffNum = 0;
if (null != sellerList && sellerList.size() > 0){
staffNum = sellerList.size();
}
cpUserStore.setStaffNum(staffNum);
//客户数
QueryWrapper<OpSellerCustomerRelation> wrapper2 = new QueryWrapper<>();
wrapper2.eq("store_id",cpUserStore.getId());
wrapper2.eq("type",1);
List<OpSellerCustomerRelation> opRelations = opSellerCustomerRelationDOMapper.selectList(wrapper2);
long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count();
cpUserStore.setCustomerNum((int)count);
}
}
Page<StoreUserDTO> pageList = (Page<StoreUserDTO>)storeUserDTOS;
/*PageInfo<StoreUserDTO> storeUserDTOPageInfo = ;
storeUserDTOPageInfo.setTotal(poiStores1.getTotal());*/
return new PageInfo<>(cpUserStoreDO) ;
}
/**

@ -52,7 +52,7 @@ public class PrivilageAccountController extends BaseController {
@RequestParam(value = "roleId", required = false) Long roleId,
@RequestParam(value = "shopId", required = false) Long shopId) {
try {
IPage<AccountBean> accountBeanIPage = privilageAccountService.listAccountInfo(pageNum, pageSize, searchContent,
IPage<AccountBean> accountBeanIPage = privilageAccountService.listAccountInfo(pageNum, 10, searchContent,
roleId, shopId);
return data(accountBeanIPage);
} catch (Exception e) {

@ -6,6 +6,10 @@
select t1.id,t1.name,t1.type,t1.code from poi_store t1, poi_store_region t2
where t1.id = t2.store_id and t2.region_id = #{regionId}
</select>
<select id="selectShopByName" resultType="com.kiisoo.ic.store.entity.PoiStore">
select t1.id,t1.name,t1.type,t1.code from poi_store t1
where name = #{name}
</select>
<select id="selectShopMsg" resultType="com.kiisoo.ic.generalize.entity.ShopRegionDO">
select t1.name as shopName,t3.name as regionName
from poi_store t1 left join poi_store_region t2 on t1.id = t2.store_id left join poi_region t3 on t2.region_id = t3.id

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper">
<select id="selectCpUserByShops" resultType="com.kiisoo.ic.store.entity.StoreUserDTO">
select distinct pcu.cp_user_id as cpUserId,pcu.qr_code as qrCodeAction,pcus.store_id as id
from privilage_cp_user_store pcus ,privilage_cp_user pcu where pcus.cp_user_id = pcu.id and pcu.status = 1
<choose>
<when test="shopIds != null and shopIds.size > 0">
and pcus.store_id in
<foreach collection="shopIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</when>
<otherwise>
1 = 0
</otherwise>
</choose>
order by pcu.id desc
</select>
</mapper>

@ -3,8 +3,8 @@
<mapper namespace="com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper">
<select id="selectAllShopId" resultType="java.lang.Long">
select store_id
from poi_store_staff
select id
from poi_store where status = 1
</select>
<select id="selectByUserId" resultType="java.lang.Long">
select store_id from poi_store_staff where user_id = #{userId}

Loading…
Cancel
Save