package com.xcong.farmer.cms.modules.system.service.Impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.contants.AppContants; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddMessageDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminMessageBoardDto; import com.xcong.farmer.cms.modules.system.entity.CompanyEntity; import com.xcong.farmer.cms.modules.system.entity.MessageBoardEntity; import com.xcong.farmer.cms.modules.system.entity.UserEntity; import com.xcong.farmer.cms.modules.system.mapper.CompanyMapper; import com.xcong.farmer.cms.modules.system.mapper.MessageBoardMapper; import com.xcong.farmer.cms.modules.system.service.IMessageBoardService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminMessageBoardVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import cn.hutool.core.util.StrUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.collection.CollUtil; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List; @Service @Slf4j public class MessageBoardServiceImpl extends ServiceImpl implements IMessageBoardService { @Resource private CompanyMapper companyMapper; @Override public Result getMessageInPage(AdminMessageBoardDto adminMessageBoardDto) { MessageBoardEntity messageBoardEntity = new MessageBoardEntity(); UserEntity userlogin = LoginUserUtil.getLoginUser(); Long companyId = userlogin.getCompanyId(); if(UserEntity.USER_BELONG_TOP != companyId){ messageBoardEntity.setCompanyId(companyId); } String queryKey = adminMessageBoardDto.getQueryKey(); if(StrUtil.isNotEmpty(queryKey)){ messageBoardEntity.setName(queryKey); messageBoardEntity.setRemark(queryKey); } Page page = new Page<>(adminMessageBoardDto.getPageNum(), adminMessageBoardDto.getPageSize()); IPage list = this.baseMapper.selectAdminMessageBoardInPage(page, messageBoardEntity); return Result.ok(list); } @Override @Transactional public Result delObjs(AdminDeleteDto adminDeleteDto) { String ids = adminDeleteDto.getIds(); if(StrUtil.isNotEmpty(ids)){ String[] messageIds = ids.split(StringPool.COMMA); for(String messageIdStr : messageIds){ Long messageId = Long.valueOf(messageIdStr); this.baseMapper.deleteById(messageId); } } return Result.ok("删除成功"); } @Override public Result addMessage(HttpServletRequest request, AdminAddMessageDto adminAddMessageDto) { String website = request.getHeader(AppContants.WEBSITE_HEADER); Long companyId = getCompanyIdFromWebsite(website); String title = adminAddMessageDto.getTitle(); String remark = adminAddMessageDto.getRemark(); if(StrUtil.isEmpty(title) && StrUtil.isEmpty(remark)){ return Result.fail("请输入留言"); } MessageBoardEntity messageBoardEntity = new MessageBoardEntity(); messageBoardEntity.setName(adminAddMessageDto.getName()); messageBoardEntity.setContactValue(adminAddMessageDto.getContactValue()); messageBoardEntity.setTitle(adminAddMessageDto.getTitle()); messageBoardEntity.setRemark(adminAddMessageDto.getRemark()); messageBoardEntity.setCreateTime(DateUtil.date()); messageBoardEntity.setParamOne(adminAddMessageDto.getParamOne()); messageBoardEntity.setParamTwo(adminAddMessageDto.getParamTwo()); if(companyId > 0L){ messageBoardEntity.setCompanyId(companyId); } this.baseMapper.insert(messageBoardEntity); return Result.ok("留言成功"); } private Long getCompanyIdFromWebsite(String website){ List companyEntities = companyMapper.selectList(new QueryWrapper<>()); Long companyId = 0L; if(CollUtil.isNotEmpty(companyEntities)){ for(CompanyEntity companyEntity : companyEntities){ boolean contains = StrUtil.contains(companyEntity.getWebAddress(), website); if(contains){ companyId = companyEntity.getId(); } } } return companyId; } }