package com.panzhihua.sangeshenbian.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.sangeshenbian.dao.MessageNotificationMapper;
|
import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
|
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
|
import com.panzhihua.sangeshenbian.model.query.BasePage;
|
import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
|
import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
|
import com.panzhihua.sangeshenbian.service.ISystemUserService;
|
import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Optional;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/2/23 3:04
|
*/
|
@Service
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
public class MessageNotificationServiceImpl extends ServiceImpl<MessageNotificationMapper, MessageNotification> implements IMessageNotificationService {
|
private final ISystemUserService systemUserService;
|
|
@Override
|
public IPage<MessageNotification> list(MessageNotificationList query) {
|
Page page = new Page<>();
|
page.setCurrent(query.getPageNum());
|
page.setSize(query.getPageSize());
|
IPage<MessageNotification> list = this.baseMapper.list(page, query);
|
return list;
|
}
|
|
@Override
|
public Page<MessageNotificationVO> getMessageList(BasePage basePage, Long userId) {
|
//TODO 待完善
|
Page<MessageNotification> page = lambdaQuery().page(new Page<>(basePage.getPageNum(),basePage.getPageSize()));
|
return (Page<MessageNotificationVO>) page.convert(item-> BeanUtil.copyProperties(item, MessageNotificationVO.class));
|
}
|
|
/**
|
* 标记已读
|
* @param loginUserInfoVO
|
*/
|
@Override
|
public void read(LoginUserInfoVO loginUserInfoVO) {
|
String undertakerUserId = "";
|
Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone());
|
if (systemUserByPhone.isPresent()) {
|
SystemUser systemUser = systemUserByPhone.get();
|
if (systemUser.getIsAdmin().equals(1)){
|
switch (systemUser.getAccountLevel()) {
|
case 1:
|
undertakerUserId = "510400";//默认市级
|
break;
|
case 2:
|
undertakerUserId = systemUser.getDistrictsCode();
|
break;
|
case 3:
|
undertakerUserId = systemUser.getStreetId();
|
break;
|
case 4:
|
undertakerUserId = systemUser.getCommunityId().toString();
|
break;
|
}
|
}
|
}else {
|
undertakerUserId = loginUserInfoVO.getUserId().toString();
|
}
|
this.lambdaUpdate().eq(MessageNotification::getUndertakerUserId, undertakerUserId).set(MessageNotification::getReadStatus, 1).update();
|
}
|
}
|