diff --git a/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java b/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java new file mode 100644 index 0000000..44ab67d --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java @@ -0,0 +1,41 @@ +package com.bonus.digitalSignage.backstage.controller; + +import com.bonus.digitalSignage.annotation.DecryptAndVerify; +import com.bonus.digitalSignage.annotation.LogAnnotation; +import com.bonus.digitalSignage.backstage.entity.dto.QueryParamDto; +import com.bonus.digitalSignage.backstage.service.ProProgressService; +import com.bonus.digitalSignage.system.vo.EncryptedReq; +import com.bonus.digitalSignage.utils.ServerResponse; +import com.github.pagehelper.PageHelper; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @className:ProProgressController + * @author:cwchen + * @date:2025-04-21-17:33 + * @version:1.0 + * @description:工程进度更新-controller + */ +@RestController +@RequestMapping("/backstage/proProgress/") +@Slf4j +public class ProProgressController { + + @Resource(name = "ProProgressService") + private ProProgressService service; + + @ApiOperation("工程进度更新-查询列表") + @PostMapping(value = "getList") + @DecryptAndVerify(decryptedClass = QueryParamDto.class)//加解密统一管理 + @LogAnnotation(operModul = "综合查询-工程进度更新", operation = "查询列表", operDesc = "系统级事件",operType="查询") + public ServerResponse getList(EncryptedReq dto) { + PageHelper.startPage(dto.getData().getPageNum(), dto.getData().getPageSize()); + return service.getList(dto.getData()); + } +} diff --git a/src/main/java/com/bonus/digitalSignage/backstage/dao/ProProgressDao.java b/src/main/java/com/bonus/digitalSignage/backstage/dao/ProProgressDao.java new file mode 100644 index 0000000..477f160 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/dao/ProProgressDao.java @@ -0,0 +1,26 @@ +package com.bonus.digitalSignage.backstage.dao; + +import com.bonus.digitalSignage.backstage.entity.dto.QueryParamDto; +import com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @className:ProProgressMapper + * @author:cwchen + * @date:2025-04-21-17:35 + * @version:1.0 + * @description:工程进度更新-数据层 + */ +@Repository(value = "ProProgressDao") +public interface ProProgressDao { + /** + * 工程进度更新-查询列表 + * @param dto + * @return List + * @author cwchen + * @date 2025/4/21 17:46 + */ + List getList(QueryParamDto dto); +} diff --git a/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java b/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java new file mode 100644 index 0000000..c85dcbf --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/entity/dto/QueryParamDto.java @@ -0,0 +1,26 @@ +package com.bonus.digitalSignage.backstage.entity.dto; + +import com.bonus.digitalSignage.utils.UserUtil; +import lombok.Data; + +import java.util.List; + +/** + * @className:QueryParamDto + * @author:cwchen + * @date:2025-03-31-15:46 + * @version:1.0 + * @description:前端参数 + */ +@Data +public class QueryParamDto { + + private Long id; + private String keyWord; + /**权限层级*/ + private String level = UserUtil.getAuthLevel(); + /**工程权限*/ + private List proIds = UserUtil.getAuthProIds(); + private int pageNum = 1; + private int pageSize = 10; +} diff --git a/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java new file mode 100644 index 0000000..41969ab --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java @@ -0,0 +1,35 @@ +package com.bonus.digitalSignage.backstage.entity.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @className:ProProgressVo + * @author:cwchen + * @date:2025-04-21-17:24 + * @version:1.0 + * @description:工程进度更新-VO + */ +@Data +public class ProProgressVo { + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String keyWord; + + private Long id; + /**工程名称*/ + private String proName; + /**电压等级*/ + private String voltageLevel; + /**项目进度*/ + private double proProgress; + /**更新时间*/ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + /**更新人*/ + private String updateUserName; + +} diff --git a/src/main/java/com/bonus/digitalSignage/backstage/service/ProProgressService.java b/src/main/java/com/bonus/digitalSignage/backstage/service/ProProgressService.java new file mode 100644 index 0000000..13c90c7 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/service/ProProgressService.java @@ -0,0 +1,22 @@ +package com.bonus.digitalSignage.backstage.service; + +import com.bonus.digitalSignage.backstage.entity.dto.QueryParamDto; +import com.bonus.digitalSignage.utils.ServerResponse; + +/** + * @className:ProProgress + * @author:cwchen + * @date:2025-04-21-17:33 + * @version:1.0 + * @description:工程进度更新 + */ +public interface ProProgressService { + /** + * 工程进度更新-查询列表 + * @param data + * @return ServerResponse + * @author cwchen + * @date 2025/4/21 17:41 + */ + ServerResponse getList(QueryParamDto data); +} diff --git a/src/main/java/com/bonus/digitalSignage/backstage/service/impl/ProProgressServiceImpl.java b/src/main/java/com/bonus/digitalSignage/backstage/service/impl/ProProgressServiceImpl.java new file mode 100644 index 0000000..6397cdb --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/backstage/service/impl/ProProgressServiceImpl.java @@ -0,0 +1,41 @@ +package com.bonus.digitalSignage.backstage.service.impl; + +import com.bonus.digitalSignage.backstage.dao.ProProgressDao; +import com.bonus.digitalSignage.backstage.entity.dto.QueryParamDto; +import com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo; +import com.bonus.digitalSignage.backstage.service.ProProgressService; +import com.bonus.digitalSignage.utils.ServerResponse; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @className:ProProgressServiceImpl + * @author:cwchen + * @date:2025-04-21-17:34 + * @version:1.0 + * @description:工程进度更新-业务逻辑层 + */ +@Service(value = "ProProgressService") +@Slf4j +public class ProProgressServiceImpl implements ProProgressService { + + @Resource(name = "ProProgressDao") + private ProProgressDao dao; + + @Override + public ServerResponse getList(QueryParamDto dto) { + List list = null; + try { + list = Optional.ofNullable(dao.getList(dto)).orElseGet(ArrayList::new); + } catch (Exception e) { + log.error(e.toString(),e); + } + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo, dto.getPageNum(), dto.getPageSize()); + } +} diff --git a/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java b/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java index 3ff6beb..a08d966 100644 --- a/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java +++ b/src/main/java/com/bonus/digitalSignage/utils/UserUtil.java @@ -1,11 +1,18 @@ package com.bonus.digitalSignage.utils; import com.bonus.digitalSignage.system.vo.LoginUser; +import com.bonus.digitalSignage.webResult.Constants; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; + public class UserUtil { public static LoginUser getLoginUser() { @@ -23,4 +30,46 @@ public class UserUtil { return null; } + /** + * 获取权限等级 1.全部 2.分公司 3.项目 + * @return String + * @author cwchen + * @date 2025/4/21 18:02 + */ + public static String getAuthLevel() { + LoginUser loginUser = getLoginUser(); + if(loginUser == null){ + return null; + }else { + String roleLevel = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getRoleLevel).orElse("0"); + String proIds = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getProIds).orElse("-1"); + if(Objects.equals(roleLevel, Constants.ROLE_LEVEL)){ // 非全部权限 + List proList = Arrays.stream(proIds.split(",")).map(String::trim).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); + return null; + } + } + return null; + } + + /** + * 获取所属工程权限 + * @return List + * @author cwchen + * @date 2025/4/21 18:02 + */ + public static List getAuthProIds() { + LoginUser loginUser = getLoginUser(); + if(loginUser == null){ + return null; + }else { + String roleLevel = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getRoleLevel).orElse("0"); + String proIds = Optional.ofNullable(UserUtil.getLoginUser()).map(LoginUser::getProIds).orElse("-1"); + if(Objects.equals(roleLevel, Constants.ROLE_LEVEL)){ // 非全部权限 + List proList = Arrays.stream(proIds.split(",")).map(String::trim).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); + return proList; + } + } + return null; + } + } diff --git a/src/main/java/com/bonus/digitalSignage/webResult/Constants.java b/src/main/java/com/bonus/digitalSignage/webResult/Constants.java index 73ba377..81cdf83 100644 --- a/src/main/java/com/bonus/digitalSignage/webResult/Constants.java +++ b/src/main/java/com/bonus/digitalSignage/webResult/Constants.java @@ -182,8 +182,8 @@ public class Constants public static final Integer TYPE4 = 4; public static final Integer TRY_COUNT_NUM = 10; - /**角色级别 项目部级*/ - public static final String ROLE_LEVEL = "0"; + /**角色级别 全部*/ + public static final String ROLE_LEVEL = "1"; diff --git a/src/main/resources/mappers/backstage/ProProgressMapper.xml b/src/main/resources/mappers/backstage/ProProgressMapper.xml new file mode 100644 index 0000000..8e3d91a --- /dev/null +++ b/src/main/resources/mappers/backstage/ProProgressMapper.xml @@ -0,0 +1,35 @@ + + + + + + +