JAVA保存类似微信样式的群组头像(群组拉人,踢人的时候用)

/**
* 保存群组头像
*
* @param groupId 群组ID
*/
//Hibernate 操作数据库,List<ImUsr> getAvatar(@Param("groupId") String groupId);数据库SQ:
<!-- 获取群组9个成员的头像 -->
<select id="getAvatar" resultMap="com.weelang.zxsw.im.mapper.ImUserMapper.imUsrResultMap">
SELECT u.id, u.avatar
FROM im_user u, im_group_member gm
WHERE u.id = gm.member_id
AND gm.group_id = #{groupId}
AND gm.deletion = '0'
AND u.deletion = '0'
AND u.avatar is not null
ORDER BY gm.created
LIMIT 9
</select>
//传入群组ID
public void saveAvatar(String groupId) {
//json对象
List<ImUsr> usrs = imGroupMapper.getAvatar(groupId);
//类型不匹配,需要转换字符串类型
List<String> uids = Lists.newArrayList();
List<String> paths = Lists.newArrayList();
    for (ImUsr usr : usrs) {
uids.add(usr.getId());
paths.add(usr.getAvatar());
}
try {
ImGroup imGroup = this.findOne(groupId);
//把uids转化,用逗号分隔的字符串
String aids = Strings.join(uids, ",");
if (imGroup != null && Strings.isNotBlank(aids) && !aids.equals(imGroup.getAvatarIds())) {
//存放路径
String avatar = avatarPath + Identities.uuid2() + ".jpg";
String filename = uploadPath + avatar;
//调用工具类函数(1,用户头像路径列表【类型】
List<String>,2,生成后的头像保存路径【类型】String)

Images.avatar(paths, filename);
      imGroup.setAvatar(avatar);
      imGroup.setAvatarIds(aids);
      this.save(imGroup);
        }
} catch (IOException e) {
logger.error("生成群组头像失败:{" + groupId + "}:" + e.getMessage());
}
}
posted @ 2017-09-28 18:17  panzzi  阅读(192)  评论(0)    收藏  举报