package com.gx.obe.server.management.im.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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.gx.obe.server.common.utils.IDUtils; import com.gx.obe.server.common.utils.StringUtils; import com.gx.obe.server.management.im.dao.ChatRecordMapper; import com.gx.obe.server.management.im.entity.ChatRecord; import com.gx.obe.server.management.im.service.ChatRecordService; /** * @Description: * @author mazc */ @Service public class ChatRecordServiceImpl extends ServiceImpl<ChatRecordMapper, ChatRecord> implements ChatRecordService { @Autowired private ChatRecordMapper chatRecordMapper; /** * @Description: 批量更新 * @author mazc * @param ChatRecordList */ @Override @Transactional(rollbackFor = Exception.class) public Integer updateByBatch(List<ChatRecord> ChatRecordList) { return chatRecordMapper.updateBatchList(ChatRecordList); } /** * @Description: 批量插入 * @author mazc * @param ChatRecordList */ @Override @Transactional(rollbackFor = Exception.class) public Integer insertByBatch(List<ChatRecord> ChatRecordList) { return chatRecordMapper.insertByBatch(ChatRecordList); } /** * @Description: 指定字段修改 * @author chenxw * @param Record * @param attributes */ @Override public boolean updateAssignProperty(ChatRecord Record, String[] attributes) { return chatRecordMapper.updateAssignProperty(Record, attributes) > 0; } /** * @Description: 批量指定字段修改 * @author chenxw * @param ChatRecordList * @param attributes */ @Override public Integer batchUpdateProperty(List<ChatRecord> ChatRecordList, String[] attributes) { return chatRecordMapper.batchUpdateProperty(ChatRecordList, attributes); } /** * @Description: 批量添加或跟新 * @author chenxw * @param ChatRecordList * @param attributes * @return */ @Override @Transactional(rollbackFor = Exception.class) public Integer batchSaveOrUpdate(List<ChatRecord> ChatRecordList, String[] attributes) { List<ChatRecord> insertChatRecordList = new ArrayList<>(); List<ChatRecord> updateChatRecordList = new ArrayList<>(); for (ChatRecord Record : ChatRecordList) { if (StringUtils.isEmpty(Record.getId())) { Record.setId(IDUtils.getId()); insertChatRecordList.add(Record); } else { updateChatRecordList.add(Record); } } int count = 0; if (insertChatRecordList.size() > 0) { count += chatRecordMapper.insertByBatch(insertChatRecordList); } if (updateChatRecordList.size() > 0) { count += chatRecordMapper.batchUpdateProperty(updateChatRecordList, attributes); } return count; } @Override public IPage<ChatRecord> getRecordPage(String sendId, String receiveId, int pageNo, int pageSize) { return chatRecordMapper.getRecordPage(new Page<>(pageNo, pageSize), sendId, receiveId); } @Override public IPage<ChatRecord> getGroupRecordPage(String groupId, int pageNo, int pageSize) { return chatRecordMapper.getGroupRecordPage(new Page<>(pageNo, pageSize), groupId); } @Override public IPage<ChatRecord> getNoticeRecordPage(String noticeId, int pageNo, int pageSize) { return chatRecordMapper.getNoticeRecordPage(new Page<>(pageNo, pageSize), noticeId); } @Override public boolean saveUpdate(ChatRecord record) { if(null == record.getId()) { record.setId(IDUtils.getId()); return chatRecordMapper.insert(record) > 0; }else { return chatRecordMapper.updateById(record) > 0; } } }