Commit 65eb6e1e by 墨竹

Merge branch 'feat-0919' into developer

parents 225676fe 787d2c2e
......@@ -3,14 +3,12 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
*
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @author xugh
* @date 2022年8月18日 上午10:31:14
*
* @author xugh
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @date 2022年8月18日 上午10:31:14
*/
public class QwFrientNoticeDTO implements Serializable{
public class QwFrientNoticeDTO implements Serializable {
private static final long serialVersionUID = 1L;
......@@ -48,7 +46,8 @@ public class QwFrientNoticeDTO implements Serializable{
*/
private String state;
private String staffId ;
private String staffId;
private String changeType;
public String getStaffId() {
return staffId;
......@@ -185,4 +184,12 @@ public class QwFrientNoticeDTO implements Serializable{
public void setState(String state) {
this.state = state;
}
public String getChangeType() {
return changeType;
}
public void setChangeType(String changeType) {
this.changeType = changeType;
}
}
......@@ -10,35 +10,18 @@ public class WxEnterpriseQwDTO implements Serializable {
private String wxEnterpriseId;
// 好办 助手
private String dkCorpid;
private String dkSuiteId;
// 会员小程序dk
private String memberCorpid;
private String memberSuiteId;
// 第三方
private String thirdCorpid;
// 第三方使用的加密的userid
public boolean needOpenUserId3th() {
return this.wxSecurityType == 2 || this.wxSecurityType == 3;
}
public boolean needOpenUserIdDk() {
return this.wxSecurityType == 2 || this.wxSecurityType == 4 ;
}
public String getDkSuiteId() {
return dkSuiteId;
}
public String getMemberSuiteId() {
return memberSuiteId;
}
public void setDkSuiteId(String dkSuiteId) {
this.dkSuiteId = dkSuiteId;
}
public void setMemberSuiteId(String memberSuiteId) {
this.memberSuiteId = memberSuiteId;
return this.wxSecurityType == 2 || this.wxSecurityType == 4;
}
public int getWxSecurityType() {
......
......@@ -90,6 +90,9 @@ public interface MemberUnionidRelatedApiService {
*/
JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList);
JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList , String ecmPlanId);
/**
* 获取群发成员发送任务列表
*
......
package com.gic.haoban.manage.api.service.out;
import java.util.List;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
/**
......@@ -14,4 +16,6 @@ public interface SecretSettingApiService {
* @return
*/
SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType);
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId);
}
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabSecretSetting;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.service.entity.TabSecretSetting;
@Mapper
public interface SecretSettingMapper {
/**
*/
int deleteByPrimaryKey(String secretId);
/**
*/
int insert(TabSecretSetting record);
/**
*/
int insertSelective(TabSecretSetting record);
/**
*/
TabSecretSetting selectByPrimaryKey(String secretId);
/**
*/
int updateByPrimaryKeySelective(TabSecretSetting record);
/**
*/
int updateByPrimaryKey(TabSecretSetting record);
int updateByPrimaryKeySelective(TabSecretSetting record);
/**
* 获取企业secret配置信息
......@@ -50,4 +41,16 @@ public interface SecretSettingMapper {
@Param("secretType") int secretType,
@Param("enterpriseId") String enterpriseId);
/**
*
* @Title: isExsitGicMemberApp
* @Description: 是否已经存在配置的gic会员小程序
* @author xugh
* @param wxEnterpriseId
* @param enterpriseId
* @return
* @throws
*/
List<SecretSettingDTO> exsitGicEidMemberApp(@Param("wxEnterpriseId") String wxEnterpriseId);
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import java.util.List;
import org.apache.ibatis.annotations.Param;
/**
* Created 2020/6/3.
*
......@@ -56,4 +58,6 @@ public interface SecretSettingService {
* @date 2022-06-27 13:39:58
*/
SecretSettingDTO getSecretSettingById(String secretId);
List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId);
}
......@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
......@@ -17,8 +23,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
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;
......@@ -52,6 +62,12 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private WxUserAddLogService wxUserAddLogService;
@Autowired
private StoreService storeService;
@Autowired
private ClerkService clerkService;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override
public void insert(TabHaobanExternalClerkRelated related) {
......@@ -69,13 +85,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
@Override
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto , String wxUserId) {
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto, String wxUserId) {
int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto));
if (count <= 0) {
logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto));
return;
}
String staffId = dto.getStaffId() ;
String staffId = dto.getStaffId();
String externalUserid = dto.getExternalUserid();
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
......@@ -91,7 +107,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
staffId = tabHaobanStaff.getStaffId();
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId,null);
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId, null);
if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) {
logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId);
return;
......@@ -129,6 +145,64 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
wxUserAddLogQDTO.setStaffId(related.getStaffId());
wxUserAddLogQDTO.setClerkId(related.getClerkId());
wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(), enterpriseId, related.getMemberId(), related.getStoreId());
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
msgBody.put("changeType", 0);
msgBody.put("addCreateTime", "");
msgBody.put("delCreateTime", new Date());
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
logger.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
@Override
......
......@@ -8,6 +8,7 @@ import com.gic.haoban.manage.service.dao.mapper.SecretSettingMapper;
import com.gic.haoban.manage.service.entity.TabSecretSetting;
import com.gic.haoban.manage.service.service.SecretSettingService;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -86,4 +87,9 @@ public class SecretSettingServiceImpl implements SecretSettingService {
TabSecretSetting secretSetting = secretSettingMapper.selectByPrimaryKey(secretId);
return EntityUtil.changeEntity(SecretSettingDTO.class, secretSetting);
}
@Override
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId) {
return this.secretSettingMapper.exsitGicEidMemberApp(wxEnterpriseId);
}
}
......@@ -70,10 +70,8 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService {
qw.setThirdCorpid(app.getCorpid());
}else if(appType.equals(3)) {
qw.setDkCorpid(app.getCorpid());
qw.setDkSuiteId(app.getSiteId());
}else if(appType.equals(4)) {
qw.setMemberCorpid(app.getCorpid());
qw.setMemberSuiteId(app.getSiteId());
}
});
}
......
package com.gic.haoban.manage.service.service.out.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.service.out.SecretSettingApiService;
import com.gic.haoban.manage.service.service.SecretSettingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author mozhu
......@@ -19,4 +22,9 @@ public class SecretSettingApiServiceImpl implements SecretSettingApiService {
public SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType) {
return secretSettingService.getSecretSetting(wxEnterpriseId, secretType);
}
@Override
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId) {
return this.secretSettingService.exsitGicEidMemberApp(wxEnterpriseId);
}
}
......@@ -192,5 +192,6 @@
<dubbo:reference interface="com.gic.marketing.api.service.AccountOverdueSmsSendService" id="accountOverdueSmsSendService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.member.api.service.MemberEntranceApiService" id="memberEntranceApiService" timeout="10000" retries="0"/>
</beans>
\ No newline at end of file
......@@ -23,10 +23,7 @@
from tab_haoban_secret_setting
where secret_id = #{secretId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from tab_haoban_secret_setting
where secret_id = #{secretId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
insert into tab_haoban_secret_setting (secret_id, wx_enterprise_id, secret_name,
secret_val, enterprise_id, secret_type,
......@@ -37,73 +34,7 @@
#{checkFlag,jdbcType=INTEGER}, #{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
insert into tab_haoban_secret_setting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="secretId != null">
secret_id,
</if>
<if test="wxEnterpriseId != null">
wx_enterprise_id,
</if>
<if test="secretName != null">
secret_name,
</if>
<if test="secretVal != null">
secret_val,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="secretType != null">
secret_type,
</if>
<if test="checkFlag != null">
check_flag,
</if>
<if test="statusFlag != null">
status_flag,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="secretId != null">
#{secretId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null">
#{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="secretName != null">
#{secretName,jdbcType=VARCHAR},
</if>
<if test="secretVal != null">
#{secretVal,jdbcType=VARCHAR},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=VARCHAR},
</if>
<if test="secretType != null">
#{secretType,jdbcType=INTEGER},
</if>
<if test="checkFlag != null">
#{checkFlag,jdbcType=INTEGER},
</if>
<if test="statusFlag != null">
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
update tab_haoban_secret_setting
<set>
......@@ -137,20 +68,6 @@
</set>
where secret_id = #{secretId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
update tab_haoban_secret_setting
set wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
secret_name = #{secretName,jdbcType=VARCHAR},
secret_val = #{secretVal,jdbcType=VARCHAR},
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
secret_type = #{secretType,jdbcType=INTEGER},
check_flag = #{checkFlag,jdbcType=INTEGER},
status_flag = #{statusFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where secret_id = #{secretId,jdbcType=VARCHAR}
</update>
<select id="listSecretSetting" resultMap="BaseResultMap">
select
......@@ -171,4 +88,10 @@
</if>
ORDER BY create_time desc LIMIT 1
</select>
<select id="exsitGicEidMemberApp" resultType="com.gic.haoban.manage.api.dto.SecretSettingDTO">
select enterprise_id enterpriseId , secret_id secretId from tab_haoban_secret_setting where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag = 1 and secret_type = 4 and enterprise_id is not null
</select>
</mapper>
\ No newline at end of file
......@@ -376,10 +376,10 @@
scr.clerk_id as staffClerkId
from tab_haoban_external_clerk_related as ecr
left join
(select a.staff_id,
(select b.staff_id,
a.clerk_id
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id
left join tab_haoban_staff b on a.staff_id = b.staff_id and b.status_flag = 1
where a.clerk_id in
<foreach collection="clerkIdList" item="item" separator="," open="(" close=")">
#{item}
......
......@@ -60,6 +60,7 @@ 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.out.SecretSettingApiService;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.MiniprogramSettingQo;
......@@ -104,6 +105,8 @@ public class WxEnterpriseController extends WebBaseController {
private HaobanUserApiService haobanUserApiService ;
@Autowired
private HaobanQywxFeeApiService haobanQywxFeeApiService;
@Autowired
private SecretSettingApiService secretSettingApiService ;
//授权企业列表
@RequestMapping("wxa-enterprise-list")
......@@ -375,18 +378,33 @@ public class WxEnterpriseController extends WebBaseController {
if (StringUtils.isAnyBlank(memberSecret,enterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
String wxEnterpriseId = "";
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
String wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if (wxEnterprise == null) {
return resultResponse(HaoBanErrCode.ERR_10012);
}
memberSecret = memberSecret.trim();
SecretSettingDTO secretSetting = wxEnterpriseApiService.getSecretSettingById(secretId);
if (StringUtils.isBlank(secretId)) {
SecretSettingDTO secretSetting = null ;
if (StringUtils.isNotBlank(secretId)) {
secretSetting = wxEnterpriseApiService.getSecretSettingById(secretId);
}
if(null == secretSetting) {
secretSetting = new SecretSettingDTO();
}
List<SecretSettingDTO> enList = this.secretSettingApiService.exsitGicEidMemberApp(wxEnterpriseId) ;
if(CollectionUtils.isNotEmpty(enList)) {
Map<String,SecretSettingDTO> map = enList.stream().collect(Collectors.toMap(SecretSettingDTO::getEnterpriseId, dto->dto,(k1,k2)->k1));
if(StringUtils.isEmpty(secretId)) {
if(null != map.get(enterpriseId)) {
return this.fail("此商户小程序已存在") ;
}
}else {
if(null != map.get(enterpriseId) && !secretId.equals(map.get(enterpriseId).getSecretId())) {
return this.fail("此商户小程序已存在") ;
}
}
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ;
String token = this.qywxCorpApiService.getToken(qwDTO.getMemberCorpid(), memberSecret);
logger.info("查询token", token) ;
......
......@@ -120,4 +120,6 @@
<dubbo:reference id="logSearchApiService" interface="com.gic.log.record.service.LogSearchApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService" id="haobanQywxFeeApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.ValidationCodeApiService" id="validationCodeApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.out.SecretSettingApiService" id="secretSettingApiService"/>
</beans>
......@@ -95,7 +95,7 @@ public class StoreController extends WebBaseController {
*/
@IgnoreLogin
@RequestMapping("/store-list")
public HaobanResponse storeList(String staffId, String wxEnterpriseId, String version) {
public HaobanResponse storeList(String staffId, String wxEnterpriseId, String hbversion , String gicEnterpriseId) {
if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
......@@ -121,6 +121,10 @@ public class StoreController extends WebBaseController {
continue;
}
String enterprsieId = store.getEnterpriseId() ;
if(StringUtils.isNotBlank(gicEnterpriseId) && !gicEnterpriseId.equals(enterprsieId)) {
logger.info("非当前商户,直接跳过={},{}",gicEnterpriseId,enterprsieId);
continue ;
}
if(null != map.get(enterprsieId)) {
if(Boolean.FALSE.equals(map.get(enterprsieId))) {
logger.info("该企业过期,{}", enterprsieId);
......
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