Commit 867a73d5 by 墨竹

Merge remote-tracking branch 'origin/developer' into developer

parents 10d3f72f 0d1fd3a7
...@@ -12,7 +12,8 @@ public class WxEnterpriseDTO implements Serializable { ...@@ -12,7 +12,8 @@ public class WxEnterpriseDTO implements Serializable {
private String wxEnterpriseId; private String wxEnterpriseId;
private String permanentCode; private String permanentCode;
// 业务中请不要使用此属性
private String corpid ;
private String corpName; private String corpName;
private String corpType; private String corpType;
...@@ -108,6 +109,14 @@ public class WxEnterpriseDTO implements Serializable { ...@@ -108,6 +109,14 @@ public class WxEnterpriseDTO implements Serializable {
private Integer wxSecurityType ; private Integer wxSecurityType ;
private String wxCorpid ; private String wxCorpid ;
private String openCorpid ; private String openCorpid ;
public String getCorpid() {
return corpid;
}
public void setCorpid(String corpid) {
this.corpid = corpid;
}
public Integer getWxSecurityType() { public Integer getWxSecurityType() {
return wxSecurityType; return wxSecurityType;
......
...@@ -16,12 +16,21 @@ public class WxEnterpriseQwDTO implements Serializable { ...@@ -16,12 +16,21 @@ public class WxEnterpriseQwDTO implements Serializable {
private String memberSuiteId; private String memberSuiteId;
// 第三方 // 第三方
private String thirdCorpid; private String thirdCorpid;
// 明文的corpid
private String selfCorpid ;
// 第三方使用的加密的userid // 第三方使用的加密的userid
public boolean needOpenUserId3th() { public boolean needOpenUserId3th() {
return this.wxSecurityType == 2 || this.wxSecurityType == 3; return this.wxSecurityType == 2 || this.wxSecurityType == 3;
} }
public String getSelfCorpid() {
return selfCorpid;
}
public void setSelfCorpid(String selfCorpid) {
this.selfCorpid = selfCorpid;
}
public String getDkSuiteId() { public String getDkSuiteId() {
return dkSuiteId; return dkSuiteId;
} }
......
...@@ -77,6 +77,11 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService { ...@@ -77,6 +77,11 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService {
} }
}); });
} }
if(StringUtils.isBlank(qw.getMemberCorpid())) {
logger.info("会员小程序是自建");
qw.setMemberCorpid(wxEnterprise.getWxCorpid());
}
qw.setSelfCorpid(wxEnterprise.getWxCorpid());
logger.info("企微所有corpid信息={}",JSON.toJSON(qw)); logger.info("企微所有corpid信息={}",JSON.toJSON(qw));
return qw; return qw;
} }
......
...@@ -471,7 +471,7 @@ ...@@ -471,7 +471,7 @@
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from tab_haoban_wx_enterprise from tab_haoban_wx_enterprise
where wx_corpid = #{corpId} or open_corpid = #{corpid} where ( wx_corpid = #{corpId} or open_corpid = #{corpId} )
<if test="statusFlag != null"> <if test="statusFlag != null">
and status_flag = #{statusFlag} and status_flag = #{statusFlag}
</if> </if>
......
package com.gic.haoban.manage.web.controller; package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.commons.util.DateUtil; import com.gic.commons.util.DateUtil;
import com.gic.commons.webapi.reponse.RestResponse; import com.gic.commons.webapi.reponse.RestResponse;
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.*; import com.gic.enterprise.api.dto.EnterpriseWxaRelationDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.AuthorizeService; import com.gic.enterprise.api.service.AuthorizeService;
import com.gic.enterprise.api.service.EnterpriseService; import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
...@@ -18,38 +39,40 @@ import com.gic.haoban.common.anno.IgnoreLogin; ...@@ -18,38 +39,40 @@ import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthWebRequestUtil; 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.manage.api.dto.AgentEnterpriseDTO;
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.*; import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.HaobanUserDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.MiniprogramSettingDTO;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseRelationDetailDTO;
import com.gic.haoban.manage.api.dto.fee.HaobanQywxFeeDTO; import com.gic.haoban.manage.api.dto.fee.HaobanQywxFeeDTO;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum; import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.enums.SecretTypeEnum; import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.*; import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.HaobanUserApiService;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService; import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService;
import com.gic.haoban.manage.web.config.Config; import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode; import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.MiniprogramSettingQo; import com.gic.haoban.manage.web.qo.MiniprogramSettingQo;
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.EnterpriseSearchVO;
import com.gic.haoban.manage.web.vo.SecretSettingVO; import com.gic.haoban.manage.web.vo.SecretSettingVO;
import com.gic.haoban.manage.web.vo.StoreVo; import com.gic.haoban.manage.web.vo.StoreVo;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.UserDTO; import com.gic.wechat.api.service.qywx.QywxCorpApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.gic.wechat.token.api.dto.QywxCorpInfoDTO; import com.gic.wechat.token.api.dto.QywxCorpInfoDTO;
import com.gic.wechat.token.api.service.QywxTokenManageService; import com.gic.wechat.token.api.service.QywxTokenManageService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*; import cn.hutool.core.collection.CollectionUtil;
import java.util.stream.Collectors;
@RestController @RestController
public class WxEnterpriseController extends WebBaseController { public class WxEnterpriseController extends WebBaseController {
...@@ -69,9 +92,7 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -69,9 +92,7 @@ public class WxEnterpriseController extends WebBaseController {
@Autowired @Autowired
private Config config; private Config config;
@Autowired @Autowired
private QywxUserApiService qywxUserApiService; private QywxCorpApiService qywxCorpApiService;
@Autowired
private StaffApiService staffApiService;
@Autowired @Autowired
private DealSyncOperationApiService dealSyncOperationApiService; private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired @Autowired
...@@ -145,6 +166,7 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -145,6 +166,7 @@ public class WxEnterpriseController extends WebBaseController {
} }
wxEnterpriseDTO.setSmallVersion("免费版"); wxEnterpriseDTO.setSmallVersion("免费版");
wxEnterpriseDTO.setStoreTotal(departmentApiService.totalStoreCountByEnterpriseId(wxEnterpriseId)); wxEnterpriseDTO.setStoreTotal(departmentApiService.totalStoreCountByEnterpriseId(wxEnterpriseId));
wxEnterpriseDTO.setCorpid(getCorpid(wxEnterpriseDTO));
return resultResponse(HaoBanErrCode.ERR_1, wxEnterpriseDTO); return resultResponse(HaoBanErrCode.ERR_1, wxEnterpriseDTO);
} }
...@@ -176,9 +198,29 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -176,9 +198,29 @@ public class WxEnterpriseController extends WebBaseController {
wxDTO.setContactFlag(1); wxDTO.setContactFlag(1);
} }
wxEnterpriseApiService.update(wxDTO); wxEnterpriseApiService.update(wxDTO);
wxEnterpriseDTO.setCorpid(getCorpid(wxEnterpriseDTO));
return resultResponse(HaoBanErrCode.ERR_1, wxEnterpriseDTO); return resultResponse(HaoBanErrCode.ERR_1, wxEnterpriseDTO);
} }
private String getCorpid(WxEnterpriseDTO wxEnterpriseDTO) {
Integer wxType = wxEnterpriseDTO.getWxSecurityType() ;
String desc = " -- " ;
if(wxType==1) {
desc = "(全部明文)" ;
}
if(wxType==2) {
desc = "(全部密文)" ;
}
if(wxType==3) {
desc = "(第三方密文,代开明文)" ;
}
if(wxType==4) {
desc = "(第三方明文,代开密文)" ;
}
return Arrays.asList(wxEnterpriseDTO.getWxCorpid(),wxEnterpriseDTO.getOpenCorpid()).stream().filter(str -> StringUtils.isNotBlank(str)).collect(Collectors.joining(" / ")) + desc;
}
//gic企业列表 //gic企业列表
@IgnoreLogin @IgnoreLogin
@RequestMapping("enterprise-search") @RequestMapping("enterprise-search")
...@@ -198,35 +240,6 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -198,35 +240,6 @@ public class WxEnterpriseController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1, vo); return resultResponse(HaoBanErrCode.ERR_1, vo);
} }
//微信企业绑定接口 - 迁移到运维
@RequestMapping("wx-enterprise-bind")
@Deprecated
public HaobanResponse wxEnterpriseBind(WxEnterpriseBindQo bindQo) {
if (StringUtils.isAnyBlank(bindQo.getEnterpriseId(), bindQo.getVersion())) {
return resultResponse(HaoBanErrCode.ERR_2);
}
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseRelationDetailDTO detailDTO = new WxEnterpriseRelationDetailDTO();
detailDTO.setWxEnterpriseRelatedId(bindQo.getWxEnterpriseRelatedId());
detailDTO.setEnterpriseId(bindQo.getEnterpriseId());
detailDTO.setWxEnterpriseId(wxEnterpriseId);
detailDTO.setStaffId(null);
detailDTO.setStaffName(null);
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);
}
//溢出门店列表 //溢出门店列表
@RequestMapping("store-full-list") @RequestMapping("store-full-list")
public HaobanResponse storeFullList(BasePageInfo basePageInfo, String keyWord) { public HaobanResponse storeFullList(BasePageInfo basePageInfo, String keyWord) {
...@@ -318,8 +331,11 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -318,8 +331,11 @@ public class WxEnterpriseController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_10012); return resultResponse(HaoBanErrCode.ERR_10012);
} }
wxSecretKey = wxSecretKey.trim(); wxSecretKey = wxSecretKey.trim();
String res = qywxUserApiService.listSelfExternalUserid(qwDTO.getThirdCorpid(), wxSecretKey, getWxUserId(wxEnterpriseId, login)); String token = this.qywxCorpApiService.getToken(qwDTO.getDkCorpid(), wxSecretKey);
logger.info("【保存联系人key】res={}", res); logger.info("查询token", token) ;
if(StringUtils.isEmpty(token) || token.length() < 10) {
return this.fail("请确认secret是否正确") ;
}
SecretSettingDTO secretSetting = wxEnterpriseApiService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal(), null); SecretSettingDTO secretSetting = wxEnterpriseApiService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CONTACT_CUSTOMER.getVal(), null);
if (null == secretSetting) { if (null == secretSetting) {
secretSetting = new SecretSettingDTO(); secretSetting = new SecretSettingDTO();
...@@ -360,34 +376,19 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -360,34 +376,19 @@ public class WxEnterpriseController extends WebBaseController {
secretSetting = new SecretSettingDTO(); secretSetting = new SecretSettingDTO();
} }
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ;
UserDTO user = qywxUserApiService.getSelfWorkWxUser(qwDTO.getMemberCorpid(), memberSecret, getWxUserId(wxEnterpriseId, login)); String token = this.qywxCorpApiService.getToken(qwDTO.getMemberCorpid(), memberSecret);
logger.info("查询token", token) ;
if(StringUtils.isEmpty(token) || token.length() < 10) {
return this.fail("请确认secret是否正确") ;
}
secretSetting.setSecretType(SecretTypeEnum.MEMBER_WAPP.getVal()); secretSetting.setSecretType(SecretTypeEnum.MEMBER_WAPP.getVal());
secretSetting.setSecretName(secretName); secretSetting.setSecretName(secretName);
secretSetting.setEnterpriseId(enterpriseId); secretSetting.setEnterpriseId(enterpriseId);
secretSetting.setWxEnterpriseId(wxEnterpriseId); secretSetting.setWxEnterpriseId(wxEnterpriseId);
secretSetting.setSecretVal(memberSecret);
if (user != null) { secretSetting.setCheckFlag(1);
secretSetting.setSecretVal(memberSecret); wxEnterpriseApiService.saveSecretSetting(secretSetting);
secretSetting.setCheckFlag(1); return resultResponse(HaoBanErrCode.ERR_1, true);
wxEnterpriseApiService.saveSecretSetting(secretSetting);
return resultResponse(HaoBanErrCode.ERR_1, true);
} else {
secretSetting.setCheckFlag(0);
wxEnterpriseApiService.saveSecretSetting(secretSetting);
return resultResponse(HaoBanErrCode.ERR_10022);
}
}
private String getWxUserId(String wxEnterpriseId, WebLoginDTO loginDTO) {
if (loginDTO != null && (!StringUtils.isEmpty(loginDTO.getStaffId()))) {
String staffId = loginDTO.getStaffId() ;
StaffDTO dto = this.staffApiService.selectById(staffId) ;
if(null != dto && StringUtils.isNotBlank(dto.getStaffId())) {
return dto.getWxUserId();
}
}
StaffDTO staffOne = staffApiService.getWxStaffOne(wxEnterpriseId);
return staffOne.getWxUserId();
} }
/** /**
......
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