Commit 189ea04f by songyinghui

Merge remote-tracking branch 'origin/master' into feature-wm

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/MessageConvertHelper.java
#	haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
parents 8eee6fe9 f6f42577
......@@ -28,6 +28,8 @@ public enum NoticeMessageTypeEnum {
TASK_TRANS(2010, "话务任务通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "task_trans", "/pages/route/index?pageType=", "hbapp_task_list_new", "TelServiceTaskByStoreManage", "haobanNotice"),
PERFORMANCE_TASK_UPDATE(2011, "指标任务变更通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "performance_task_update", "/pages/route/index?pageType=", "hbapp_task_kpi_detail", "targetTaskByUpdate", "haobanNotice"),
STORE_ACCOUNT(3001, "账号申请", NoticeMessageCategoryTypeEnum.OTHER.getType(), "store_account", "/pages/route/index?pageType=", "store_relate_store_record_list", "accountApplication", "haobanNotice"),
//
......
......@@ -2,6 +2,8 @@ package com.gic.haoban.manage.api.service;
import com.gic.haoban.manage.api.dto.CommonMQDTO;
import java.util.List;
/**
*
* @ClassName: HaobanCommonMQApiService
......@@ -20,4 +22,8 @@ public interface HaobanCommonMQApiService {
public void welcomeMQ(String params) ;
public void putToNoticeMemberMQ(String enterpriseId, List<String> memberIdList) ;
public void noticeMemberMQ(String params) ;
}
......@@ -16,6 +16,8 @@ public interface StaffClerkRelationService {
boolean delBind(String clerkId, String optStaffId, int channelCode , String newClerkId , String wxEnterpriseId);
void delMemberQywxFlag(String enterpriseId, List<String> memberIds) ;
/**
* 解绑-删除绑定(门店级别)
*
......
......@@ -84,7 +84,7 @@ public class MessageConvertHelper {
String orderNumber = cuspJson.getString("order_number");
interactRecordMessageBO.setOrderNumber(orderNumber);
String runningUuid = jsonObject.getString("runningUuid");
String runningUuid = gpJson.getString("runningUuid");
interactRecordMessageBO.setBusinessUUId(runningUuid);
Long lastAccessTime = jsonObject.getLong("server_timestamp");
......
......@@ -89,8 +89,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
private MemberApiService memberApiService;
@Autowired
private ClerkService clerkService;
@Autowired
private RightService rightService;
@Override
public List<StaffClerkRelationDTO> listBindCode(String wxEnterpriseId, String enterpriseId, Set<String> clerkCodeList) {
......@@ -209,7 +207,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
//删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(staffId, storeId, wxEnterpriseId);
//推入日志
delMemberQywxFlag(enterpriseId, memberIds);
// delMemberQywxFlag(enterpriseId, memberIds);
this.haobanCommonMQApiService.putToNoticeMemberMQ(enterpriseId,memberIds);
}
if(needFlush) {
logger.info("解绑自动刷新好友,staffId={}",staffId);
......@@ -222,7 +221,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
private void delMemberQywxFlag(String enterpriseId, List<String> memberIds) {
public void delMemberQywxFlag(String enterpriseId, List<String> memberIds) {
for (String memberId : memberIds) {
//解绑通知会员
int count = externalClerkRelatedService.getCountByMemberId(memberId);
......@@ -267,7 +266,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
String enterpriseId = staffClerkRelation.getEnterpriseId();
//删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(staffClerkRelation.getStoreId(), staffClerkRelation.getStaffId());
delMemberQywxFlag(enterpriseId, memberIds);
// delMemberQywxFlag(enterpriseId, memberIds);
this.haobanCommonMQApiService.putToNoticeMemberMQ(enterpriseId,memberIds);
}
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
......
package com.gic.haoban.manage.service.service.out.impl;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -35,6 +38,8 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
private WelcomeSendService welcomeSendService;
@Autowired
private MemberOpenCardBusinessService memberOpenCardBusinessService ;
@Autowired
private StaffClerkRelationService staffClerkRelationService ;
@Override
public void putCommonMessage(CommonMQDTO dto) {
......@@ -106,4 +111,25 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
public void welcomeMQ(String params) {
this.welcomeSendService.sendWelcome(params);
}
@Override
public void noticeMemberMQ(String params) {
log.info("通知会员企微标识={}",params);
JSONObject json = JSONObject.parseObject(params) ;
String enterpriseId = json.getString("enterpriseId") ;
List<String> memberIdList = JSONArray.parseArray(json.getString("memberIdList"),String.class) ;
this.staffClerkRelationService.delMemberQywxFlag(enterpriseId,memberIdList) ;
}
@Override
public void putToNoticeMemberMQ(String enterpriseId, List<String> memberIdList) {
JSONObject json = new JSONObject() ;
json.put("enterpriseId",enterpriseId) ;
json.put("memberIdList",memberIdList) ;
try {
mqClient.sendMessage("haobanNoticeMemberMQ", json.toJSONString());
} catch (Exception e) {
log.error("发送MQ异常");
}
}
}
package com.gic.haoban.manage.service.service.out.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -1520,7 +1513,17 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
pojo.setEnterpriseId(enterpriseId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo));
int delay = 0 ;
// 美邦要延迟处理
if(Arrays.asList("ff8080815dacd3a2015dacd3ef5c0000",
"ff8080817a3e9738017a803e348c5bef",
"ff8080817a3e96a4017a796c7947641b",
"ff80808179f15903017a13f03b953d8c",
"ff80808179f15878017a142445d644ee").contains(enterpriseId)) {
delay = 90 ;
log.info("美邦延迟处理");
}
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo),delay);
} catch (Exception e) {
log.info("异常:{}", e);
}
......
......@@ -10,5 +10,5 @@
<import resource="classpath:dubbo-setting-test.xml"/>
<import resource="classpath:jdbc-haoban-manage-service.xml" />
<import resource="classpath*:log-record-init.xml" />
<!-- <import resource="classpath*:kafka-setting-data.xml" />-->
<import resource="classpath*:kafka-setting-data.xml" />
</beans>
\ No newline at end of file
......@@ -509,12 +509,12 @@ public class TestController extends WebBaseController {
return "wu" ;
}
List<String> list = new ArrayList<>();
String url = dto.getUrlHost() ;
String url = dto.getUrlHost().split("#")[0] ;
String cop = dto.getWxCorpid() ;
SecretSettingDTO s = this.secretSettingApiService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.SELF_APP.getVal()) ;
String token = this.qywxCorpApiService.getToken(cop, s.getSecretVal()) ;
String ip = url.replace("http://", "").replace(":8960","").replace(":8990","") ;
String ip = dto.getUrlHost().split("#")[1] ;
String selfUrl = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_corp_tag_list?access_token=" + token;
url = url+"/api-qywx-self/qywx/self-post?ip=" + ip + "&url="
......
......@@ -363,7 +363,7 @@ public class WxStaffController extends WebBaseController {
}
@RequestMapping("/staff-add-json")
public HaobanResponse staffAdd(StaffAddVO vo) {
public HaobanResponse staffAdd(@RequestBody StaffAddVO vo) {
logger.info(JSONObject.toJSONString(vo));
StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class,vo) ;
String storeId = vo.getStoreId() ;
......
package com.gic.haoban.manage.web.qo;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
public class StaffAddVO extends StaffDTO {
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class StaffAddVO implements Serializable {
/**
* 员工id
*/
private String staffId;
/**
* 企业微信id
*/
private String wxEnterpriseId;
/**
* 手机号
*/
private String phoneNumber;
/**
* 员工姓名
*/
private String staffName;
/**
* 国家码
*/
private String nationCode;
/**
* 昵称
*/
private String nickName;
/**
* 性别
*/
private Integer sex;
/**
* 职位
*/
private String postion;
private String clerkCode;
private int clerkType;
private String clerkId;
private String storeId ;
private String clerkCode ;
private String commitName ;
private Integer version ;
@Override
public String getStoreId() {
return storeId;
public String getStaffId() {
return staffId;
}
@Override
public void setStoreId(String storeId) {
this.storeId = storeId;
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getNationCode() {
return nationCode;
}
public void setNationCode(String nationCode) {
this.nationCode = nationCode;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public String getPostion() {
return postion;
}
public void setPostion(String postion) {
this.postion = postion;
}
@Override
public String getClerkCode() {
return clerkCode;
}
@Override
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public int getClerkType() {
return clerkType;
}
public void setClerkType(int clerkType) {
this.clerkType = clerkType;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getCommitName() {
return commitName;
}
......
package com.gic.haoban.manage.web.qo.data;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author guojx
* @Date 2023/9/27 11:13
*/
@Data
public class DataIndexExplainVO implements Serializable {
private String id;
private String indexCode;
private String indexName;
private String indexExplain;
/**
* 前端使用:指标说明:若指标注释中有需要说明的
*/
private List<String> indexRemarkList;
/**
* 前端使用:指标例子
*/
private List<String> indexExampleList;
/**
* 指标说明:若指标注释中有需要说明的,英文分号隔开,可能多个。
*/
private String indexRemark;
/**
* 指标例子: 英文分号隔开,可能多个
*/
private String indexExample;
/**
* yapi文档上的驼峰字段名称
*/
private String apiColName;
public List<String> getIndexRemarkList() {
if (StringUtils.isNotBlank(indexRemark)) {
return Arrays.stream(indexRemark.split(";")).collect(Collectors.toList());
}
return indexRemarkList;
}
public List<String> getIndexExampleList() {
if (StringUtils.isNotBlank(indexExample)) {
return Arrays.stream(indexExample.split(";")).collect(Collectors.toList());
}
return indexExampleList;
}
}
package com.gic.haoban.manage.web.qo.data;
import lombok.Data;
import java.io.Serializable;
/**
* @Author guojx
* @Date 2023/9/27 11:06
*/
@Data
public class DataIndexQO implements Serializable {
/**
* 指标code
*/
private String indexCode;
/**
* 指标名称
*/
private String indexName;
/**
* 0:不满意 1:满意
*/
private Integer indexEvaluate;
/**
* 不满意原因
*/
private String reason;
/**
* 自定义原因
*/
private String customReason;
private String enterpriseId;
private String clerkId;
}
package com.gic.haoban.manage.web.qo.data;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author guojx
* @Date 2023/11/24 12:21
*/
@Data
public class DataMemberExtendQO implements Serializable {
/**
* 门店查询参数. 区经可以为空,查询所有管辖门店
*/
private String storeId;
/**
* 企业ID.
*/
private String enterpriseId;
/**
* 微信企业
*/
private String wxEnterpriseId;
/**
* 如果是区经,用于查询管辖门店权限
*/
private String clerkId;
private String params;
/**
* 1:日 2:周 3:月 :4:自定义
*/
private Integer dateType;
/**
* 1:实时 0:离线
*/
private Integer realFlag;
/**
* 1:会员总数 2:新增会员
*/
private Integer totalMemberFlag;
/**
* 权限渠道范围
*/
private List<String> channelCodeList;
public boolean isReal() {
return realFlag != null && realFlag == 1;
}
public boolean isTotalMember() {
return totalMemberFlag != null && totalMemberFlag == 1;
}
}
package com.gic.haoban.manage.web.qo.data;
import lombok.Data;
import java.io.Serializable;
/**
* @Author guojx
* @Date 2023/11/23 9:13
*/
@Data
public class HandleQO implements Serializable {
/**
* 组装的参数,JSON字符串.数据组提供的yapi文档上有.
* 注:门店参数storeId根据storeSelect参数计算
*/
private String params;
/**
* 数据组配置的接口key。数据组提供的yapi文档上有
*/
private String apolloKey;
/**
* 门店查询参数. 区经可以为空,查询所有管辖门店
*/
private String storeId;
/**
* 企业ID.
*/
private String enterpriseId;
/**
* 微信企业
*/
private String wxEnterpriseId;
/**
* 如果是区经,用于查询管辖门店权限
*/
private String clerkId;
}
package com.gic.haoban.manage.web.utils;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.DataApiUtils;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
/**
* @Author guojx
* @Date 2023/11/29 10:49
*/
@Slf4j
public class DateFillUtils {
public static List<String> getDay(String date) {
List<String> dateList = new ArrayList<>();
try {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTime(df.parse(date));
calendar.add(Calendar.DATE, -29);
String temp = df.format(calendar.getTime());
while (temp.compareTo(date) <= 0) {
dateList.add(temp.substring(5));
calendar.add(Calendar.DATE, 1);
temp = df.format(calendar.getTime());
}
} catch (Exception e) {
log.error("时间匹配调整:{}", e.getMessage(), e);
}
return dateList;
}
public static List<String> getCustom(String start, String end) {
List<String> dateList = new ArrayList<>();
try {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTime(df.parse(start));
String temp = df.format(calendar.getTime());
while (temp.compareTo(end) <= 0) {
dateList.add(temp.substring(5));
calendar.add(Calendar.DATE, 1);
temp = df.format(calendar.getTime());
}
} catch (Exception e) {
log.error("时间匹配调整:{}", e.getMessage(), e);
}
return dateList;
}
public static List<String> getWeek(String date) {
List<String> dateList = new ArrayList<>();
try {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTime(df.parse(date));
calendar.add(Calendar.WEEK_OF_YEAR, -11);
String temp = df.format(calendar.getTime());
JSONObject jsonObject = new JSONObject();
jsonObject.put("pageNum", 1);
jsonObject.put("pageSize", 20);
jsonObject.put("startDate", temp);
jsonObject.put("endDate", date);
Map<String, Object> res = DataApiUtils.http(jsonObject.toJSONString(), "data_pub_date_week");
List<JSONObject> list = DataApiUtils.getPageList(res);
for (JSONObject json : list) {
dateList.add(json.getString("weekYear"));
}
log.info("week data:{}", list);
} catch (Exception e) {
log.error("时间匹配调整:{}", e.getMessage(), e);
}
return dateList;
}
public static List<String> getYear(String date) {
List<String> dateList = new ArrayList<>();
Integer year = Integer.parseInt(date);
Integer min = year - 11;
for (int i = min; i <= year; i++) {
dateList.add(i + "");
}
return dateList;
}
public static List<String> getMonth(String date) {
List<String> dateList = new ArrayList<>();
try {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
calendar.setTime(df.parse(date));
calendar.add(Calendar.MONTH, -11);
String temp = df.format(calendar.getTime());
while (temp.compareTo(date) <= 0) {
dateList.add(temp);
calendar.add(Calendar.MONTH, 1);
temp = df.format(calendar.getTime());
}
} catch (Exception e) {
log.error("时间匹配调整:{}", e.getMessage(), e);
}
return dateList;
}
public static void main(String[] args) {
log.info("" + JSONObject.toJSONString(getWeek("2023-11-27")));
}
}
package com.gic.haoban.manage.web.vo.data;
import lombok.Data;
import java.io.Serializable;
/**
* @Author guojx
* @Date 2023/11/24 13:54
*/
@Data
public class DataMemberExtendVO implements Serializable {
private String channelCode;
/**
* 开卡会员
*/
private Integer openMbrNum;
/**
* 昨日开卡会员
*/
private Integer lastOpenMbrNum;
/**
* 关联会员
*/
private Integer relMbrNum;
/**
* 昨日关联会员
*/
private Integer lastRelMbrNum;
/**
* 关联会员环比
*/
private Double relMbrNumRatio;
/**
* 关联会员同比
*/
private Double relMbrNumSply;
/**
* 开卡会员环比
*/
private Double openMbrNumRatio;
/**
* 开卡会员同比
*/
private Double openMbrNumSply;
/**
* 1:服务门店
*/
private Integer serviceFlag;
}
......@@ -162,4 +162,9 @@
timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentSettingApiService" id="contentSettingApiService"
timeout="10000" retries="0" check="false"/>
<dubbo:reference id="dataIndexApiService" interface="com.gic.enterprise.api.service.data.DataIndexApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference id="enterpriseChannelApiService" interface="com.gic.enterprise.api.service.EnterpriseChannelApiService" timeout="10000" retries="0" check="false"/>
</beans>
......@@ -37,7 +37,6 @@
<list>
<value>text/html;charset=UTF-8</value>
<value>application/x-www-form-urlencoded;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
<!--默认是 iso-8859-1 -->
</list>
</property>
......
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