Commit e3459ab3 by 徐高华

hm

parent 007d1af6
package com.gic.haoban.manage.web.controller.hm; package com.gic.haoban.manage.web.controller.hm;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -9,20 +11,22 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -9,20 +11,22 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
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.commons.webapi.reponse.RestResponse; 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.manage.api.dto.hm.HmLinkDTO; import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreSettingDTO;
import com.gic.haoban.manage.api.dto.hm.HmPageTemplateRespDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeDetailDTO; import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeDetailDTO;
import com.gic.haoban.manage.api.service.hm.HmLinkApiService; import com.gic.haoban.manage.api.service.hm.HmLinkApiService;
import com.gic.haoban.manage.api.service.hm.HmPageTemplateApiService; import com.gic.haoban.manage.api.service.hm.HmPageApiService;
import com.gic.haoban.manage.api.service.out.WelcomeApiService; import com.gic.haoban.manage.api.service.out.WelcomeApiService;
import com.gic.haoban.manage.web.controller.WebBaseController;
/** /**
* *
...@@ -34,17 +38,19 @@ import com.gic.haoban.manage.web.controller.WebBaseController; ...@@ -34,17 +38,19 @@ import com.gic.haoban.manage.web.controller.WebBaseController;
*/ */
@RestController @RestController
@RequestMapping("/hm/link") @RequestMapping("/hm/link")
public class HmLinkController { public class HmLinkController {
@Autowired @Autowired
private HmLinkApiService hmLinkApiService; private HmLinkApiService hmLinkApiService;
@Autowired @Autowired
private HmPageTemplateApiService hmPageTemplateApiService; private HmPageApiService hmPageApiService;
@Autowired @Autowired
private WelcomeApiService welcomeApiService; private WelcomeApiService welcomeApiService;
@Autowired
private MemberTagApiService memberTagApiService;
@RequestMapping("add") @RequestMapping("add")
public RestResponse save(@RequestBody HmLinkDTO dto) { public RestResponse<Object> 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());
...@@ -60,7 +66,7 @@ public class HmLinkController { ...@@ -60,7 +66,7 @@ public class HmLinkController {
} }
@RequestMapping("update") @RequestMapping("update")
public RestResponse update(@RequestBody HmLinkDTO dto) { public RestResponse<Object> update(@RequestBody HmLinkDTO dto) {
Long linkId = dto.getLinkId(); Long linkId = dto.getLinkId();
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
ServiceResponse<HmLinkDTO> resp = this.hmLinkApiService.getByLinkId(loginUser.getWxEnterpriseId(), ServiceResponse<HmLinkDTO> resp = this.hmLinkApiService.getByLinkId(loginUser.getWxEnterpriseId(),
...@@ -76,24 +82,269 @@ public class HmLinkController { ...@@ -76,24 +82,269 @@ public class HmLinkController {
// 编辑引流活码【链接ID-链接名称】:链接名称「 链接名称」变更「 链接名称」,链接描述「 链接描述」变更「 链接描述」,链接标签「 // 编辑引流活码【链接ID-链接名称】:链接名称「 链接名称」变更「 链接名称」,链接描述「 链接描述」变更「 链接描述」,链接标签「
// 标签名称-标签值名称」变更为「 标签名称-标签值名称」,分配规则「 层级x-子项名称」关闭,「 层级x-子项名称」开启,欢迎语「 // 标签名称-标签值名称」变更为「 标签名称-标签值名称」,分配规则「 层级x-子项名称」关闭,「 层级x-子项名称」开启,欢迎语「
// 欢迎语名称」变更为「 欢迎语名称」,欢迎语变更为「 不发送欢迎语」,欢迎语变更为「 活码欢迎语-欢迎语名称」 // 欢迎语名称」变更为「 欢迎语名称」,欢迎语变更为「 不发送欢迎语」,欢迎语变更为「 活码欢迎语-欢迎语名称」
private String getLog(HmLinkDTO oldDTO, HmLinkDTO newDTO) { private static String getLog(HmLinkDTO oldDTO, HmLinkDTO newDTO) {
String wxEnterpriseId = newDTO.getWxEnterpriseId();
String enterpriseId = newDTO.getEnterpriseId();
StringBuilder sb = new StringBuilder("编辑引流活码").append("【").append(oldDTO.getLinkCode()).append("-") StringBuilder sb = new StringBuilder("编辑引流活码").append("【").append(oldDTO.getLinkCode()).append("-")
.append(oldDTO.getName()).append("】"); .append(oldDTO.getName()).append("】");
comp("链接名称", oldDTO.getName(), newDTO.getName(), sb); comp(wxEnterpriseId, enterpriseId, "链接名称", oldDTO.getName(), newDTO.getName(), sb, 0);
comp("链接描述", oldDTO.getRemark(), newDTO.getRemark(), sb); comp(wxEnterpriseId, enterpriseId, "链接描述", oldDTO.getRemark(), newDTO.getRemark(), sb, 0);
comp(wxEnterpriseId, enterpriseId, "分配规则", oldDTO.getStoreRuleJson(), newDTO.getStoreRuleJson(), sb, 3);
comp(wxEnterpriseId, enterpriseId, "分配规则", oldDTO.getCustomRuleJson(), newDTO.getCustomRuleJson(), sb, 4);
comp(wxEnterpriseId, enterpriseId, "链接标签", oldDTO.getMemberLabelId(), newDTO.getMemberLabelId(), sb, 1);
comp(wxEnterpriseId, enterpriseId, "欢迎语", oldDTO.getWelcomeId(), newDTO.getWelcomeId(), sb, 2);
return null; return null;
} }
public void comp(String title, String oldValue, String newValue, StringBuilder sb) { // type 会员标签1 , 2 欢迎语
if (!oldValue.equals(newValue)) { public static void comp(String wxEnterpriseId, String enterpriseId, String title, String oldValue, String newValue,
StringBuilder sb, int type) {
if (null == oldValue) {
oldValue = "";
}
if (null == newValue) {
newValue = "";
}
if (type == 0 && !oldValue.equals(newValue)) {
sb.append(title).append("「").append(oldValue).append("」变更「").append(newValue).append("」"); sb.append(title).append("「").append(oldValue).append("」变更「").append(newValue).append("」");
} }
// 会员标签
/*
* if (type == 1 && !oldValue.equals(newValue)) { MemberTagItemDTO
* oldResp = this.memberTagApiService.findMemberTagItem(oldValue);
* MemberTagItemDTO newResp =
* this.memberTagApiService.findMemberTagItem(newValue); if (null !=
* oldResp) { oldValue = oldResp.getTagName() + "-" +
* oldResp.getTagItemName(); } if (null != newResp) { newValue =
* newResp.getTagName() + "-" + newResp.getTagItemName(); }
* sb.append(title).append("「").append(oldValue).append("」变更「").append(
* newValue).append("」"); } // 欢迎语 if (type == 2 &&
* !oldValue.equals(newValue)) { if (StringUtils.isEmpty(oldValue)) {
* ServiceResponse<WelcomeDetailDTO> resp =
* this.welcomeApiService.getWelcome(newValue, enterpriseId); if (null
* != resp && null != resp.getResult()) {
* sb.append("欢迎语变更为").append("「").append(resp.getResult().getTitle()).
* append("」"); } } else if (StringUtils.isEmpty(newValue)) {
* sb.append("欢迎语变更为").append("「").append("不发送欢迎语").append("」"); } else
* { ServiceResponse<WelcomeDetailDTO> oldResp =
* this.welcomeApiService.getWelcome(oldValue, enterpriseId);
* ServiceResponse<WelcomeDetailDTO> newResp =
* this.welcomeApiService.getWelcome(newValue, enterpriseId); if (null
* != oldResp && null != oldResp.getResult()) { oldValue =
* oldResp.getResult().getTitle(); } if (null != newResp && null !=
* newResp.getResult()) { newValue = newResp.getResult().getTitle(); }
* sb.append(title).append("「").append(oldValue).append("」变更「").append(
* newValue).append("」"); } }
*/
// 分批规则
if (type == 3) {
JSONObject oldStoreRuleObj = JSONObject.parseObject(oldValue);
JSONObject newStoreRuleObj = JSONObject.parseObject(newValue);
// 层级一-
HmLinkStoreSettingDTO oldFwStore = oldStoreRuleObj.getObject("fw_store", HmLinkStoreSettingDTO.class);
HmLinkStoreSettingDTO newFwStore = newStoreRuleObj.getObject("fw_store", HmLinkStoreSettingDTO.class);
ruleLog(oldFwStore, newFwStore, sb, 1);
// 层级二
HmLinkStoreSettingDTO oldXgStore = oldStoreRuleObj.getObject("xg_store", HmLinkStoreSettingDTO.class);
HmLinkStoreSettingDTO newXgStore = newStoreRuleObj.getObject("xg_store", HmLinkStoreSettingDTO.class);
ruleLog(oldXgStore, newXgStore, sb, 2);
}
if (type == 4) {
JSONObject oldStoreRuleObj = JSONObject.parseObject(oldValue);
JSONObject newStoreRuleObj = JSONObject.parseObject(newValue);
otherStoreRuleLog(oldStoreRuleObj, newStoreRuleObj, sb);
}
}
private static void otherStoreRuleLog(JSONObject oldStoreRuleObj, JSONObject newStoreRuleObj, StringBuilder sb) {
StringBuilder tempSb = new StringBuilder();
int oldOpenFlag = oldStoreRuleObj.getIntValue("open");
int newOpenFlag = newStoreRuleObj.getIntValue("open");
if (oldOpenFlag != newOpenFlag && newOpenFlag == 0) {
tempSb.append("关闭").append("「").append("其他门店").append("」");
} else {
int oldStoreType = oldStoreRuleObj.getIntValue("store_type");
int newStoreType = newStoreRuleObj.getIntValue("store_type");
HmLinkStoreSettingDTO oldtore = oldStoreRuleObj.getObject("store", HmLinkStoreSettingDTO.class);
HmLinkStoreSettingDTO newStore = newStoreRuleObj.getObject("store", HmLinkStoreSettingDTO.class);
HmLinkStoreSettingDTO oldCityStore = oldStoreRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
HmLinkStoreSettingDTO newCityStore = newStoreRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
if ((oldOpenFlag == 0 && newOpenFlag == 1) || (oldStoreType != newStoreType)) {
// 开启
tempSb.append("开启");
if (newStoreType == 1) {
tempSb.append(otherOpenLog(newStore, sb, 5));
} else if (newStoreType == 2) {
tempSb.append(otherOpenLog(newStore, sb, 6));
}
String cityLog = otherOpenLog(newCityStore, sb, 4);
tempSb.append(cityLog);
} else {
if (newStoreType == 1) {
tempSb.append(ruleLog1(oldtore, newStore, sb, 5));
} else if (newStoreType == 2) {
tempSb.append(ruleLog1(oldtore, newStore, sb, 6));
}
tempSb.append(ruleLog1(oldCityStore, newCityStore, sb, 4));
}
}
sb.append(tempSb);
}
private static String otherOpenLog(HmLinkStoreSettingDTO newStore, StringBuilder sb, int level) {
StringBuilder tempSb = new StringBuilder();
String title = "";
if (level == 4) {
title = "省市筛选";
}
if (level == 5) {
title = "其他门店-推荐门店";
}
if (level == 6) {
title = "其他门店-附近门店";
}
String newTitle = "";
int newDz = newStore.getDz();
int newDy = newStore.getDy();
int newNdy = newStore.getNdy();
int newNdz = newStore.getNdz();
if (level == 5 || level == 4) {
newTitle = getLogOption(0, 0, newDz, newDy, 0, 0, level);
}
if (level == 6) {
newTitle = getLogOption(0, 0, newNdz, newNdy, newNdz, newNdy, level);
}
tempSb.append("「").append(title).append("-").append(newTitle).append("」");
sb.append(tempSb);
return tempSb.toString();
}
private static String ruleLog1(HmLinkStoreSettingDTO oldStore, HmLinkStoreSettingDTO newStore, StringBuilder sb,
int level) {
StringBuilder tempSb = new StringBuilder();
String title = "";
if (level == 5) {
title = "推荐门店";
}
if (level == 6) {
title = "附近门店";
}
String oldTitle = "";
String newTitle = "";
int oldDz = oldStore.getDz();
int oldDy = oldStore.getDy();
int newDz = newStore.getDz();
int newDy = newStore.getDy();
int oldNdz = oldStore.getNdz();
int oldNdy = oldStore.getNdy();
int newNdy = newStore.getNdy();
int newNdz = newStore.getNdz();
if (level == 5) {
oldTitle = getLogOption(0, 0, oldDz, oldDy, 0, 0, level);
newTitle = getLogOption(0, 0, newDz, newDy, 0, 0, level);
}
if (level == 6) {
oldTitle = getLogOption(0, 0, oldNdz, oldNdy, oldNdz, oldNdy, level);
newTitle = getLogOption(0, 0, newNdz, newNdy, newNdz, newNdy, level);
}
if (!oldTitle.equals(newTitle)) {
sb.append("分配规则").append("「").append(title).append("-").append(oldTitle).append("」").append("变更为")
.append("「").append(title).append("-").append(newTitle).append("」");
}
sb.append(tempSb);
return tempSb.toString();
}
private static String ruleLog(HmLinkStoreSettingDTO oldStore, HmLinkStoreSettingDTO newStore, StringBuilder sb,
int level) {
StringBuilder tempSb = new StringBuilder();
int oldOpenFlag = oldStore.getOpen();
int newOpenFlag = newStore.getOpen();
String title = "";
if (level == 1) {
title = "服务门店";
}
if (level == 2) {
title = "协管门店";
}
// 省市筛选
if (level == 4) {
title = "省市筛选";
}
String oldTitle = "";
String newTitle = "";
int oldZs = oldStore.getZs();
int oldDz = oldStore.getDz();
int oldDy = oldStore.getDy();
int oldxg = oldStore.getXg();
int newZs = newStore.getZs();
int newDz = newStore.getDz();
int newDy = newStore.getDy();
int newXg = newStore.getXg();
if (level == 1) {
oldTitle = getLogOption(oldZs, 0, oldDz, oldDy, 0, 0, level);
newTitle = getLogOption(newZs, 0, newDz, newDy, 0, 0, level);
}
if (level == 2) {
oldTitle = getLogOption(0, oldxg, oldDz, oldDy, 0, 0, level);
newTitle = getLogOption(0, newXg, newDz, newDy, 0, 0, level);
}
if (level == 4) {
oldTitle = getLogOption(0, 0, oldDz, oldDy, 0, 0, level);
newTitle = getLogOption(0, 0, newDz, newDy, 0, 0, level);
}
if (oldOpenFlag != newOpenFlag && newOpenFlag == 0) {
tempSb.append("关闭").append("「").append(title).append("」");
}
if (newOpenFlag == 1) {
if (!oldTitle.equals(newTitle)) {
if (oldOpenFlag == 0) {
sb.append("开启").append("「").append(title).append("-").append(newTitle).append("」");
} else {
sb.append("分配规则").append("「").append(title).append("-").append(oldTitle).append("」").append("变更为")
.append("「").append(title).append("-").append(newTitle).append("」");
}
}
}
sb.append(tempSb);
return tempSb.toString();
}
private static String getLogOption(int zs, int xg, int dz, int dy, int ndz, int ndy, int level) {
List<String> list = new ArrayList<>();
if (zs == 1) {
list.add("专属导购");
}
if (xg == 1) {
list.add("协管导购");
}
if (dz == 1) {
list.add("店长");
}
if (dy == 1) {
if (level == 1 && level == 2) {
list.add("其他导购");
} else {
list.add("导购");
}
}
if (ndz == 1) {
list.add("指定门店的店长");
}
if (ndy == 1) {
list.add("指定门店的导购");
}
return list.stream().collect(Collectors.joining("、"));
} }
@RequestMapping("page") @RequestMapping("page")
public RestResponse page(HmLinkSearchQDTO qdto, BasePageInfo basePageInfo) { public RestResponse<Object> 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());
...@@ -102,7 +353,7 @@ public class HmLinkController { ...@@ -102,7 +353,7 @@ public class HmLinkController {
} }
@RequestMapping("detail") @RequestMapping("detail")
public RestResponse detail(Long linkId) { public RestResponse<Object> 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();
...@@ -116,7 +367,8 @@ public class HmLinkController { ...@@ -116,7 +367,8 @@ public class HmLinkController {
// 落地页 // 落地页
Long pageId = link.getPageId(); Long pageId = link.getPageId();
if (null != pageId) { if (null != pageId) {
// this.hmPageTemplateApiService.s ServiceResponse<HmPageTemplateRespDTO> resp = this.hmPageTemplateApiService.queryPageTemplateDetail(pageId);
retMap.put("page", resp.getResult());
} }
// 查询欢迎语 // 查询欢迎语
String welcomeId = link.getWelcomeId(); String welcomeId = link.getWelcomeId();
...@@ -129,4 +381,31 @@ public class HmLinkController { ...@@ -129,4 +381,31 @@ public class HmLinkController {
return RestResponse.successResult(retMap); return RestResponse.successResult(retMap);
} }
public static void main(String[] args) {
/*
* StringBuilder sb = new StringBuilder() ; comp("1", "1", "分配规则",
* "{\"fw_store\":{\"open\":1,\"zs\":1,\"dz\":1,\"dy\":1},\"xg_store\":{\"open\":0,\"zs\":1,\"dz\":1,\"dy\":1}}"
* ,
* "{\"fw_store\":{\"open\":1,\"zs\":1,\"dz\":1,\"dy\":1},\"xg_store\":{\"open\":1,\"zs\":1,\"dz\":1,\"dy\":1}}",
* sb, 3); System.out.println(sb.toString());
*/
/*
* StringBuilder sb = new StringBuilder() ; comp("1", "1", "分配规则",
* "{\"fw_store\":{\"open\":1,\"zs\":1,\"dz\":1,\"dy\":1},\"xg_store\":{\"open\":1,\"zs\":1,\"dz\":1,\"dy\":0}}"
* ,
* "{\"fw_store\":{\"open\":1,\"zs\":0,\"dz\":1,\"dy\":1},\"xg_store\":{\"open\":1,\"xg\":1,\"dz\":1,\"dy\":0}}",
* sb, 3); System.out.println(sb.toString());
*/
StringBuilder sb = new StringBuilder();
comp("1", "1", "分配规则",
"{\"store_type\":2,\"open\":1,\"store\":{\"dz\":0,\"dy\":1,\"ndz\":0,\"ndy\":1}, \"city_store\":{\"open\":1,\"dz\":0,\"dy\":1}}",
"{\"store_type\":2,\"open\":1,\"store\":{\"dz\":1,\"dy\":1,\"ndz\":1,\"ndy\":1}, \"city_store\":{\"open\":1,\"dz\":1,\"dy\":1}}",
sb, 4);
System.out.println(sb);
// comp(wxEnterpriseId, enterpriseId, "分配规则",
// oldDTO.getCustomRuleJson(), newDTO.getCustomRuleJson(), sb, 4);
}
} }
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