Commit ffb1d513 by 墨竹

fix:是否展示会员工具bug修改

parent f2c032d5
...@@ -433,7 +433,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -433,7 +433,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String wxEnterpriseId = dto.getWxEnterpriseId(); String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName(); String name = dto.getExternalName();
String createTime = dto.getAddCreateTime(); String createTime = dto.getAddCreateTime();
String externalUserId = dto.getExternalUserid(); String externalUserid = dto.getExternalUserid();
String avatar = dto.getAvatar(); String avatar = dto.getAvatar();
//好友不开卡 发送欢迎语 //好友不开卡 发送欢迎语
if (wxEnterpriseRelated.getMemberOpenCardFlag() == 1) { if (wxEnterpriseRelated.getMemberOpenCardFlag() == 1) {
...@@ -473,20 +473,23 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -473,20 +473,23 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("生产会员memnerid失败:{}", unionId); log.info("生产会员memnerid失败:{}", unionId);
return; return;
} }
String clerkId = staffClerkRelationDTO.getClerkId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService
.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, dto.getExternalUserid(), dto.getWxUserId()); .listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, dto.getWxUserId());
String relationKey = SecureUtil.md5(clerkId + externalUserid);
if (CollectionUtils.isEmpty(externalClerkRelateds)) { if (CollectionUtils.isEmpty(externalClerkRelateds)) {
log.info("新增TabHaobanExternalClerkRelated"); log.info("新增TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated(); TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(createTime); related.setAddCreateTime(createTime);
related.setClerkId(staffClerkRelationDTO.getClerkId()); related.setClerkId(clerkId);
related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId()); related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
related.setExternalName(name); related.setExternalName(name);
related.setExternalUserId(externalUserId); related.setExternalUserId(externalUserid);
related.setStaffId(staffId); related.setStaffId(staffId);
related.setHeadUrl(dto.getAvatar()); related.setHeadUrl(dto.getAvatar());
related.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId()); related.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
related.setStoreId(staffClerkRelationDTO.getStoreId()); related.setStoreId(staffClerkRelationDTO.getStoreId());
related.setRelationKey(relationKey);
related.setUnionid(unionId); related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId); related.setWxEnterpriseId(wxEnterpriseId);
related.setWxUserId(wxUserId); related.setWxUserId(wxUserId);
...@@ -497,12 +500,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -497,12 +500,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0); TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0);
exsitDTO.setMemberId(member.getMemberId()); exsitDTO.setMemberId(member.getMemberId());
exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId()); exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
exsitDTO.setExternalUserId(externalUserId); exsitDTO.setExternalUserId(externalUserid);
exsitDTO.setUnionid(unionId); exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar()); exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId()); exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId()); exsitDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
exsitDTO.setClerkId(staffClerkRelationDTO.getClerkId()); exsitDTO.setClerkId(clerkId);
exsitDTO.setStatusFlag(1); exsitDTO.setStatusFlag(1);
externalClerkRelatedService.update(exsitDTO); externalClerkRelatedService.update(exsitDTO);
} }
......
...@@ -42,117 +42,118 @@ import java.util.stream.Collectors; ...@@ -42,117 +42,118 @@ import java.util.stream.Collectors;
@RestController @RestController
public class ClerkController extends WebBaseController { public class ClerkController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(ClerkController.class); private static final Logger logger = LoggerFactory.getLogger(ClerkController.class);
@Autowired @Autowired
private ClerkService clerkService; private ClerkService clerkService;
@Autowired @Autowired
private StaffApiService staffApiService; private StaffApiService staffApiService;
@Autowired @Autowired
private StaffDepartmentRelatedApiService staffDepartmentRelatedApiService; private StaffDepartmentRelatedApiService staffDepartmentRelatedApiService;
@Autowired @Autowired
private StoreService storeService; private StoreService storeService;
@Autowired @Autowired
private SyncHaobanToGicServiceApi syncHaobanToGicServiceApi; private SyncHaobanToGicServiceApi syncHaobanToGicServiceApi;
@Autowired @Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService; private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired @Autowired
private DistributeApiService distributeApiService; private DistributeApiService distributeApiService;
@Autowired @Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService; private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired @Autowired
private EnterpriseService enterpriseService; private EnterpriseService enterpriseService;
@Autowired @Autowired
private AuditApiService auditApiService; private AuditApiService auditApiService;
@Autowired @Autowired
private StaffClerkRelationApiService staffClerkRelationApiService; private StaffClerkRelationApiService staffClerkRelationApiService;
@Autowired @Autowired
private ClerkNewService clerkNewService; private ClerkNewService clerkNewService;
@Autowired @Autowired
private AuditSettingApiService auditSettingApiService; private AuditSettingApiService auditSettingApiService;
@Autowired @Autowired
private DealSyncOperationApiService dealSyncOperationApiService; private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired @Autowired
private ExternalClerkRelatedApiService externalClerkRelatedApiService; private ExternalClerkRelatedApiService externalClerkRelatedApiService;
@Autowired
@Autowired private OperationSettingApiService operationSettingApiService;
private OperationSettingApiService operationSettingApiService; @Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
//选择成员列表
@RequestMapping("/staff-list") //选择成员列表
public HaobanResponse staffList(String storeId) { @RequestMapping("/staff-list")
if(StringUtils.isAnyBlank(storeId)){ public HaobanResponse staffList(String storeId) {
return resultResponse(HaoBanErrCode.ERR_2); if (StringUtils.isAnyBlank(storeId)) {
} return resultResponse(HaoBanErrCode.ERR_2);
List<StaffClerkRelationDTO> list = staffClerkRelationApiService.listByStoreId(storeId); }
List<String> staffIds = list.stream().map(s->s.getStaffId()).collect(Collectors.toList()); List<StaffClerkRelationDTO> list = staffClerkRelationApiService.listByStoreId(storeId);
List<StaffDTO> resultlist= staffApiService.listByIds(staffIds); List<String> staffIds = list.stream().map(s -> s.getStaffId()).collect(Collectors.toList());
Map<String,StaffDTO> map = com.gic.commons.util.CollectionUtil.toMap(resultlist, "staffId"); List<StaffDTO> resultlist = staffApiService.listByIds(staffIds);
int size = 0; Map<String, StaffDTO> map = com.gic.commons.util.CollectionUtil.toMap(resultlist, "staffId");
if(resultlist != null){ int size = 0;
size = resultlist.size(); if (resultlist != null) {
} size = resultlist.size();
}
List<StaffDTO> resultList = new ArrayList<>();
for(StaffClerkRelationDTO staffClerkRelationDTO : list){ List<StaffDTO> resultList = new ArrayList<>();
StaffDTO dto = map.get(staffClerkRelationDTO.getStaffId()); for (StaffClerkRelationDTO staffClerkRelationDTO : list) {
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), staffClerkRelationDTO.getClerkCode()); StaffDTO dto = map.get(staffClerkRelationDTO.getStaffId());
if(clerk != null){ ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), staffClerkRelationDTO.getClerkCode());
long memberCount = distributeApiService.getClerkMemberCount(staffClerkRelationDTO.getEnterpriseId(), clerk.getClerkId(), storeId); if (clerk != null) {
logger.info("【获取会员数】enterpriseId={},clerkId={},storeId={},count={}",staffClerkRelationDTO.getEnterpriseId(),clerk.getClerkId(),storeId,memberCount); long memberCount = distributeApiService.getClerkMemberCount(staffClerkRelationDTO.getEnterpriseId(), clerk.getClerkId(), storeId);
dto.setMemberCount(memberCount); logger.info("【获取会员数】enterpriseId={},clerkId={},storeId={},count={}", staffClerkRelationDTO.getEnterpriseId(), clerk.getClerkId(), storeId, memberCount);
dto.setClerkId(clerk.getClerkId()); dto.setMemberCount(memberCount);
resultList.add(dto); dto.setClerkId(clerk.getClerkId());
} resultList.add(dto);
} }
return resultResponse(HaoBanErrCode.ERR_1,resultlist); }
return resultResponse(HaoBanErrCode.ERR_1, resultlist);
}
}
//门店成员列表
@RequestMapping("/store-clerks") //门店成员列表
public HaobanResponse storeClerks(String wxEnterpriseId, String storeId, String version) { @RequestMapping("/store-clerks")
if(StringUtils.isAnyBlank(storeId)){ public HaobanResponse storeClerks(String wxEnterpriseId, String storeId, String version) {
return resultResponse(HaoBanErrCode.ERR_2); if (StringUtils.isAnyBlank(storeId)) {
} return resultResponse(HaoBanErrCode.ERR_2);
StoreDTO storeDTO = storeService.getStore(storeId); }
if(storeDTO == null){ StoreDTO storeDTO = storeService.getStore(storeId);
return resultResponse(HaoBanErrCode.ERR_10009); if (storeDTO == null) {
} return resultResponse(HaoBanErrCode.ERR_10009);
List<ClerkListDTO> list = clerkService.getClerkByStoreId(storeDTO.getEnterpriseId(), storeId); }
Set<String> clerkCodeList = list.stream().map(ClerkListDTO::getClerkCode).collect(Collectors.toSet()); List<ClerkListDTO> list = clerkService.getClerkByStoreId(storeDTO.getEnterpriseId(), storeId);
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCode(storeDTO.getEnterpriseId(),clerkCodeList); Set<String> clerkCodeList = list.stream().map(ClerkListDTO::getClerkCode).collect(Collectors.toSet());
Map<String,StaffClerkRelationDTO> bindCodeMap = bindRelationList.stream().collect(Collectors.toMap(StaffClerkRelationDTO::getClerkCode, s->s)); List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCode(storeDTO.getEnterpriseId(), clerkCodeList);
List<StoreClerkVO> resultList = new ArrayList<>(); Map<String, StaffClerkRelationDTO> bindCodeMap = bindRelationList.stream().collect(Collectors.toMap(StaffClerkRelationDTO::getClerkCode, s -> s));
for(ClerkListDTO dto :list){ List<StoreClerkVO> resultList = new ArrayList<>();
String clerkCode = dto.getClerkCode(); for (ClerkListDTO dto : list) {
StoreClerkVO vo = new StoreClerkVO(); String clerkCode = dto.getClerkCode();
vo.setClerkCode(clerkCode); StoreClerkVO vo = new StoreClerkVO();
vo.setClerkId(dto.getClerkId()); vo.setClerkCode(clerkCode);
vo.setClerkType(dto.getClerkType()); vo.setClerkId(dto.getClerkId());
vo.setClerkImg(dto.getImageUrl()); vo.setClerkType(dto.getClerkType());
vo.setClerkName(dto.getClerkName()); vo.setClerkImg(dto.getImageUrl());
StaffClerkRelationDTO related = bindCodeMap.get(clerkCode); vo.setClerkName(dto.getClerkName());
if(related != null){ StaffClerkRelationDTO related = bindCodeMap.get(clerkCode);
vo.setStaffId(related.getStaffId()); if (related != null) {
vo.setBindFlag(1); vo.setStaffId(related.getStaffId());
}else{ vo.setBindFlag(1);
vo.setBindFlag(0); } else {
} vo.setBindFlag(0);
resultList.add(vo); }
} resultList.add(vo);
if (StringUtils.isBlank(version)) { }
return resultResponse(HaoBanErrCode.ERR_1, resultList); if (StringUtils.isBlank(version)) {
} else { return resultResponse(HaoBanErrCode.ERR_1, resultList);
WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, storeDTO.getEnterpriseId()); } else {
Map<String, Object> ret = new HashMap<>(); WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, storeDTO.getEnterpriseId());
ret.put("clerkEditFlag", enterpriseBindInfo.getClerkEditFlag()); Map<String, Object> ret = new HashMap<>();
ret.put("clerkList", resultList); ret.put("clerkEditFlag", enterpriseBindInfo.getClerkEditFlag());
return resultResponse(HaoBanErrCode.ERR_1, ret); ret.put("clerkList", resultList);
} return resultResponse(HaoBanErrCode.ERR_1, ret);
}
}
}
//门店成员列表 //门店成员列表
@RequestMapping("/clerk-edit-flag") @RequestMapping("/clerk-edit-flag")
...@@ -170,350 +171,362 @@ public class ClerkController extends WebBaseController { ...@@ -170,350 +171,362 @@ public class ClerkController extends WebBaseController {
} }
//获取后台认证配置 //获取后台认证配置
@RequestMapping("/get-audit-setting") @RequestMapping("/get-audit-setting")
@IgnoreLogin @IgnoreLogin
public HaobanResponse getAuditSetting(String wxEnterpriseId) { public HaobanResponse getAuditSetting(String wxEnterpriseId) {
if(StringUtils.isAnyBlank(wxEnterpriseId)){ if (StringUtils.isAnyBlank(wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
AuditSettingDTO auditSetting = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId); AuditSettingDTO auditSetting = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId);
AuditSettingVO auditSettingVO = EntityUtil.changeEntityNew(AuditSettingVO.class, auditSetting); AuditSettingVO auditSettingVO = EntityUtil.changeEntityNew(AuditSettingVO.class, auditSetting);
return resultResponse(HaoBanErrCode.ERR_1, auditSettingVO); return resultResponse(HaoBanErrCode.ERR_1, auditSettingVO);
} }
//获取后台认证配置 //获取后台认证配置
@RequestMapping("/get-user-setting") @RequestMapping("/get-user-setting")
@IgnoreLogin @IgnoreLogin
public HaobanResponse getUserSetting(String wxEnterpriseId, String staffId) { public HaobanResponse getUserSetting(String wxEnterpriseId, String staffId) {
if (StringUtils.isAnyBlank(wxEnterpriseId)) { if (StringUtils.isAnyBlank(wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
AuditSettingVO auditSettingVO = new AuditSettingVO(); AuditSettingVO auditSettingVO = new AuditSettingVO();
ClerkMainStoreRelatedDTO mainStore = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId); ClerkMainStoreRelatedDTO mainStore = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId);
if (mainStore == null){ if (mainStore == null) {
logger.info("该门店不存在"); logger.info("该门店不存在");
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
String mainStoreId = mainStore.getStoreId(); String mainStoreId = mainStore.getStoreId();
StoreDTO storeDTO = storeService.getStore(mainStoreId); StoreDTO storeDTO = storeService.getStore(mainStoreId);
if (null == storeDTO) { if (null == storeDTO) {
logger.info("该门店不存在"); logger.info("该门店不存在");
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, storeDTO.getEnterpriseId()); WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, storeDTO.getEnterpriseId());
if (null == enterpriseBindInfo) { if (null == enterpriseBindInfo) {
logger.info("该企业未关联"); logger.info("该企业未关联");
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
//auditSettingVO.setMemberOpenCardFlag(enterpriseBindInfo.getMemberOpenCardFlag()); WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
auditSettingVO.setMemberOpenCardFlag(1); if (null == wxEnterpriseDTO) {
auditSettingVO.setWxEnterpriseType(enterpriseBindInfo.getWxEnterpriseType()); logger.info("该企业未关联");
auditSettingVO.setFreshFriendFlag(mainStore.getFreshFriendFlag()); return resultResponse(HaoBanErrCode.ERR_8);
return resultResponse(HaoBanErrCode.ERR_1, auditSettingVO); }
} Integer agreeExternalUseridFlag = wxEnterpriseDTO.getAgreeExternalUseridFlag();
int memberOpenCardFlag = enterpriseBindInfo.getMemberOpenCardFlag();
@RequestMapping("/get-operation-setting") if (memberOpenCardFlag == 1 && agreeExternalUseridFlag != null && agreeExternalUseridFlag == 1) {
@IgnoreLogin auditSettingVO.setMemberOpenCardFlag(1);
public HaobanResponse getOperatorSetting(String wxEnterpriseId, String enterpriseId) { } else if (memberOpenCardFlag == 0) {
// 查询操作配置 auditSettingVO.setMemberOpenCardFlag(1);
OperationSettingDTO dto = operationSettingApiService.getByWxEnterpriseId(wxEnterpriseId); } else {
if (Objects.isNull(dto)) { auditSettingVO.setMemberOpenCardFlag(0);
OperationSettingVO vo = new OperationSettingVO(); }
vo.setWxEnterpriseId(wxEnterpriseId); auditSettingVO.setWxEnterpriseType(enterpriseBindInfo.getWxEnterpriseType());
// 为空情况初始默认不生效 auditSettingVO.setFreshFriendFlag(mainStore.getFreshFriendFlag());
vo.setEffectFlag(0); return resultResponse(HaoBanErrCode.ERR_1, auditSettingVO);
return resultResponse(HaoBanErrCode.ERR_1, vo); }
}
OperationSettingVO vo = EntityUtil.changeEntity(OperationSettingVO.class, dto); @RequestMapping("/get-operation-setting")
// 是否开启导购编辑,如果不开启,默认无效 @IgnoreLogin
WxEnterpriseRelationDetailDTO info = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, enterpriseId); public HaobanResponse getOperatorSetting(String wxEnterpriseId, String enterpriseId) {
if (Objects.nonNull(info) && info.getClerkEditFlag() == 1) { // 查询操作配置
vo.setEffectFlag(1); OperationSettingDTO dto = operationSettingApiService.getByWxEnterpriseId(wxEnterpriseId);
} else { if (Objects.isNull(dto)) {
vo.setEffectFlag(0); OperationSettingVO vo = new OperationSettingVO();
} vo.setWxEnterpriseId(wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_1, vo); // 为空情况初始默认不生效
} vo.setEffectFlag(0);
return resultResponse(HaoBanErrCode.ERR_1, vo);
//新增店员 }
@HttpLimit OperationSettingVO vo = EntityUtil.changeEntity(OperationSettingVO.class, dto);
@RequestMapping("/staff-add") // 是否开启导购编辑,如果不开启,默认无效
public HaobanResponse staffAdd(StaffDTO staffDTO,String storeId,String clerkCode,String commitName,Integer version) { WxEnterpriseRelationDetailDTO info = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, enterpriseId);
if (Objects.nonNull(info) && info.getClerkEditFlag() == 1) {
String wxEnterpriseId = staffDTO.getWxEnterpriseId(); vo.setEffectFlag(1);
String staffName = staffDTO.getStaffName(); } else {
String phoneNumber = staffDTO.getPhoneNumber(); vo.setEffectFlag(0);
String nationcode = staffDTO.getNationCode(); }
String postion = staffDTO.getPostion(); return resultResponse(HaoBanErrCode.ERR_1, vo);
Integer sex = staffDTO.getSex(); }
if(StringUtils.isAnyBlank(staffName, commitName)) {
return resultResponse(HaoBanErrCode.ERR_10004); //新增店员
} @HttpLimit
if (StringUtils.isEmpty(clerkCode)) { @RequestMapping("/staff-add")
return resultResponse(HaoBanErrCode.ERR_111116); public HaobanResponse staffAdd(StaffDTO staffDTO, String storeId, String clerkCode, String commitName, Integer version) {
}
if(StringUtils.isNotEmpty(phoneNumber) && String wxEnterpriseId = staffDTO.getWxEnterpriseId();
!GooglePhoneNumberUtil.checkPhoneNumber(phoneNumber, nationcode)){ String staffName = staffDTO.getStaffName();
return resultResponse(HaoBanErrCode.ERR_10012); String phoneNumber = staffDTO.getPhoneNumber();
} String nationcode = staffDTO.getNationCode();
// 导购code校验-字母和数字 String postion = staffDTO.getPostion();
if (!clerkCode.matches("[a-zA-Z0-9]+")) { Integer sex = staffDTO.getSex();
return resultResponse(HaoBanErrCode.ERR_10023); if (StringUtils.isAnyBlank(staffName, commitName)) {
} return resultResponse(HaoBanErrCode.ERR_10004);
if(version == null){ }
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId,nationcode,phoneNumber); if (StringUtils.isEmpty(clerkCode)) {
if(staff != null) { return resultResponse(HaoBanErrCode.ERR_111116);
return resultResponse(HaoBanErrCode.ERR_10005); }
} if (StringUtils.isNotEmpty(phoneNumber) &&
} !GooglePhoneNumberUtil.checkPhoneNumber(phoneNumber, nationcode)) {
com.gic.enterprise.api.dto.StoreDTO store = storeService.getStoreByIdNoStatus(storeId); return resultResponse(HaoBanErrCode.ERR_10012);
//校验手机是否唯一 }
if (store == null) { // 导购code校验-字母和数字
return resultResponse(HaoBanErrCode.ERR_10009); if (!clerkCode.matches("[a-zA-Z0-9]+")) {
} return resultResponse(HaoBanErrCode.ERR_10023);
String enterpriseId = store.getEnterpriseId(); }
boolean b = auditApiService.judgeHavePhoneNumberOrCode(enterpriseId, clerkCode, phoneNumber); if (version == null) {
if(b){ StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId, nationcode, phoneNumber);
//待审核中存在code或该手机号 if (staff != null) {
return resultResponse(HaoBanErrCode.ERR_10021); return resultResponse(HaoBanErrCode.ERR_10005);
} }
ClerkDTO clerk = clerkService.getClerkByCodeNoDel(store.getEnterpriseId(), clerkCode); }
logger.info("【新增店员】clerk={}",JSON.toJSONString(clerk)); com.gic.enterprise.api.dto.StoreDTO store = storeService.getStoreByIdNoStatus(storeId);
if(clerk != null){ //校验手机是否唯一
return resultResponse(HaoBanErrCode.ERR_10013); if (store == null) {
} return resultResponse(HaoBanErrCode.ERR_10009);
AuditSettingDTO dto = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId); }
// 企业绑定详情-导购编辑权限 String enterpriseId = store.getEnterpriseId();
WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService boolean b = auditApiService.judgeHavePhoneNumberOrCode(enterpriseId, clerkCode, phoneNumber);
.getEnterpriseBindInfo(wxEnterpriseId, enterpriseId); if (b) {
if(dto.getAuditFlag() == 1 //待审核中存在code或该手机号
&& dto.getClerkChangeFlag() == 1 return resultResponse(HaoBanErrCode.ERR_10021);
&& enterpriseBindInfo.getClerkEditFlag() == 1) { }
AuditDTO auditDTO =auditApiService.findByBindRelatedIdAndAuditType(clerkCode, AuditType.CLERK_ADD.getCode()); ClerkDTO clerk = clerkService.getClerkByCodeNoDel(store.getEnterpriseId(), clerkCode);
if(auditDTO !=null){ logger.info("【新增店员】clerk={}", JSON.toJSONString(clerk));
logger.info("已经存在了审核记录,待审核{}",clerkCode); if (clerk != null) {
return resultResponse(HaoBanErrCode.ERR_10018); return resultResponse(HaoBanErrCode.ERR_10013);
} }
//需要审核 AuditSettingDTO dto = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId);
StaffDTO staff = staffApiService.selectById(staffDTO.getStaffId()); // 企业绑定详情-导购编辑权限
AuditDTO audit = new AuditDTO(); WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService
audit.setCommitStaffName(commitName); .getEnterpriseBindInfo(wxEnterpriseId, enterpriseId);
audit.setCommitStaffId(staffDTO.getStaffId()); if (dto.getAuditFlag() == 1
audit.setCommitStaffImg(staff.getHeadImg()); && dto.getClerkChangeFlag() == 1
audit.setCommitStoreId(storeId); && enterpriseBindInfo.getClerkEditFlag() == 1) {
audit.setCommitStoreName(store.getStoreName()); AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(clerkCode, AuditType.CLERK_ADD.getCode());
audit.setAuditStatus(AuditStatus.NO_AUDIT.getCode()); if (auditDTO != null) {
audit.setWxEnterpriseId(wxEnterpriseId); logger.info("已经存在了审核记录,待审核{}", clerkCode);
audit.setEnterpriseId(store.getEnterpriseId()); return resultResponse(HaoBanErrCode.ERR_10018);
audit.setStatusFlag(1); }
//需要审核
JSONObject json = new JSONObject(); StaffDTO staff = staffApiService.selectById(staffDTO.getStaffId());
json.put("clerkCode", clerkCode); AuditDTO audit = new AuditDTO();
json.put("clerkName", staffName); audit.setCommitStaffName(commitName);
json.put("headPic", staff.getHeadImg()); audit.setCommitStaffId(staffDTO.getStaffId());
json.put("sex", sex); audit.setCommitStaffImg(staff.getHeadImg());
json.put("postion", postion); audit.setCommitStoreId(storeId);
json.put("phoneNumber", phoneNumber); audit.setCommitStoreName(store.getStoreName());
json.put("nationcode", nationcode); audit.setAuditStatus(AuditStatus.NO_AUDIT.getCode());
audit.setWxEnterpriseId(wxEnterpriseId);
audit.setOldValue(json.toJSONString()); audit.setEnterpriseId(store.getEnterpriseId());
audit.setCommitTime(new Date()); audit.setStatusFlag(1);
audit.setAuditType(AuditType.CLERK_ADD.getCode());
audit.setRelatedId(clerkCode); JSONObject json = new JSONObject();
auditApiService.insert(audit); json.put("clerkCode", clerkCode);
return resultResponse(HaoBanErrCode.ERR_1); json.put("clerkName", staffName);
}else{ json.put("headPic", staff.getHeadImg());
//不用审核 json.put("sex", sex);
StaffDTO staff = staffApiService.selectById(staffDTO.getStaffId()); json.put("postion", postion);
AuditDTO audit = new AuditDTO(); json.put("phoneNumber", phoneNumber);
audit.setCommitStaffName(commitName); json.put("nationcode", nationcode);
audit.setCommitStaffId(staffDTO.getStaffId());
audit.setCommitStaffImg(staff.getHeadImg()); audit.setOldValue(json.toJSONString());
audit.setCommitStoreId(storeId); audit.setCommitTime(new Date());
audit.setCommitStoreName(store.getStoreName()); audit.setAuditType(AuditType.CLERK_ADD.getCode());
audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode()); audit.setRelatedId(clerkCode);
audit.setWxEnterpriseId(wxEnterpriseId); auditApiService.insert(audit);
audit.setEnterpriseId(store.getEnterpriseId()); return resultResponse(HaoBanErrCode.ERR_1);
audit.setStatusFlag(1); } else {
audit.setAuditName(commitName); //不用审核
StaffDTO staff = staffApiService.selectById(staffDTO.getStaffId());
JSONObject json = new JSONObject(); AuditDTO audit = new AuditDTO();
json.put("clerkCode", clerkCode); audit.setCommitStaffName(commitName);
json.put("clerkName", staffName); audit.setCommitStaffId(staffDTO.getStaffId());
json.put("headPic", staff.getHeadImg()); audit.setCommitStaffImg(staff.getHeadImg());
json.put("sex", sex); audit.setCommitStoreId(storeId);
json.put("postion", postion); audit.setCommitStoreName(store.getStoreName());
json.put("phoneNumber", phoneNumber); audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode());
json.put("nationcode", nationcode); audit.setWxEnterpriseId(wxEnterpriseId);
audit.setEnterpriseId(store.getEnterpriseId());
audit.setOldValue(json.toJSONString()); audit.setStatusFlag(1);
audit.setCommitTime(new Date()); audit.setAuditName(commitName);
audit.setAuditType(AuditType.CLERK_ADD.getCode());
audit.setRelatedId(clerkCode); JSONObject json = new JSONObject();
auditApiService.insert(audit); json.put("clerkCode", clerkCode);
} json.put("clerkName", staffName);
//只新增gic那边的,不新增好办这边 json.put("headPic", staff.getHeadImg());
boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion); json.put("sex", sex);
if(!flag){ json.put("postion", postion);
return resultResponse(HaoBanErrCode.ERR_10010); json.put("phoneNumber", phoneNumber);
} json.put("nationcode", nationcode);
return resultResponse(HaoBanErrCode.ERR_1);
} audit.setOldValue(json.toJSONString());
audit.setCommitTime(new Date());
//删除店员 audit.setAuditType(AuditType.CLERK_ADD.getCode());
@HttpLimit audit.setRelatedId(clerkCode);
@RequestMapping("/staff-del") auditApiService.insert(audit);
public HaobanResponse staffDel(String wxEnterpriseId,String storeId,Integer version,String clerkIds,String staffId) { }
if(StringUtils.isAnyBlank(clerkIds)) { //只新增gic那边的,不新增好办这边
return resultResponse(HaoBanErrCode.ERR_2); boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion);
} if (!flag) {
com.gic.enterprise.api.dto.StoreDTO store = storeService.getStoreByIdNoStatus(storeId); return resultResponse(HaoBanErrCode.ERR_10010);
//校验手机是否唯一 }
if (store == null) { return resultResponse(HaoBanErrCode.ERR_1);
return resultResponse(HaoBanErrCode.ERR_400001); }
}
AuditSettingDTO dto = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId); //删除店员
if(dto.getClerkChangeFlag() == 1){ @HttpLimit
//需要审核 @RequestMapping("/staff-del")
String[] clerkIdArr = clerkIds.split(","); public HaobanResponse staffDel(String wxEnterpriseId, String storeId, Integer version, String clerkIds, String staffId) {
for (String clerkId : clerkIdArr) { if (StringUtils.isAnyBlank(clerkIds)) {
AuditDTO auditDTO =auditApiService.findByBindRelatedIdAndAuditType(clerkId, AuditType.CLERK_DEL.getCode()); return resultResponse(HaoBanErrCode.ERR_2);
if(auditDTO !=null){ }
logger.info("已经存在了审核记录,待审核{}",clerkId); com.gic.enterprise.api.dto.StoreDTO store = storeService.getStoreByIdNoStatus(storeId);
continue; //校验手机是否唯一
} if (store == null) {
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId); return resultResponse(HaoBanErrCode.ERR_400001);
if(clerkDTO ==null){ }
logger.info("导购不存在",clerkId); AuditSettingDTO dto = auditSettingApiService.findSettingByWxEnterpriseId(wxEnterpriseId);
continue; if (dto.getClerkChangeFlag() == 1) {
} //需要审核
StaffDTO staff = staffApiService.selectById(staffId); String[] clerkIdArr = clerkIds.split(",");
AuditDTO audit = new AuditDTO(); for (String clerkId : clerkIdArr) {
audit.setCommitStaffName(staff.getStaffName()); AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(clerkId, AuditType.CLERK_DEL.getCode());
audit.setCommitStaffId(staffId); if (auditDTO != null) {
audit.setCommitStaffImg(staff.getHeadImg()); logger.info("已经存在了审核记录,待审核{}", clerkId);
audit.setCommitStoreId(storeId); continue;
audit.setCommitStoreName(store.getStoreName()); }
audit.setAuditStatus(AuditStatus.NO_AUDIT.getCode()); ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
audit.setWxEnterpriseId(wxEnterpriseId); if (clerkDTO == null) {
audit.setEnterpriseId(store.getEnterpriseId()); logger.info("导购不存在", clerkId);
audit.setStatusFlag(1); continue;
audit.setRelatedId(clerkId); }
StaffDTO staff = staffApiService.selectById(staffId);
JSONObject json = new JSONObject(); AuditDTO audit = new AuditDTO();
json.put("clerkId", clerkId); audit.setCommitStaffName(staff.getStaffName());
json.put("clerkCode", clerkDTO.getClerkCode()); audit.setCommitStaffId(staffId);
json.put("clerkName", clerkDTO.getClerkName()); audit.setCommitStaffImg(staff.getHeadImg());
json.put("headPic", staff.getHeadImg()); audit.setCommitStoreId(storeId);
audit.setCommitStoreName(store.getStoreName());
audit.setOldValue(json.toJSONString()); audit.setAuditStatus(AuditStatus.NO_AUDIT.getCode());
audit.setCommitTime(new Date()); audit.setWxEnterpriseId(wxEnterpriseId);
audit.setAuditType(AuditType.CLERK_DEL.getCode()); audit.setEnterpriseId(store.getEnterpriseId());
auditApiService.insert(audit); audit.setStatusFlag(1);
} audit.setRelatedId(clerkId);
}else{
//无需审核 JSONObject json = new JSONObject();
String[] clerkIdArr = clerkIds.split(","); json.put("clerkId", clerkId);
for (String clerkId : clerkIdArr) { json.put("clerkCode", clerkDTO.getClerkCode());
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId); json.put("clerkName", clerkDTO.getClerkName());
if(clerkDTO == null){ json.put("headPic", staff.getHeadImg());
logger.info("导购不存在:{}",clerkId);
continue; audit.setOldValue(json.toJSONString());
} audit.setCommitTime(new Date());
if(distributeApiService.getClerkMemberCount(clerkDTO.getEnterpriseId(), clerkId, storeId) == 0){ audit.setAuditType(AuditType.CLERK_DEL.getCode());
if(clerkDTO.getClerkType() == 1){ auditApiService.insert(audit);
logger.info("店长不能删除:{}",clerkId); }
continue; } else {
} //无需审核
} String[] clerkIdArr = clerkIds.split(",");
StaffDTO staff = staffApiService.selectById(staffId); for (String clerkId : clerkIdArr) {
AuditDTO audit = new AuditDTO(); ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
audit.setCommitStaffName(staff.getStaffName()); if (clerkDTO == null) {
audit.setCommitStaffId(staffId); logger.info("导购不存在:{}", clerkId);
audit.setCommitStaffImg(staff.getHeadImg()); continue;
audit.setCommitStoreId(storeId); }
audit.setCommitStoreName(store.getStoreName()); if (distributeApiService.getClerkMemberCount(clerkDTO.getEnterpriseId(), clerkId, storeId) == 0) {
audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode()); if (clerkDTO.getClerkType() == 1) {
audit.setWxEnterpriseId(wxEnterpriseId); logger.info("店长不能删除:{}", clerkId);
audit.setEnterpriseId(store.getEnterpriseId()); continue;
audit.setStatusFlag(1); }
audit.setRelatedId(clerkId); }
audit.setAuditName(staff.getStaffName()); StaffDTO staff = staffApiService.selectById(staffId);
AuditDTO audit = new AuditDTO();
JSONObject json = new JSONObject(); audit.setCommitStaffName(staff.getStaffName());
json.put("clerkId", clerkId); audit.setCommitStaffId(staffId);
json.put("clerkCode", clerkDTO.getClerkCode()); audit.setCommitStaffImg(staff.getHeadImg());
json.put("clerkName", clerkDTO.getClerkName()); audit.setCommitStoreId(storeId);
json.put("headPic", staff.getHeadImg()); audit.setCommitStoreName(store.getStoreName());
audit.setOldValue(json.toJSONString()); audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode());
audit.setCommitTime(new Date()); audit.setWxEnterpriseId(wxEnterpriseId);
audit.setAuditType(AuditType.CLERK_DEL.getCode()); audit.setEnterpriseId(store.getEnterpriseId());
auditApiService.insert(audit); audit.setStatusFlag(1);
audit.setRelatedId(clerkId);
syncHaobanToGicServiceApi.delGicClerk(clerkId); audit.setAuditName(staff.getStaffName());
}
} JSONObject json = new JSONObject();
json.put("clerkId", clerkId);
return resultResponse(HaoBanErrCode.ERR_1); json.put("clerkCode", clerkDTO.getClerkCode());
} json.put("clerkName", clerkDTO.getClerkName());
json.put("headPic", staff.getHeadImg());
/** audit.setOldValue(json.toJSONString());
* 删除设置主门店和刷新微信好友的缓存限制 audit.setCommitTime(new Date());
* audit.setAuditType(AuditType.CLERK_DEL.getCode());
* @param staffId : 关联标识 auditApiService.insert(audit);
* @param dateTime : 时间, 13位时间戳
* @param type : 类型, 1 : 主门店, 2 : 刷新微信好友 syncHaobanToGicServiceApi.delGicClerk(clerkId);
*/ }
@RequestMapping("/delCache") }
public void deleteCache(String staffId, Long dateTime, Integer type) {
if (StringUtils.isBlank(staffId) || dateTime == null || type == null) { return resultResponse(HaoBanErrCode.ERR_1);
return; }
}
/**
* 删除设置主门店和刷新微信好友的缓存限制
*
* @param staffId : 关联标识
* @param dateTime : 时间, 13位时间戳
* @param type : 类型, 1 : 主门店, 2 : 刷新微信好友
*/
@RequestMapping("/delCache")
public void deleteCache(String staffId, Long dateTime, Integer type) {
if (StringUtils.isBlank(staffId) || dateTime == null || type == null) {
return;
}
String yyyyMM = DateUtil.dateToStr(new Date(dateTime), "yyyyMMdd"); String yyyyMM = DateUtil.dateToStr(new Date(dateTime), "yyyyMMdd");
String key = null; String key = null;
//设置主门店缓存 //设置主门店缓存
if (Objects.equals(type, 1)) { if (Objects.equals(type, 1)) {
int i = cn.hutool.core.date.DateUtil.weekOfYear(new Date()); int i = cn.hutool.core.date.DateUtil.weekOfYear(new Date());
key = "haoban_set_main_store_" + i + ":" + staffId; key = "haoban_set_main_store_" + i + ":" + staffId;
} }
if (Objects.equals(type, 2)) { if (Objects.equals(type, 2)) {
key = "haoban_fresh_wx_friend" + yyyyMM + staffId; key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
} }
if (StringUtils.isBlank(key)) { if (StringUtils.isBlank(key)) {
return; return;
} }
RedisUtil.delCache(key); RedisUtil.delCache(key);
} }
//设置主导购 //设置主导购
@HttpLimit @HttpLimit
@RequestMapping("/set-main-store") @RequestMapping("/set-main-store")
public HaobanResponse setMainStore(String staffId, String storeId, String wxEnterpriseId, String dateStr) { public HaobanResponse setMainStore(String staffId, String storeId, String wxEnterpriseId, String dateStr) {
StaffDTO staff = staffApiService.selectById(staffId); StaffDTO staff = staffApiService.selectById(staffId);
Date curDate = new Date(); Date curDate = new Date();
if(staff == null){ if (staff == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
//给测试使用 //给测试使用
if (StringUtils.isNotBlank(dateStr)) { if (StringUtils.isNotBlank(dateStr)) {
curDate = cn.hutool.core.date.DateUtil.parse(dateStr); curDate = cn.hutool.core.date.DateUtil.parse(dateStr);
} }
int i = cn.hutool.core.date.DateUtil.weekOfYear(curDate); int i = cn.hutool.core.date.DateUtil.weekOfYear(curDate);
String key = "haoban_set_main_store_" + i + ":" + staffId; String key = "haoban_set_main_store_" + i + ":" + staffId;
Object hasSet = RedisUtil.getCache(key); Object hasSet = RedisUtil.getCache(key);
if(hasSet == null){ if (hasSet == null) {
RedisUtil.setCache(key, true, 7 * 24 * 60 * 60L); RedisUtil.setCache(key, true, 7 * 24 * 60 * 60L);
clerkMainStoreRelatedApiService.setMainStore(staffId,storeId,wxEnterpriseId); clerkMainStoreRelatedApiService.setMainStore(staffId, storeId, wxEnterpriseId);
}else{ } else {
return resultResponse(HaoBanErrCode.ERR_10031); return resultResponse(HaoBanErrCode.ERR_10031);
} }
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
//设置主导购 //设置主导购
...@@ -541,288 +554,290 @@ public class ClerkController extends WebBaseController { ...@@ -541,288 +554,290 @@ public class ClerkController extends WebBaseController {
} }
} }
//刷新微信好友 //刷新微信好友
@RequestMapping("/fresh-wx-friend") @RequestMapping("/fresh-wx-friend")
public HaobanResponse freshWxFrend(String staffId, String storeId, String wxEnterpriseId, String staffDepartmentRelatedId, String wxUserId public HaobanResponse freshWxFrend(String staffId, String storeId, String wxEnterpriseId, String staffDepartmentRelatedId, String wxUserId
, @RequestParam(defaultValue = "0") Integer flushType) { , @RequestParam(defaultValue = "0") Integer flushType) {
StaffDTO staff = staffApiService.selectById(staffId); StaffDTO staff = staffApiService.selectById(staffId);
String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMMdd"); String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMMdd");
if(staff == null){ if (staff == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
String key = "haoban_fresh_wx_friend" + yyyyMM + staffId; String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key); Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer) RedisUtil.getCache(key);
if (count != null && count > 0) { if (count != null && count > 0) {
logger.info("次数超出限制:{}", staffId); logger.info("次数超出限制:{}", staffId);
return resultResponse(HaoBanErrCode.ERR_10011); return resultResponse(HaoBanErrCode.ERR_10011);
} }
if (flushType == 0) { if (flushType == 0) {
String taskName = "刷新企业微信好友("+staff.getStaffName()+")"; String taskName = "刷新企业微信好友(" + staff.getStaffName() + ")";
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_SINGLE.getType()); String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_SINGLE.getType());
if(StringUtils.isNotBlank(taskId)){ if (StringUtils.isNotBlank(taskId)) {
dealSyncOperationApiService.dealWxFriendClerkSingle(taskId,wxUserId,staffId,wxEnterpriseId); dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, wxUserId, staffId, wxEnterpriseId);
}else{ } else {
return resultResponse(HaoBanErrCode.ERR_10022); return resultResponse(HaoBanErrCode.ERR_10022);
} }
} else { } else {
String taskName = "刷新门店好友"; String taskName = "刷新门店好友";
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_STORE.getType()); String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_STORE.getType());
if (StringUtils.isNotBlank(taskId)) { if (StringUtils.isNotBlank(taskId)) {
dealSyncOperationApiService.dealWxFriendStore(taskId, storeId, wxEnterpriseId); dealSyncOperationApiService.dealWxFriendStore(taskId, storeId, wxEnterpriseId);
} else { } else {
return resultResponse(HaoBanErrCode.ERR_10022); return resultResponse(HaoBanErrCode.ERR_10022);
} }
} }
RedisUtil.setCache(key, 1, 31 * 24 * 60 * 60L); RedisUtil.setCache(key, 1, 31 * 24 * 60 * 60L);
//刷新状态变更 //刷新状态变更
clerkMainStoreRelatedApiService.setFreshFriend(wxEnterpriseId, staffId); clerkMainStoreRelatedApiService.setFreshFriend(wxEnterpriseId, staffId);
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
/** /**
* 刷新好友状态 * 刷新好友状态
* *
* @param staffId * @param staffId
* @param storeId * @param storeId
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
*/ */
@HttpLimit @HttpLimit
@RequestMapping("/check-fresh-friend") @RequestMapping("/check-fresh-friend")
public HaobanResponse checkFreshFriend(String staffId, String storeId, String wxEnterpriseId, String version) { public HaobanResponse checkFreshFriend(String staffId, String storeId, String wxEnterpriseId, String version) {
boolean freshFriendSyncTask = dealSyncOperationApiService.getFreshFriendSyncTask(wxEnterpriseId, staffId); boolean freshFriendSyncTask = dealSyncOperationApiService.getFreshFriendSyncTask(wxEnterpriseId, staffId);
return resultResponse(HaoBanErrCode.ERR_1, freshFriendSyncTask); return resultResponse(HaoBanErrCode.ERR_1, freshFriendSyncTask);
} }
/** /**
* 刷新好友状态 * 刷新好友状态
* *
* @param staffId * @param staffId
* @param storeId * @param storeId
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
*/ */
@HttpLimit @HttpLimit
@RequestMapping("/fresh-friend-count") @RequestMapping("/fresh-friend-count")
public HaobanResponse checkFreshFriend(String staffId, String storeId, String wxEnterpriseId) { public HaobanResponse checkFreshFriend(String staffId, String storeId, String wxEnterpriseId) {
String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMMdd"); String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMMdd");
String key = "haoban_fresh_wx_friend" + yyyyMM + staffId; String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
//1代表能刷新 0 不能刷新 //1代表能刷新 0 不能刷新
Integer count = RedisUtil.getCache(key) == null ? 1 : 0; Integer count = RedisUtil.getCache(key) == null ? 1 : 0;
return resultResponse(HaoBanErrCode.ERR_1, count); return resultResponse(HaoBanErrCode.ERR_1, count);
} }
//获取门店详情 //获取门店详情
public boolean isEnterpriseOver(String eid) { public boolean isEnterpriseOver(String eid) {
EnterpriseDTO enterprise = enterpriseService.getEnterpriseByEid(eid); EnterpriseDTO enterprise = enterpriseService.getEnterpriseByEid(eid);
if (enterprise == null || enterprise.getExpireTime() == null) { if (enterprise == null || enterprise.getExpireTime() == null) {
return false; return false;
} }
return enterprise.getExpireTime().getTime() <= System.currentTimeMillis(); return enterprise.getExpireTime().getTime() <= System.currentTimeMillis();
} }
//精确查,根据手机号或者code,查找 //精确查,根据手机号或者code,查找
@RequestMapping("query-clerk-list-by-code") @RequestMapping("query-clerk-list-by-code")
public HaobanResponse queryClerkListByCode(String keyword,String wxEnterpriseId){ public HaobanResponse queryClerkListByCode(String keyword, String wxEnterpriseId) {
if(StringUtils.isAnyBlank(keyword,wxEnterpriseId)){ if (StringUtils.isAnyBlank(keyword, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId); List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
if(list == null || list.isEmpty()){ if (list == null || list.isEmpty()) {
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
List<String> enterpriseIdList = list.stream().filter(s->{ List<String> enterpriseIdList = list.stream().filter(s -> {
boolean over = isEnterpriseOver(s.getEnterpriseId()); boolean over = isEnterpriseOver(s.getEnterpriseId());
return !over; return !over;
}).map(s->s.getEnterpriseId()).collect(Collectors.toList()); }).map(s -> s.getEnterpriseId()).collect(Collectors.toList());
List<String> storeIds = wxEnterpriseRelatedApiService.listStoreIdByWxEnterpriseId(wxEnterpriseId); List<String> storeIds = wxEnterpriseRelatedApiService.listStoreIdByWxEnterpriseId(wxEnterpriseId);
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIds, keyword); List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIds, keyword);
List<ClerkStoreVO> clerkStoreList = new ArrayList<>(); List<ClerkStoreVO> clerkStoreList = new ArrayList<>();
if(CollectionUtil.isEmpty(clerkList)){ if (CollectionUtil.isEmpty(clerkList)) {
return resultResponse(HaoBanErrCode.ERR_1,clerkStoreList); return resultResponse(HaoBanErrCode.ERR_1, clerkStoreList);
} }
List<EnterpriseDTO> enterpriselist = enterpriseService.listEnterpriseByIds(enterpriseIdList); List<EnterpriseDTO> enterpriselist = enterpriseService.listEnterpriseByIds(enterpriseIdList);
Map<String,EnterpriseDTO> map = com.gic.commons.util.CollectionUtil.toMap(enterpriselist,"enterpriseId"); Map<String, EnterpriseDTO> map = com.gic.commons.util.CollectionUtil.toMap(enterpriselist, "enterpriseId");
List<String> clerkIds = clerkList.stream().map(s->s.getClerkId()).collect(Collectors.toList()); List<String> clerkIds = clerkList.stream().map(s -> s.getClerkId()).collect(Collectors.toList());
List<StaffClerkRelationDTO> clerkRelations = staffClerkRelationApiService.listByClerkIds(clerkIds); List<StaffClerkRelationDTO> clerkRelations = staffClerkRelationApiService.listByClerkIds(clerkIds);
Map<String,StaffClerkRelationDTO> clerkBindMap = com.gic.commons.util.CollectionUtil.toMap(clerkRelations, "clerkId"); Map<String, StaffClerkRelationDTO> clerkBindMap = com.gic.commons.util.CollectionUtil.toMap(clerkRelations, "clerkId");
for (ClerkDTO clerk : clerkList) { for (ClerkDTO clerk : clerkList) {
String enterpriseId = clerk.getEnterpriseId(); String enterpriseId = clerk.getEnterpriseId();
EnterpriseDTO enterpriseDTO = map.get(enterpriseId); EnterpriseDTO enterpriseDTO = map.get(enterpriseId);
StaffClerkRelationDTO staffClerkRelationDTO = clerkBindMap.get(clerk.getClerkId()); StaffClerkRelationDTO staffClerkRelationDTO = clerkBindMap.get(clerk.getClerkId());
ClerkStoreVO vo = new ClerkStoreVO(); ClerkStoreVO vo = new ClerkStoreVO();
vo.setClerkId(clerk.getClerkId()); vo.setClerkId(clerk.getClerkId());
vo.setClerkCode(clerk.getClerkCode()); vo.setClerkCode(clerk.getClerkCode());
vo.setClerkName(clerk.getClerkName()); vo.setClerkName(clerk.getClerkName());
vo.setClerkType(clerk.getClerkType()); vo.setClerkType(clerk.getClerkType());
vo.setEnterpriseName(enterpriseDTO == null?"":enterpriseDTO.getEnterpriseName()); vo.setEnterpriseName(enterpriseDTO == null ? "" : enterpriseDTO.getEnterpriseName());
vo.setHeadImg(clerk.getHeadImgUrl()); vo.setHeadImg(clerk.getHeadImgUrl());
vo.setPhoneNumber(clerk.getPhoneNumber()); vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setNationCode(clerk.getNationcode()); vo.setNationCode(clerk.getNationcode());
StoreDTO store = storeService.getStore(clerk.getStoreId()); StoreDTO store = storeService.getStore(clerk.getStoreId());
vo.setStoreName(store == null?"":store.getStoreName()); vo.setStoreName(store == null ? "" : store.getStoreName());
vo.setStoreAddress(store == null?"":store.getStoreAddress()); vo.setStoreAddress(store == null ? "" : store.getStoreAddress());
vo.setBindFlag(staffClerkRelationDTO==null ? 0:1); vo.setBindFlag(staffClerkRelationDTO == null ? 0 : 1);
vo.setStaffId(staffClerkRelationDTO==null ? "":staffClerkRelationDTO.getStaffId()); vo.setStaffId(staffClerkRelationDTO == null ? "" : staffClerkRelationDTO.getStaffId());
vo.setStoreId(clerk.getStoreId()); vo.setStoreId(clerk.getStoreId());
clerkStoreList.add(vo); clerkStoreList.add(vo);
} }
if(CollectionUtil.isNotEmpty(clerkStoreList)){ if (CollectionUtil.isNotEmpty(clerkStoreList)) {
clerkStoreList = clerkStoreList.stream().filter(s->org.apache.commons.lang.StringUtils.isNotBlank(s.getStoreId())).collect(Collectors.toList()); clerkStoreList = clerkStoreList.stream().filter(s -> org.apache.commons.lang.StringUtils.isNotBlank(s.getStoreId())).collect(Collectors.toList());
} }
return resultResponse(HaoBanErrCode.ERR_1,clerkStoreList); return resultResponse(HaoBanErrCode.ERR_1, clerkStoreList);
} }
//绑定
@HttpLimit //绑定
@RequestMapping("bind-staff") @HttpLimit
public HaobanResponse bindStaff(String clerkId,String staffId ,Integer auditType){ @RequestMapping("bind-staff")
if(StringUtils.isAnyBlank(clerkId,staffId)){ public HaobanResponse bindStaff(String clerkId, String staffId, Integer auditType) {
return resultResponse(HaoBanErrCode.ERR_2); if (StringUtils.isAnyBlank(clerkId, staffId)) {
} return resultResponse(HaoBanErrCode.ERR_2);
if(auditType == null ){ }
return resultResponse(HaoBanErrCode.ERR_2); if (auditType == null) {
} return resultResponse(HaoBanErrCode.ERR_2);
ClerkDTO clerk = clerkService.getclerkById(clerkId); }
if(clerk == null){ ClerkDTO clerk = clerkService.getclerkById(clerkId);
return resultResponse(HaoBanErrCode.ERR_10016); if (clerk == null) {
} return resultResponse(HaoBanErrCode.ERR_10016);
StaffDTO staff = staffApiService.selectById(staffId); }
if(staff == null){ StaffDTO staff = staffApiService.selectById(staffId);
return resultResponse(HaoBanErrCode.ERR_10006); if (staff == null) {
} return resultResponse(HaoBanErrCode.ERR_10006);
AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(clerkId,AuditType.CLERK_BIND.getCode()); }
if(auditDTO != null){ AuditDTO auditDTO = auditApiService.findByBindRelatedIdAndAuditType(clerkId, AuditType.CLERK_BIND.getCode());
return resultResponse(HaoBanErrCode.ERR_10018); if (auditDTO != null) {
} return resultResponse(HaoBanErrCode.ERR_10018);
StaffClerkRelationDTO haveclekCode = staffClerkRelationApiService.getOneByStoreIdAndStaffId(clerk.getStoreId(), staffId); }
if(haveclekCode !=null){ StaffClerkRelationDTO haveclekCode = staffClerkRelationApiService.getOneByStoreIdAndStaffId(clerk.getStoreId(), staffId);
return resultResponse(HaoBanErrCode.ERR_10020); if (haveclekCode != null) {
} return resultResponse(HaoBanErrCode.ERR_10020);
}
StoreDTO store = storeService.getStore(clerk.getStoreId());
String clerkCode = clerk.getClerkCode(); StoreDTO store = storeService.getStore(clerk.getStoreId());
String wxEnterpriseId = staff.getWxEnterpriseId(); String clerkCode = clerk.getClerkCode();
String wxUserId = staff.getWxUserId(); String wxEnterpriseId = staff.getWxEnterpriseId();
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode,store.getEnterpriseId()); String wxUserId = staff.getWxUserId();
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode, store.getEnterpriseId());
// if(staffClerkRelation != null){ // if(staffClerkRelation != null){
// return resultResponse(HaoBanErrCode.ERR_111117); // return resultResponse(HaoBanErrCode.ERR_111117);
// } // }
if(auditType == 2){ if (auditType == 2) {
//无需审核 //无需审核
if(staffClerkRelation == null){ if (staffClerkRelation == null) {
staffClerkRelation = new StaffClerkRelationDTO(); staffClerkRelation = new StaffClerkRelationDTO();
} }
staffClerkRelation.setClerkId(clerkId); staffClerkRelation.setClerkId(clerkId);
staffClerkRelation.setClerkCode(clerkCode); staffClerkRelation.setClerkCode(clerkCode);
staffClerkRelation.setStoreId(clerk.getStoreId()); staffClerkRelation.setStoreId(clerk.getStoreId());
staffClerkRelation.setEnterpriseId(clerk.getEnterpriseId()); staffClerkRelation.setEnterpriseId(clerk.getEnterpriseId());
staffClerkRelation.setWxEnterpriseId(wxEnterpriseId); staffClerkRelation.setWxEnterpriseId(wxEnterpriseId);
staffClerkRelation.setWxUserId(wxUserId); staffClerkRelation.setWxUserId(wxUserId);
staffClerkRelation.setStaffId(staffId); staffClerkRelation.setStaffId(staffId);
staffClerkRelationApiService.delAndInsert(staffClerkRelation,staffId,ChannelCodeEnum.SELF_BIND.getCode()); staffClerkRelationApiService.delAndInsert(staffClerkRelation, staffId, ChannelCodeEnum.SELF_BIND.getCode());
//无需审核 //无需审核
AuditDTO audit = new AuditDTO(); AuditDTO audit = new AuditDTO();
audit.setCommitStaffName(staff.getStaffName()); audit.setCommitStaffName(staff.getStaffName());
audit.setCommitStaffId(staffId); audit.setCommitStaffId(staffId);
audit.setCommitStaffImg(staff.getHeadImg()); audit.setCommitStaffImg(staff.getHeadImg());
audit.setCommitStoreId(clerk.getStoreId()); audit.setCommitStoreId(clerk.getStoreId());
audit.setCommitStoreName(store.getStoreName()); audit.setCommitStoreName(store.getStoreName());
audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode()); audit.setAuditStatus(AuditStatus.NOT_NEED_AUDIT.getCode());
audit.setWxEnterpriseId(wxEnterpriseId); audit.setWxEnterpriseId(wxEnterpriseId);
audit.setEnterpriseId(store.getEnterpriseId()); audit.setEnterpriseId(store.getEnterpriseId());
audit.setStatusFlag(1); audit.setStatusFlag(1);
audit.setRelatedId(clerkId); audit.setRelatedId(clerkId);
audit.setAuditName(staff.getStaffName()); audit.setAuditName(staff.getStaffName());
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("clerkId", clerkId); json.put("clerkId", clerkId);
json.put("clerkCode", clerkCode); json.put("clerkCode", clerkCode);
json.put("clerkName", clerk.getClerkName()); json.put("clerkName", clerk.getClerkName());
json.put("staffName", staff.getStaffName()); json.put("staffName", staff.getStaffName());
json.put("staffId", staffId); json.put("staffId", staffId);
json.put("wxUserId", wxUserId); json.put("wxUserId", wxUserId);
json.put("headPic", staff.getHeadImg()); json.put("headPic", staff.getHeadImg());
audit.setOldValue(json.toJSONString()); audit.setOldValue(json.toJSONString());
audit.setCommitTime(new Date()); audit.setCommitTime(new Date());
audit.setAuditType(2); audit.setAuditType(2);
auditApiService.insert(audit); auditApiService.insert(audit);
//返回一个dto给陈大爷 //返回一个dto给陈大爷
StaffClerkRelationDTO resultDTO = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode, clerk.getEnterpriseId()); StaffClerkRelationDTO resultDTO = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode, clerk.getEnterpriseId());
return resultResponse(HaoBanErrCode.ERR_1,resultDTO); return resultResponse(HaoBanErrCode.ERR_1, resultDTO);
}else{ } else {
//需要审核 //需要审核
AuditDTO audit = new AuditDTO(); AuditDTO audit = new AuditDTO();
audit.setCommitStaffName(staff.getStaffName()); audit.setCommitStaffName(staff.getStaffName());
audit.setCommitStaffId(staffId); audit.setCommitStaffId(staffId);
audit.setCommitStaffImg(staff.getHeadImg()); audit.setCommitStaffImg(staff.getHeadImg());
audit.setCommitStoreId(clerk.getStoreId()); audit.setCommitStoreId(clerk.getStoreId());
audit.setCommitStoreName(store.getStoreName()); audit.setCommitStoreName(store.getStoreName());
audit.setAuditStatus(0); audit.setAuditStatus(0);
audit.setWxEnterpriseId(wxEnterpriseId); audit.setWxEnterpriseId(wxEnterpriseId);
audit.setEnterpriseId(store.getEnterpriseId()); audit.setEnterpriseId(store.getEnterpriseId());
audit.setStatusFlag(1); audit.setStatusFlag(1);
audit.setRelatedId(clerkId); audit.setRelatedId(clerkId);
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("clerkId", clerkId); json.put("clerkId", clerkId);
json.put("clerkCode", clerkCode); json.put("clerkCode", clerkCode);
json.put("clerkName", clerk.getClerkName()); json.put("clerkName", clerk.getClerkName());
json.put("staffName", staff.getStaffName()); json.put("staffName", staff.getStaffName());
json.put("staffId", staffId); json.put("staffId", staffId);
json.put("wxUserId", wxUserId); json.put("wxUserId", wxUserId);
json.put("headPic", staff.getHeadImg()); json.put("headPic", staff.getHeadImg());
audit.setOldValue(json.toJSONString()); audit.setOldValue(json.toJSONString());
audit.setCommitTime(new Date()); audit.setCommitTime(new Date());
audit.setAuditType(2); audit.setAuditType(2);
auditApiService.insert(audit); auditApiService.insert(audit);
//TODO huang 发送店长,门店关联记录列表 //TODO huang 发送店长,门店关联记录列表
String messageTitle = "门店账号申请"; String messageTitle = "门店账号申请";
String messageContent = staff.getStaffName()+"申请关联导购code("+clerkCode+")"; String messageContent = staff.getStaffName() + "申请关联导购code(" + clerkCode + ")";
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", clerk.getStoreId()); jsonObject.put("storeId", clerk.getStoreId());
String data = jsonObject.toJSONString(); String data = jsonObject.toJSONString();
ClerkDTO gicClerk = clerkService.getClerkLeaderByStoreId(clerk.getStoreId()); ClerkDTO gicClerk = clerkService.getClerkLeaderByStoreId(clerk.getStoreId());
if(gicClerk == null){ if (gicClerk == null) {
//店长不存在,直接返回 //店长不存在,直接返回
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
String pageUrl = staffDepartmentRelatedApiService.getPageUrl(AppPageType.STORE_RELATED_RECORD.getCode(), data); String pageUrl = staffDepartmentRelatedApiService.getPageUrl(AppPageType.STORE_RELATED_RECORD.getCode(), data);
staffDepartmentRelatedApiService.sendSingleMessage(gicClerk.getClerkId(), messageTitle, messageContent, pageUrl); staffDepartmentRelatedApiService.sendSingleMessage(gicClerk.getClerkId(), messageTitle, messageContent, pageUrl);
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
} }
//解绑
@RequestMapping("unbind-staff") //解绑
public HaobanResponse unBindStaff(String clerkId,String clerkCode,String staffId,String storeId){ @RequestMapping("unbind-staff")
logger.info("解绑 操作人:{},备操作人:{},操作门店:{}",staffId,clerkId,storeId); public HaobanResponse unBindStaff(String clerkId, String clerkCode, String staffId, String storeId) {
if(StringUtils.isAnyBlank(clerkId,clerkCode,staffId)){ logger.info("解绑 操作人:{},备操作人:{},操作门店:{}", staffId, clerkId, storeId);
return resultResponse(HaoBanErrCode.ERR_2); if (StringUtils.isAnyBlank(clerkId, clerkCode, staffId)) {
} return resultResponse(HaoBanErrCode.ERR_2);
ClerkDTO clerk = clerkService.getclerkById(clerkId); }
if(clerk == null){ ClerkDTO clerk = clerkService.getclerkById(clerkId);
return resultResponse(HaoBanErrCode.ERR_10016); if (clerk == null) {
} return resultResponse(HaoBanErrCode.ERR_10016);
StaffDTO staff = staffApiService.selectById(staffId); }
if(staff == null){ StaffDTO staff = staffApiService.selectById(staffId);
return resultResponse(HaoBanErrCode.ERR_10006); if (staff == null) {
} return resultResponse(HaoBanErrCode.ERR_10006);
StoreDTO store = storeService.getStore(clerk.getStoreId()); }
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode,store.getEnterpriseId()); StoreDTO store = storeService.getStore(clerk.getStoreId());
if(staffClerkRelation == null){ StaffClerkRelationDTO staffClerkRelation = staffClerkRelationApiService.getByCodeAndEnterpriseId(clerkCode, store.getEnterpriseId());
return resultResponse(HaoBanErrCode.ERR_111145); if (staffClerkRelation == null) {
} return resultResponse(HaoBanErrCode.ERR_111145);
}
//解绑无需审核,只插入记录即可
//解绑无需审核,只插入记录即可
// AuditDTO audit = new AuditDTO(); // AuditDTO audit = new AuditDTO();
// audit.setCommitStaffName(clerk.getClerkName()); // audit.setCommitStaffName(clerk.getClerkName());
// audit.setCommitStaffId(staffId); // audit.setCommitStaffId(staffId);
...@@ -849,241 +864,243 @@ public class ClerkController extends WebBaseController { ...@@ -849,241 +864,243 @@ public class ClerkController extends WebBaseController {
// audit.setAuditName(staff.getStaffName()); // audit.setAuditName(staff.getStaffName());
// audit.setAuditType(5); // audit.setAuditType(5);
// auditApiService.insert(audit); // auditApiService.insert(audit);
staffClerkRelationApiService.delByStoreIdAndCode(storeId, clerkCode); staffClerkRelationApiService.delByStoreIdAndCode(storeId, clerkCode);
//加入日志 //加入日志
staffClerkRelationApiService.pushToBindLog(staffClerkRelation.getStaffId(),staffId, BindTypeEnum.UNBIND.getVal(), ChannelCodeEnum.SELF_UNBIND.getCode(),staffClerkRelation.getStaffClerkRelationId()); staffClerkRelationApiService.pushToBindLog(staffClerkRelation.getStaffId(), staffId, BindTypeEnum.UNBIND.getVal(), ChannelCodeEnum.SELF_UNBIND.getCode(), staffClerkRelation.getStaffClerkRelationId());
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
//门店导购列表 //门店导购列表
@RequestMapping("store-clerk-list") @RequestMapping("store-clerk-list")
public HaobanResponse storeClerkList(String storeId,String wxEnterpriseId){ public HaobanResponse storeClerkList(String storeId, String wxEnterpriseId) {
if(StringUtils.isAnyBlank(storeId,wxEnterpriseId)){ if (StringUtils.isAnyBlank(storeId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
StoreDTO store = storeService.getStore(storeId); StoreDTO store = storeService.getStore(storeId);
if(store == null){ if (store == null) {
return resultResponse(HaoBanErrCode.ERR_10009); return resultResponse(HaoBanErrCode.ERR_10009);
} }
List<ClerkListDTO> list = clerkService.getClerkByStoreId(store.getEnterpriseId(), storeId); List<ClerkListDTO> list = clerkService.getClerkByStoreId(store.getEnterpriseId(), storeId);
Set<String> clerkCodeList = list.stream().map(ClerkListDTO::getClerkCode).collect(Collectors.toSet()); Set<String> clerkCodeList = list.stream().map(ClerkListDTO::getClerkCode).collect(Collectors.toSet());
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCode(store.getEnterpriseId(),clerkCodeList); List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCode(store.getEnterpriseId(), clerkCodeList);
Map<String,StaffClerkRelationDTO> bindCodeMap = bindRelationList.stream().collect(Collectors.toMap(StaffClerkRelationDTO::getClerkCode, s->s)); Map<String, StaffClerkRelationDTO> bindCodeMap = bindRelationList.stream().collect(Collectors.toMap(StaffClerkRelationDTO::getClerkCode, s -> s));
List<BindClerkVO> bindList = new ArrayList<>(); List<BindClerkVO> bindList = new ArrayList<>();
List<BindClerkVO> unBindList = new ArrayList<>(); List<BindClerkVO> unBindList = new ArrayList<>();
for (ClerkListDTO clerkListDTO : list) { for (ClerkListDTO clerkListDTO : list) {
BindClerkVO vo = EntityUtil.changeEntityByJSON(BindClerkVO.class, clerkListDTO); BindClerkVO vo = EntityUtil.changeEntityByJSON(BindClerkVO.class, clerkListDTO);
if (bindCodeMap.containsKey(clerkListDTO.getClerkCode())) { if (bindCodeMap.containsKey(clerkListDTO.getClerkCode())) {
String staffId = bindCodeMap.get(clerkListDTO.getClerkCode()).getStaffId(); String staffId = bindCodeMap.get(clerkListDTO.getClerkCode()).getStaffId();
StaffDTO staffDTO = staffApiService.selectById(staffId); StaffDTO staffDTO = staffApiService.selectById(staffId);
vo.setStaffId(staffId); vo.setStaffId(staffId);
vo.setNationCode(clerkListDTO.getNationcode()); vo.setNationCode(clerkListDTO.getNationcode());
vo.setPhoneNumber(clerkListDTO.getPhoneNumber()); vo.setPhoneNumber(clerkListDTO.getPhoneNumber());
vo.setStaffName(staffDTO == null ? "" : staffDTO.getStaffName()); vo.setStaffName(staffDTO == null ? "" : staffDTO.getStaffName());
bindList.add(vo); bindList.add(vo);
} else { } else {
unBindList.add(vo); unBindList.add(vo);
} }
} }
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("bindList", bindList); map.put("bindList", bindList);
map.put("unBindList", unBindList); map.put("unBindList", unBindList);
return resultResponse(HaoBanErrCode.ERR_1,map); return resultResponse(HaoBanErrCode.ERR_1, map);
} }
//门店列表 //门店列表
@RequestMapping("staff-store-list") @RequestMapping("staff-store-list")
public HaobanResponse staffStoreList(String staffId,String wxEnterpriseId){ public HaobanResponse staffStoreList(String staffId, String wxEnterpriseId) {
if(StringUtils.isAnyBlank(staffId,wxEnterpriseId)){ if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
List<StaffStoreVO> list = new ArrayList<>(); List<StaffStoreVO> list = new ArrayList<>();
List<EnterpriseDetailDTO> enterpriseList = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId); List<EnterpriseDetailDTO> enterpriseList = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
List<String> enterpriseIdList = enterpriseList.stream().map(EnterpriseDetailDTO::getEnterpriseId).collect(Collectors.toList()); List<String> enterpriseIdList = enterpriseList.stream().map(EnterpriseDetailDTO::getEnterpriseId).collect(Collectors.toList());
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCodeByStaffId(enterpriseIdList, staffId); List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listBindCodeByStaffId(enterpriseIdList, staffId);
//主门店 //主门店
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId); ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId);
String storeId = mainDTO == null?"":mainDTO.getStoreId(); String storeId = mainDTO == null ? "" : mainDTO.getStoreId();
for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) { for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) {
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), staffClerkRelationDTO.getClerkCode()); ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), staffClerkRelationDTO.getClerkCode());
if(clerk != null){ if (clerk != null) {
StoreDTO store = storeService.getStore(clerk.getStoreId()); StoreDTO store = storeService.getStore(clerk.getStoreId());
//主门店标志 //主门店标志
int mainStoreFlag = 0; int mainStoreFlag = 0;
if(StringUtils.isEmpty(storeId)){ if (StringUtils.isEmpty(storeId)) {
mainStoreFlag = 0; mainStoreFlag = 0;
}else if(storeId.equals(store.getStoreId())){ } else if (storeId.equals(store.getStoreId())) {
mainStoreFlag = 1; mainStoreFlag = 1;
} }
staffDepartmentRelatedApiService.listByStaffId(staffId); staffDepartmentRelatedApiService.listByStaffId(staffId);
StaffStoreVO vo = new StaffStoreVO(); StaffStoreVO vo = new StaffStoreVO();
vo.setClerkCode(clerk.getClerkCode()); vo.setClerkCode(clerk.getClerkCode());
vo.setClerkId(clerk.getClerkId()); vo.setClerkId(clerk.getClerkId());
vo.setClerkType(clerk.getClerkType()); vo.setClerkType(clerk.getClerkType());
vo.setEnterpriseId(clerk.getEnterpriseId()); vo.setEnterpriseId(clerk.getEnterpriseId());
vo.setMainStoreFlag(mainStoreFlag); vo.setMainStoreFlag(mainStoreFlag);
vo.setPhoneNumber(clerk.getPhoneNumber()); vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setStaffId(staffId); vo.setStaffId(staffId);
vo.setStoreId(clerk.getStoreId()); vo.setStoreId(clerk.getStoreId());
vo.setStoreImg(store.getStoreImage()); vo.setStoreImg(store.getStoreImage());
vo.setStoreName(store.getStoreName()); vo.setStoreName(store.getStoreName());
vo.setWxEnterpriseId(wxEnterpriseId); vo.setWxEnterpriseId(wxEnterpriseId);
vo.setBindFlag(1); vo.setBindFlag(1);
list.add(vo); list.add(vo);
} }
} }
return resultResponse(HaoBanErrCode.ERR_1,list); return resultResponse(HaoBanErrCode.ERR_1, list);
} }
//刷新导购信息 //刷新导购信息
@RequestMapping("/fresh-clerk-info") @RequestMapping("/fresh-clerk-info")
public HaobanResponse freshClerkInfo(String clerkId,String wxEnterpriseId) { public HaobanResponse freshClerkInfo(String clerkId, String wxEnterpriseId) {
StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId); StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId);
if (staffRelation == null) { if (staffRelation == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
staffApiService.wxGetAdd(staffRelation.getWxUserId(), wxEnterpriseId); staffApiService.wxGetAdd(staffRelation.getWxUserId(), wxEnterpriseId);
String staffId = staffRelation.getStaffId(); String staffId = staffRelation.getStaffId();
StaffDTO staff = staffApiService.selectById(staffId); StaffDTO staff = staffApiService.selectById(staffId);
if (staff == null) { if (staff == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
String headPic = staff.getHeadImg(); String headPic = staff.getHeadImg();
String phoneNumber = staff.getPhoneNumber(); String phoneNumber = staff.getPhoneNumber();
String nationCode = staff.getNationCode(); String nationCode = staff.getNationCode();
Integer sex = staff.getSex(); Integer sex = staff.getSex();
ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId);
if (clerk == null) { if (clerk == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
if (StringUtils.isNotBlank(headPic)) { if (StringUtils.isNotBlank(headPic)) {
clerk.setHeadImgUrl(headPic); clerk.setHeadImgUrl(headPic);
clerk.setImageUrl(headPic); clerk.setImageUrl(headPic);
} }
if (StringUtils.isNotBlank(phoneNumber)) { if (StringUtils.isNotBlank(phoneNumber)) {
List<ClerkListDTO> list = clerkService.getClerkByStoreId(clerk.getEnterpriseId(), clerk.getStoreId()); List<ClerkListDTO> list = clerkService.getClerkByStoreId(clerk.getEnterpriseId(), clerk.getStoreId());
for (ClerkListDTO clerkListDTO : list) { for (ClerkListDTO clerkListDTO : list) {
if (clerkListDTO.getPhoneNumber().equals(phoneNumber) && !clerkListDTO.getClerkId().equals(clerkId)) { if (clerkListDTO.getPhoneNumber().equals(phoneNumber) && !clerkListDTO.getClerkId().equals(clerkId)) {
return resultResponse(HaoBanErrCode.ERR_11122); return resultResponse(HaoBanErrCode.ERR_11122);
} }
} }
clerk.setPhoneNumber(phoneNumber); clerk.setPhoneNumber(phoneNumber);
} }
if(StringUtils.isNotBlank(nationCode)){ if (StringUtils.isNotBlank(nationCode)) {
clerk.setNationcode(nationCode); clerk.setNationcode(nationCode);
} }
if(sex != null){ if (sex != null) {
clerk.setClerkGender(sex.toString()); clerk.setClerkGender(sex.toString());
} }
clerkService.updateClerk(clerk); clerkService.updateClerk(clerk);
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
/** /**
* 导购详情 * 导购详情
* @param clerkId *
* @param wxEnterpriseId * @param clerkId
* @return * @param wxEnterpriseId
*/ * @return
@RequestMapping("/clerk-detail") */
public HaobanResponse clerkDetail(String clerkId,String wxEnterpriseId) { @RequestMapping("/clerk-detail")
public HaobanResponse clerkDetail(String clerkId, String wxEnterpriseId) {
// StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId); // StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId);
// if(staffRelation == null){ // if(staffRelation == null){
// return resultResponse(HaoBanErrCode.ERR_10006); // return resultResponse(HaoBanErrCode.ERR_10006);
// } // }
if (StringUtils.isBlank(clerkId)) { if (StringUtils.isBlank(clerkId)) {
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId);
if(clerk == null){ if (clerk == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
return resultResponse(HaoBanErrCode.ERR_1,EntityUtil.changeEntityByJSON(ClerkDetailVo.class,clerk)); return resultResponse(HaoBanErrCode.ERR_1, EntityUtil.changeEntityByJSON(ClerkDetailVo.class, clerk));
} }
/** /**
* 更新导购 * 更新导购
* @param clerkId *
* @param fieldType * @param clerkId
* @return * @param fieldType
*/ * @return
@RequestMapping("/save-clerk") */
public HaobanResponse clerkSave(String clerkId,String fieldValue,Integer fieldType) { @RequestMapping("/save-clerk")
public HaobanResponse clerkSave(String clerkId, String fieldValue, Integer fieldType) {
// StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId); // StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId);
// if(staffRelation == null){ // if(staffRelation == null){
// return resultResponse(HaoBanErrCode.ERR_10006); // return resultResponse(HaoBanErrCode.ERR_10006);
// } // }
if (StringUtils.isBlank(clerkId)||StringUtils.isBlank(fieldValue)|| null == fieldType) { if (StringUtils.isBlank(clerkId) || StringUtils.isBlank(fieldValue) || null == fieldType) {
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId);
if(clerk == null){ if (clerk == null) {
return resultResponse(HaoBanErrCode.ERR_10006); return resultResponse(HaoBanErrCode.ERR_10006);
} }
if (fieldType==0) { if (fieldType == 0) {
clerk.setClerkName(fieldValue); clerk.setClerkName(fieldValue);
}else if (fieldType == 1) { } else if (fieldType == 1) {
clerk.setClerkGender(fieldValue); clerk.setClerkGender(fieldValue);
}else if (fieldType == 2) { } else if (fieldType == 2) {
String[] split = fieldValue.split("-"); String[] split = fieldValue.split("-");
if (split.length==2) { if (split.length == 2) {
clerk.setPhoneNumber(split[1]); clerk.setPhoneNumber(split[1]);
clerk.setNationcode(split[0]); clerk.setNationcode(split[0]);
}else{ } else {
logger.info("手机号不争取:{}",fieldValue); logger.info("手机号不争取:{}", fieldValue);
return resultResponse(HaoBanErrCode.ERR_5); return resultResponse(HaoBanErrCode.ERR_5);
} }
}else if (fieldType == 3) { } else if (fieldType == 3) {
clerk.setHeadImgUrl(fieldValue); clerk.setHeadImgUrl(fieldValue);
} }
String res = clerkService.updateClerk(clerk); String res = clerkService.updateClerk(clerk);
if(StringUtils.isBlank(res)){ if (StringUtils.isBlank(res)) {
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
return resultResponse(HaoBanErrCode.ERR_0,res,null,res); return resultResponse(HaoBanErrCode.ERR_0, res, null, res);
} }
/** /**
* 外部联系人需要发送的好友 * 外部联系人需要发送的好友
* *
* @param staffId * @param staffId
* @param status * @param status
* @param pageInfo * @param pageInfo
* @return * @return
*/ */
@RequestMapping("external-friend-list") @RequestMapping("external-friend-list")
public HaobanResponse friendList(String staffId, Integer status, BasePageInfo pageInfo) { public HaobanResponse friendList(String staffId, Integer status, BasePageInfo pageInfo) {
List<Integer> statusFlags = new ArrayList<>(); List<Integer> statusFlags = new ArrayList<>();
if (status == null) { if (status == null) {
statusFlags.add(3); statusFlags.add(3);
statusFlags.add(4); statusFlags.add(4);
} else { } else {
statusFlags.add(status); statusFlags.add(status);
} }
StaffDTO staff = staffApiService.selectById(staffId); StaffDTO staff = staffApiService.selectById(staffId);
Page<ExternalClerkRelatedDTO> page = externalClerkRelatedApiService.pageExternalClerk(staff.getWxEnterpriseId(), staff.getWxUserId(), statusFlags, pageInfo); Page<ExternalClerkRelatedDTO> page = externalClerkRelatedApiService.pageExternalClerk(staff.getWxEnterpriseId(), staff.getWxUserId(), statusFlags, pageInfo);
PageResult2 retPage = PageUtil.getPageInfo(page); PageResult2 retPage = PageUtil.getPageInfo(page);
return resultResponse(HaoBanErrCode.ERR_1, retPage); return resultResponse(HaoBanErrCode.ERR_1, retPage);
} }
/** /**
* 外部联系人需要发送的好友 * 外部联系人需要发送的好友
* *
* @return * @return
*/ */
@RequestMapping("push-friend") @RequestMapping("push-friend")
@IgnoreLogin @IgnoreLogin
public HaobanResponse friendList(String relationKey) { public HaobanResponse friendList(String relationKey) {
externalClerkRelatedApiService.pushExternalByRelationKey(relationKey); externalClerkRelatedApiService.pushExternalByRelationKey(relationKey);
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
} }
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