Commit f20ceb5f by fudahua

Merge branch 'feature/login-token' into developer

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/AuditApiServiceImpl.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/StaffDepartmentRelatedApiServiceImpl.java
parents 45c3f7ba 375e1aa8
......@@ -168,10 +168,12 @@ public interface ExternalClerkRelatedApiService {
* @param memberIdList 会员id列表
* @param clerkIdList 导购id列表
* @param enterpriseId 企业id
* @return map:key-会员id value-导购的wxUserId
* @author: YongEn
* @param wxEnterpriseId wx企业标识
* @return {@link Map<String, List<ClerkStaffWxUserDTO>> }
* @author mozhu
* @date 2021-12-23 15:43:03
*/
Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId);
Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId,String wxEnterpriseId);
/**
......
......@@ -154,4 +154,20 @@ public interface TabHaobanStaffClerkRelationMapper {
@Param("memberIdList") List<String> memberIdList,
@Param("clerkIdList") List<String> clerkIdList,
@Param("enterpriseId") String enterpriseId);
/**
* 批量查询会员与导购关系并且返回关联信息(新企业)
*
* @param memberIdList 会员id列表
* @param clerkIdList 职员id列表
* @param enterpriseId 企业标识
* @return {@link List<MemberStaffRelExtDO> }
* @author mozhu
* @date 2021-12-23 15:45:48
*/
List<MemberStaffRelExtDO> listMemberStaffRelNew(
@Param("memberIdList") List<String> memberIdList,
@Param("clerkIdList") List<String> clerkIdList,
@Param("enterpriseId") String enterpriseId);
}
\ No newline at end of file
......@@ -62,7 +62,7 @@ import com.github.pagehelper.PageHelper;
*/
@Service
public class AuditApiServiceImpl implements AuditApiService{
private static Logger logger = LoggerFactory.getLogger(AuditApiServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(AuditApiServiceImpl.class);
@Autowired
private TabHaobanAuditMapper auditMapper;
......@@ -390,7 +390,7 @@ public class AuditApiServiceImpl implements AuditApiService{
String areaId = obj.getAreaId();
String storeAddress = obj.getStoreAddress();
logger.info("==========================>areaId={},storeAddress={},newValue={}",areaId,storeAddress,newValue);
String arr[] = storeAddress.split(" ");
String[] arr = storeAddress.split(" ");
store.setAreaId(areaId);
store.setFullArea(arr[0]);
//避免多个空格造成数据混乱
......@@ -551,11 +551,7 @@ public class AuditApiServiceImpl implements AuditApiService{
public boolean judgeHavePhoneNumberOrCode(String enterpriseId,
String clerkCode, String phoneNumber) {
List<TabHaobanAudit> list = auditMapper.judgeHavePhoneNumberOrCode(enterpriseId,clerkCode,phoneNumber);
if(CollectionUtil.isEmpty(list)){
return false;
}else{
return true;
}
return !CollectionUtil.isEmpty(list);
}
}
......@@ -271,12 +271,23 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
@Override
public Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId) {
public Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId, String wxEnterpriseId) {
if (CollectionUtils.isEmpty(memberIdList) || CollectionUtils.isEmpty(clerkIdList)) {
// 2个列表都为空查不了关系
return Collections.emptyMap();
}
List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRel(memberIdList, clerkIdList, enterpriseId);
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterriseMapper.selectByPrimaryKey(wxEnterpriseId);
if (tabHaobanWxEnterprise == null) {
return Collections.emptyMap();
}
//新老企业兼容
String corpid = tabHaobanWxEnterprise.getCorpid();
List<MemberStaffRelExtDO> res = new ArrayList<>();
if (corpid.length() > 20) {
res = staffClerkRelationMapper.listMemberStaffRelNew(memberIdList, clerkIdList, enterpriseId);
} else {
res = staffClerkRelationMapper.listMemberStaffRel(memberIdList, clerkIdList, enterpriseId);
}
if (CollectionUtils.isEmpty(res)) {
return Collections.emptyMap();
}
......
......@@ -430,7 +430,14 @@ public class MessageApiServiceImpl implements MessageApiService {
log.info("企业为空");
return false;
}
String userId = relation.getWxUserId();
StaffDTO staffDTO = staffApiService.selectById(relation.getStaffId());
String corpid = wxEnterprise.getCorpid();
String wxUserId = "";
if (corpid.length() > 20) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
Map<String, String> map = new HashMap<>();
map.put("事件", "人脸匹配");
......@@ -438,13 +445,13 @@ public class MessageApiServiceImpl implements MessageApiService {
map.put("到店时间", arrivalTime);
List<ItemDTO> items = getItemsList(map);
ArrayList<String> list = new ArrayList<>();
list.add(userId);
list.add(wxUserId);
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(list);
messageDTO.setPage(pageUrl);
messageDTO.setTitle("我的顾客通知");
messageDTO.setItems(items);
return qywxSuiteApiService.sendMessage(wxEnterprise.getCorpid(), config.getWxSuiteid(), messageDTO);
return qywxSuiteApiService.sendMessage(corpid, config.getWxSuiteid(), messageDTO);
}
private List<ItemDTO> getItemsList(Map<String, String> map) {
......@@ -477,7 +484,17 @@ public class MessageApiServiceImpl implements MessageApiService {
log.info("企业为空");
return false;
}
String userId = relation.getWxUserId();
StaffDTO staffDTO = staffApiService.selectById(relation.getStaffId());
if (staffDTO == null) {
return false;
}
String corpId = wxEnterprise.getCorpid();
String wxUserId = "";
if (corpId.length() > 20) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
Map<String, String> map = new HashMap<>();
map.put("事件", "会员完善标签");
......@@ -486,7 +503,7 @@ public class MessageApiServiceImpl implements MessageApiService {
map.put("消费时间", customerTime);
List<ItemDTO> items = getItemsList(map);
ArrayList<String> list = new ArrayList<>();
list.add(userId);
list.add(wxUserId);
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(list);
messageDTO.setPage(pageUrl);
......
......@@ -84,7 +84,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override
public StaffDepartmentRelatedDTO getByStaffDepartmentRelatedId(String staffDepartmentRelatedId) {
TabHaobanStaffDepartmentRelated tab = staffDepartmentRelatedMapper.getById(staffDepartmentRelatedId);
if(Objects.isNull(tab)){
if (Objects.isNull(tab)) {
return null;
}
StaffDepartmentRelatedDTO dto = EntityUtil.changeEntity(StaffDepartmentRelatedDTO.class, tab);
......@@ -94,7 +94,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override
public List<StaffDepartmentRelatedDTO> listByStaffId(String staffId) {
List<TabHaobanStaffDepartmentRelated> list = staffDepartmentRelatedMapper.listStaffDepartmentByStaffId(staffId);
if(CollectionUtil.isEmpty(list)){
if (CollectionUtil.isEmpty(list)) {
return new ArrayList<StaffDepartmentRelatedDTO>();
}
List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list);
......@@ -104,7 +104,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override
public List<StaffDepartmentRelatedDTO> listByStaffIds(List<String> staffIds) {
List<TabHaobanStaffDepartmentRelated> list = staffDepartmentRelatedMapper.listStaffDepartmentByStaffIds(staffIds);
if(CollectionUtil.isEmpty(list)){
if (CollectionUtil.isEmpty(list)) {
return new ArrayList<StaffDepartmentRelatedDTO>();
}
List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list);
......@@ -113,17 +113,18 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override
public StaffDepartmentRelatedDTO getOneByClerkCodeAndDepartmentId(String clerkCode, String departmentId) {
TabHaobanStaffDepartmentRelated tab = staffDepartmentRelatedMapper.getDepartmentIdAndCode(departmentId,clerkCode);
if(tab== null){
TabHaobanStaffDepartmentRelated tab = staffDepartmentRelatedMapper.getDepartmentIdAndCode(departmentId, clerkCode);
if (tab == null) {
return null;
}
StaffDepartmentRelatedDTO dto = EntityUtil.changeEntity(StaffDepartmentRelatedDTO.class, tab);
return dto;
}
@Override
public StaffDepartmentRelatedDTO getOneByStaffIdAndDepartmentId(String staffId, String departmentId) {
TabHaobanStaffDepartmentRelated tab = staffDepartmentRelatedMapper.getDepartmentIdAndStaffId(departmentId,staffId);
if(tab== null){
TabHaobanStaffDepartmentRelated tab = staffDepartmentRelatedMapper.getDepartmentIdAndStaffId(departmentId, staffId);
if (tab == null) {
return null;
}
StaffDepartmentRelatedDTO dto = EntityUtil.changeEntity(StaffDepartmentRelatedDTO.class, tab);
......@@ -131,62 +132,85 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
}
@Override
public Map<String,String> getWxUserIdByClerkId(String clerkId) {
Map<String,String> map = new HashMap<>();
public Map<String, String> getWxUserIdByClerkId(String clerkId) {
Map<String, String> map = new HashMap<>();
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
if(tab == null){
TabHaobanStaffClerkRelation relation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
if (relation == null) {
return map;
}
ClerkDTO clerkDTO = clerkService.getclerkById(clerkId);
if(clerkDTO == null){
if (clerkDTO == null) {
return map;
}
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(tab.getWxEnterpriseId());
map.put("wxUserId", tab.getWxUserId());
map.put("wxEnterpriseId", tab.getWxEnterpriseId());
map.put("corpId", tabHaobanWxEnterprise.getCorpid());
map.put("clerkName",clerkDTO.getClerkName());
TabHaobanWxEnterprise wxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(relation.getWxEnterpriseId());
StaffDTO staffDTO = staffApiService.selectById(relation.getStaffId());
if (staffDTO == null) {
return map;
}
String corpid = wxEnterprise.getCorpid();
String wxUserId = "";
if (corpid.length() > 20) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
map.put("wxUserId", wxUserId);
map.put("wxEnterpriseId", wxEnterprise.getWxEnterpriseId());
map.put("corpId", wxEnterprise.getCorpid());
map.put("clerkName", clerkDTO.getClerkName());
return map;
}
public Map<String,String> getWxUserIdByStaffId(String staffId) {
Map<String,String> map = new HashMap<>();
public Map<String, String> getWxUserIdByStaffId(String staffId) {
Map<String, String> map = new HashMap<>();
StaffDTO staffDTO = staffApiService.selectById(staffId);
if(staffDTO == null){
if (staffDTO == null) {
return map;
}
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(staffDTO.getWxEnterpriseId());
map.put("wxUserId", staffDTO.getWxUserId());
String corpid = tabHaobanWxEnterprise.getCorpid();
String wxUserId = "";
if (corpid.length() > 20) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
map.put("wxUserId", wxUserId);
map.put("wxEnterpriseId", tabHaobanWxEnterprise.getWxEnterpriseId());
map.put("corpId", tabHaobanWxEnterprise.getCorpid());
map.put("staffName",staffDTO.getStaffName());
map.put("staffName", staffDTO.getStaffName());
return map;
}
//导购绑定,,审核记录,,消息发送
@Override
public void sendStaffBind(String staffId,String clerkCode,String storeId,int auditStatus,String auditReason){
public void sendStaffBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason) {
//TODO huang 发送申请人,我的记录页
StaffDTO staffDTO = staffApiService.selectById(staffId);
if(staffDTO == null){
logger.info("staff不存在,发送消息失败{}",staffId);
return ;
if (staffDTO == null) {
logger.info("staff不存在,发送消息失败{}", staffId);
return;
}
String messageTitle = "门店账号申请";
String content = staffDTO.getStaffName()+"申请关联导购code("+clerkCode+")";
String content = staffDTO.getStaffName() + "申请关联导购code(" + clerkCode + ")";
JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", storeId);
String data = jsonObject.toJSONString();
String pageUrl = this.getPageUrl(AppPageType.MY_RELATED_RECORD.getCode(), data);
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(staffDTO.getWxEnterpriseId());
String wxUserId = staffDTO.getWxUserId();
String corpId = tabHaobanWxEnterprise.getCorpid();
String name = staffDTO.getStaffName();
if (content.length() > 30) {
content = content.substring(0, 26);
content = content + "...";
}
String wxUserId = "";
if (corpId.length() > 20) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
//先发送下,试试
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
List<ItemDTO> items = new ArrayList();
......@@ -200,11 +224,11 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
dto2.setKey("接收事件");
dto2.setValue(content);
dto3.setKey("结果");
dto3.setValue(auditStatus == 1?"已同意":"已拒绝");
dto3.setValue(auditStatus == 1 ? "已同意" : "已拒绝");
items.add(dto1);
items.add(dto2);
items.add(dto3);
if(StringUtils.isNotEmpty(auditReason)){
if (StringUtils.isNotEmpty(auditReason)) {
dto4.setKey("理由");
dto4.setValue(auditReason);
items.add(dto4);
......@@ -217,23 +241,23 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setTitle(messageTitle);
messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},", corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b);
boolean b = qywxSuiteApiService.sendMessage(corpId, config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}", b);
}
//导购绑定,,审核记录,,消息发送
@Override
public void sendClerkBind(String staffId,String clerkCode,String storeId,int auditStatus,String auditReason){
public void sendClerkBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason) {
//TODO huang 发送申请人,我的记录页
StaffDTO staffDTO = staffApiService.selectById(staffId);
if(staffDTO == null){
logger.info("staff不存在,发送消息失败{}",staffId);
return ;
if (staffDTO == null) {
logger.info("staff不存在,发送消息失败{}", staffId);
return;
}
String messageTitle = "门店账号申请";
String messageContent = staffDTO.getStaffName()+"申请关联导购code("+clerkCode+")";
String messageContent = staffDTO.getStaffName() + "申请关联导购code(" + clerkCode + ")";
JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", storeId);
String data = jsonObject.toJSONString();
......@@ -244,7 +268,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
//导购新增,,审核记录,,消息发送
@Override
public void sendClerkAdd (String clerkName,String clerkCode,String storeId,int auditStatus,String auditReason){
public void sendClerkAdd(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason) {
//TODO huang 发送店长,门店关联记录列表
// String messageTitle = "门店导购变更";
// String messageContent ="新增导购:"+ clerkName+"("+clerkCode+")";
......@@ -349,10 +373,10 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setTitle(title);
messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},", corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b);
boolean b = qywxSuiteApiService.sendMessage(corpId, config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}", b);
return b;
}
......@@ -368,19 +392,19 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
*/
@Override
public Boolean sendSingleMessage(String clerkId, String title, Map<String, String> contentMap, String pageUrl) {
if(StringUtils.isEmpty(clerkId)){
if (StringUtils.isEmpty(clerkId)) {
logger.info("消息接收人不存在");
return Boolean.FALSE;
}
if(CollectionUtils.isEmpty(contentMap)){
if (CollectionUtils.isEmpty(contentMap)) {
logger.info("发送事件内容不存在");
return Boolean.FALSE;
}
Map<String,String> map = this.getWxUserIdByClerkId(clerkId);
Map<String, String> map = this.getWxUserIdByClerkId(clerkId);
String wxUserId = map.get("wxUserId");
String corpId = map.get("corpId");
String name = map.get("clerkName");
if(jodd.util.StringUtil.isEmpty(wxUserId)){
if (jodd.util.StringUtil.isEmpty(wxUserId)) {
logger.info("接收人wxUserId不存在, clerkId : {}", clerkId);
return Boolean.FALSE;
}
......@@ -403,15 +427,15 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setTitle(title);
messageDTO.setItems(contentList);
messageDTO.setPage(pageUrl);
logger.info("消息发送, corpId : {}, suitId : {}, messageDTO : {}", corpId, config.getWxSuiteid(),JSONObject.toJSONString(messageDTO));
boolean sendResult = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("消息发送, corpId : {}, suitId : {}, messageDTO : {}", corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean sendResult = qywxSuiteApiService.sendMessage(corpId, config.getWxSuiteid(), messageDTO);
logger.info("消息发送结果, sendResult : {}", sendResult);
return sendResult;
}
@Override
public boolean sendAuditMessage(String staffId, String title,
String content, String pageUrl,int auditStatus, String auditReason) {
String content, String pageUrl, int auditStatus, String auditReason) {
Map<String, String> map = getWxUserIdByStaffId(staffId);
String wxUserId = map.get("wxUserId");
String corpId = map.get("corpId");
......@@ -438,11 +462,11 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
dto2.setKey("接收事件");
dto2.setValue(content);
dto3.setKey("结果");
dto3.setValue(auditStatus == 1?"已同意":"已拒绝");
dto3.setValue(auditStatus == 1 ? "已同意" : "已拒绝");
items.add(dto1);
items.add(dto2);
items.add(dto3);
if(StringUtils.isNotEmpty(auditReason)){
if (StringUtils.isNotEmpty(auditReason)) {
dto4.setKey("理由");
dto4.setValue(auditReason);
items.add(dto4);
......@@ -455,10 +479,10 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setTitle(title);
messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},", corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b);
boolean b = qywxSuiteApiService.sendMessage(corpId, config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}", b);
return b;
}
......
......@@ -400,4 +400,30 @@
</foreach>;
</select>
<select id="listMemberStaffRelNew" resultType="com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO">
select ecr.member_id as memberId,
scr.wx_open_user_id as staffWxUserId,
scr.clerk_id as staffClerkId
from (select a.staff_id,
b.wx_open_user_id,
a.wx_user_id,
a.clerk_id
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.clerk_id in
<foreach collection="clerkIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
and a.status_flag = 1
group by a.staff_id, a.wx_user_id, a.clerk_id) as scr
left join tab_haoban_external_clerk_related as ecr on scr.staff_id = ecr.staff_id
where ecr.status_flag = 1
and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and ecr.member_id in
<foreach collection="memberIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>;
</select>
</mapper>
\ No newline at end of file
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