package com.xy.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xy.dto.MsgSysMonitorNoticeDto;
import com.xy.dto.MsgUserMessageDto;
import com.xy.entity.MsgSysMonitorNotice;
import com.xy.mapper.MsgSysMonitorNoticeMapper;
import com.xy.utils.Emptys;
import com.xy.utils.MybatisPlusQuery;
import com.xy.utils.PageBean;
import com.xy.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import static com.xy.utils.Beans.copy;
import static com.xy.utils.PlusBeans.toIPage;
import static com.xy.utils.PlusBeans.toPageBean;
/**
*
* 系统消息 服务实现类
*
*
* @author 谭斌
* @since 2023-03-13
*/
@Service
@AllArgsConstructor(onConstructor_ = @Lazy)
@Api(tags = "系统消息")
public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl implements MsgSysMonitorNoticeService {
private MsgUserMessageServiceImpl msgUserMessageService;
@Override
@ApiOperation("对象查询")
public R obj(@RequestBody MsgSysMonitorNoticeDto.Vo vo) {
MsgSysMonitorNoticeDto.SelectList selectList = copy(MsgSysMonitorNoticeDto.SelectList.class, vo);
List list = list(selectList).getData();
if (Emptys.check(list)) {
return R.ok(list.get(0));
}
return R.ok();
}
@Override
@ApiOperation("集合查询")
public R> list(@RequestBody MsgSysMonitorNoticeDto.SelectList selectList) {
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MsgSysMonitorNotice.class).build();
List list = list(lambdaQueryWrapper);
return R.ok(copy(MsgSysMonitorNoticeDto.Vo.class, list));
}
@Override
@ApiOperation("分页查询")
public R> page(@RequestBody MsgSysMonitorNoticeDto.Page page) {
PageBean pageBean = page.getPage();
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MsgSysMonitorNotice.class).build();
IPage iPage = page(toIPage(pageBean), lambdaQueryWrapper);
return R.ok(toPageBean(MsgSysMonitorNoticeDto.Vo.class, iPage));
}
@Override
@ApiOperation("添加")
public R save(@RequestBody @Validated MsgSysMonitorNoticeDto.Save save) {
MsgSysMonitorNotice saveInfo = copy(MsgSysMonitorNotice.class, save);
save(saveInfo);
Long userId = save.getUserId();
if (userId != null) {
String channelType = save.getChannelType();
MsgUserMessageDto.Save mum = new MsgUserMessageDto.Save();
if ("ORDER_CUT".equals(channelType)) {
//补扣设置为已读
mum.setReadState("2");
}
mum.setMsgId(saveInfo.getMsgId());
mum.setMsgType(saveInfo.getMsgType());
mum.setPriority(saveInfo.getPriority());
mum.setUserId(userId);
msgUserMessageService.save(mum);
}
return R.ok();
}
@Override
@ApiOperation("修改")
public R update(@RequestBody @Validated MsgSysMonitorNoticeDto.Update update) {
MsgSysMonitorNotice updateInfo = copy(MsgSysMonitorNotice.class, update);
updateById(updateInfo);
return R.ok();
}
}