|
|
|
@ -1,9 +1,16 @@
|
|
|
|
|
package cn.iocoder.yudao.module.farm.controller.admin.task.vo; |
|
|
|
|
|
|
|
|
|
import cn.hutool.extra.spring.SpringUtil; |
|
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
|
|
|
|
import cn.iocoder.yudao.framework.security.core.LoginUser; |
|
|
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; |
|
|
|
|
import cn.iocoder.yudao.module.system.service.permission.RoleService; |
|
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
|
import cn.iocoder.yudao.module.farm.enums.TaskStatus; |
|
|
|
|
import com.fasterxml.jackson.annotation.JsonManagedReference; |
|
|
|
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; |
|
|
|
|
import com.google.common.collect.Maps; |
|
|
|
|
import lombok.*; |
|
|
|
|
import java.util.*; |
|
|
|
|
import io.swagger.annotations.*; |
|
|
|
@ -16,7 +23,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
|
|
|
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 |
|
|
|
|
*/ |
|
|
|
|
@Data |
|
|
|
|
public class TaskBaseVO { |
|
|
|
|
public class TaskBaseVO extends BaseDO { |
|
|
|
|
|
|
|
|
|
private Long projectId; |
|
|
|
|
private Long cropId; |
|
|
|
@ -56,4 +63,25 @@ public class TaskBaseVO {
|
|
|
|
|
private Boolean draft = false; |
|
|
|
|
|
|
|
|
|
private Boolean pretendDelete; |
|
|
|
|
|
|
|
|
|
private Map<String, Boolean> actions; |
|
|
|
|
public Map<String, Boolean> getActions() { |
|
|
|
|
actions = Maps.newHashMap(); |
|
|
|
|
// 当前用户是否有资格编辑删除这个项目
|
|
|
|
|
|
|
|
|
|
RoleService roleService = SpringUtil.getBean("roleServiceImpl"); |
|
|
|
|
|
|
|
|
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); |
|
|
|
|
assert loginUser != null; |
|
|
|
|
List<RoleDO> roles = roleService.getRolesFromCache(loginUser.getRoleIds()); |
|
|
|
|
|
|
|
|
|
Optional<RoleDO> admin = roles.stream().filter(roleDO -> roleDO.getName().contains("管理员") || roleDO.getCode().contains("admin")).findAny(); |
|
|
|
|
// // 是创建者 或者 是 租户的管理员,可以更改项目
|
|
|
|
|
actions.put("edit",this.getCreator().equals(loginUser.getId().toString()) || admin.isPresent()); |
|
|
|
|
|
|
|
|
|
// 应该加上,项目下面没有运行中的任务才可以删除 ,或者是在删除部分再做判断 ,此处只做权限显示
|
|
|
|
|
actions.put("delete",this.getCreator().equals(loginUser.getId().toString()) || admin.isPresent()); |
|
|
|
|
|
|
|
|
|
return actions; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|