数云接口对接

master
382696293@qq.com 2 years ago
parent 5936caef59
commit 8b37d4a8d0

@ -1,6 +1,5 @@
package com.flossom.common.core.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -11,7 +10,6 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -71,6 +69,9 @@ public class SysTag extends BaseEntity
@Excel(name = "标签人数")
private Integer tagUsers;
@Excel(name = "数云外部标签ID")
private String shuyunTagId;
/** 子标签 */
private List<SysTag> children = new ArrayList<SysTag>();
@ -221,6 +222,14 @@ public class SysTag extends BaseEntity
this.tagUsers = tagUsers;
}
public String getShuyunTagId() {
return shuyunTagId;
}
public void setShuyunTagId(String shuyunTagId) {
this.shuyunTagId = shuyunTagId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -0,0 +1,59 @@
package com.flossom.common.core.domain.shuyun;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
*
*/
public class ShuYunTagCreate {
/**
* ID
*/
private String tagId;
/**
*
*/
private String tagName;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date addTime;
public ShuYunTagCreate() {
}
public ShuYunTagCreate(String tagId, String tagName, Date addTime) {
this.tagId = tagId;
this.tagName = tagName;
this.addTime = addTime;
}
public String getTagId() {
return tagId;
}
public void setTagId(String tagId) {
this.tagId = tagId;
}
public String getTagName() {
return tagName;
}
public void setTagName(String tagName) {
this.tagName = tagName;
}
public Date getAddTime() {
return addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
}

@ -0,0 +1,51 @@
package com.flossom.common.core.domain.shuyun;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
*
*/
public class ShuYunUserTag {
@NotBlank(message = "外部标签ID不能为空")
private String tagId;
@NotBlank(message = "会员信息不能为空")
private String platAccount;
private Date addTime;
public ShuYunUserTag() {
}
public ShuYunUserTag(String tagId, String platAccount, Date addTime) {
this.tagId = tagId;
this.platAccount = platAccount;
this.addTime = addTime;
}
public String getTagId() {
return tagId;
}
public void setTagId(String tagId) {
this.tagId = tagId;
}
public String getPlatAccount() {
return platAccount;
}
public void setPlatAccount(String platAccount) {
this.platAccount = platAccount;
}
public Date getAddTime() {
return addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
}

@ -119,4 +119,6 @@ public interface SysTagMapper {
List<SysTag> selectSecondTagByType(@Param("type") Integer type);
List<SysTag> selectByIdList(@Param("tagIdList") List<Long> tagIdList);
SysTag selectTagByShuyunTagId(@Param("tagId") String tagId);
}

@ -73,6 +73,8 @@ public interface WxUserMemberMapper {
WxUserMember selectWxUserMemberByOpenId(@Param("openid") String openid);
WxUserMember selectUserMemberByUnionId(@Param("unionId") String unionId);
void upgradeMember(@Param("phoneNumber") String phoneNumber, @Param("id") Integer id);
List<WxUserMember> selectWxUserMemberListByVm(WxUserMemberVm wxUserMemberVm);

@ -22,10 +22,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="shuyunTagId" column="shuyun_tag_id" />
</resultMap>
<sql id="selectDeptVo">
select d.id,d.parent_name, d.parent_id, d.ancestors, d.tag_name, d.order_num, d.leader, d.phone, d.email, d.status, d.type, d.del_flag, d.create_by, d.create_time
select d.id,d.parent_name, d.parent_id, d.ancestors, d.tag_name, d.order_num, d.leader, d.phone, d.email, d.status, d.type, d.del_flag, d.create_by, d.create_time, d.shuyun_tag_id
from sys_tag d
</sql>
@ -68,6 +69,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id} and del_flag = '0'
</select>
<select id="selectTagByShuyunTagId" parameterType="String" resultMap="SysTagResult">
<include refid="selectDeptVo"/>
where shuyun_tag_id = #{shuyunTagId}
</select>
<select id="checkDeptExistUser" parameterType="Long" resultType="int">
select count(1) from sys_user where id = #{id} and del_flag = '0'
</select>
@ -121,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">status,</if>
<if test="type != null">type,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="shuyunTagId != null and shuyunTagId != ''">shuyun_tag_id,</if>
create_time
)values(
<if test="id != null and id != 0">#{id},</if>
@ -135,6 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">#{status},</if>
<if test="type != null">#{type},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="shuyunTagId != null and shuyunTagId != ''">#{shuyunTagId},</if>
sysdate()
)
</insert>
@ -152,6 +160,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null">email = #{email},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="shuyunTagId != null and shuyunTagId != ''">shuyun_tag_id = #{shuyunTagId},</if>
update_time = sysdate()
</set>
where id = #{id}

@ -125,6 +125,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE openid = #{openid}
</select>
<select id="selectUserMemberByUnionId" parameterType="String" resultMap="WxUserMemberResult">
<include refid="selectWxUserMemberVo"/>
WHERE unionid = #{unionId}
</select>
<select id="selectWxUserMemberListByVm" parameterType="WxUserMemberVm" resultMap="WxUserMemberResult">
SELECT <include refid="fieldList" />
<where>

@ -108,6 +108,11 @@
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/open-platform-sdk.jar</systemPath>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies>
<build>

@ -4,7 +4,10 @@ import com.alibaba.fastjson.JSON;
import com.flossom.common.core.constant.CacheConstants;
import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.shuyun.AccessToken;
import com.flossom.common.core.domain.shuyun.ShuYunTagCreate;
import com.flossom.common.core.domain.shuyun.ShuYunUserTag;
import com.flossom.common.redis.service.RedisService;
import com.flossom.system.service.IShuYunService;
import com.flossom.system.utils.shuyun.ShuYunConfig;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -24,9 +27,9 @@ import java.util.*;
*/
@RestController
@RequestMapping("/shuyun")
public class ShuYunCallbackController {
public class ShuYunController {
protected final static Logger logger = LoggerFactory.getLogger(ShuYunCallbackController.class);
protected final static Logger logger = LoggerFactory.getLogger(ShuYunController.class);
@Autowired
private ShuYunConfig shuYunConfig;
@ -34,6 +37,9 @@ public class ShuYunCallbackController {
@Autowired
private RedisService redisService;
@Autowired
private IShuYunService shuYunService;
/**
* accessToken accessToken
@ -62,4 +68,25 @@ public class ShuYunCallbackController {
return R.fail();
}
@PostMapping(value = "/tagCreate")
public R tagCreate(@RequestBody ShuYunTagCreate shuYunTagCreate) {
logger.info("数云新增标签: {}", JSON.toJSONString(shuYunTagCreate));
shuYunService.tagCreate(shuYunTagCreate);
return R.ok();
}
@PostMapping(value = "markUserTag/")
public R markUserTag(@RequestBody ShuYunUserTag shuYunUserTag) {
logger.info("数云标记用户标签: {}", JSON.toJSONString(shuYunUserTag));
shuYunService.markUserTag(shuYunUserTag);
return R.ok();
}
@PostMapping(value = "delUserTag/")
public R delUserTag(@RequestBody ShuYunUserTag shuYunUserTag) {
logger.info("数云删除用户标签: {}", JSON.toJSONString(shuYunUserTag));
shuYunService.delUserTag(shuYunUserTag);
return R.ok();
}
}

@ -0,0 +1,12 @@
package com.flossom.system.service;
import com.flossom.common.core.domain.shuyun.ShuYunTagCreate;
import com.flossom.common.core.domain.shuyun.ShuYunUserTag;
public interface IShuYunService {
void tagCreate(ShuYunTagCreate shuYunTagCreate);
void markUserTag(ShuYunUserTag shuYunUserTag);
void delUserTag(ShuYunUserTag shuYunUserTag);
}

@ -0,0 +1,89 @@
package com.flossom.system.service.impl;
import com.flossom.common.core.domain.entity.SysTag;
import com.flossom.common.core.domain.entity.WxUserMember;
import com.flossom.common.core.domain.shuyun.ShuYunTagCreate;
import com.flossom.common.core.domain.shuyun.ShuYunUserTag;
import com.flossom.common.core.enums.Status;
import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.mapper.SysTagMapper;
import com.flossom.common.core.mapper.WxUserMemberMapper;
import com.flossom.common.security.utils.SecurityUtils;
import com.flossom.system.service.IShuYunService;
import com.flossom.system.service.IWxUserMemberService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
@Service
public class ShuYunServiceImpl implements IShuYunService {
protected final static Logger logger = LoggerFactory.getLogger(ShuYunServiceImpl.class);
@Autowired
private SysTagMapper sysTagMapper;
@Autowired
private WxUserMemberMapper wxUserMemberMapper;
@Autowired
private IWxUserMemberService wxUserMemberService;
@Override
public void tagCreate(ShuYunTagCreate shuYunTagCreate) {
SysTag sysTag = new SysTag();
sysTag.setTagName(shuYunTagCreate.getTagName());
SysTag parentTag = sysTagMapper.selectDeptById(1L);
if (parentTag != null) {
sysTag.setParentId(parentTag.getId());
sysTag.setParentName(parentTag.getParentName());
}
// 默认排序
sysTag.setOrderNum(1);
// 外部标签
sysTag.setType("2");
sysTag.setStatus(Status.OK.getCode().toString());
sysTag.setDelFlag(Status.OK.getCode().toString());
sysTag.setCreateBy(SecurityUtils.getLoginUser().getUsername());
sysTag.setCreateTime(shuYunTagCreate.getAddTime());
sysTag.setShuyunTagId(shuYunTagCreate.getTagId());
sysTagMapper.insertDept(sysTag);
}
@Override
public void markUserTag(ShuYunUserTag shuYunUserTag) {
// 查询会员信息
WxUserMember wxUserMember = wxUserMemberMapper.selectUserMemberByUnionId(shuYunUserTag.getPlatAccount());
if (wxUserMember == null) {
logger.info("会员不存在");
throw new ServiceException("会员不存在");
}
// 查询标签信息
SysTag sysTag = sysTagMapper.selectTagByShuyunTagId(shuYunUserTag.getTagId());
if (sysTag == null) {
logger.info("外部标签不存在");
throw new ServiceException("外部标签不存在");
}
wxUserMemberService.batchAddWecomTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue()));
}
@Override
public void delUserTag(ShuYunUserTag shuYunUserTag) {
// 查询会员信息
WxUserMember wxUserMember = wxUserMemberMapper.selectUserMemberByUnionId(shuYunUserTag.getPlatAccount());
if (wxUserMember == null) {
logger.info("会员不存在");
throw new ServiceException("会员不存在");
}
// 查询标签信息
SysTag sysTag = sysTagMapper.selectTagByShuyunTagId(shuYunUserTag.getTagId());
if (sysTag == null) {
logger.info("外部标签不存在");
throw new ServiceException("外部标签不存在");
}
wxUserMemberService.batchDelMiniProgramTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue()));
}
}
Loading…
Cancel
Save