diff --git a/zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java b/zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java index e8bececf..fb01ab38 100644 --- a/zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java +++ b/zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java @@ -54,6 +54,8 @@ public interface ErrorCodeConstants{ ErrorCode PROJECT_STARTING_CANT_CHANGE_CROP = new ErrorCode(100000724, "项目更改失败, 进行中的任务不可修改作物"); - ErrorCode PROJECT_STARTING_CANT_CHANGE_AREA = new ErrorCode(100000724, "项目更改失败, 进行中的任务不可修改区域"); + ErrorCode PROJECT_STARTING_CANT_CHANGE_AREA = new ErrorCode(100000725, "项目更改失败, 进行中的任务不可修改区域"); + + ErrorCode DISCUSS_NO_PERMISSION = new ErrorCode(100000726, "活动操作失败, 只有任务创建人或负责人才可以操作"); } diff --git a/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java b/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java index dd365222..0e7e47cd 100644 --- a/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java +++ b/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java @@ -4,15 +4,25 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.page.PageUtil; import cn.iocoder.yudao.framework.common.page.PageVO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.farm.controller.admin.discuss.dto.DiscussDTO; import cn.iocoder.yudao.module.farm.controller.admin.discuss.dto.DiscussPageDTO; +import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.DiscussCreateReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.DiscussExportReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.DiscussPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.DiscussUpdateReqVO; import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO; import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO; +import cn.iocoder.yudao.module.farm.convert.discuss.DiscussConvert; import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO; import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO; import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO; import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper; +import cn.iocoder.yudao.module.farm.dal.mysql.discuss.DiscussMapper; import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper; import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper; import cn.iocoder.yudao.module.farm.enums.TaskStatus; @@ -25,19 +35,12 @@ import cn.iocoder.yudao.module.system.service.CpUser.CpUserService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zsw.base.R; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; -import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.*; -import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import cn.iocoder.yudao.module.farm.convert.discuss.DiscussConvert; -import cn.iocoder.yudao.module.farm.dal.mysql.discuss.DiscussMapper; - import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; @@ -233,6 +236,11 @@ public class DiscussServiceImpl implements DiscussService { if (taskDO.getDraft()){ throw exception(DISCUSS_TASK_IS_DRAFT); } + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + CpUserDO cpUserDO = cpUserService.getByUserId(loginUser.getUsername()); + if (taskDO.getMainPerson() != cpUserDO.getId() && !loginUser.getId().equals(taskDO.getCreator())){ + throw exception(DISCUSS_NO_PERMISSION); + } } }