Commit 7f063f5c by 墨竹

Merge branch 'feature-haoban-role' into developer

parents 63552918 f66680a3
......@@ -25,7 +25,7 @@ public interface HaobanRoleApiService {
/**
* 编辑
* 好办编辑
*
* @param haobanRoleQDTO
* @return {@link ServiceResponse }
......@@ -34,6 +34,15 @@ public interface HaobanRoleApiService {
*/
ServiceResponse edit(HaobanRoleQDTO haobanRoleQDTO,WebLoginDTO login);
/**
* 运维编辑
* @param haobanRoleQDTO
* @param login
* @return
*/
ServiceResponse editOperation(HaobanRoleQDTO haobanRoleQDTO,WebLoginDTO login);
/**
* 获取类型菜单
*
......
......@@ -25,7 +25,7 @@ import java.util.List;
*/
@RequestMapping("role")
@RestController
public class HaobanRoleController {
public class HaobanRoleOperationController {
@Autowired
private HaobanMenuApiService haobanMenuApiService;
......@@ -55,7 +55,7 @@ public class HaobanRoleController {
login.setWxEnterpriseId(haobanRoleQDTO.getWxEnterpriseId());
login.setClerkId(operationUserId);
login.setClerkName(loginUser.getLoginName());
return RestResponse.successResult(haobanRoleApiService.edit(haobanRoleQDTO,login));
return RestResponse.successResult(haobanRoleApiService.editOperation(haobanRoleQDTO,login));
}
/**
......
......@@ -73,16 +73,10 @@ public interface TabHaobanStaffClerkRelationMapper {
*/
int cleanStaffDepart(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds);
TabHaobanStaffClerkRelation getOneBindCodeNoStatus(@Param("enterpriseId") String enterpriseId, @Param("clerkCode") String clerkCode);
TabHaobanStaffClerkRelation getOneBindStoreId(@Param("staffId") String staffId, @Param("storeId") String storeId);
TabHaobanStaffClerkRelation getByClerkId(@Param("clerkId") String clerkId);
StaffClerkRelationDTO getByClerkIdForWxUserId(@Param("clerkId") String clerkId);
TabHaobanStaffClerkRelation getByClerkIdNoStatus(@Param("clerkId") String clerkId);
int delByPrimaryKey(@Param("staffClerkRelationId") String staffClerkRelationId);
void delByClerkId(@Param("clerkId") String clerkId);
......
......@@ -183,5 +183,19 @@ public interface TabHaobanHmClerkRelationMapper {
@Param("storeId") String storeId,
@Param("storeName") String storeName,
@Param("storeCode") String storeCode);
/**
*
* @Title: updateByClerkChangeStore
* @Description: 导购转移门店,更新多人码门店和导购信息
* @author xugh
* @param tabHaobanHmClerkRelation
* @return
* @throws
*/
int updateByClerkChangeStore(@Param("enterpriseId")String enterpriseId,
@Param("clerkId")String clerkId, @Param("clerkCode")String clerkCode, @Param("clerkName")String clerkName,
@Param("storeId")String storeId, @Param("storeCode")String storeCode, @Param("storeName")String storeName,
@Param("oldClerkId") String oldClerkId) ;
}
......@@ -13,15 +13,7 @@ public interface StaffClerkRelationService {
List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList);
List<StaffClerkRelationDTO> listBindCodeByStaffId(List<String> enterpriseIdList, String staffId);
/**
* 解绑-删除绑定(导购级别)
*
* @param clerkId
* @return
*/
boolean delBind(String clerkId, String optStaffId, int channelCode);
boolean delBind(String clerkId, String optStaffId, int channelCode , String newClerkId);
/**
......@@ -64,16 +56,10 @@ public interface StaffClerkRelationService {
int cleanStaffClerk(String wxEnterpriseId, List<String> staffIds);
StaffClerkRelationDTO getOneBindCodeNoStatus(String enterpriseId, String clerkCode);
StaffClerkRelationDTO getOneBindByStoreId(String staffId, String storeId);
StaffClerkRelationDTO getByClerkId(String clerkId);
StaffClerkRelationDTO getByClerkIdForWxUserId(String clerkId);
StaffClerkRelationDTO getByClerkIdNoStatus(String clerkId);
List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkList);
List<StaffClerkRelationDTO> listByStaffId(String wxEnterpriseId, String staffId);
......
......@@ -169,5 +169,16 @@ public interface HmClerkRelationService {
* @date 2022-07-26 15:38:33
*/
List<HmClerkRelationBO> queryByHmIdNotInClerkIds(Long hmId, List<String> clerkIds);
/**
*
* @Title: updateByClerkChangeStore
* @Description: 导购转移门店更新多人活码
* @author xugh
* @param bo
* @param oldClerkId
* @throws
*/
void updateByClerkChangeStore(String enterpriseId,String oldClerkId,String newClerkId) ;
}
package com.gic.haoban.manage.service.service.hm.impl;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.qdto.hm.HmClerkRelationQDTO;
......@@ -11,11 +21,6 @@ import com.gic.haoban.manage.service.pojo.bo.hm.HmClerkRelationBO;
import com.gic.haoban.manage.service.service.hm.HmClerkRelationService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 多人活码(TabHaobanHmClerkRelation)表服务实现类
......@@ -28,6 +33,10 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
@Autowired
private TabHaobanHmClerkRelationMapper tabHaobanHmClerkRelationMapper;
@Autowired
private ClerkService clerkService ;
@Autowired
private StoreService storeService ;
/**
* 通过ID查询单条数据
......@@ -116,4 +125,16 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
public List<HmClerkRelationBO> queryByHmIdNotInClerkIds(Long hmId, List<String> clerkIds) {
return EntityUtil.changeEntityListByOrika(HmClerkRelationBO.class,tabHaobanHmClerkRelationMapper.queryByHmIdNotInClerkIds(hmId,clerkIds));
}
@Override
public void updateByClerkChangeStore(String enterpriseId,String oldClerkId,String newClerkId) {
ClerkDTO newClerk = this.clerkService.getclerkById(newClerkId) ;
String clerkCode = newClerk.getClerkCode();
String clerkName = newClerk.getClerkName() ;
String storeId = newClerk.getStoreId();
StoreDTO newStore = this.storeService.getStore(storeId) ;
String storeCode = newStore.getStoreCode();
String storeName = newStore.getStoreName() ;
this.tabHaobanHmClerkRelationMapper.updateByClerkChangeStore(enterpriseId,newClerkId,clerkCode,clerkName,storeId, storeCode,storeName, oldClerkId) ;
}
}
......@@ -78,11 +78,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
@Override
public boolean delBind(String oldClerkId, String optStaffId, int channelCode) {
return this.delBind(oldClerkId, optStaffId, channelCode, null) ;
}
@Override
public boolean delBind(String oldClerkId, String optStaffId, int channelCode, String newClerkId) {
TabHaobanStaffClerkRelation clerkRelation = mapper.getByClerkId(oldClerkId);
if (null == clerkRelation) {
......@@ -244,11 +239,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
@Override
public StaffClerkRelationDTO getOneBindCodeNoStatus(String enterpriseId, String clerkCode) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getOneBindCodeNoStatus(enterpriseId, clerkCode));
}
@Override
public StaffClerkRelationDTO getOneBindByStoreId(String staffId, String storeId) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getOneBindStoreId(staffId, storeId));
}
......@@ -259,16 +249,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
@Override
public StaffClerkRelationDTO getByClerkIdForWxUserId(String clerkId) {
return this.mapper.getByClerkIdForWxUserId(clerkId);
}
@Override
public StaffClerkRelationDTO getByClerkIdNoStatus(String clerkId) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getByClerkIdNoStatus(clerkId));
}
@Override
public List<StaffClerkRelationDTO> listByClerkIds(List<String> clerkList) {
if (CollectionUtils.isEmpty(clerkList)) {
return Collections.EMPTY_LIST;
......
......@@ -102,7 +102,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
wxEnterpriseId = haobanStaff != null ? haobanStaff.getWxEnterpriseId() : null;
}
if (StringUtils.isNotEmpty(messageQDTO.getClerkId())) {
clerkRelationDTO = staffClerkRelationService.getByClerkIdForWxUserId(messageQDTO.getClerkId());
clerkRelationDTO = staffClerkRelationService.getByClerkId(messageQDTO.getClerkId());
}
if (staffId == null && clerkRelationDTO == null) {
logger.info("没有导购:{}", messageQDTO.getClerkId());
......
......@@ -582,7 +582,7 @@ public class StaffApiServiceImpl implements StaffApiService {
}
ClerkDTO clerkDTO = list.get(0);
StaffClerkRelationDTO relationDTO = staffClerkRelationService.getByClerkIdForWxUserId(clerkDTO.getClerkId());
StaffClerkRelationDTO relationDTO = staffClerkRelationService.getByClerkId(clerkDTO.getClerkId());
if (relationDTO == null) {
logger.info("成员没有关联:{}", clerkCode);
return null;
......
......@@ -235,7 +235,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public boolean unbindByStaffAndClerkId(String staffId, String clerkId, int channelCode) {
return staffClerkRelationService.delBind(clerkId, staffId, channelCode);
return staffClerkRelationService.delBind(clerkId, staffId, channelCode,null);
}
@Override
......@@ -253,7 +253,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public StaffClerkRelationDTO getByClerkIdForWxUserId(String clerkId) {
return staffClerkRelationService.getByClerkIdForWxUserId(clerkId);
return this.getByClerkId(clerkId) ;
}
@Override
......@@ -377,7 +377,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public com.gic.haoban.base.api.common.ServiceResponse<String> getClerkMemberChatConfig(String clerkId) {
com.gic.haoban.base.api.common.ServiceResponse response = new com.gic.haoban.base.api.common.ServiceResponse();
StaffClerkRelationDTO relationDTO = staffClerkRelationService.getByClerkIdForWxUserId(clerkId);
StaffClerkRelationDTO relationDTO = staffClerkRelationService.getByClerkId(clerkId);
if (null == relationDTO) {
logger.info("导购没有关联企业微信:{}", clerkId);
response.setCode(2);
......@@ -460,11 +460,11 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
Integer status = clerkDTO.getStatus();
logger.info("导购删除,clerkId:{},status:{}", clerkId, status);
if (!status.equals(1)) {
staffClerkRelationService.delBind(clerkId, "-1", ChannelCodeEnum.GIC_CLERK_DEL_UNBIND.getCode());
staffClerkRelationService.delBind(clerkId, "-1", ChannelCodeEnum.GIC_CLERK_DEL_UNBIND.getCode(),null);
}
} else if (type == 2) {
logger.info("导购门店转移,新的导购和门店,clerkId={},storeId={}", clerkId,clerkSyncQDTO.getStoreId());
StaffClerkRelationDTO oldRelationDTO = staffClerkRelationService.getOneBindCodeNoStatus(enterpriseId, clerkCode);
StaffClerkRelationDTO oldRelationDTO = staffClerkRelationService.getByCodeAndEnterpriseId(clerkCode,enterpriseId);
if (null == oldRelationDTO) {
logger.info("导购未关联成员,clerkCode={}",clerkCode);
return;
......@@ -497,7 +497,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
} else if (clerkType == 2) {
logger.info("区经变更为导购,解绑:{}", clerkId);
//解绑
staffClerkRelationService.delBind(clerkId, "-1", ChannelCodeEnum.GIC_CLERK_DEL_UNBIND.getCode());
staffClerkRelationService.delBind(clerkId, "-1", ChannelCodeEnum.GIC_CLERK_DEL_UNBIND.getCode(),null);
}
}
}
......
......@@ -14,6 +14,7 @@ import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeBO;
import com.gic.haoban.manage.service.service.hm.HmClerkRelationService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -33,7 +34,6 @@ public class HmClerkRelationApiServiceImpl implements HmClerkRelationApiService
@Autowired
private HmClerkRelationService hmClerkRelationService;
@Override
public ServiceResponse delByClerkId(String clerkId, String enterpriseId, String wxEnterpriseId, Integer invokingType) {
return this.delByClerkId(clerkId, enterpriseId, wxEnterpriseId, invokingType, null) ;
......@@ -47,28 +47,30 @@ public class HmClerkRelationApiServiceImpl implements HmClerkRelationApiService
if (hmQrcodeBO != null) {
hmQrcodeApiService.delById(hmQrcodeBO.getHmId(), invokingType, null);
}
// 多人活码逻辑
List<HmClerkRelationBO> hmClerkRelationBOS = hmClerkRelationService.queryByClerkId(clerkId, enterpriseId);
if (CollectionUtils.isEmpty(hmClerkRelationBOS)) {
logger.info("无多人活码");
return ServiceResponse.success();
}
for (HmClerkRelationBO hmClerkRelationBO : hmClerkRelationBOS) {
Long hmId = hmClerkRelationBO.getHmId();
List<String> clerkIds = hmClerkRelationService.getClerkIdByHmId(hmId);
hmClerkRelationService.updateStatusById(0, hmClerkRelationBO.getRelationId());
clerkIds.remove(clerkId);
if (CollectionUtils.isNotEmpty(clerkIds)) {
// 更新活码
HmQrcodeQDTO hmQrcodeQDTO = new HmQrcodeQDTO();
hmQrcodeQDTO.setHmId(hmId);
hmQrcodeQDTO.setClerkIdList(clerkIds);
hmQrcodeQDTO.setWxEnterpriseId(wxEnterpriseId);
hmQrcodeApiService.update(hmQrcodeQDTO);
} else {
hmQrcodeApiService.delById(hmId, invokingType, null);
if(StringUtils.isNotBlank(newClerkId)) {
this.hmClerkRelationService.updateByClerkChangeStore(enterpriseId, clerkId ,newClerkId);
}else {
for (HmClerkRelationBO hmClerkRelationBO : hmClerkRelationBOS) {
Long hmId = hmClerkRelationBO.getHmId();
List<String> clerkIds = hmClerkRelationService.getClerkIdByHmId(hmId);
hmClerkRelationService.updateStatusById(0, hmClerkRelationBO.getRelationId());
clerkIds.remove(clerkId);
if (CollectionUtils.isNotEmpty(clerkIds)) {
// 更新活码
HmQrcodeQDTO hmQrcodeQDTO = new HmQrcodeQDTO();
hmQrcodeQDTO.setHmId(hmId);
hmQrcodeQDTO.setClerkIdList(clerkIds);
hmQrcodeQDTO.setWxEnterpriseId(wxEnterpriseId);
hmQrcodeApiService.update(hmQrcodeQDTO);
} else {
hmQrcodeApiService.delById(hmId, invokingType, null);
}
}
}
return ServiceResponse.success();
......
......@@ -161,6 +161,46 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
return ServiceResponse.success();
}
@Override
public ServiceResponse editOperation(HaobanRoleQDTO haobanRoleQDTO, WebLoginDTO login) {
HaobanRoleMenuQDTO clerkMenus = haobanRoleQDTO.getClerkMenus();
HaobanRoleMenuQDTO manegeClerkMenus = haobanRoleQDTO.getManegeClerkMenus();
HaobanRoleMenuQDTO managerMenus = haobanRoleQDTO.getManagerMenus();
String wxEnterpriseId = login.getWxEnterpriseId();
String clerkId = login.getClerkId();
String clerkName = login.getClerkName();
List<TabHaobanRoleMenu> tabHaobanRoleMenus = new ArrayList<>();
Date now = new Date();
//导购
if (clerkMenus != null) {
TabHaobanRole tabHaobanRole = updateTabHaobanRole(haobanRoleQDTO, clerkMenus, wxEnterpriseId, clerkId, clerkName, now);
List<String> menuCodes = clerkMenus.getMenuCodes();
for (String menuCode : menuCodes) {
getTabHaobanRoleMenu(wxEnterpriseId, tabHaobanRoleMenus, now, tabHaobanRole, menuCode);
}
}
//店长
if (manegeClerkMenus != null) {
TabHaobanRole tabHaobanRole = updateTabHaobanRole(haobanRoleQDTO, manegeClerkMenus, wxEnterpriseId, clerkId, clerkName, now);
List<String> menuCodes = manegeClerkMenus.getMenuCodes();
for (String menuCode : menuCodes) {
getTabHaobanRoleMenu(wxEnterpriseId, tabHaobanRoleMenus, now, tabHaobanRole, menuCode);
}
}
//导购
if (managerMenus != null) {
TabHaobanRole tabHaobanRole = updateTabHaobanRole(haobanRoleQDTO, managerMenus, wxEnterpriseId, clerkId, clerkName, now);
List<String> menuCodes = managerMenus.getMenuCodes();
for (String menuCode : menuCodes) {
getTabHaobanRoleMenu(wxEnterpriseId, tabHaobanRoleMenus, now, tabHaobanRole, menuCode);
}
}
haobanRoleMenuService.insertBatch(tabHaobanRoleMenus);
return ServiceResponse.success();
}
private TabHaobanRole updateTabHaobanRole(HaobanRoleQDTO haobanRoleQDTO, HaobanRoleMenuQDTO managerMenus, String wxEnterpriseId, String clerkId, String clerkName, Date now) {
Long roleId = managerMenus.getRoleId();
if (roleId == null) {
......
......@@ -169,16 +169,6 @@
</foreach>
</update>
<select id="getOneBindCodeNoStatus" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and clerk_code = #{clerkCode}
order by update_time desc limit 1
</select>
<select id="getOneBindStoreId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
......@@ -197,33 +187,6 @@
and status_flag=1 order by create_time desc limit 1
</select>
<select id="getByClerkIdForWxUserId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO"
parameterType="java.lang.String">
select
a.staff_clerk_relation_id staffClerkRelationId,
a.staff_id staffId,
a.wx_enterprise_id wxEnterpriseId,
a.enterprise_id enterpriseId,
a.store_id storeId,
a.clerk_id clerkId,
a.clerk_code clerkCode,
a.status_flag statusFlag,
b.wx_user_id qwUserId ,
b.wx_open_user_id openUserId
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on b.staff_id = a.staff_id
where a.clerk_id = #{clerkId,jdbcType=VARCHAR} and a.status_flag=1
</select>
<select id="getByClerkIdNoStatus" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where clerk_id = #{clerkId,jdbcType=VARCHAR}
</select>
<update id="delByPrimaryKey">
update tab_haoban_staff_clerk_relation
set status_flag = 0,
......
......@@ -211,6 +211,12 @@
</set>
where store_id = #{storeId} and enterprise_id = #{enterpriseId}
</update>
<update id="updateByClerkChangeStore">
update tab_haoban_hm_clerk_relation set
clerk_id = #{clerkId} , clerk_code=#{clerkCode} , clerk_name=#{clerkName} , store_id=#{storeId} , store_name = #{storeName}, store_code = #{storeCode} , update_time = now()
where clerk_id = #{oldClerkId} and enterprise_id = #{enterpriseId} and `status` = 1
</update>
</mapper>
......@@ -782,9 +782,6 @@ public class ClerkController extends WebBaseController {
}
clerkStoreList.add(vo);
}
if (CollectionUtil.isNotEmpty(clerkStoreList)) {
clerkStoreList = clerkStoreList.stream().filter(s -> StringUtils.isNotBlank(s.getStoreId())).collect(Collectors.toList());
}
return clerkStoreList;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment