Commit 7f1ea3df by 徐高华

活码链接

parent 5db14b82
......@@ -21,6 +21,7 @@ public class HmLinkStoreDTO implements Serializable {
private String storeId;
private String storeCode;
private String storeName;
private String storeAddress ;
/**1正常 0删除*/
private Integer statusFlag;
/**活码链接ID*/
......@@ -30,6 +31,14 @@ public class HmLinkStoreDTO implements Serializable {
private java.util.Date createTime;
private java.util.Date updateTime;
public String getStoreAddress() {
return storeAddress;
}
public void setStoreAddress(String storeAddress) {
this.storeAddress = storeAddress;
}
public java.util.Date getCreateTime() {
return createTime;
}
......
package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.KeyDataDTO;
import com.gic.haoban.manage.api.enums.KeyDataEnum;
public interface KeyDataApiService {
public ServiceResponse<String> saveMobileData(Long linkId, String mobile);
public ServiceResponse<KeyDataDTO> saveHmData(String unionid, Long linkId, Long hmId);
public ServiceResponse<String> getDataByKey(String key, KeyDataEnum dataEnum);
public ServiceResponse<String> getMobile(Long linkId, String key);
......
......@@ -6,6 +6,7 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkWxaDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
/**
......@@ -45,5 +46,6 @@ public interface HmLinkApiService {
* @return
* @throws
*/
public ServiceResponse<HmLinkDTO> getLinkHmFromWxa(String enterpriseId, String wxaLinkId);
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, String storeId, String clerkId,
String linkId, String mixPhone, String unionid);
}
......@@ -6,7 +6,11 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum;
public interface KeyDataService {
public KeyDataDTO saveData(String relationId , String data, KeyDataEnum dataEnum);
public String saveHmData(String unionid, Long linkId, Long hmId);
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum, String relationId);
public String getMobile(String key, String relationId) ;
}
......@@ -7,6 +7,8 @@ import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.util.UniqueIdUtils;
......@@ -40,6 +42,16 @@ public class KeyDataServiceImpl implements KeyDataService {
this.tabKeyDataMapper.insert(entity);
return dto;
}
@Override
public String saveHmData(String unionid, Long linkId, Long hmId) {
JSONObject json = new JSONObject();
json.put("unid", unionid);
json.put("ljid", linkId);
json.put("hmid", hmId);
KeyDataDTO data = this.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.DYNAMIC_HM);
return data.getDataKey();
}
@Override
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum , String relationId) {
......@@ -49,6 +61,15 @@ public class KeyDataServiceImpl implements KeyDataService {
}
return null;
}
@Override
public String getMobile(String key, String relationId) {
KeyDataDTO data = this.getDataByKey(key, KeyDataEnum.MOBILE, relationId) ;
if(null != data) {
return JSON.parseObject(data.getData()).getString("ph") ;
}
return null;
}
public static String generateKey(KeyDataEnum dataEnum) {
if (dataEnum.equals(KeyDataEnum.MOBILE)) {
......
......@@ -19,22 +19,12 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
private KeyDataService keyDataService;
@Override
public ServiceResponse<KeyDataDTO> saveHmData(String unionid, Long linkId, Long hmId) {
JSONObject json = new JSONObject();
json.put("unid", unionid);
json.put("ljid", linkId);
json.put("hmid", hmId);
return ServiceResponse
.success(this.keyDataService.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.DYNAMIC_HM));
}
@Override
public ServiceResponse<String> saveMobileData(Long linkId, String mobile) {
JSONObject json = new JSONObject();
json.put("ph", mobile);
json.put("ljid", linkId);
KeyDataDTO keyData = this.keyDataService.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.MOBILE);
return ServiceResponse.success(keyData.getDataKey().split("_")[1]);
return ServiceResponse.success(keyData.getDataKey());
}
@Override
......@@ -48,7 +38,6 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
@Override
public ServiceResponse<String> getMobile(Long linkId, String key) {
key = linkId + "_" + key;
KeyDataDTO data = this.keyDataService.getDataByKey(key, KeyDataEnum.MOBILE, String.valueOf(linkId));
if (null != data) {
JSONObject json = JSON.parseObject(data.getData());
......
......@@ -2,29 +2,53 @@ package com.gic.haoban.manage.service.service.out.impl.hm;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreSettingDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkWxaDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
import com.gic.haoban.manage.api.service.hm.HmLinkApiService;
import com.gic.haoban.manage.service.entity.hm.TabHmLink;
import com.gic.haoban.manage.service.errorcode.HaoBanErrCode;
import com.gic.haoban.manage.service.service.KeyDataService;
import com.gic.haoban.manage.service.service.hm.HmLinkService;
import com.gic.haoban.manage.service.service.hm.HmLinkStoreService;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.member.api.dto.es.MemberStoreClerkDataDTO;
import com.gic.member.api.service.MemberService;
import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
@Service("hmLinkApiService")
public class HmLinkApiServiceImpl implements HmLinkApiService {
private static final Logger log = LoggerFactory.getLogger(HmLinkApiService.class);
@Autowired
private HmLinkService hmLinkService;
@Autowired
private HmLinkStoreService hmLinkStoreService;
@Autowired
private KeyDataService keyDataService;
@Autowired
private MemberService memberService;
@Autowired
private ESDataDynamicOperationApiService esApiService;
@Autowired
private StoreService storeService;
@Override
public ServiceResponse<HmLinkDTO> getByLinkId(String wxEnterpriseId, String enterpriseId, Long linkId) {
......@@ -55,10 +79,97 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
}
@Override
public ServiceResponse<HmLinkDTO> getLinkHmFromWxa(String enterpriseId, String wxaLinkId) {
// hm_hmlinkid_xxx
wxaLinkId.split("_") ;
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, String storeId, String clerkId,
String linkId, String mixPhone, String unionid) {
log.info("小程序获取活码={},linkId={},mixPhone={}", enterpriseId, linkId, mixPhone);
Long hmLinkId = Long.parseLong(linkId);
TabHmLink link = this.hmLinkService.getByLinkId(null, null, hmLinkId);
// 判断导购是否有活码,如果没有返回错误
if (StringUtils.isNotBlank(clerkId)) {
}
// 直接返回门店的导购活码,如果没有返回错误
if (StringUtils.isNotBlank(storeId)) {
}
HmLinkStoreSettingDTO fwStore = null;
HmLinkStoreSettingDTO xgStore = null;
if (StringUtils.isNotBlank(link.getStoreRuleJson())) {
String storeRuleJson = link.getStoreRuleJson();
JSONObject storeRuleObj = JSONObject.parseObject(storeRuleJson);
fwStore = storeRuleObj.getObject("fw_store", HmLinkStoreSettingDTO.class);
if (null == fwStore || fwStore.getOpen() == 0) {
fwStore = null;
}
xgStore = storeRuleObj.getObject("xg_store", HmLinkStoreSettingDTO.class);
if (null == xgStore || xgStore.getOpen() == 0) {
xgStore = null;
}
}
// 会员门店
if (StringUtils.isNotEmpty(mixPhone) && (null != fwStore || null != xgStore)) {
String mobile = this.keyDataService.getMobile(mixPhone, linkId);
log.info("小程序获取活码mobile={}", mobile);
String memberId = this.memberService.getMemberIdByPhoneNumber(mobile, enterpriseId);
log.info("小程序获取活码memberId={}", memberId);
MemberDataDTO member = this.getMemberClerk(enterpriseId, memberId);
String mainClerkId = member.getMainClerkId();
List<MemberStoreClerkDataDTO> list = member.getStoreClerkRel() ;
for(int i=0;i<list.size();i++) {
}
}
if (StringUtils.isNotBlank(link.getCustomRuleJson())) {
String customRuleJson = link.getCustomRuleJson();
JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson);
int openFlag = storeRuleObj.getIntValue("open");
if (openFlag == 1) {
HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
}
}
// 查询活码
Long hmId = null;
String key = this.keyDataService.saveHmData(unionid, hmLinkId, hmId);
// 生成动态活码
return null;
}
// 冗余会员信息
private MemberDataDTO getMemberClerk(String enterpriseId, String memberId) {
String returnFields = "memberId,mainClerkId,storeClerkRel";
JSONObject memberObj = this.queryDataSingle(enterpriseId, memberId, returnFields);
if (null == memberObj) {
return null;
}
log.info("会员信息={}", memberObj.toJSONString());
MemberDataDTO memberDataDTO = memberObj.toJavaObject(MemberDataDTO.class);
return memberDataDTO;
}
public JSONObject queryDataSingle(String enterpriseId, String memberId, String returnFields) {
JSONObject searchRes = null;
try {
JSONObject searchJson = new JSONObject();
DynamicSearchDTO search = new DynamicSearchDTO();
searchJson.put("id", memberId);
search.setSearchJson(searchJson);
search.setEnterpriseId(enterpriseId);
search.setColumnCategoryCode("member");
if (StringUtils.isNotBlank(returnFields)) {
search.setReturnFileds(returnFields);
}
ESResponseQuerySingle single = esApiService.queryDataSingle(search);
searchRes = single.getRes();
} catch (Exception e) {
log.warn("从搜索引擎搜索会员数据异常memberId: {}", memberId, e);
}
return searchRes;
}
}
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