admin
2024-01-23 81da61b828e29b7745e1382dfbbaeb685dc083ef
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOverViewsServiceImpl.java
@@ -1,19 +1,45 @@
package com.yeshi.fanli.service.impl.msg;
import com.yeshi.fanli.dao.user.msg.MsgOverViewsDao;
import com.yeshi.fanli.entity.bus.msg.MsgOverViews;
import com.yeshi.fanli.entity.bus.msg.*;
import com.yeshi.fanli.lijin.entity.MsgLijinVIPDetail;
import com.yeshi.fanli.lijin.service.MsgLijinVIPService;
import com.yeshi.fanli.lijin.service.impl.MsgLijinVIPServiceImpl;
import com.yeshi.fanli.service.inter.money.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.msg.MsgOtherDetailService;
import com.yeshi.fanli.service.inter.msg.MsgOverViewsService;
import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.user.invite.MsgInviteDetailService;
import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.io.Serializable;
import java.util.*;
@Service
public class MsgOverViewsServiceImpl implements MsgOverViewsService {
    @Resource
    private MsgOverViewsDao msgOverViewsDao;
    @Resource
    private MsgAccountDetailService msgAccountDetailService;
    @Resource
    private MsgInviteDetailService msgInviteDetailService;
    @Resource
    private MsgMoneyDetailService msgMoneyDetailService;
    @Resource
    private MsgOrderDetailService msgOrderDetailService;
    @Resource
    private MsgOtherDetailService msgOtherDetailService;
    @Resource
    private MsgLijinVIPService msgLijinVIPService;
    @Resource
    private UserSystemMsgService userSystemMsgService;
    @Override
    public void save(MsgOverViews msgOverViews) {
@@ -27,6 +53,15 @@
        }
        msgOverViewsDao.save(msgOverViews);
    }
    @Override
    public void updateTime(String id, Date updateTime) {
        Update update = new Update();
        update.set("updateTime", updateTime);
        Query query = new Query();
        query.addCriteria(Criteria.where("id").is(id));
        msgOverViewsDao.update(query, update);
    }
    @Override
@@ -44,4 +79,64 @@
        daoQuery.uid = uid;
        return msgOverViewsDao.count(daoQuery);
    }
    @Override
    public List<Object> listDetail(List<MsgOverViews> msgList) {
        Object[] objs = new Object[msgList.size()];
        //分类型查询详情
        Map<MsgTypeEnum, List<Long>> map = new HashMap<>();
        Map<String, Integer> positionMap = new HashMap<>();
        int p = 0;
        for (MsgOverViews views : msgList) {
            positionMap.put(views.getMsgType().name() + "#" + views.getIdentityCode(), p++);
            if (map.get(views.getMsgType()) == null) {
                map.put(views.getMsgType(), new ArrayList<>());
            }
            map.get(views.getMsgType()).add(views.getIdentityCode());
        }
        for (Iterator<MsgTypeEnum> its = map.keySet().iterator(); its.hasNext(); ) {
            MsgTypeEnum type = its.next();
            List<Long> ids = map.get(type);
            if (type == MsgTypeEnum.lijinVip) {
                List<MsgLijinVIPDetail> list = (msgLijinVIPService.listDetail(ids));
                for (MsgLijinVIPDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.money) {
                List<MsgMoneyDetail> list = (msgMoneyDetailService.listDetail(ids));
                for (MsgMoneyDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.order) {
                List<MsgOrderDetail> list = (msgOrderDetailService.listDetail(ids));
                for (MsgOrderDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.other) {
                List<MsgOtherDetail> list = (msgOtherDetailService.listDetail(ids));
                for (MsgOtherDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.account) {
                List<MsgAccountDetail> list = (msgAccountDetailService.listDetail(ids));
                for (MsgAccountDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.invite) {
                List<MsgInviteDetail> list = (msgInviteDetailService.listDetail(ids));
                for (MsgInviteDetail detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            } else if (type == MsgTypeEnum.system) {
                List<UserSystemMsg> list = (userSystemMsgService.listDetail(ids));
                for (UserSystemMsg detail : list) {
                    objs[positionMap.get(type.name() + "#" + detail.getId())] = detail;
                }
            }
        }
        return Arrays.asList(objs);
    }
}