Commit e625748c authored by linruibiao's avatar linruibiao

接口编写

parent 06a1abf5
......@@ -151,7 +151,6 @@ public class VariableController extends BaseRestController{
});
}
@GetMapping("/{deviceId}/{variableId}/{variableCode}/status")
@ApiOperation("状态点实时数据")
@ApiImplicitParams({
......
......@@ -26,4 +26,6 @@ public class VariableSendDTO {
@ApiModelProperty(value = "key 是变量得id , value 是下发得值",required = true)
private Map<String, Object> commandMap;
@ApiModelProperty(value = "控制按钮给1 读写框给2",required = true)
private Integer control;
}
......@@ -17,7 +17,9 @@ import com.syc.slm.slmbi.enums.AccessType;
import com.syc.slm.slmbi.enums.StatisticsType;
import com.syc.slm.slmbi.exception.SysException;
import com.syc.slm.slmbi.service.VariableService;
import com.syc.slm.slmbi.vo.*;
import com.syc.slm.slmbi.vo.VariableDeviceVo;
import com.syc.slm.slmbi.vo.VariableSourceVo;
import com.syc.slm.slmbi.vo.VariableVo;
import lombok.NonNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -201,71 +203,71 @@ public class VariableServiceImpl implements VariableService {
@Override
@Transactional(rollbackFor = Exception.class)
public void send(VariableSendDTO sendDTO, CurrentUser currentUser,String uri) {
if (StringUtils.isBlank(sendDTO.getAccessType())) {
throw new SysException("请传入访问类型");
if(sendDTO.getControl() == null){
throw new SysException("控件类型必填,控制按钮传1 读写框填2");
}
if(AccessType.PRIVATE.value.equals(sendDTO.getAccessType())){
if (StringUtils.isBlank(sendDTO.getUserId())) {
throw new SysException("访问类型为私有,请传入创建人");
}
if(currentUser.getUid().equals(sendDTO.getUserId())){
throw new SysException("没有访问权限");
if(sendDTO.getControl().equals(1)) {
if (StringUtils.isBlank(sendDTO.getAccessType())) {
throw new SysException("请传入访问类型");
}
}else if(AccessType.CUSTOM.value.equals(sendDTO.getAccessType())) {
if(CollectionUtils.isNotEmpty(sendDTO.getPermissions())){
Map<String, List<CustomPermissionDTO>> maps =
sendDTO.getPermissions().stream().collect(Collectors.groupingBy(CustomPermissionDTO::getBizType));
List<CustomPermissionDTO> departments = maps.get("department");
List<CustomPermissionDTO> positions = maps.get("position");
List<CustomPermissionDTO> users = maps.get("user");
boolean flag=true;
if(CollectionUtils.isNotEmpty(users)){
if(users.stream().noneMatch(x->currentUser.getUid().equals(x.getBizId()))){
flag=false;
}
if (AccessType.PRIVATE.value.equals(sendDTO.getAccessType())) {
if (StringUtils.isBlank(sendDTO.getUserId())) {
throw new SysException("访问类型为私有,请传入创建人");
}
if(CollectionUtils.isNotEmpty(departments) || CollectionUtils.isNotEmpty(positions)) {
R<Map<String, String>> result = setDeptAndRole(currentUser, uri);
Map<String, String> detach = result.detach();
String officeIds = detach.get("deptIds");
String roleIds = detach.get("roleIds");
if (flag) {
if (CollectionUtils.isNotEmpty(departments)) {
if (departments.stream()
.map(CustomPermissionDTO::getBizId)
.anyMatch(officeIds::contains)) {
flag = false;
}
if (currentUser.getUid().equals(sendDTO.getUserId())) {
throw new SysException("没有访问权限");
}
} else if (AccessType.CUSTOM.value.equals(sendDTO.getAccessType())) {
if (CollectionUtils.isNotEmpty(sendDTO.getPermissions())) {
Map<String, List<CustomPermissionDTO>> maps = sendDTO.getPermissions().stream().collect(Collectors.groupingBy(CustomPermissionDTO::getBizType));
List<CustomPermissionDTO> departments = maps.get("department");
List<CustomPermissionDTO> positions = maps.get("position");
List<CustomPermissionDTO> users = maps.get("user");
boolean flag = true;
if (CollectionUtils.isNotEmpty(users)) {
if (users.stream().noneMatch(x -> currentUser.getUid().equals(x.getBizId()))) {
flag = false;
}
}
if (flag) {
if (CollectionUtils.isNotEmpty(positions)) {
if (positions.stream().map(CustomPermissionDTO::getBizId).anyMatch(roleIds::contains)) {
flag = false;
if (CollectionUtils.isNotEmpty(departments) || CollectionUtils.isNotEmpty(positions)) {
R<Map<String, String>> result = setDeptAndRole(currentUser, uri);
Map<String, String> detach = result.detach();
String officeIds = detach.get("deptIds");
String roleIds = detach.get("roleIds");
if (flag) {
if (CollectionUtils.isNotEmpty(departments)) {
if (departments.stream().map(CustomPermissionDTO::getBizId).anyMatch(officeIds::contains)) {
flag = false;
}
}
}
}
if(flag){
throw new SysException("没有访问权限");
if (flag) {
if (CollectionUtils.isNotEmpty(positions)) {
if (positions.stream().map(CustomPermissionDTO::getBizId).anyMatch(roleIds::contains)) {
flag = false;
}
}
}
if (flag) {
throw new SysException("没有访问权限");
}
}
}
}
}
}
Map<String, Object> commandMap = sendDTO.getCommandMap();
if(CollectionUtils.isEmpty(commandMap)){
if (CollectionUtils.isEmpty(commandMap)) {
throw new SysException("变量值必传");
}
if(commandMap.keySet().stream().anyMatch(StringUtils::isBlank)){
if (commandMap.keySet().stream().anyMatch(StringUtils::isBlank)) {
throw new SysException("变量id 不能为空");
}
if(commandMap.values().stream().anyMatch(ObjectUtils::isEmpty)){
if (commandMap.values().stream().anyMatch(ObjectUtils::isEmpty)) {
throw new SysException("变量对应得value 值不能为空");
}
SendDeviceCommandsDTO dto = new SendDeviceCommandsDTO();
dto.setCommandMap(commandMap);
dto.setToken(currentUser.getToken());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment