Commit 9697c052 by qwmqiuwenmin

fix

parent f73cd92c
......@@ -23,6 +23,12 @@ public class MemberUnionidRelatedDTO implements Serializable{
private String wxUserId;
private String selfExternalUserid;
private String externalName;
private String addCreateTime;
private Date createTime;
private Date updateTime;
......@@ -116,4 +122,30 @@ public class MemberUnionidRelatedDTO implements Serializable{
public void setSuiteid(String suiteid) {
this.suiteid = suiteid;
}
public String getSelfExternalUserid() {
return selfExternalUserid;
}
public void setSelfExternalUserid(String selfExternalUserid) {
this.selfExternalUserid = selfExternalUserid;
}
public String getExternalName() {
return externalName;
}
public void setExternalName(String externalName) {
this.externalName = externalName;
}
public String getAddCreateTime() {
return addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime;
}
}
......@@ -25,4 +25,7 @@ public interface MemberUnionidRelatedMapper {
void deleteByUnionidAndUserId(@Param("unionid")String unionid,@Param("wxUserId") String wxUserId);
List<MemberUnionidRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxUserId")String wxUserId, @Param("wxEnterpriseId")String wxEnterpriseId);
MemberUnionidRelatedDTO getByParams(@Param("wxUserId")String wxUserId, @Param("wxUserId")String wxEnterpriseId,
@Param("externalName")String name, @Param("external_head_url")String createTime);
}
\ No newline at end of file
......@@ -22,6 +22,12 @@ public class MemberUnionidRelated implements Serializable {
private Date updateTime;
private String selfExternalUserid;
private String externalName;
private String addCreateTime;
private static final long serialVersionUID = 1L;
public String getMemberUnionidRelatedId() {
......@@ -95,4 +101,31 @@ public class MemberUnionidRelated implements Serializable {
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getSelfExternalUserid() {
return selfExternalUserid;
}
public void setSelfExternalUserid(String selfExternalUserid) {
this.selfExternalUserid = selfExternalUserid;
}
public String getExternalName() {
return externalName;
}
public void setExternalName(String externalName) {
this.externalName = externalName;
}
public String getAddCreateTime() {
return addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime;
}
}
\ No newline at end of file
......@@ -14,4 +14,8 @@ public interface MemberUnionRelatedService {
List<MemberUnionidRelatedDTO> getByWxUserIdAndWxEnterpriseId(String wxUserId, String wxEnterpriseId);
MemberUnionidRelatedDTO getByParams(String wxUserId, String wxEnterpriseId, String name, String createTime);
void update(MemberUnionidRelatedDTO exsitDTO);
}
......@@ -45,4 +45,15 @@ public class MemberUnionRelatedServiceImpl implements MemberUnionRelatedService
return EntityUtil.changeEntityListByJSON(MemberUnionidRelatedDTO.class, mapper.getByWxUserIdAndWxEnterpriseId(wxUserId,wxEnterpriseId));
}
@Override
public MemberUnionidRelatedDTO getByParams(String wxUserId, String wxEnterpriseId, String name, String createTime) {
return mapper.getByParams(wxUserId,wxEnterpriseId,name,createTime);
}
@Override
public void update(MemberUnionidRelatedDTO exsitDTO) {
mapper.updateByPrimaryKeySelective(EntityUtil.changeEntityByJSON(MemberUnionidRelated.class, exsitDTO));
}
}
......@@ -26,6 +26,8 @@ import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberService;
import com.gic.redis.data.anno.RedisLock;
import com.gic.redis.data.util.RedisUtil;
@Service
public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedApiService{
......@@ -45,6 +47,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired
private WxEnterpriseService wxEnterpriseService;
private static final String SELF_APP = "selfSuiteId";
@Override
public MemberUnionidRelatedDTO getByUnionId(String staffId, String unionid) {
TabHaobanStaff staff = staffService.selectById(staffId);
......@@ -64,19 +69,33 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
List<TabHaobanWxEnterpriseRelated> list = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
String unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(dto.getCorpid(), wxEnterprise.getWxSecretKey(), dto.getExternalUserid());
//getExternalUseridInfo(dto.getCorpid(), dto.getSuiteid(), dto.getExternalUserid());
log.info("【新增外部联系人回调】unionIdJson={}",JSON.toJSONString(unionIdJson));
String unionId = "";
String suiteid = "";
String name = "";
String follow_user = "";
String createTime = "";
String userId = "";
if(StringUtils.isNotBlank(unionIdJson)){
JSONObject jo = JSON.parseObject(unionIdJson);
unionId = jo.getString("unionid");
suiteid = jo.getString("suiteid");
name = jo.getString("name");
follow_user = jo.getString("follow_user");
if(StringUtils.isNotBlank(follow_user)){
JSONObject j = JSON.parseObject(follow_user);
createTime = j.getString("createtime");
userId = j.getString("userid");
}
if(StringUtils.isBlank(unionId)){
return "";
}
String key = "external" + userId + "_" + name + "_" + createTime;
RedisUtil.lock(key,2l);
if("SELF_APP".equals(suiteid)){
MemberDTO member = null;
for (TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated : list) {
member = memberService.getMemberByUnionid(unionId, tabHaobanWxEnterpriseRelated.getEnterpriseId());
......@@ -87,11 +106,36 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if(member != null){
dto.setMemberId(member.getMemberId());
}
dto.setWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
dto.setSelfExternalUserid(dto.getExternalUserid());
dto.setUnionid(unionId);
}
dto.setExternalName(name);
dto.setAddCreateTime(createTime);
if(StringUtils.isBlank(unionId)){
return "";
}
dto.setWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
dto.setSuiteid(wxEnterprise.getWxSecretKey());
//this.getExternalUserUnionid(dto);
return memberUnionRelatedService.addMemberUnionidRelated(dto);
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(dto.getWxUserId(), wxEnterprise.getWxEnterpriseId(),name,createTime);
String uuid = "";
if(exsitDTO == null){
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
//如果是自建更新uuid
if("SELF_APP".equals(suiteid)){
exsitDTO.setUnionid(unionId);
exsitDTO.setMemberId(dto.getMemberId());
}else{
//更新对外联系人id
exsitDTO.setExternalUserid(dto.getExternalUserid());
}
memberUnionRelatedService.update(exsitDTO);
uuid = exsitDTO.getMemberUnionidRelatedId();
}
return uuid;
}
@Override
public void delMemberUnionidRelated(MemberUnionidRelatedDTO dto) {
......
......@@ -9,12 +9,15 @@
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="external_userid" property="externalUserid" jdbcType="VARCHAR" />
<result column="wx_user_id" property="wxUserId" jdbcType="VARCHAR" />
<result column="self_external_userid" property="selfExternalUserid" jdbcType="VARCHAR" />
<result column="add_create_time" property="addCreateTime" jdbcType="VARCHAR" />
<result column="external_name" property="externalName" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
member_unionid_related_id, member_id, unionid, wx_enterprise_id, status_flag, external_userid,
wx_user_id, create_time, update_time
wx_user_id, create_time, update_time,add_create_time,self_external_userid,external_name
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
......@@ -30,11 +33,11 @@
insert into tab_haoban_member_unionid_related (member_unionid_related_id, member_id,
unionid, wx_enterprise_id, status_flag,
external_userid, wx_user_id, create_time,
update_time)
update_time,add_create_time,self_external_userid,external_name)
values (#{memberUnionidRelatedId,jdbcType=VARCHAR}, #{memberId,jdbcType=VARCHAR},
#{unionid,jdbcType=VARCHAR}, #{wxEnterpriseId,jdbcType=VARCHAR}, #{statusFlag,jdbcType=INTEGER},
#{externalUserid,jdbcType=VARCHAR}, #{wxUserId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
#{updateTime,jdbcType=TIMESTAMP},#{addCreateTime},#{selfExternalUserid},#{externalName})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.MemberUnionidRelated" >
insert into tab_haoban_member_unionid_related
......@@ -66,6 +69,15 @@
<if test="updateTime != null" >
update_time,
</if>
<if test="addCreateTime != null" >
add_create_time,
</if>
<if test="selfExternalUserid != null" >
self_external_userid,
</if>
<if test="externalName != null" >
external_name,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="memberUnionidRelatedId != null" >
......@@ -95,6 +107,15 @@
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="addCreateTime != null" >
#{addCreateTime},
</if>
<if test="selfExternalUserid != null" >
#{selfExternalUserid},
</if>
<if test="externalName != null" >
#{externalName},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.MemberUnionidRelated" >
......@@ -118,6 +139,15 @@
<if test="wxUserId != null" >
wx_user_id = #{wxUserId,jdbcType=VARCHAR},
</if>
<if test="addCreateTime != null" >
add_create_time = #{addCreateTime,jdbcType=VARCHAR},
</if>
<if test="selfExternalUserid != null" >
self_external_userid = #{selfExternalUserid,jdbcType=VARCHAR},
</if>
<if test="externalName != null" >
external_name = #{externalName,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
......@@ -136,7 +166,10 @@
external_userid = #{externalUserid,jdbcType=VARCHAR},
wx_user_id = #{wxUserId,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
update_time = #{updateTime,jdbcType=TIMESTAMP},
self_external_userid = #{selfExternalUserid,jdbcType=VARCHAR},
external_name = #{externalName,jdbcType=VARCHAR},
add_create_time = #{addCreateTime,jdbcType=VARCHAR}
where member_unionid_related_id = #{memberUnionidRelatedId,jdbcType=VARCHAR}
</update>
......
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