|
@@ -0,0 +1,135 @@
|
|
|
+package com.gis.cms.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
+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.gis.cms.entity.dto.BbsDto;
|
|
|
+import com.gis.cms.entity.dto.BbsPageDto;
|
|
|
+import com.gis.cms.entity.dto.SortPageDto;
|
|
|
+import com.gis.cms.entity.po.BbsEntity;
|
|
|
+import com.gis.cms.mapper.BbsMapper;
|
|
|
+import com.gis.cms.service.BbsService;
|
|
|
+import com.gis.common.base.exception.BaseRuntimeException;
|
|
|
+import com.gis.common.base.service.impl.IBaseService;
|
|
|
+import com.gis.common.util.BaseUtil;
|
|
|
+import com.gis.common.util.FileUtils;
|
|
|
+import com.gis.common.util.RegexUtil;
|
|
|
+import com.gis.common.util.Result;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by owen on 2020/3/11 0011 16:16
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class BbsServiceImpl extends ServiceImpl<BbsMapper, BbsEntity> implements BbsService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ FileUtils fileUtils;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 包含统计
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result search(BbsPageDto param) {
|
|
|
+ BaseUtil.startPage(param);
|
|
|
+ IPage<BbsEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
|
|
|
+
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ sql.append("SELECT a.*, COUNT(case when b.status=2 and b.is_delete=0 then 1 end) reply from tb_bbs a left join tb_bbs_message b on b.bbs_id=a.id where a.is_delete=0 ");
|
|
|
+ Integer status = param.getStatus();
|
|
|
+ if (status!=null){
|
|
|
+ sql.append(" and a.status=").append(status);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
|
|
|
+ sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
|
|
|
+ sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
|
|
|
+ }
|
|
|
+
|
|
|
+ String type = param.getType();
|
|
|
+ if (StringUtils.isNotBlank(type)){
|
|
|
+ sql.append(" and a.type='").append(type).append("'");
|
|
|
+ }
|
|
|
+
|
|
|
+ String searchKey = param.getSearchKey();
|
|
|
+ if (StringUtils.isNotBlank(searchKey)){
|
|
|
+ searchKey = RegexUtil.sqlReplaceSpecialStr(searchKey);
|
|
|
+ sql.append(" and a.title like '%").append(searchKey).append("%'");
|
|
|
+ }
|
|
|
+
|
|
|
+ sql.append(" GROUP BY a.id");
|
|
|
+ log.info("sql: {}", sql.toString());
|
|
|
+
|
|
|
+ IPage<BbsEntity> result = getBaseMapper().pageSearchSql(sql.toString(), page);
|
|
|
+ return Result.success(result);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateAudit(Long id, Integer status) {
|
|
|
+ List<Integer> list = Arrays.asList(1, 2);
|
|
|
+ if (!list.contains(status)){
|
|
|
+ throw new BaseRuntimeException("审核参数非法:" + status);
|
|
|
+ }
|
|
|
+ getBaseMapper().updateAudit(id, status);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addLike(Long id) {
|
|
|
+ getBaseMapper().addLike(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addUnLike(Long id) {
|
|
|
+ getBaseMapper().addUnLike(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addVisit(Long id) {
|
|
|
+ getBaseMapper().addVisit(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result upload(MultipartFile file) {
|
|
|
+ // 只上传图片
|
|
|
+ Map<String, Object> map = fileUtils.uploadMap(file, "/bbs", false);
|
|
|
+ return Result.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result saveEntity(BbsDto param) {
|
|
|
+ BbsEntity entity = new BbsEntity();
|
|
|
+ BeanUtils.copyProperties(param, entity);
|
|
|
+ String creatorName = param.getCreatorName();
|
|
|
+ if (StringUtils.isBlank(creatorName)){
|
|
|
+ entity.setCreatorName("匿名用户");
|
|
|
+ }
|
|
|
+ entity.setStatus(0);
|
|
|
+ this.saveOrUpdate(entity);
|
|
|
+ return Result.success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|