收藏功能

This commit is contained in:
fuqingji
2022-04-07 16:15:23 +08:00
parent fb464d610c
commit 4cacc52982
6 changed files with 80 additions and 5 deletions

View File

@ -1,8 +1,10 @@
package com.chinaunicom.mall.ebtp.project.projectrecord.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.BizProjectNotification;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO;
import com.chinaunicom.mall.ebtp.project.projectrecord.service.IBizProjectNotificationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -53,4 +55,15 @@ public class BizNotificationController {
return BaseResponse.success(notificationService.addOrUpdate(notification));
}
/**
* 监督人员查询分页数据
* @param projectRecord 分页信息
* @return 返回结果
*/
@ApiOperation("监督人员查询分页数据")
@PostMapping("/supervisor/getPage")
public BaseResponse<IPage<ProjectRecordVO>> getPageBySupervisor(@ApiParam(value = "对象数据", required = true) @RequestBody ProjectRecordVO projectRecord){
return BaseResponse.success(notificationService.getPageBySupervisor(projectRecord));
}
}

View File

@ -1,10 +1,18 @@
package com.chinaunicom.mall.ebtp.project.projectrecord.dao;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.BizProjectNotification;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface BizProjectNotificationMapper extends IBaseMapper<BizProjectNotification> {
@Select("SELECT a.id AS notificationId,b.* FROM `biz_project_notification` a JOIN biz_project_record b on a.project_id = b.id ${ew.customSqlSegment}")
IPage<ProjectRecordVO> getPageBySupervisor( IPage<ProjectRecordVO> page, @Param(Constants.WRAPPER) Wrapper<ProjectRecordVO> wrapper);
}

View File

@ -52,5 +52,11 @@ public class BizProjectNotification extends BaseEntity implements Serializable {
@ApiModelProperty(value = "跳转的用户id")
private String readingUserId;
/**
* 收藏方式1本系统 2门户
*/
@ApiModelProperty(value = "收藏方式1本系统 2门户")
private Integer favoritesType;
}

View File

@ -75,4 +75,7 @@ public class ProjectRecordVO extends ProjectRecord implements Serializable {
@ApiModelProperty(value = "项目下的第一个标段")
private ProjectSectionVO sectionFirst;
@ApiModelProperty(value = "待阅id")
private String notificationId;
}

View File

@ -1,8 +1,10 @@
package com.chinaunicom.mall.ebtp.project.projectrecord.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseService;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.BizProjectNotification;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO;
/**
* 对数据表 biz_project_notification 操作的 service
@ -27,4 +29,11 @@ public interface IBizProjectNotificationService extends IBaseService<BizProjectN
*/
boolean addOrUpdate(BizProjectNotification notification);
/**
* 监督人员查询分页数据-我的收藏
*
* @param projectRecord
* @return
*/
IPage<ProjectRecordVO> getPageBySupervisor(ProjectRecordVO projectRecord);
}

View File

@ -1,7 +1,10 @@
package com.chinaunicom.mall.ebtp.project.projectrecord.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
@ -15,15 +18,18 @@ import com.chinaunicom.mall.ebtp.project.feign.entity.NoticeReadingUpdateRequest
import com.chinaunicom.mall.ebtp.project.projectrecord.dao.BizProjectNotificationMapper;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.BizProjectNotification;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.BizProjectNotificationLog;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO;
import com.chinaunicom.mall.ebtp.project.projectrecord.service.IBizProjectNotificationLogService;
import com.chinaunicom.mall.ebtp.project.projectrecord.service.IBizProjectNotificationService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Pattern;
/**
@ -39,6 +45,8 @@ public class BizProjectNotificationServiceImpl extends BaseServiceImpl<BizProjec
private ProjectRecordServiceImpl projectRecordService;
@Autowired
private IBizProjectNotificationLogService notificationLogService;
@Autowired
private BizProjectNotificationMapper projectNotificationMapper;
@Autowired
private IBaseCacheUserService userService;
@ -75,19 +83,47 @@ public class BizProjectNotificationServiceImpl extends BaseServiceImpl<BizProjec
notification.setId(PropertyUtils.getSnowflakeId())
.setStatus("0")
.setExchange(reg(user.getUserId()))
.setReadingUserId(user.getUserId());
.setReadingUserId(user.getUserId())
.setFavoritesType(Optional.ofNullable(notification.getFavoritesType()).orElse(1));
if (notification.getFavoritesType() == 2) {
//添加云门户待阅
insertNotification(notification);
}
save(notification);
} else {
//修改状态
updateNotification(notification);
BizProjectNotification other = getById(notification.getId());
if (other.getFavoritesType() == 2) {
//修改云门户待阅状态
updateNotification(notification.setProjectId(other.getProjectId()));
}
updateById(notification);
}
return true;
}
/**
* 监督人员查询分页数据-我的收藏
*
* @param projectRecord
* @return
*/
@Override
public IPage<ProjectRecordVO> getPageBySupervisor(ProjectRecordVO projectRecord) {
QueryWrapper<ProjectRecordVO> query = Wrappers.query();
query.eq("a.reading_user_id", userService.getCacheUser().getUserId())
.ne("a.status", "d")
.like(StringUtils.isNotBlank(projectRecord.getProjectName()), "b.project_name", projectRecord.getProjectName())
.eq(StringUtils.isNotBlank(projectRecord.getBidMethodDict()), "b.bid_method_dict", projectRecord.getBidMethodDict())
.orderByDesc("a.create_date");
IPage<ProjectRecordVO> page = projectNotificationMapper.getPageBySupervisor(
new Page<>(projectRecord.getBasePageRequest().getPageNo(), projectRecord.getBasePageRequest().getPageSize()),
query);
return page;
}
private static final String REG_PATTEN = "^.+_\\d*$";
private boolean reg(String str) {