Explorar el Código

fix:企微增加接口:获取好友列表

jimmyyem hace 1 día
padre
commit
810ddf697e

+ 20 - 1
src/main/java/com/jubotech/business/web/controller/pc/CustomMethodsController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.github.pagehelper.PageInfo;
 import com.jubotech.business.web.domain.AccountInfo;
+import com.jubotech.business.web.domain.WxContactInfo;
 import com.jubotech.business.web.domain.CommontagInfo;
 import com.jubotech.business.web.domain.CommontermInfo;
 import com.jubotech.business.web.domain.SysAutoSetting;
@@ -25,6 +26,7 @@ import com.jubotech.business.web.service.CommontagService;
 import com.jubotech.business.web.service.CommontermService;
 import com.jubotech.business.web.service.SysAutoSettingService;
 import com.jubotech.business.web.service.TaskTimeService;
+import com.jubotech.business.web.service.WxContactService;
 import com.jubotech.framework.common.ResultInfo;
 
 @Controller
@@ -50,6 +52,9 @@ public class CustomMethodsController {
 
 	@Autowired
 	private CommontermService commontermService;
+
+	@Autowired
+	private WxContactService weChatContactService;
 	
 	@Autowired
 	private SysAutoSettingService sysAutoSettingService;
@@ -191,5 +196,19 @@ public class CustomMethodsController {
 		}
 		return ResultInfo.fail();
 	}
-  
+
+	/**
+	 * 获取微信好友列表 tag:暂时未用到
+	 *
+	 * @return
+	 */
+	@PostMapping("/GetWechatFriendList")
+	@ResponseBody
+	public ResultInfo GetWechatFriendList(WxContactInfo req) {
+		if (null != req) {
+			List<WxContactInfo> list = weChatContactService.findContactinfoByWeChatId(req.getCid(), req.getWechatid());
+			return ResultInfo.success(list);
+		}
+		return ResultInfo.fail();
+	}
 }

+ 40 - 0
src/main/java/com/jubotech/business/web/dao/WxContactDao.java

@@ -0,0 +1,40 @@
+package com.jubotech.business.web.dao;
+
+import com.jubotech.business.web.domain.WxContactInfo;
+import com.jubotech.business.web.domain.vo.FriendVo;
+import com.jubotech.business.web.query.WeChatContactQuery;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.common.Mapper;
+import tk.mybatis.mapper.common.MySqlMapper;
+
+import java.util.Date;
+import java.util.List;
+
+@Repository
+public interface WxContactDao extends Mapper<WxContactInfo>, MySqlMapper<WxContactInfo>{
+
+	List<WxContactInfo> pageList(WeChatContactQuery query);
+	
+	WxContactInfo findContactinfoByid(@Param("id") Integer id);
+	
+	WxContactInfo findContactinfoByfriendid(@Param("cid") Integer cid,@Param("wechatid") String wechatid ,@Param("friendid") String friendid);
+
+	WxContactInfo findContactinfoByWechatidFriendid(@Param("wechatid") String wechatid ,@Param("friendid") String friendid);
+	
+	List<WxContactInfo> findContactinfoByWeChatId(@Param("cid") Integer cid,@Param("wechatid") String wechatid);
+	
+	Integer findContactinfoByCidType(@Param("cid") Integer cid,@Param("type") Integer type);
+	
+	Integer findContactinfoByCidTypeDistWechatId(@Param("cid") Integer cid,@Param("type") Integer type);
+	
+	Integer queryFriendAddCount(@Param("wechatid") String wechatid,@Param("start")  Date start, @Param("end") Date end);
+	
+	List<FriendVo> queryTongji(@Param("cid") Integer cid,@Param("list")List<String> list);
+	
+	int insert(WxContactInfo info);
+
+	void update(WxContactInfo info);
+
+	int delete(WxContactInfo info);
+}

+ 30 - 0
src/main/java/com/jubotech/business/web/domain/WxContactInfo.java

@@ -0,0 +1,30 @@
+package com.jubotech.business.web.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Getter
+@Setter
+public class WxContactInfo implements Serializable{
+	private static final long serialVersionUID = 1L;
+	private Integer id;//
+	private Integer cid;// 所属客户id
+	private String wechatid;
+	private String friendid;
+	private String friend_wechatno;
+	private String nickname;
+	private String remark;
+	private String phone;
+	private Integer gender;
+	private String avatar;
+	private String country;
+	private String province;
+	private String city;
+	private Integer type;//0通讯录 1群聊
+	private String memo;//备注
+	private Date modify_time;
+	private Date create_time;
+}

+ 16 - 0
src/main/java/com/jubotech/business/web/domain/vo/FriendVo.java

@@ -0,0 +1,16 @@
+package com.jubotech.business.web.domain.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Getter
+@Setter
+public class FriendVo implements Serializable{
+	private static final long serialVersionUID = 1L;
+	private String wechatid;
+	private String wechatno;
+	private String wechatnick;
+	private Integer count;
+}

+ 18 - 0
src/main/java/com/jubotech/business/web/query/WeChatContactQuery.java

@@ -0,0 +1,18 @@
+package com.jubotech.business.web.query;
+
+import com.jubotech.framework.common.BaseQuery;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class WeChatContactQuery extends BaseQuery {
+	private Integer cid;
+	private String wechatid;
+	private String friend_wechatno;
+	private String nickname;
+	private String memo;
+	private Integer type;//0通讯录 1群聊
+	private String start;
+	private String end;
+}

+ 95 - 0
src/main/java/com/jubotech/business/web/service/WxContactService.java

@@ -0,0 +1,95 @@
+package com.jubotech.business.web.service;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.jubotech.business.web.dao.WxContactDao;
+import com.jubotech.business.web.domain.WxContactInfo;
+import com.jubotech.business.web.domain.vo.FriendVo;
+import com.jubotech.business.web.query.WeChatContactQuery;
+import com.jubotech.framework.common.ServiceException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional // 支持事务
+public class WxContactService {
+
+	@Autowired
+	private WxContactDao weChatContactDao;
+	
+	
+	public List<FriendVo> queryTongji(Integer cid,List<String> wechatids){
+		return weChatContactDao.queryTongji(cid, wechatids);
+	}
+
+	public PageInfo<WxContactInfo> pageList(WeChatContactQuery query) {
+		PageHelper.startPage(query.getPage(), query.getRows());
+         
+
+		return new PageInfo<>(weChatContactDao.pageList(query));
+	}
+	
+	
+	public void deleteByIds(String ids) {
+		if (StringUtils.isBlank(ids)) {
+			throw new ServiceException("invalid param");
+		}
+		String[] idArray = StringUtils.split(ids, ",");
+		Set<String> userIds = Arrays.stream(idArray).filter(StringUtils::isNotBlank).collect(Collectors.toSet());
+		for(String id:userIds){
+			delete(Integer.valueOf(id));
+		}
+	}
+	
+	
+	public Integer queryFriendAddCount(String wechatid,Date start,Date end) {
+		return weChatContactDao.queryFriendAddCount(wechatid, start, end);
+	}
+	
+	public WxContactInfo findContactinfoByid(Integer id) {
+		return weChatContactDao.findContactinfoByid(id);
+	}
+
+	public WxContactInfo findContactinfoByfriendid(Integer cid, String wechatid, String friendid) {
+		return weChatContactDao.findContactinfoByfriendid(cid, wechatid, friendid);
+	}
+
+	public List<WxContactInfo> findContactinfoByWeChatId(Integer cid, String wechatid) {
+		return weChatContactDao.findContactinfoByWeChatId(cid, wechatid);
+	}
+	
+	public WxContactInfo findContactinfoByWechatidFriendid(String wechatid, String friendid) {
+		return weChatContactDao.findContactinfoByWechatidFriendid(wechatid, friendid);
+	}
+	
+	public  Integer findContactinfoByCidType(Integer cid,Integer type){
+		return weChatContactDao.findContactinfoByCidType(cid, type);
+	}
+	
+	public  Integer findContactinfoByCidTypeDistWechatId(Integer cid,Integer type){
+		return weChatContactDao.findContactinfoByCidTypeDistWechatId(cid, type);
+	}
+	 
+	public void insert(WxContactInfo info) {
+		weChatContactDao.insert(info);
+	}
+
+	public void update(WxContactInfo info) {
+		weChatContactDao.update(info);
+	}
+
+	public void delete(Integer id) {
+		WxContactInfo info = new WxContactInfo();
+		info.setId(id);
+		weChatContactDao.delete(info);
+	}
+
+}

+ 120 - 0
src/main/resources/config/mapper/WxContactDao.xml

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jubotech.business.web.dao.WxContactDao">
+    <resultMap type="com.jubotech.business.web.domain.WxContactInfo" id="resultMap">
+        <id column="id" property="id"/>
+        <result  column="cid" property="cid"/>
+        <result  column="wechatid" property="wechatid"/>
+        <result  column="friendid" property="friendid"/>
+        <result  column="friend_wechatno" property="friend_wechatno"/>
+        <result  column="nickname" property="nickname"/>
+        <result  column="remark" property="remark"/>
+        <result  column="phone" property="phone"/>
+        <result  column="gender" property="gender"/>
+        <result  column="avatar" property="avatar"/>
+        <result  column="country" property="country"/>
+        <result  column="province" property="province"/>
+        <result  column="city" property="city"/>
+        <result  column="memo" property="memo"/>
+        <result  column="type" property="type"/>
+        <result  column="modify_time" property="modify_time"/>
+        <result  column="create_time" property="create_time"/>
+    </resultMap>
+    
+    
+    <select id="queryTongji" resultType="com.jubotech.business.web.domain.vo.FriendVo">
+        select t1.wechatid ,t2.wechatnick ,t2.wechatno, count(friendid) as  count from tbl_wx_contactinfo  t1
+        LEFT JOIN  tbl_wx_accountinfo t2 on t1.wechatid=t2.wechatid
+		where  1 = 1 
+		<if test="cid != null">
+           and t1.cid = #{cid}
+        </if>
+        <if test="list != null">      
+           and t1.wechatid  in
+            <foreach item="item" index="index" collection="list"
+				 open="(" separator="," close=")">
+				 #{item}
+			</foreach>
+        </if> 
+		GROUP BY   t1.wechatid
+	</select> 
+     
+    <select id="findContactinfoByid" resultType="com.jubotech.business.web.domain.WxContactInfo">
+         select *  from tbl_wx_contactinfo    where   id = #{id}
+	</select>
+	
+	 
+	
+	<select id="findContactinfoByfriendid" resultType="com.jubotech.business.web.domain.WxContactInfo">
+         select *  from tbl_wx_contactinfo  
+          where  cid = #{cid} 
+          and  wechatid = #{wechatid} 
+          and   friendid = #{friendid} limit 1;
+	</select>
+	
+	<select id="findContactinfoByWechatidFriendid" resultType="com.jubotech.business.web.domain.WxContactInfo">
+         select *  from tbl_wx_contactinfo  
+          where wechatid = #{wechatid} 
+          and   friendid = #{friendid} limit 1;
+	</select> 
+     
+	<select id="findContactinfoByWeChatId" resultMap="resultMap">
+         select * 
+         from tbl_wx_contactinfo
+         where cid = #{cid} and  wechatid = #{wechatid}
+	</select>
+	
+	<select id="findContactinfoByCidType" resultType="java.lang.Integer">
+         select  count(1) 
+         from tbl_wx_contactinfo
+         where  cid =#{cid} and type = #{type}
+	</select>
+	
+	<select id="findContactinfoByCidTypeDistWechatId" resultType="java.lang.Integer">
+         select  count(DISTINCT friendid) 
+         from tbl_wx_contactinfo
+         where  cid =#{cid} and type = #{type}
+	</select>
+	
+	 
+	 <select id="queryFriendAddCount" resultType="java.lang.Integer">
+         select  count(1) 
+         from tbl_wx_contactinfo
+         where  wechatid = #{wechatid}
+         and create_time &gt;#{start}
+		 and create_time &lt;#{end}
+	</select>
+	 
+  
+	 
+	<insert id="insert"  useGeneratedKeys="true" keyProperty="id">
+		<![CDATA[
+		  insert into tbl_wx_contactinfo(cid,wechatid,friendid,friend_wechatno,nickname,remark,phone,gender,avatar,country,province,city,memo,type,create_time)
+		  values(#{cid},#{wechatid},#{friendid},#{friend_wechatno},#{nickname},#{remark},#{phone},#{gender},#{avatar},#{country},#{province},#{city},#{memo},#{type},now()); 
+		]]>
+	</insert>   
+	
+	<update id="update">
+	  update  tbl_wx_contactinfo
+      set 
+      friend_wechatno = #{friend_wechatno},
+      nickname = #{nickname},
+      remark = #{remark},
+      phone = #{phone},
+      gender = #{gender},
+      avatar = #{avatar},
+      country = #{country},
+      province = #{province},
+      city = #{city},
+      memo = #{memo},
+      modify_time = now()
+	  where 
+	  id = #{id} 
+	</update>
+	
+	<update id="delete">
+	   delete from   tbl_wx_contactinfo   where  id = #{id}
+	</update>
+	 
+</mapper>