Commit ffb1d513 by 墨竹

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

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