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 { ...@@ -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"), 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"), 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; ...@@ -2,6 +2,8 @@ package com.gic.haoban.manage.api.service;
import com.gic.haoban.manage.api.dto.CommonMQDTO; import com.gic.haoban.manage.api.dto.CommonMQDTO;
import java.util.List;
/** /**
* *
* @ClassName: HaobanCommonMQApiService * @ClassName: HaobanCommonMQApiService
...@@ -20,4 +22,8 @@ public interface HaobanCommonMQApiService { ...@@ -20,4 +22,8 @@ public interface HaobanCommonMQApiService {
public void welcomeMQ(String params) ; 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 { ...@@ -16,6 +16,8 @@ public interface StaffClerkRelationService {
boolean delBind(String clerkId, String optStaffId, int channelCode , String newClerkId , String wxEnterpriseId); 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 { ...@@ -84,7 +84,7 @@ public class MessageConvertHelper {
String orderNumber = cuspJson.getString("order_number"); String orderNumber = cuspJson.getString("order_number");
interactRecordMessageBO.setOrderNumber(orderNumber); interactRecordMessageBO.setOrderNumber(orderNumber);
String runningUuid = jsonObject.getString("runningUuid"); String runningUuid = gpJson.getString("runningUuid");
interactRecordMessageBO.setBusinessUUId(runningUuid); interactRecordMessageBO.setBusinessUUId(runningUuid);
Long lastAccessTime = jsonObject.getLong("server_timestamp"); Long lastAccessTime = jsonObject.getLong("server_timestamp");
......
...@@ -89,8 +89,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -89,8 +89,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
private MemberApiService memberApiService; private MemberApiService memberApiService;
@Autowired @Autowired
private ClerkService clerkService; private ClerkService clerkService;
@Autowired
private RightService rightService;
@Override @Override
public List<StaffClerkRelationDTO> listBindCode(String wxEnterpriseId, String enterpriseId, Set<String> clerkCodeList) { public List<StaffClerkRelationDTO> listBindCode(String wxEnterpriseId, String enterpriseId, Set<String> clerkCodeList) {
...@@ -209,7 +207,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -209,7 +207,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
//删除 并设置主门店 //删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(staffId, storeId, wxEnterpriseId); clerkMainStoreRelatedService.delMainStore(staffId, storeId, wxEnterpriseId);
//推入日志 //推入日志
delMemberQywxFlag(enterpriseId, memberIds); // delMemberQywxFlag(enterpriseId, memberIds);
this.haobanCommonMQApiService.putToNoticeMemberMQ(enterpriseId,memberIds);
} }
if(needFlush) { if(needFlush) {
logger.info("解绑自动刷新好友,staffId={}",staffId); logger.info("解绑自动刷新好友,staffId={}",staffId);
...@@ -222,7 +221,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -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) { for (String memberId : memberIds) {
//解绑通知会员 //解绑通知会员
int count = externalClerkRelatedService.getCountByMemberId(memberId); int count = externalClerkRelatedService.getCountByMemberId(memberId);
...@@ -267,7 +266,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -267,7 +266,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
String enterpriseId = staffClerkRelation.getEnterpriseId(); String enterpriseId = staffClerkRelation.getEnterpriseId();
//删除好友通知会员 //删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(staffClerkRelation.getStoreId(), staffClerkRelation.getStaffId()); 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()); List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
......
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import java.util.List;
import java.util.Map; 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.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -35,6 +38,8 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService { ...@@ -35,6 +38,8 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
private WelcomeSendService welcomeSendService; private WelcomeSendService welcomeSendService;
@Autowired @Autowired
private MemberOpenCardBusinessService memberOpenCardBusinessService ; private MemberOpenCardBusinessService memberOpenCardBusinessService ;
@Autowired
private StaffClerkRelationService staffClerkRelationService ;
@Override @Override
public void putCommonMessage(CommonMQDTO dto) { public void putCommonMessage(CommonMQDTO dto) {
...@@ -106,4 +111,25 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService { ...@@ -106,4 +111,25 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
public void welcomeMQ(String params) { public void welcomeMQ(String params) {
this.welcomeSendService.sendWelcome(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; package com.gic.haoban.manage.service.service.out.impl;
import java.util.ArrayList; import java.util.*;
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.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -1520,7 +1513,17 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1520,7 +1513,17 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
pojo.setEnterpriseId(enterpriseId); pojo.setEnterpriseId(enterpriseId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance(); GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try { 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) { } catch (Exception e) {
log.info("异常:{}", e); log.info("异常:{}", e);
} }
......
...@@ -10,5 +10,5 @@ ...@@ -10,5 +10,5 @@
<import resource="classpath:dubbo-setting-test.xml"/> <import resource="classpath:dubbo-setting-test.xml"/>
<import resource="classpath:jdbc-haoban-manage-service.xml" /> <import resource="classpath:jdbc-haoban-manage-service.xml" />
<import resource="classpath*:log-record-init.xml" /> <import resource="classpath*:log-record-init.xml" />
<!-- <import resource="classpath*:kafka-setting-data.xml" />--> <import resource="classpath*:kafka-setting-data.xml" />
</beans> </beans>
\ No newline at end of file
...@@ -509,12 +509,12 @@ public class TestController extends WebBaseController { ...@@ -509,12 +509,12 @@ public class TestController extends WebBaseController {
return "wu" ; return "wu" ;
} }
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
String url = dto.getUrlHost() ; String url = dto.getUrlHost().split("#")[0] ;
String cop = dto.getWxCorpid() ; String cop = dto.getWxCorpid() ;
SecretSettingDTO s = this.secretSettingApiService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.SELF_APP.getVal()) ; SecretSettingDTO s = this.secretSettingApiService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.SELF_APP.getVal()) ;
String token = this.qywxCorpApiService.getToken(cop, s.getSecretVal()) ; 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; 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=" url = url+"/api-qywx-self/qywx/self-post?ip=" + ip + "&url="
......
...@@ -363,7 +363,7 @@ public class WxStaffController extends WebBaseController { ...@@ -363,7 +363,7 @@ public class WxStaffController extends WebBaseController {
} }
@RequestMapping("/staff-add-json") @RequestMapping("/staff-add-json")
public HaobanResponse staffAdd(StaffAddVO vo) { public HaobanResponse staffAdd(@RequestBody StaffAddVO vo) {
logger.info(JSONObject.toJSONString(vo)); logger.info(JSONObject.toJSONString(vo));
StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class,vo) ; StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class,vo) ;
String storeId = vo.getStoreId() ; String storeId = vo.getStoreId() ;
......
package com.gic.haoban.manage.web.controller.data;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DataApiUtils;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GlobalVar;
import com.gic.commons.util.HttpClient;
import com.gic.commons.util.data.CrossDateUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.EnterpriseSettingDTO;
import com.gic.enterprise.api.dto.EnterpriseSourceChannelDTO;
import com.gic.enterprise.api.dto.data.DataIndexEvaluateLogDTO;
import com.gic.enterprise.api.dto.data.DataIndexExplainDTO;
import com.gic.enterprise.api.enums.PlatformChannelEnum;
import com.gic.enterprise.api.enums.PlatformEnum;
import com.gic.enterprise.api.service.EnterpriseChannelApiService;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.data.DataIndexApiService;
import com.gic.enterprise.service.CustomSettingApiService;
import com.gic.haoban.manage.web.qo.data.DataIndexExplainVO;
import com.gic.haoban.manage.web.qo.data.DataIndexQO;
import com.gic.haoban.manage.web.qo.data.DataMemberExtendQO;
import com.gic.haoban.manage.web.qo.data.HandleQO;
import com.gic.haoban.manage.web.utils.DateFillUtils;
import com.gic.haoban.manage.web.utils.StoreAuthUtils;
import com.gic.haoban.manage.web.vo.data.DataMemberExtendVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
import java.util.stream.Collectors;
/**
* 数据调用通用接口
* @Author guojx
* @Date 2023/11/14 10:56
*/
@Controller
@RequestMapping("data")
@Slf4j
public class DataController {
@Autowired
private StoreAuthUtils storeAuthUtils;
@Autowired
private DataIndexApiService dataIndexApiService;
@Autowired
private CustomSettingApiService customSettingApiService;
@Autowired
private EnterpriseChannelApiService enterpriseChannelApiService;
@Autowired
private EnterpriseService enterpriseService;
private String isProd() {
Config config = ConfigService.getConfig("COMMON.gic-properties");
String env = config.getProperty("environment.value", "") ;
return env;
}
/**
* 会员封装数据
* @param qo
* @return
*/
@RequestMapping(value = "get-member-data")
@ResponseBody
public RestResponse<List<DataMemberExtendVO>> getMemberData(@RequestBody DataMemberExtendQO qo) {
if (StringUtils.isBlank(qo.getEnterpriseId())) {
return RestResponse.failure("-1", "企业id不能为空");
}
String params = qo.getParams();
JSONObject jsonObject = JSONObject.parseObject(params);
if (jsonObject == null) {
jsonObject = new JSONObject();
}
jsonObject.put("enterpriseId", qo.getEnterpriseId());
List<String> storeIdList = new ArrayList<>();
String storeId = qo.getStoreId();
if (StringUtils.isBlank(storeId)) {
storeIdList = storeAuthUtils.queryClerkStoreIds(qo.getClerkId(), qo.getWxEnterpriseId());
} else {
storeIdList.add(storeId);
}
if (CollectionUtils.isNotEmpty(storeIdList)) {
//区经有全部门店权限
jsonObject.put("storeId", storeIdList.stream().collect(Collectors.joining(",")));
}
qo.setParams(jsonObject.toJSONString());
Map<String, String> head = new HashMap<>();
head.put("Content-Type", "application/json");
String mainHost = GlobalVar.ctxPropertiesMap.get("gicweb_service_host");
mainHost = mainHost.replace("gicweb", "");
//是否是开发环境
boolean isDev = mainHost.contains("gicdev");
if (isDev) {
//http://gicdev.demogic.com/
mainHost = GlobalVar.ctxPropertiesMap.get("gicweb_service_host_old");
}
String url = mainHost + "api-report/data-extend/get-member-data";
JSONObject httpJson = new JSONObject();
httpJson.put("params", jsonObject.toJSONString());
httpJson.put("dateType", qo.getDateType());
httpJson.put("realFlag", qo.getRealFlag());
httpJson.put("totalMemberFlag", qo.getTotalMemberFlag());
httpJson.put("channelCodeList", qo.getChannelCodeList());
Map<String, Object> res = HttpClient.getWinxinResByJson(url, httpJson.toJSONString(), head);
RestResponse rest = JSONObject.parseObject(JSONObject.toJSONString(res), RestResponse.class);
if (isSuccess(rest)) {
List<DataMemberExtendVO> list = JSONObject.parseArray(JSON.toJSONString(rest.getResult()), DataMemberExtendVO.class);
rest.setResult(list);
}
return rest;
}
/**
* 数据统一调用接口
* 参数与返回字段查询数据组的yapi的对应文档
* @param qo
* @return
*/
@RequestMapping(value = "handle")
@ResponseBody
public RestResponse handle(@RequestBody HandleQO qo) {
String params = qo.getParams();
JSONObject jsonObject = JSONObject.parseObject(params);
if (jsonObject == null) {
jsonObject = new JSONObject();
}
if (StringUtils.isNotBlank(qo.getEnterpriseId())) {
jsonObject.put("enterpriseId", qo.getEnterpriseId());
}
String storeIdParam = jsonObject.getString("storeId");
boolean hasStoreId = StringUtils.isNotBlank(storeIdParam);
if (!hasStoreId) {
List<String> storeIdList = new ArrayList<>();
String storeId = qo.getStoreId();
if (StringUtils.isBlank(storeId)) {
storeIdList = storeAuthUtils.queryClerkStoreIds(qo.getClerkId(), qo.getWxEnterpriseId());
} else {
storeIdList.add(storeId);
}
if (CollectionUtils.isNotEmpty(storeIdList)) {
//区经有全部门店权限
jsonObject.put("storeId", storeIdList.stream().collect(Collectors.joining(",")));
}
}
String apolloKey = qo.getApolloKey();
Map<String, Object> res = DataApiUtils.http(jsonObject.toJSONString(), apolloKey);
boolean isNeedFill = (apolloKey.contains("data_mbr_scale_stat_new_custm_overview")
|| apolloKey.contains("data_sales_perf_anal_cont_custm_overview")
|| apolloKey.contains("month") || apolloKey.contains("day") ||
apolloKey.contains("week"))
&& jsonObject.containsKey("storeGroup") &&
((apolloKey.contains("data_sales") &&
(jsonObject.getInteger("storeGroup") == 3 || jsonObject.getInteger("storeGroup") == 4))
|| (apolloKey.contains("data_mbr") && jsonObject.getInteger("storeGroup") == 2));
if (isNeedFill) {
log.info("需要补零");
List<JSONObject> resultList = DataApiUtils.getDataList(res);
if (CollectionUtils.isEmpty(resultList)) {
resultList = new ArrayList<>();
}
List<String> dateTypeList = null;
if (apolloKey.contains("day")) {
dateTypeList = DateFillUtils.getDay(jsonObject.getString("bizDate"));
} else if (apolloKey.contains("month")) {
dateTypeList = DateFillUtils.getMonth(jsonObject.getString("startDate").substring(0, 7));
} else if (apolloKey.contains("week")) {
dateTypeList = DateFillUtils.getWeek(jsonObject.getString("startDate"));
} else if (apolloKey.contains("custm")) {
dateTypeList = DateFillUtils.getCustom(jsonObject.getString("startDate"), jsonObject.getString("endDate"));
}
if (CollectionUtils.isNotEmpty(dateTypeList)) {
List<JSONObject> fillList = new ArrayList<>();
Map<String, JSONObject> fillMap = resultList.stream().collect(Collectors.toMap(e -> e.getString("bizDate"), e -> e));
for (String dateTemp : dateTypeList) {
if (fillMap.get(dateTemp) != null) {
fillList.add(fillMap.get(dateTemp));
} else {
JSONObject fillJson = new JSONObject();
fillJson.put("bizDate", dateTemp);
fillList.add(fillJson);
}
}
return RestResponse.successResult(fillList);
}
}
return RestResponse.successResult(res.get("data"));
}
/**
* 指标字典列表
* @param indexCode 可以多个,英文逗号隔开
* @return
*/
@RequestMapping("list-data-index-explain")
@ResponseBody
public RestResponse<List<DataIndexExplainVO>> listDataIndexExplain(String indexCode) {
List<DataIndexExplainDTO> list = dataIndexApiService.listDataIndexExplain();
if (StringUtils.isNotBlank(indexCode)) {
List<String> indexCodeList = Arrays.stream(indexCode.split(",")).collect(Collectors.toList());
list = list.stream().filter(e -> indexCodeList.contains(e.getIndexCode())).collect(Collectors.toList());
}
return RestResponse.successResult(EntityUtil.changeEntityListNew(DataIndexExplainVO.class, list));
}
/**
* 评价指标
* @param qo
* @return
*/
@RequestMapping("evaluate-data-index")
@ResponseBody
public RestResponse saveDataIndexEvaluate(@RequestBody DataIndexQO qo) {
DataIndexEvaluateLogDTO log = EntityUtil.changeEntityNew(DataIndexEvaluateLogDTO.class, qo);
log.setAccountId(qo.getClerkId());
log.setSourceType(1);
dataIndexApiService.saveDataIndexEvaluateLog(log);
return RestResponse.successResult();
}
/**
* 渠道字典数据
* 说明:channelCode (渠道code,数据接口需要传的)
* channelNameIntegral 会员类型的名称
* channelNameOrder 订单业绩的名称
* @param enterpriseId
* @return
*/
@RequestMapping("list-channel-data")
@ResponseBody
public RestResponse listChannelData(String enterpriseId) {
Page<JSONObject> page = customSettingApiService
.page("tab_gic_channel_platform_dict", "", 1, 1000).getResult();
PlatformChannelEnum[] values = PlatformChannelEnum.values();
Set<String> hasAuthSet = new HashSet<>();
for (PlatformChannelEnum value : values) {
boolean enable = true;
hasAuthSet.add(value.getChannelCode());
// 微信渠道,pos渠道,其他渠道默认开通
if(PlatformEnum.WECHAT.equals(value.getBelongPlatform()) || PlatformEnum.POS.equals(value.getBelongPlatform()) || PlatformEnum.OTHER.equals(value.getBelongPlatform())){
continue;
}else if(PlatformChannelEnum.C_WEIMOB==value){
//渠道查询判断是否开通
EnterpriseSettingDTO enterpriseSettingDTO = enterpriseService.getEnterpriseSettingByEnterpriseId(enterpriseId);
if (enterpriseSettingDTO == null || enterpriseSettingDTO.getEnterpriseSettingId() == null) {
enable = false;
}
//没开通微盟
if (enterpriseSettingDTO.getBackgroundMode() == 0) {
enable = false;
}
}else{
// 抖音天猫渠道
ServiceResponse<EnterpriseSourceChannelDTO> response = enterpriseChannelApiService.getEnterpriseSourceChannel(enterpriseId, value.getChannelCodeOld(), 1);
if(!response.isSuccess() || response.getResult()==null){
enable = false;
}
}
if (!enable) {
hasAuthSet.remove(value.getChannelCode());
}
}
if (page != null) {
List<JSONObject> list = page.getResult();
List<JSONObject> result = new ArrayList<>();
for (JSONObject json : list) {
if ("c_wechat_work".equals(json.getString("channelCode"))
|| "c_wechat_gh".equals(json.getString("channelCode"))
|| !hasAuthSet.contains(json.getString("channelCode"))) {
continue;
}
json.put("dataChannelPre", channelMap().get(json.getString("channelCode")));
result.add(json);
}
return RestResponse.successResult(result);
}
return RestResponse.successResult(new ArrayList<>());
}
private static Map<String, String> channelMap() {
Map<String, String> map = new HashMap<>();
map.put("c_pos", "pos");
map.put("c_other", "else");
map.put("c_douyin_hyt", "dy");
map.put("c_tmall_hyt", "tmall");
map.put("c_wechat_mini", "wct");
map.put("c_weimob", "weimob");
return map;
}
private JSONObject getTotalJson(JSONObject param, String apolloKey) {
Map<String, Object> totalRes = DataApiUtils.http(param.toJSONString(), apolloKey);
List<JSONObject> totalList = DataApiUtils.getPageList(totalRes);
if (CollectionUtils.isEmpty(totalList)) {
return null;
}
JSONObject total = totalList.get(0);
return total;
}
protected boolean isSuccess(RestResponse response) {
if ("0".equals(response.getCode())) {
return true;
}
return false;
}
}
package com.gic.haoban.manage.web.qo; package com.gic.haoban.manage.web.qo;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.StaffDTO; 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 storeId ;
private String clerkCode ;
private String commitName ; private String commitName ;
private Integer version ; private Integer version ;
@Override public String getStaffId() {
public String getStoreId() { return staffId;
return storeId;
} }
@Override public void setStaffId(String staffId) {
public void setStoreId(String storeId) { this.staffId = staffId;
this.storeId = storeId; }
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() { public String getClerkCode() {
return clerkCode; return clerkCode;
} }
@Override
public void setClerkCode(String clerkCode) { public void setClerkCode(String clerkCode) {
this.clerkCode = 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() { public String getCommitName() {
return commitName; 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 @@ ...@@ -162,4 +162,9 @@
timeout="10000" retries="0" check="false"/> timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentSettingApiService" id="contentSettingApiService" <dubbo:reference interface="com.gic.content.api.service.ContentSettingApiService" id="contentSettingApiService"
timeout="10000" retries="0" check="false"/> 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> </beans>
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
<list> <list>
<value>text/html;charset=UTF-8</value> <value>text/html;charset=UTF-8</value>
<value>application/x-www-form-urlencoded;charset=UTF-8</value> <value>application/x-www-form-urlencoded;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
<!--默认是 iso-8859-1 --> <!--默认是 iso-8859-1 -->
</list> </list>
</property> </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