Commit 5d951dc2 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/master-modify-cutAmount' into master-modify-cutAmount

parents a59a3a4e 3e2b497f
......@@ -1024,8 +1024,10 @@ public class AppPermissionService {
}
Map<Integer, AppUserDetail> userIdAndAppUserDetail = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(Arrays.asList(appUserLogin.getId()));
AppUserDetail appUserDetail = userIdAndAppUserDetail.get(appUserLogin.getId());
if (appUserDetail != null) {
imiVo.setNickname(appUserDetail.getNickname());
imiVo.setHeadimgurl(appUserDetail.getHeadimgurl());
}
return imiVo;
}
......
......@@ -17,8 +17,12 @@ import com.xxfc.platform.im.model.Comment;
import com.xxfc.platform.im.model.Msg;
import com.xxfc.platform.im.model.Praise;
import com.xxfc.platform.im.vo.MsgVo;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.constant.ResCode;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -30,8 +34,12 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
import static com.xxfc.platform.universal.constant.DictionaryKey.IM_TYPE;
@Service
@Slf4j
public class MsgBiz {
......@@ -44,6 +52,9 @@ public class MsgBiz {
@Autowired
ImQuestionBiz imQuestionBiz;
@Autowired
ThirdFeign thirdFeign;
/**
* 获取消息列表
*
......@@ -54,7 +65,7 @@ public class MsgBiz {
//获取所有朋友圈
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
if (appUserDTO != null) {
userId = appUserDTO.getImUserid();
}
page = page == null ? 1 : page;
......@@ -69,7 +80,7 @@ public class MsgBiz {
query.with(new Sort(Sort.Direction.DESC, "time"));
msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList));
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
} else {
List<Integer> ids = new ArrayList<>();
......@@ -82,7 +93,7 @@ public class MsgBiz {
msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList));
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
}
......@@ -91,7 +102,7 @@ public class MsgBiz {
public ObjectRestResponse getHotMsgList(Integer page, Integer limit) {
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
if (appUserDTO != null) {
userId = appUserDTO.getImUserid();
}
page = page == null ? 1 : page;
......@@ -100,34 +111,34 @@ public class MsgBiz {
List<Integer> ids = new ArrayList<>();
ids.add(2);
ids.add(4);
Query query = new Query(Criteria.where("body.type").in(ids).and("count.praise").gt(1000));
Query query = new Query(Criteria.where("body.type").in(ids).and("count.praise").gt(getNumber()));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
query.with(pageable);
query.with(new Sort(Sort.Direction.DESC, "count.praise"));
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(replaceMsgResult(msgList));
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
return ObjectRestResponse.succ(goodPageInfo);
}
public ObjectRestResponse get(String id){
public ObjectRestResponse get(String id) {
//获取所有朋友圈
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
if (appUserDTO != null) {
userId = appUserDTO.getImUserid();
}
if(id == null) {
if (id == null) {
return ObjectRestResponse.paramIsEmpty();
}
Query query = new Query(Criteria.where("id").is(new ObjectId(id)));
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
List<MsgVo> msgVoList = replaceMsgResult(msgList);
if(msgVoList.size() > 0) {
if (msgVoList.size() > 0) {
return ObjectRestResponse.succ(msgVoList.get(0));
}
return ObjectRestResponse.succ();
}
}
public ObjectRestResponse getMsgListByUserId(Integer page, Integer limit, Integer type) {
//获取所有朋友圈
......@@ -135,17 +146,17 @@ public class MsgBiz {
limit = limit == null ? 10 : limit;
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if(appUserDTO != null) {
if (appUserDTO != null) {
userId = appUserDTO.getImUserid();
} else {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, "token失效");
}
Pageable pageable = PageRequest.of(--page, limit);
List<Integer> ids = new ArrayList<>();
if(type != null) {
if (type != null) {
ids.add(type);
}
if(type != null && type == 5) {
if (type != null && type == 5) {
QuestionParamDto questionParamDto = new QuestionParamDto();
questionParamDto.setUserId(Long.parseLong(userId + ""));
return imQuestionBiz.getList(questionParamDto);
......@@ -158,20 +169,21 @@ public class MsgBiz {
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
List<MsgVo> msgVoList = replaceMsgResult(msgList);
PageInfo<MsgVo> goodPageInfo = new PageInfo<>(msgVoList);
goodPageInfo.setPageSize(totalSize%limit == 0 ?totalSize/limit : totalSize/limit + 1);
goodPageInfo.setPageSize(totalSize % limit == 0 ? totalSize / limit : totalSize / limit + 1);
return ObjectRestResponse.succ(PageDataVO.pageInfo(goodPageInfo));
}
/**
* 删除消息
*
* @param ids id字符串,用逗号隔开
* @return
*/
public ObjectRestResponse deleteByList(String ids) {
Integer userId = 0;
AppUserDTO appUserDTO = userBiz.getUserInfo();
if(appUserDTO == null) {
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (StringUtils.isBlank(ids)) {
......@@ -184,7 +196,7 @@ public class MsgBiz {
Query query = new Query(Criteria.where("id").in(set));
query.addCriteria(Criteria.where("userId").is(userId));
List<Msg> msgList = mongoTemplate.find(query, Msg.class, "s_msg");
if(msgList.size() != set.size()) { //查询到的消息条数不等于查询的Id数
if (msgList.size() != set.size()) { //查询到的消息条数不等于查询的Id数
return ObjectRestResponse.createFailedResult(ResultCode.IM_DELETE_FAIL_CODE, ResultCode.getMsg(ResultCode.IM_DELETE_FAIL_CODE));
}
DeleteResult deleteResult = mongoTemplate.remove(query, Msg.class, "s_msg");
......@@ -211,7 +223,7 @@ public class MsgBiz {
//添加点赞
List<Praise> praise = mongoTemplate.find(query, Praise.class, "s_praise");
msg.setPraises(replacePraiseResult(praise));
if(userId != null) {
if (userId != null) {
msg.setIsPraise(this.exists(userId, msg.getId()) ? 1 : 0);
msg.setIsCollect(this.existsCollect(userId, msg.getId()) ? 1 : 0);
} else {
......@@ -237,7 +249,7 @@ public class MsgBiz {
public boolean exists(int userId, ObjectId msgId) {
Query query = new Query(Criteria.where("msgId").is(msgId).and("userId").is(userId));
List<Praise> praise = mongoTemplate.find(query, Praise.class, "s_praise");
return praise.size() > 0 ? true :false;
return praise.size() > 0 ? true : false;
}
/**
......@@ -250,23 +262,25 @@ public class MsgBiz {
public boolean existsCollect(int userId, ObjectId msgId) {
Query query = new Query(Criteria.where("msgId").is(msgId).and("userId").is(userId));
List<Comment> comments = mongoTemplate.find(query, Comment.class, "s_comment");
return comments.size() > 0 ? true :false;
return comments.size() > 0 ? true : false;
}
public List<MsgVo> replaceMsgResult(List<Msg> list) {
List<MsgVo> msgVoList = new ArrayList<>();
for(Msg msg : list) {
for (Msg msg : list) {
MsgVo msgVo = new MsgVo();
if(msg != null) {
BeanUtil.copyProperties(msg, msgVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
//添加用户昵称和头像
ImiVo imiVo = userBiz.getUserInfo(msg.getUserId());
if(imiVo != null) {
if (imiVo != null) {
msgVo.setNickname(imiVo.getNickname());
msgVo.setPicUrl(imiVo.getHeadimgurl());
}
//String address = AddressUtils.getMapaddress(msg.getLatitude().toString(), msg.getLongitude().toString());
msgVo.setAddress(msg.getLocation());
msgVo.setMsgId(msg.getId().toString());
}
msgVoList.add(msgVo);
}
return msgVoList;
......@@ -274,15 +288,17 @@ public class MsgBiz {
public List<PraiseVo> replacePraiseResult(List<Praise> list) {
List<PraiseVo> praiseVoArrayList = new ArrayList<>();
for(Praise praise : list) {
for (Praise praise : list) {
PraiseVo praiseVo = new PraiseVo();
if (praise != null) {
BeanUtil.copyProperties(praise, praiseVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
//添加用户昵称和头像
ImiVo imiVo = userBiz.getUserInfo(praise.getUserId());
if(imiVo != null) {
if (imiVo != null) {
praiseVo.setNickname(imiVo.getNickname());
praiseVo.setPicUrl(imiVo.getHeadimgurl());
}
}
praiseVoArrayList.add(praiseVo);
}
return praiseVoArrayList;
......@@ -290,18 +306,31 @@ public class MsgBiz {
public List<CommentVo> replaceCommentResult(List<Comment> list) {
List<CommentVo> commentVoList = new ArrayList<>();
for(Comment comment : list) {
for (Comment comment : list) {
CommentVo commentVo = new CommentVo();
if (comment != null) {
BeanUtil.copyProperties(comment, commentVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
//添加用户昵称和头像
ImiVo imiVo = userBiz.getUserInfo(comment.getUserId());
if(imiVo != null) {
if (imiVo != null) {
commentVo.setNickname(imiVo.getNickname());
commentVo.setPicUrl(imiVo.getHeadimgurl());
}
}
commentVoList.add(commentVo);
}
return commentVoList;
}
public Integer getNumber() {
Integer number = 0;
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(IM_TYPE, DictionaryKey.MSG_LIMIT_NUMBER);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
log.info("查询IM限制数为字典表的结果为: dictionary = {}", dictionary.toString());
number = Integer.parseInt(dictionary.getDetail());
}
log.info("IM消息数限制为: number = {}", number);
return number;
}
}
......@@ -7,6 +7,15 @@ public class DictionaryKey {
*/
public static final String APP_ORDER ="APP_ORDER";
/**
* IM类型
*/
public static final String IM_TYPE ="IM_TYPE";
/**
* IM限制条数
*/
public static final String MSG_LIMIT_NUMBER ="MSG_LIMIT_NUMBER";
/**
* 支付
*/
......
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