Commit 84d961e3 by 徐高华

绑定迁移到运维

parent f4df5aff
...@@ -202,6 +202,11 @@ ...@@ -202,6 +202,11 @@
<artifactId>gic-wechat-api</artifactId> <artifactId>gic-wechat-api</artifactId>
<version>${gic-wechat-api}</version> <version>${gic-wechat-api}</version>
</dependency> </dependency>
<dependency>
<groupId>com.gic.authcenter</groupId>
<artifactId>gic-authcenter-commons</artifactId>
<version>${gic-authcenter-commons}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.gic.haoban.manage.web.controller; package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil; import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.authcenter.commons.dto.AuthcenterUserDetails;
import com.gic.authcenter.commons.util.SessionContextUtil;
import com.gic.commons.util.GlobalVar; import com.gic.commons.util.GlobalVar;
import com.gic.enterprise.api.dto.EnterpriseAndUserDTO;
import com.gic.enterprise.api.dto.EnterpriseDTO; import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.PowerStoreGroupDTO;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.EnterpriseService; import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreGroupService;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService; import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.PageResult; import com.gic.haoban.base.api.common.PageResult;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.EntityUtil; import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse; import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.UuidUtil; import com.gic.haoban.common.utils.UuidUtil;
import com.gic.haoban.manage.api.dto.BindStoreInfoDTO;
import com.gic.haoban.manage.api.dto.DepartmentDTO; import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO; import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.StoreOrGroupInfoDTO;
import com.gic.haoban.manage.api.dto.StoreRangeInfoDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO; import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseRelationDetailDTO;
import com.gic.haoban.manage.api.dto.YwWxEnterpriseDTO; import com.gic.haoban.manage.api.dto.YwWxEnterpriseDTO;
import com.gic.haoban.manage.api.service.DepartmentApiService; import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService; import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService; import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode; import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.WxEnterpriseBindQo;
import com.gic.haoban.manage.web.vo.EnterpriseDetailVo; import com.gic.haoban.manage.web.vo.EnterpriseDetailVo;
import com.gic.haoban.manage.web.vo.EnterpriseSearchVO;
import com.gic.haoban.manage.web.vo.StoreGroupVo;
import com.gic.haoban.task.manage.api.service.GroupSendOperateApiService; import com.gic.haoban.task.manage.api.service.GroupSendOperateApiService;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils; import cn.hutool.core.collection.CollectionUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@RestController @RestController
public class EnterpriseController extends WebBaseController { public class EnterpriseController extends WebBaseController {
...@@ -68,6 +94,8 @@ public class EnterpriseController extends WebBaseController { ...@@ -68,6 +94,8 @@ public class EnterpriseController extends WebBaseController {
private QywxUserApiService qywxUserApiService; private QywxUserApiService qywxUserApiService;
@Autowired @Autowired
private GroupSendOperateApiService groupSendOperateApiService; private GroupSendOperateApiService groupSendOperateApiService;
@Autowired
private StoreGroupService storeGroupService ;
private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open"; private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open";
private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock"; private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock";
...@@ -463,4 +491,113 @@ public class EnterpriseController extends WebBaseController { ...@@ -463,4 +491,113 @@ public class EnterpriseController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
// 绑定门店列表
@RequestMapping("bind-store-list")
public HaobanResponse bindStoreList(String enterpriseId, String search, BasePageInfo basePageInfo) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
Page<BindStoreInfoDTO> retPage = wxEnterpriseRelatedApiService.pageBindStoreByEnterpriseId(wxEnterpriseId, enterpriseId, search, basePageInfo);
return resultResponse(HaoBanErrCode.ERR_1, retPage);
}
//企业信息
@RequestMapping("wxEnterprise-detail")
public HaobanResponse enterpriseDetail(String wxEnterpriseId) {
if (StringUtils.isEmpty(wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_1);
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
if (wxEnterpriseDTO == null) {
return this.fail("微信企业差不到") ;
}
wxEnterpriseDTO.setSmallVersion("免费版");
wxEnterpriseDTO.setStoreTotal(departmentApiService.totalStoreCountByEnterpriseId(wxEnterpriseId));
return resultResponse(HaoBanErrCode.ERR_1, wxEnterpriseDTO);
}
//gic企业列表
@RequestMapping("enterprise-search")
public HaobanResponse gicEnterpriseDetail(String enterpriseName) {
if (StringUtils.isEmpty(enterpriseName)) {
return resultResponse(HaoBanErrCode.ERR_1);
}
EnterpriseAndUserDTO dto = enterpriseService.getEnterpriseAndUserByName(enterpriseName);
EnterpriseSearchVO vo = EntityUtil.changeEntityByJSON(EnterpriseSearchVO.class, dto);
if (vo != null) {
String enterpriseId = vo.getEnterpriseId();
EnterpriseDTO enterprise = enterpriseService.getEnterpriseById(enterpriseId);
if (enterprise != null) {
vo.setBrandName(enterprise.getBrandName());
}
}
return resultResponse(HaoBanErrCode.ERR_1, vo);
}
@RequestMapping("gic-store-group-list")
public HaobanResponse storeGroupList(String enterpriseId, String keyWord) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
List<PowerStoreGroupDTO> departmentList = storeGroupService.getStoreGroupList(enterpriseId, keyWord);
List<StoreRangeInfoDTO> rangeInfoDTOList = wxEnterpriseRelatedApiService.listAllBindStoreOrGroup(enterpriseId);
Map<String, StoreRangeInfoDTO> storeRangeMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(rangeInfoDTOList)) {
List<WxEnterpriseDTO> wxEnterpriseDTOS = wxEnterpriseRelatedApiService.listWxEnterpriseByEid(enterpriseId);
if (CollectionUtils.isNotEmpty(wxEnterpriseDTOS)) {
Map<String, WxEnterpriseDTO> wxEnterpriseDTOMap = wxEnterpriseDTOS.stream().collect(Collectors.toMap(WxEnterpriseDTO::getWxEnterpriseId, dto -> dto));
storeRangeMap = rangeInfoDTOList.stream()
.filter(dto -> (!dto.getWxEnterpriseId().equals(wxEnterpriseId))
&& dto.getRelationType() == 1
&& wxEnterpriseDTOMap.get(dto.getWxEnterpriseId()) != null)
.peek(dto -> dto.setWxEnterpriseName(wxEnterpriseDTOMap.get(dto.getWxEnterpriseId()).getCorpName()))
.collect(Collectors.toMap(StoreRangeInfoDTO::getRelationId, dto -> dto));
}
}
Map<String, StoreRangeInfoDTO> finalStoreRangeMap = storeRangeMap;
List<StoreGroupVo> ret = departmentList.stream().map(dto -> {
StoreRangeInfoDTO mid = finalStoreRangeMap.get(dto.getStoreGroupId());
StoreGroupVo storeGroupVo = new StoreGroupVo();
storeGroupVo.setRelationId(dto.getStoreGroupId());
storeGroupVo.setParentRelationId(dto.getParentGroupId());
if (mid != null) {
storeGroupVo.setIsBind(1);
storeGroupVo.setWxEnterpriseId(mid.getWxEnterpriseId());
storeGroupVo.setWxEnterpriseName(mid.getWxEnterpriseName());
}
storeGroupVo.setRelationType(1);
storeGroupVo.setRelationName(dto.getStoreGroupName());
return storeGroupVo;
}).collect(Collectors.toList());
return resultResponse(HaoBanErrCode.ERR_1, ret);
}
//微信企业绑定接口 - 迁移到运维
@RequestMapping("wx-enterprise-bind")
public HaobanResponse wxEnterpriseBind(HttpServletRequest request , WxEnterpriseBindQo bindQo) {
if (org.apache.commons.lang3.StringUtils.isAnyBlank(bindQo.getEnterpriseId(), bindQo.getVersion())) {
return resultResponse(HaoBanErrCode.ERR_2);
}
String wxEnterpriseId = bindQo.getWxEnterpriseId();
if(StringUtils.isBlank(wxEnterpriseId)) {
return this.fail("微信企业ID未传") ;
}
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request) ;
String staffName = loginUser.getRealName() ;
WxEnterpriseRelationDetailDTO detailDTO = new WxEnterpriseRelationDetailDTO();
detailDTO.setWxEnterpriseRelatedId(bindQo.getWxEnterpriseRelatedId());
detailDTO.setEnterpriseId(bindQo.getEnterpriseId());
detailDTO.setWxEnterpriseId(wxEnterpriseId);
detailDTO.setStaffId(null);
detailDTO.setStaffName(staffName);
detailDTO.setMemberOpenCardFlag(bindQo.getMemberOpenCardFlag());
detailDTO.setWxEnterpriseType(bindQo.getWxEnterpriseType());
List<StoreOrGroupInfoDTO> storeOrGroupInfoDTOS = JSONObject.parseArray(bindQo.getRelations(), StoreOrGroupInfoDTO.class);
detailDTO.setRelations(storeOrGroupInfoDTOS);
ServiceResponse resp = wxEnterpriseRelatedApiService.wxEnterpriseBind(detailDTO);
if (resp.getCode() != 1) {
HaoBanErrCode.ERR_DEFINE.setMsg(resp.getMessage());
return resultResponse(HaoBanErrCode.ERR_DEFINE);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
} }
...@@ -35,4 +35,16 @@ public class WebBaseController { ...@@ -35,4 +35,16 @@ public class WebBaseController {
return response; return response;
} }
public HaobanResponse success(Object obj) {
return resultResponse(HaoBanErrCode.ERR_1, obj, null);
}
public HaobanResponse fail(String message) {
HaobanResponse response = new HaobanResponse();
response.setMessage(message);
response.setErrorCode(HaoBanErrCode.ERR_OTHER.getCode());
response.setDetailError(message);
return response;
}
} }
package com.gic.haoban.manage.web.qo;
import java.io.Serializable;
/**
* Created 2021/4/13.
*
* @author hua
*/
public class WxEnterpriseBindQo implements Serializable {
private String wxEnterpriseRelatedId;
private String wxEnterpriseId;
private String enterpriseId;
private String version;
private int rangeType = 1;
private String relations;
/**
* 0 自动开卡同一开平 1加好友不开卡
*/
private int memberOpenCardFlag;
/**
* 企业微信类型 0 总部 1代理
*/
private int wxEnterpriseType;
public String getWxEnterpriseRelatedId() {
return wxEnterpriseRelatedId;
}
public void setWxEnterpriseRelatedId(String wxEnterpriseRelatedId) {
this.wxEnterpriseRelatedId = wxEnterpriseRelatedId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public int getRangeType() {
return rangeType;
}
public void setRangeType(int rangeType) {
this.rangeType = rangeType;
}
public String getRelations() {
return relations;
}
public void setRelations(String relations) {
this.relations = relations;
}
public int getMemberOpenCardFlag() {
return memberOpenCardFlag;
}
public void setMemberOpenCardFlag(int memberOpenCardFlag) {
this.memberOpenCardFlag = memberOpenCardFlag;
}
public int getWxEnterpriseType() {
return wxEnterpriseType;
}
public void setWxEnterpriseType(int wxEnterpriseType) {
this.wxEnterpriseType = wxEnterpriseType;
}
}
package com.gic.haoban.manage.web.vo;
import java.io.Serializable;
public class EnterpriseSearchVO implements Serializable{
private String enterpriseId;
private String enterpriseName;
private String clerkId;
private String clerkCode;
private String clerkName;
private String phoneNumber;
private String nationCode;
private String brandName;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getNationCode() {
return nationCode;
}
public void setNationCode(String nationCode) {
this.nationCode = nationCode;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
}
package com.gic.haoban.manage.web.vo;
import java.io.Serializable;
/**
* Created 2021/4/17.
*
* @author hua
*/
public class StoreGroupVo implements Serializable {
private String relationId;
private Integer relationType;
private String relationName;
private int isBind = 0;
private String wxEnterpriseId;
private String wxEnterpriseName;
private String parentRelationId;
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseName() {
return wxEnterpriseName;
}
public void setWxEnterpriseName(String wxEnterpriseName) {
this.wxEnterpriseName = wxEnterpriseName;
}
public String getRelationId() {
return relationId;
}
public void setRelationId(String relationId) {
this.relationId = relationId;
}
public Integer getRelationType() {
return relationType;
}
public void setRelationType(Integer relationType) {
this.relationType = relationType;
}
public String getRelationName() {
return relationName;
}
public void setRelationName(String relationName) {
this.relationName = relationName;
}
public int getIsBind() {
return isBind;
}
public void setIsBind(int isBind) {
this.isBind = isBind;
}
public String getParentRelationId() {
return parentRelationId;
}
public void setParentRelationId(String parentRelationId) {
this.parentRelationId = parentRelationId;
}
}
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
<bean class="com.gic.redis.data.aop.RedisCacheAop" id="redisCacheAop"/> <bean class="com.gic.redis.data.aop.RedisCacheAop" id="redisCacheAop"/>
<bean class="com.gic.authcenter.commons.util.AuthInterceptor"/>
<!-- 明确js/css/jpg/gif等静态资源的访问不通过Constroller --> <!-- 明确js/css/jpg/gif等静态资源的访问不通过Constroller -->
<mvc:default-servlet-handler /> <mvc:default-servlet-handler />
......
...@@ -20,6 +20,7 @@ import com.gic.redis.data.util.RedisUtil; ...@@ -20,6 +20,7 @@ import com.gic.redis.data.util.RedisUtil;
import com.gic.reponse.SendSmsResponse; import com.gic.reponse.SendSmsResponse;
@RestController @RestController
@Deprecated
public class SendCodeController extends WebBaseController{ public class SendCodeController extends WebBaseController{
private static Logger logger = LoggerFactory.getLogger(SendCodeController.class); private static Logger logger = LoggerFactory.getLogger(SendCodeController.class);
......
...@@ -213,8 +213,9 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -213,8 +213,9 @@ public class WxEnterpriseController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1, vo); return resultResponse(HaoBanErrCode.ERR_1, vo);
} }
//微信企业绑定接口 //微信企业绑定接口 - 迁移到运维
@RequestMapping("wx-enterprise-bind") @RequestMapping("wx-enterprise-bind")
@Deprecated
public HaobanResponse wxEnterpriseBind(WxEnterpriseBindQo bindQo) { public HaobanResponse wxEnterpriseBind(WxEnterpriseBindQo bindQo) {
if (StringUtils.isAnyBlank(bindQo.getEnterpriseId(), bindQo.getVersion())) { if (StringUtils.isAnyBlank(bindQo.getEnterpriseId(), bindQo.getVersion())) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
......
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