Commit 44c75af4 by 徐高华

企业活码

parent 2fa1b294
...@@ -16,6 +16,7 @@ public class KeyDataDTO implements Serializable{ ...@@ -16,6 +16,7 @@ public class KeyDataDTO implements Serializable{
private static final long serialVersionUID = 1978554156094100L; private static final long serialVersionUID = 1978554156094100L;
private Long id; private Long id;
private String enterpriseId ;
private String relationId; private String relationId;
private String dataKey; private String dataKey;
private String data; private String data;
...@@ -23,7 +24,15 @@ public class KeyDataDTO implements Serializable{ ...@@ -23,7 +24,15 @@ public class KeyDataDTO implements Serializable{
private Integer type; private Integer type;
private java.util.Date createTime; private java.util.Date createTime;
public String getRelationId() { public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getRelationId() {
return relationId; return relationId;
} }
......
package com.gic.haoban.manage.api.dto.hm; package com.gic.haoban.manage.api.dto.hm;
public class HmLinkStoreSettingDTO { public class HmLinkStoreSettingDTO {
// 是否开启
private int open; private int open;
// 专属
private int zs; private int zs;
// 协管
private int xg ;
//店长
private int dz; private int dz;
//店员
private int dy; private int dy;
private int ndz;
private int ndy;
public int getXg() {
return xg;
}
public void setXg(int xg) {
this.xg = xg;
}
public int getNdz() {
return ndz;
}
public int getNdy() {
return ndy;
}
public void setNdz(int ndz) {
this.ndz = ndz;
}
public void setNdy(int ndy) {
this.ndy = ndy;
}
public int getOpen() { public int getOpen() {
return open; return open;
......
...@@ -14,14 +14,36 @@ import java.util.List; ...@@ -14,14 +14,36 @@ import java.util.List;
*/ */
public class HmLinkWxaDTO implements Serializable { public class HmLinkWxaDTO implements Serializable {
private static final long serialVersionUID = 6473795387449522116L;
private HmPageTemplateDTO page; private HmPageTemplateDTO page;
// 二维码
private String hmQrcode;
// 自定义门店规则1推荐门店 2附近门店
private int storeType;
// 是否展示省市区门店查询 // 是否展示省市区门店查询
private boolean selectStoreFlag; private int selectStoreFlag;
// 推荐的门店列表 // 推荐的门店列表
private List<HmLinkStoreDTO> storeList; private List<HmLinkStoreDTO> storeList;
public String getHmQrcode() {
return hmQrcode;
}
public void setHmQrcode(String hmQrcode) {
this.hmQrcode = hmQrcode;
}
public int getStoreType() {
return storeType;
}
public void setStoreType(int storeType) {
this.storeType = storeType;
}
public List<HmLinkStoreDTO> getStoreList() { public List<HmLinkStoreDTO> getStoreList() {
return storeList; return storeList;
} }
...@@ -30,11 +52,11 @@ public class HmLinkWxaDTO implements Serializable { ...@@ -30,11 +52,11 @@ public class HmLinkWxaDTO implements Serializable {
this.storeList = storeList; this.storeList = storeList;
} }
public boolean isSelectStoreFlag() { public int getSelectStoreFlag() {
return selectStoreFlag; return selectStoreFlag;
} }
public void setSelectStoreFlag(boolean selectStoreFlag) { public void setSelectStoreFlag(int selectStoreFlag) {
this.selectStoreFlag = selectStoreFlag; this.selectStoreFlag = selectStoreFlag;
} }
......
...@@ -5,7 +5,7 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum; ...@@ -5,7 +5,7 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum;
public interface KeyDataApiService { public interface KeyDataApiService {
public ServiceResponse<String> saveMobileData(Long linkId, String mobile); public ServiceResponse<String> saveMobileData(String enterpiseId ,Long linkId, String mobile);
public ServiceResponse<String> getDataByKey(String key, KeyDataEnum dataEnum); public ServiceResponse<String> getDataByKey(String key, KeyDataEnum dataEnum);
......
...@@ -32,7 +32,8 @@ public interface HmLinkApiService { ...@@ -32,7 +32,8 @@ public interface HmLinkApiService {
* @return * @return
* @throws * @throws
*/ */
public ServiceResponse<List<HmLinkDTO>> listForSms(String wxEnterpriseId, String enterprieId, String linkName); public ServiceResponse<List<HmLinkDTO>> listForSms(String wxEnterpriseId, String enterprieId, String linkName,
Integer linkType);
public ServiceResponse<Page<HmLinkDTO>> listPage(HmLinkSearchQDTO qdto, BasePageInfo basePageInfo); public ServiceResponse<Page<HmLinkDTO>> listPage(HmLinkSearchQDTO qdto, BasePageInfo basePageInfo);
...@@ -43,9 +44,10 @@ public interface HmLinkApiService { ...@@ -43,9 +44,10 @@ public interface HmLinkApiService {
* @Title: getLinkHm * @Title: getLinkHm
* @Description: 小程序获取展示活码 * @Description: 小程序获取展示活码
* @author xugh * @author xugh
* @param whitchStore 1推荐门店 2附件门店 3省市区门店
* @return * @return
* @throws * @throws
*/ */
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, String storeId, String clerkId, public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String storeId,
String linkId, String mixPhone, String unionid); String clerkId, String linkId, String mixPhone, String unionid);
} }
...@@ -41,7 +41,8 @@ public interface HmLinkMapper { ...@@ -41,7 +41,8 @@ public interface HmLinkMapper {
public TabHmLink selectById(Long linkId); public TabHmLink selectById(Long linkId);
public List<TabHmLink> listForSms(@Param("wxEnterpriseId") String wxEnterpriseId, public List<TabHmLink> listForSms(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId, @Param("linkName") String linkName); @Param("enterpriseId") String enterpriseId, @Param("linkName") String linkName,
@Param("linkType") Integer linkType);
public List<TabHmLink> list(@Param("wxEnterpriseId") String wxEnterpriseId, public List<TabHmLink> list(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId, @Param("startDate") Date startDate, @Param("enterpriseId") String enterpriseId, @Param("startDate") Date startDate,
......
...@@ -16,6 +16,7 @@ public class TabKeyData implements Serializable { ...@@ -16,6 +16,7 @@ public class TabKeyData implements Serializable {
private static final long serialVersionUID = 1978554156094100L; private static final long serialVersionUID = 1978554156094100L;
private Long id; private Long id;
private String enterpriseId ;
private String relationId ; private String relationId ;
private String dataKey; private String dataKey;
private String data; private String data;
...@@ -23,6 +24,14 @@ public class TabKeyData implements Serializable { ...@@ -23,6 +24,14 @@ public class TabKeyData implements Serializable {
private Integer type; private Integer type;
private java.util.Date createTime; private java.util.Date createTime;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getRelationId() { public String getRelationId() {
return relationId; return relationId;
} }
......
...@@ -5,12 +5,12 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum; ...@@ -5,12 +5,12 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum;
public interface KeyDataService { public interface KeyDataService {
public KeyDataDTO saveData(String relationId , String data, KeyDataEnum dataEnum); public KeyDataDTO saveData(String enterpriseId, String relationId, String data, KeyDataEnum dataEnum);
public String saveHmData(String unionid, Long linkId, Long hmId); public String saveHmData(String enterpriseId, String unionid, Long linkId, Long hmId);
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum, String relationId); public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum, String relationId);
public String getMobile(String key, String relationId) ; public String getMobile(String key, String relationId);
} }
...@@ -13,7 +13,7 @@ public interface HmLinkService { ...@@ -13,7 +13,7 @@ public interface HmLinkService {
public TabHmLink getByLinkId(String wxEnterpriseId, String enterprieId,Long linkId); public TabHmLink getByLinkId(String wxEnterpriseId, String enterprieId,Long linkId);
public List<HmLinkDTO> listForSms(String wxEnterpriseId, String enterprieId, String linkName); public List<HmLinkDTO> listForSms(String wxEnterpriseId, String enterprieId, String linkName, Integer linkType);
public HmLinkDTO saveLink(HmLinkDTO dto, List<HmLinkStoreDTO> stoerList); public HmLinkDTO saveLink(HmLinkDTO dto, List<HmLinkStoreDTO> stoerList);
......
...@@ -36,8 +36,8 @@ public class HmLinkServiceImpl implements HmLinkService { ...@@ -36,8 +36,8 @@ public class HmLinkServiceImpl implements HmLinkService {
} }
@Override @Override
public List<HmLinkDTO> listForSms(String wxEnterpriseId, String enterpriseId, String linkName) { public List<HmLinkDTO> listForSms(String wxEnterpriseId, String enterpriseId, String linkName, Integer linkType) {
List<TabHmLink> list = this.linkMapper.listForSms(wxEnterpriseId, enterpriseId, linkName); List<TabHmLink> list = this.linkMapper.listForSms(wxEnterpriseId, enterpriseId, linkName, linkType);
return EntityUtil.changeEntityListByJSON(HmLinkDTO.class, list); return EntityUtil.changeEntityListByJSON(HmLinkDTO.class, list);
} }
......
...@@ -30,9 +30,10 @@ public class KeyDataServiceImpl implements KeyDataService { ...@@ -30,9 +30,10 @@ public class KeyDataServiceImpl implements KeyDataService {
private TabKeyDataMapper tabKeyDataMapper; private TabKeyDataMapper tabKeyDataMapper;
@Override @Override
public KeyDataDTO saveData(String relationId , String data, KeyDataEnum dataEnum) { public KeyDataDTO saveData(String enterpriseId , String relationId , String data, KeyDataEnum dataEnum) {
KeyDataDTO dto = new KeyDataDTO(); KeyDataDTO dto = new KeyDataDTO();
dto.setRelationId(relationId); dto.setRelationId(relationId);
dto.setEnterpriseId(enterpriseId);
dto.setDataKey(generateKey(dataEnum)); dto.setDataKey(generateKey(dataEnum));
dto.setCreateTime(new Date()); dto.setCreateTime(new Date());
dto.setId(UniqueIdUtils.uniqueLong()); dto.setId(UniqueIdUtils.uniqueLong());
...@@ -44,12 +45,12 @@ public class KeyDataServiceImpl implements KeyDataService { ...@@ -44,12 +45,12 @@ public class KeyDataServiceImpl implements KeyDataService {
} }
@Override @Override
public String saveHmData(String unionid, Long linkId, Long hmId) { public String saveHmData(String enterpriseId , String unionid, Long linkId, Long hmId) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("unid", unionid); json.put("unid", unionid);
json.put("ljid", linkId); json.put("ljid", linkId);
json.put("hmid", hmId); json.put("hmid", hmId);
KeyDataDTO data = this.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.DYNAMIC_HM); KeyDataDTO data = this.saveData(enterpriseId,String.valueOf(linkId), json.toString(), KeyDataEnum.DYNAMIC_HM);
return data.getDataKey(); return data.getDataKey();
} }
......
...@@ -19,11 +19,11 @@ public class KeyDataApiServiceImpl implements KeyDataApiService { ...@@ -19,11 +19,11 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
private KeyDataService keyDataService; private KeyDataService keyDataService;
@Override @Override
public ServiceResponse<String> saveMobileData(Long linkId, String mobile) { public ServiceResponse<String> saveMobileData(String enterpiseId , Long linkId, String mobile) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("ph", mobile); json.put("ph", mobile);
json.put("ljid", linkId); json.put("ljid", linkId);
KeyDataDTO keyData = this.keyDataService.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.MOBILE); KeyDataDTO keyData = this.keyDataService.saveData(enterpiseId,String.valueOf(linkId), json.toString(), KeyDataEnum.MOBILE);
return ServiceResponse.success(keyData.getDataKey()); return ServiceResponse.success(keyData.getDataKey());
} }
......
package com.gic.haoban.manage.service.service.out.impl.hm; package com.gic.haoban.manage.service.service.out.impl.hm;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.api.dto.hm.HmLinkDTO; import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
...@@ -22,9 +28,11 @@ import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO; ...@@ -22,9 +28,11 @@ import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
import com.gic.haoban.manage.api.service.hm.HmLinkApiService; import com.gic.haoban.manage.api.service.hm.HmLinkApiService;
import com.gic.haoban.manage.service.entity.hm.TabHmLink; import com.gic.haoban.manage.service.entity.hm.TabHmLink;
import com.gic.haoban.manage.service.errorcode.HaoBanErrCode; import com.gic.haoban.manage.service.errorcode.HaoBanErrCode;
import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeBO;
import com.gic.haoban.manage.service.service.KeyDataService; 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.HmLinkService;
import com.gic.haoban.manage.service.service.hm.HmLinkStoreService; import com.gic.haoban.manage.service.service.hm.HmLinkStoreService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeService;
import com.gic.member.api.dto.es.MemberDataDTO; import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.member.api.dto.es.MemberStoreClerkDataDTO; import com.gic.member.api.dto.es.MemberStoreClerkDataDTO;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
...@@ -49,6 +57,10 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -49,6 +57,10 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private ESDataDynamicOperationApiService esApiService; private ESDataDynamicOperationApiService esApiService;
@Autowired @Autowired
private StoreService storeService; private StoreService storeService;
@Autowired
private HmQrcodeService hmQrcodeService;
@Autowired
private ClerkService clerkService;
@Override @Override
public ServiceResponse<HmLinkDTO> getByLinkId(String wxEnterpriseId, String enterpriseId, Long linkId) { public ServiceResponse<HmLinkDTO> getByLinkId(String wxEnterpriseId, String enterpriseId, Long linkId) {
...@@ -64,8 +76,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -64,8 +76,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
@Override @Override
public ServiceResponse<List<HmLinkDTO>> listForSms(String wxEnterpriseId, String enterprieId, String linkName) { public ServiceResponse<List<HmLinkDTO>> listForSms(String wxEnterpriseId, String enterprieId, String linkName,
return ServiceResponse.success(this.hmLinkService.listForSms(wxEnterpriseId, enterprieId, linkName)); Integer linkType) {
return ServiceResponse.success(this.hmLinkService.listForSms(wxEnterpriseId, enterprieId, linkName, linkType));
} }
@Override @Override
...@@ -79,70 +92,190 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -79,70 +92,190 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
@Override @Override
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, String storeId, String clerkId, public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String inStoreId,
String linkId, String mixPhone, String unionid) { String inClerkId, String linkIdStr, String mixPhone, String unionid) {
log.info("小程序获取活码={},linkId={},mixPhone={}", enterpriseId, linkId, mixPhone); HmQrcodeBO hm = null;
Long hmLinkId = Long.parseLong(linkId); HmLinkWxaDTO retDTO = new HmLinkWxaDTO();
TabHmLink link = this.hmLinkService.getByLinkId(null, null, hmLinkId); log.info("小程序获取活码={},linkId={},mixPhone={}", enterpriseId, linkIdStr, mixPhone);
Long linkId = Long.parseLong(linkIdStr);
TabHmLink link = this.hmLinkService.getByLinkId(null, null, linkId);
String wxEnterpriseId = link.getWxEnterpriseId();
// 判断导购是否有活码,如果没有返回错误 // 判断导购是否有活码,如果没有返回错误
if (StringUtils.isNotBlank(clerkId)) { if (StringUtils.isNotBlank(inClerkId)) {
hm = this.getHmFromClerk(inClerkId, wxEnterpriseId);
if (null == hm) {
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在");
}
} }
// 直接返回门店的导购活码,如果没有返回错误 // 直接返回门店的导购活码,如果没有返回错误
if (StringUtils.isNotBlank(storeId)) { if (null == hm && StringUtils.isNotBlank(inStoreId)) {
String customRuleJson = link.getCustomRuleJson();
} log.info("自定义规则={}", customRuleJson);
JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson);
HmLinkStoreSettingDTO fwStore = null; int openFlag = storeRuleObj.getIntValue("open");
HmLinkStoreSettingDTO xgStore = null; if (openFlag == 1) {
if (StringUtils.isNotBlank(link.getStoreRuleJson())) { int dz = 0, dy = 0;
String storeRuleJson = link.getStoreRuleJson(); // 1推荐门店 2附件门店 3省市区门店
JSONObject storeRuleObj = JSONObject.parseObject(storeRuleJson); int storeType = storeRuleObj.getIntValue("store_type");
fwStore = storeRuleObj.getObject("fw_store", HmLinkStoreSettingDTO.class); // 省市区
if (null == fwStore || fwStore.getOpen() == 0) { if (whitchStore == 3) {
fwStore = null; HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
} dz = cityStore.getDz();
xgStore = storeRuleObj.getObject("xg_store", HmLinkStoreSettingDTO.class); dy = cityStore.getDy();
if (null == xgStore || xgStore.getOpen() == 0) { }
xgStore = null; if (whitchStore == 1 || whitchStore == 2) {
HmLinkStoreSettingDTO store = storeRuleObj.getObject("store", HmLinkStoreSettingDTO.class);
if (whitchStore == 2 || (storeType == 1 && whitchStore == 1)) {
// 附近门店 或者 推荐门店
dz = store.getDz();
dy = store.getDy();
} else if (storeType == 2 && whitchStore == 1) {
// 附近门店的推荐门店
dz = store.getNdz();
dy = store.getNdy();
}
}
hm = this.getHmFormStore(wxEnterpriseId, inStoreId, dz, dy);
log.info("获取到的门店配置dz={},dy={},获取的活码={}", dz, dy, JSON.toJSONString(hm));
if (null == hm) {
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在");
}
} }
} }
// 会员门店 // 会员门店
if (StringUtils.isNotEmpty(mixPhone) && (null != fwStore || null != xgStore)) { if (null == hm && StringUtils.isNotEmpty(mixPhone)) {
String mobile = this.keyDataService.getMobile(mixPhone, linkId); HmLinkStoreSettingDTO fwStore = null;
log.info("小程序获取活码mobile={}", mobile); HmLinkStoreSettingDTO xgStore = null;
String memberId = this.memberService.getMemberIdByPhoneNumber(mobile, enterpriseId); if (StringUtils.isNotBlank(link.getStoreRuleJson())) {
log.info("小程序获取活码memberId={}", memberId); String storeRuleJson = link.getStoreRuleJson();
MemberDataDTO member = this.getMemberClerk(enterpriseId, memberId); log.info("会员门店规则={}", storeRuleJson);
String mainClerkId = member.getMainClerkId(); JSONObject storeRuleObj = JSONObject.parseObject(storeRuleJson);
List<MemberStoreClerkDataDTO> list = member.getStoreClerkRel() ; fwStore = storeRuleObj.getObject("fw_store", HmLinkStoreSettingDTO.class);
for(int i=0;i<list.size();i++) { if (null == fwStore || fwStore.getOpen() == 0) {
fwStore = null;
}
xgStore = storeRuleObj.getObject("xg_store", HmLinkStoreSettingDTO.class);
if (null == xgStore || xgStore.getOpen() == 0) {
xgStore = null;
}
String mobile = this.keyDataService.getMobile(mixPhone, linkIdStr);
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();
String mainStoreId = member.getMainStoreId();
// 服务门店
if (null != fwStore) {
if (fwStore.getZs() == 1) {
hm = this.getHmFromClerk(mainClerkId, wxEnterpriseId);
}
if (null == hm) {
hm = this.getHmFormStore(wxEnterpriseId, mainStoreId, fwStore.getDz(), fwStore.getDy());
}
}
// 协管门店
if (null == hm && null != xgStore) {
List<MemberStoreClerkDataDTO> list = member.getStoreClerkRel();
List<String> storeIdList = new ArrayList<>();
// 协管导购
for (MemberStoreClerkDataDTO item : list) {
String clerkId = item.getClerkIdRel();
if (clerkId.equals(mainClerkId)) {
continue;
}
hm = this.getHmFromClerk(clerkId, wxEnterpriseId);
if (null != hm) {
break;
}
storeIdList.add(item.getStoreIdRel());
}
// 店长
if (null == hm && xgStore.getDz() == 1) {
for (String storeId : storeIdList) {
hm = this.getHmFormStore(wxEnterpriseId, storeId, 1, 0);
if (null != hm) {
break;
}
}
}
// 店员
if (null == hm && xgStore.getDy() == 1) {
for (String storeId : storeIdList) {
hm = this.getHmFormStore(wxEnterpriseId, storeId, 0, 1);
if (null != hm) {
break;
}
}
}
}
} }
} }
if (null == hm && StringUtils.isNotBlank(link.getCustomRuleJson())) {
if (StringUtils.isNotBlank(link.getCustomRuleJson())) {
String customRuleJson = link.getCustomRuleJson(); String customRuleJson = link.getCustomRuleJson();
log.info("自定义规则={}", customRuleJson);
JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson); JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson);
int openFlag = storeRuleObj.getIntValue("open"); int openFlag = storeRuleObj.getIntValue("open");
if (openFlag == 1) { if (openFlag == 1) {
// 门店规则1推荐门店 2附件门店
int storeType = storeRuleObj.getIntValue("store_type");
List<HmLinkStoreDTO> storeList = this.hmLinkStoreService.listByLinkId(wxEnterpriseId, enterpriseId,
linkId);
log.info("门店规则={},推荐门店列表={}", storeType, JSON.toJSONString(storeList));
HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class); HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
// 是否开启省市区门店查询
int selectStoreFlag = cityStore.getOpen();
log.info("省市区开启={}", selectStoreFlag);
retDTO.setStoreType(storeType);
retDTO.setStoreList(storeList);
retDTO.setSelectStoreFlag(selectStoreFlag);
} }
} }
if (null != hm) {
// 查询活码 }
Long hmId = null; String key = this.keyDataService.saveHmData(enterpriseId,unionid, linkId, 100L);
String key = this.keyDataService.saveHmData(unionid, hmLinkId, hmId);
// 生成动态活码 // 生成动态活码
log.info(JSON.toJSONString(retDTO, true));
return ServiceResponse.success(retDTO);
}
private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId) {
if (StringUtils.isBlank(clerkId) || "-1".equals(clerkId)) {
return null;
}
List<HmQrcodeBO> hmList = this.hmQrcodeService.listByClerkId(clerkId, wxEnterpriseId);
if (CollectionUtils.isNotEmpty(hmList)) {
return hmList.get(0);
}
return null; return null;
} }
private HmQrcodeBO getHmFormStore(String wxEnterpriseId, String inStoreId, int dz, int dy) {
if (StringUtils.isBlank(inStoreId) || "-1".equals(inStoreId)) {
return null;
}
HmQrcodeBO hm = null;
if (dz == 1) {
ClerkDTO dzClerk = this.clerkService.getClerkLeaderByStoreId(inStoreId);
if (null != dzClerk) {
hm = this.getHmFromClerk(dzClerk.getClerkId(), wxEnterpriseId);
} else {
log.info("店长不存在,storeId={}", inStoreId);
}
}
if (null == hm && dy == 1) {
List<HmQrcodeBO> list = this.hmQrcodeService.listByStoreId(inStoreId, 0);
if (CollectionUtils.isNotEmpty(list)) {
hm = list.get(new Random().nextInt(list.size()));
}
}
return hm;
}
// 冗余会员信息 // 冗余会员信息
private MemberDataDTO getMemberClerk(String enterpriseId, String memberId) { private MemberDataDTO getMemberClerk(String enterpriseId, String memberId) {
String returnFields = "memberId,mainClerkId,storeClerkRel"; String returnFields = "memberId,mainClerkId,mainStoreId,storeClerkRel";
JSONObject memberObj = this.queryDataSingle(enterpriseId, memberId, returnFields); JSONObject memberObj = this.queryDataSingle(enterpriseId, memberId, returnFields);
if (null == memberObj) { if (null == memberObj) {
return null; return null;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<resultMap type="com.gic.haoban.manage.service.entity.TabKeyData" <resultMap type="com.gic.haoban.manage.service.entity.TabKeyData"
id="result-map-tabHaobanKeyData"> id="result-map-tabHaobanKeyData">
<result column="id" property="id" /> <result column="id" property="id" />
<result column="enterprise_id" property="enterpriseId" />
<result column="relation_id" property="relationId" /> <result column="relation_id" property="relationId" />
<result column="data_key" property="dataKey" /> <result column="data_key" property="dataKey" />
<result column="data" property="data" /> <result column="data" property="data" />
...@@ -14,13 +15,14 @@ ...@@ -14,13 +15,14 @@
data_key, data_key,
data, data,
type, type,
create_time create_time , enterpriseId , relation_id
</sql> </sql>
<!-- ===================== 新增 ======================== --> <!-- ===================== 新增 ======================== -->
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabKeyData"> <insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabKeyData">
<![CDATA[ <![CDATA[
INSERT INTO tab_haoban_key_data( INSERT INTO tab_haoban_key_data(
id, id,
enterprise_id,
relation_id , relation_id ,
data_key, data_key,
data, data,
...@@ -28,6 +30,7 @@ ...@@ -28,6 +30,7 @@
create_time create_time
)VALUES( )VALUES(
#{id}, #{id},
#{enterpriseId} ,
#{relationId} , #{relationId} ,
#{dataKey,jdbcType=VARCHAR}, #{dataKey,jdbcType=VARCHAR},
#{data,jdbcType=VARCHAR}, #{data,jdbcType=VARCHAR},
......
...@@ -118,6 +118,9 @@ ...@@ -118,6 +118,9 @@
<if test="null != linkName"> <if test="null != linkName">
and name like '%${linkName}%' and name like '%${linkName}%'
</if> </if>
<if test="null != linkType">
and link_type = #{linkType}
</if>
and status_flag = 1 and status_flag = 1
limit 20 limit 20
</select> </select>
......
...@@ -33,7 +33,12 @@ public class HmLinkTest { ...@@ -33,7 +33,12 @@ public class HmLinkTest {
@Autowired @Autowired
private HmLinkStoreService hmLinkStoreService; private HmLinkStoreService hmLinkStoreService;
@Test
public void getLinkHmFromWxa(){
this.hmLinkApiService.getLinkHmFromWxa("ff8080815dacd3a2015dacd3ef5c0000", null, null, null, "417109414906961921", "ubkCBFK", null) ;
}
@Test @Test
public void saveLinkStore() { public void saveLinkStore() {
HmLinkStoreDTO dto = new HmLinkStoreDTO(); HmLinkStoreDTO dto = new HmLinkStoreDTO();
...@@ -110,7 +115,7 @@ public class HmLinkTest { ...@@ -110,7 +115,7 @@ public class HmLinkTest {
@Test @Test
public void test3() { public void test3() {
this.keyDataApiService.saveMobileData(10000L, "15999") ; this.keyDataApiService.saveMobileData("112",10000L, "15999") ;
System.out.println(this.keyDataApiService.getDataByKey("679f17d8c2e940a28dc484689c0339db", KeyDataEnum.MOBILE)); System.out.println(this.keyDataApiService.getDataByKey("679f17d8c2e940a28dc484689c0339db", KeyDataEnum.MOBILE));
} }
......
...@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO; import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil; import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.HaobanResponse; import com.gic.haoban.common.utils.HaobanResponse;
...@@ -43,7 +44,7 @@ public class HmLinkController extends WebBaseController { ...@@ -43,7 +44,7 @@ public class HmLinkController extends WebBaseController {
private WelcomeApiService welcomeApiService; private WelcomeApiService welcomeApiService;
@RequestMapping("add") @RequestMapping("add")
public HaobanResponse save(@RequestBody HmLinkDTO dto) { public RestResponse save(@RequestBody HmLinkDTO dto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
dto.setCreatorId(loginUser.getClerkId()); dto.setCreatorId(loginUser.getClerkId());
dto.setCreatorName(loginUser.getClerkName()); dto.setCreatorName(loginUser.getClerkName());
...@@ -52,35 +53,35 @@ public class HmLinkController extends WebBaseController { ...@@ -52,35 +53,35 @@ public class HmLinkController extends WebBaseController {
dto.setWxEnterpriseId(loginUser.getWxEnterpriseId()); dto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
dto.setEnterpriseId(loginUser.getEnterpriseId()); dto.setEnterpriseId(loginUser.getEnterpriseId());
this.hmLinkApiService.save(dto); this.hmLinkApiService.save(dto);
return this.success(null); return RestResponse.successResult();
} }
@RequestMapping("update") @RequestMapping("update")
public HaobanResponse update(@RequestBody HmLinkDTO dto) { public RestResponse update(@RequestBody HmLinkDTO dto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
dto.setModifierId(loginUser.getClerkId()); dto.setModifierId(loginUser.getClerkId());
dto.setModifierName(loginUser.getClerkName()); dto.setModifierName(loginUser.getClerkName());
this.hmLinkApiService.save(dto); this.hmLinkApiService.save(dto);
return this.success(null); return RestResponse.successResult();
} }
@RequestMapping("page") @RequestMapping("page")
public HaobanResponse page(HmLinkSearchQDTO qdto, BasePageInfo basePageInfo) { public RestResponse page(HmLinkSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId()); qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId()); qdto.setEnterpriseId(loginUser.getEnterpriseId());
ServiceResponse<Page<HmLinkDTO>> page = this.hmLinkApiService.listPage(qdto, basePageInfo); ServiceResponse<Page<HmLinkDTO>> page = this.hmLinkApiService.listPage(qdto, basePageInfo);
return this.success(page.getResult()); return RestResponse.successResult(page.getResult());
} }
@RequestMapping("detail") @RequestMapping("detail")
public HaobanResponse detail(Long linkId) { public RestResponse detail(Long linkId) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId(); String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId(); String enterpriseId = loginUser.getEnterpriseId();
ServiceResponse<HmLinkDTO> linkResp = this.hmLinkApiService.getByLinkId(wxEnterpriseId, enterpriseId, linkId); ServiceResponse<HmLinkDTO> linkResp = this.hmLinkApiService.getByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (!linkResp.isSuccess()) { if (!linkResp.isSuccess()) {
return this.fail("链接不存在"); return RestResponse.failure("1", "链接不存在");
} }
HmLinkDTO link = linkResp.getResult(); HmLinkDTO link = linkResp.getResult();
Map<String, Object> retMap = new HashMap<>(); Map<String, Object> retMap = new HashMap<>();
...@@ -98,7 +99,7 @@ public class HmLinkController extends WebBaseController { ...@@ -98,7 +99,7 @@ public class HmLinkController extends WebBaseController {
retMap.put("welcome", resp.getResult()); retMap.put("welcome", resp.getResult());
} }
} }
return this.success(retMap); return RestResponse.successResult(retMap);
} }
} }
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