Commit 659c0d22 by 宋宇航

考试违规

parent 6d117c30
# 开发规范指南
为保证代码质量、可维护性、安全性与可扩展性,请在开发过程中严格遵循以下规范。
## 一、项目基本信息
- **用户工作目录**`D:\codeminiapp\cnooc_zydeepen-cggl_expert-manage-miniapp`
- **项目名称**:Expert Manage MiniApp
- **项目版本**:1.0.0
- **代码作者**:yu123
- **操作系统**:Windows 11
- **当前时间**:2025-11-15 10:58:47
## 二、技术栈要求
- **主框架**:Spring Boot 2.7.18
- **语言版本**:Java 1.8
- **构建工具**:Maven
- **核心依赖**
- `spring-boot-starter-web`
- `spring-boot-starter-data-redis`
- `lombok`
- `spring-kafka`
- `retrofit`
- `fastjson`
- `jjwt`
- `commons-lang3`
- `commons-collections4`
- `guava`
- `spring-security-crypto`
- `hutool-all`
- `commons-codec`
- `bcprov-jdk15to18`
- `spring-boot-starter-validation`
- `easy-captcha`
- `aspectjweaver`
## 三、目录结构说明
```
cnooc_zydeepen-cggl_expert-manage-miniapp
└── src
└── main
├── java
│ └── com
│ └── cnooc
│ ├── expert
│ │ ├── auth
│ │ │ └── service
│ │ │ └── impl
│ │ ├── common
│ │ │ ├── cache
│ │ │ ├── constant
│ │ │ ├── crypto
│ │ │ ├── exception
│ │ │ ├── filter
│ │ │ ├── interceptor
│ │ │ ├── request
│ │ │ ├── response
│ │ │ └── utils
│ │ ├── config
│ │ ├── controller
│ │ │ ├── auth
│ │ │ ├── expert
│ │ │ │ └── model
│ │ │ │ ├── request
│ │ │ │ └── response
│ │ │ ├── portal
│ │ │ │ └── model
│ │ │ │ ├── request
│ │ │ │ └── response
│ │ │ └── workflow
│ │ ├── external
│ │ │ ├── common
│ │ │ ├── expert
│ │ │ │ ├── api
│ │ │ │ ├── auth
│ │ │ │ │ └── service
│ │ │ │ ├── model
│ │ │ │ │ ├── request
│ │ │ │ │ └── response
│ │ │ │ └── service
│ │ │ ├── portal
│ │ │ │ ├── api
│ │ │ │ └── service
│ │ │ └── workflow
│ │ │ ├── api
│ │ │ └── service
│ │ ├── service
│ │ └── system
│ │ ├── entity
│ │ │ ├── pojo
│ │ │ └── vo
│ │ └── operatelog
│ │ ├── aspect
│ │ └── dto
│ └── expertmanageminiapp
│ ├── manage
│ │ └── entity
│ │ ├── dto
│ │ └── vo
│ └── system
│ └── entity
│ └── dto
└── resources
```
## 四、分层架构规范
| 层级 | 职责说明 | 开发约束与注意事项 |
|-------------|----------------------------------|----------------------------------------------------------------|
| **Controller** | 处理 HTTP 请求与响应,定义 API 接口 | 不得直接访问数据库,必须通过 Service 层调用 |
| **Service** | 实现业务逻辑、事务管理与数据校验 | 必须通过 Repository 层访问数据库;返回 DTO 而非 Entity(除非必要) |
| **Repository** | 数据库访问与持久化操作 | 继承 `JpaRepository`;使用 `@EntityGraph` 避免 N+1 查询问题 |
| **Entity** | 映射数据库表结构 | 不得直接返回给前端(需转换为 DTO);包名统一为 `entity` |
### 接口与实现分离
- 所有接口实现类需放在接口所在包下的 `impl` 子包中。
## 五、安全与性能规范
### 输入校验
- 使用 `@Valid` 与 JSR-303 校验注解(如 `@NotBlank`, `@Size` 等)
- 注意:Spring Boot 2.7.x 中校验注解位于 `javax.validation.constraints.*`
- 禁止手动拼接 SQL 字符串,防止 SQL 注入攻击。
### 事务管理
- `@Transactional` 注解仅用于 **Service 层**方法。
- 避免在循环中频繁提交事务,影响性能。
## 六、代码风格规范
### 命名规范
| 类型 | 命名方式 | 示例 |
|------------|----------------------|-----------------------|
| 类名 | UpperCamelCase | `UserServiceImpl` |
| 方法/变量 | lowerCamelCase | `saveUser()` |
| 常量 | UPPER_SNAKE_CASE | `MAX_LOGIN_ATTEMPTS` |
### 注释规范
- 所有类、方法、字段需添加 **Javadoc** 注释。
- 所有注释使用中文(第一语言)。
### 类型命名规范(阿里巴巴风格)
| 后缀 | 用途说明 | 示例 |
|------|------------------------------|--------------|
| DTO | 数据传输对象 | `UserDTO` |
| DO | 数据库实体对象 | `UserDO` |
| BO | 业务逻辑封装对象 | `UserBO` |
| VO | 视图展示对象 | `UserVO` |
| Query| 查询参数封装对象 | `UserQuery` |
### 实体类简化工具
- 使用 Lombok 注解替代手动编写 getter/setter/构造方法:
- `@Data`
- `@NoArgsConstructor`
- `@AllArgsConstructor`
## 七、扩展性与日志规范
### 接口优先原则
- 所有业务逻辑通过接口定义(如 `UserService`),具体实现放在 `impl` 包中(如 `UserServiceImpl`)。
### 日志记录
- 使用 `@Slf4j` 注解代替 `System.out.println`
## 八、编码原则总结
| 原则 | 说明 |
|------------|--------------------------------------------|
| **SOLID** | 高内聚、低耦合,增强可维护性与可扩展性 |
| **DRY** | 避免重复代码,提高复用性 |
| **KISS** | 保持代码简洁易懂 |
| **YAGNI** | 不实现当前不需要的功能 |
| **OWASP** | 防范常见安全漏洞,如 SQL 注入、XSS 等 |
[1111/175928.101:ERROR:directory_reader_win.cc(43)] FindFirstFile +C:\Users\yu123\AppData\Local\Chrome\User Data\Crashpad\attachments: 系统找不到指定的路径。 (0x3)
...@@ -2,19 +2,12 @@ package com.cnooc.expert.controller.expert; ...@@ -2,19 +2,12 @@ package com.cnooc.expert.controller.expert;
import com.cnooc.expert.common.response.ApiResult; import com.cnooc.expert.common.response.ApiResult;
import com.cnooc.expert.common.response.BasePageResp; import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.expert.model.request.CompanyPageReq; import com.cnooc.expert.controller.expert.model.request.*;
import com.cnooc.expert.controller.expert.model.request.DictNofilterListReq; import com.cnooc.expert.controller.expert.model.response.*;
import com.cnooc.expert.controller.expert.model.request.PingBiaoXiangMuInfoGetByChouQuMaReq;
import com.cnooc.expert.controller.expert.model.request.PingBiaoXiangMuPageReq;
import com.cnooc.expert.controller.expert.model.request.QingJiaJinJiPageReq;
import com.cnooc.expert.controller.expert.model.response.DictListItemResp;
import com.cnooc.expert.controller.expert.model.response.ExpertInfoGetResp;
import com.cnooc.expert.controller.expert.model.response.NofilterListItemResp;
import com.cnooc.expert.controller.expert.model.response.PingBiaoXiangMuInfoGetByChouQuMaResp;
import com.cnooc.expert.controller.expert.model.response.SecondaryUnitListItemResp;
import com.cnooc.expert.service.ExpertService; import com.cnooc.expert.service.ExpertService;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -22,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -22,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List; import java.util.List;
@AllArgsConstructor @AllArgsConstructor
...@@ -133,4 +127,109 @@ public class ExpertController { ...@@ -133,4 +127,109 @@ public class ExpertController {
return ApiResult.successWithResult(expertService.pageJinJiQingJia(req)); return ApiResult.successWithResult(expertService.pageJinJiQingJia(req));
} }
// *** 违规信息/冻结信息 ***
// 违规信息
/**
* 专家个人违规记录查询
* @param req
* @return
*/
@GetMapping("/wei-gui/ji-lu/page")
public ApiResult<BasePageResp<WeiGuiPageResp>> weiGuiJiLuPage(@RequestBody @Validated WeiGuiJiLuPageReq req) {
return ApiResult.successWithResult(expertService.pageWeiGuiList(req));
}
/**
* 违规事项列表查询
* @return
*/
@GetMapping("wei-gui/shi-xiang-list")
public ApiResult<List<WeiGuiPageResp.WeiGuiShiXiang>> weiGuiShiXiangList() {
return ApiResult.successWithResult(expertService.listWeiGuiShiXiang());
}
/**
* 专家违规处理信息详情查询
* @param req
* @return
*/
@GetMapping("/wei-gui/chu-li-xiang-qing")
public ApiResult<Object> weiGuiChuLiXiangQing(@RequestBody @Validated WeiGuiInfoByZhunaJiaWeiGuiGuidReq req) {
return ApiResult.successWithResult(expertService.weiGuiChuLiXiangQing(req));
}
/**
* 根据专家违规guid查询违规处理原因
* @param req
* @return
*/
@GetMapping("/wei-gui/chu-li-yuan-yin")
public ApiResult<Object> weiGuiChuLiYuanYin(@RequestBody @Validated WeiGuiInfoByZhunaJiaWeiGuiGuidReq req) {
return ApiResult.successWithResult(expertService.weiGuiChuLiYuanYin());
}
/**
* 专家违规(审核)处理记录查询
* @param req
* @return
*/
@GetMapping("/wei-gui/chu-li-ji-lu")
public ApiResult<Object> weiGuiChuLiJiLu(@RequestBody @Validated WeiGuiInfoByZhunaJiaWeiGuiGuidReq req) {
return ApiResult.successWithResult(expertService.listWeiGuiChuLiJiLu());
}
// *** 课程培训 和 课后考试
// 课后考试
/**
* 课后考试列表查询
* @param req
* @return
*/
@PostMapping("/kaoShi/getKaoShiPage")
public ApiResult<BasePageResp<KaoShiPageResp>> getKaoShiPage(@RequestBody @Validated KaoShiPageReq req) {
return ApiResult.successWithResult(expertService.pageKaoShi(req));
}
// 课程培训
/**
* 培训课程列表查询
* @param req
* @return
*/
@PostMapping("/peiXun/getPeiXunPage")
public ApiResult<BasePageResp<PeiXunPageResp>> getPeiXunPage(@RequestBody @Validated PeiXunPageReq req) {
return ApiResult.successWithResult(expertService.pagePeiXunKeCheng(req));
}
/**
* 培训课程详情查询
* @param req
* @return
*/
@PostMapping("/peiXun/getPeiXunInfo")
public ApiResult<Object> getPeiXunInfo(@RequestBody @Validated PeiXunKeChengReq req) {
return ApiResult.successWithResult(expertService.getPeiXunInfo(req));
}
/**
* 课程详情下课节列表
* @param req
* @return
*/
@PostMapping("/peiXun/getPeiXunInfo")
public ApiResult<Object> getPeiXunKeChengKeJieList(@RequestBody @Validated PeiXunKeChengReq req) {
return ApiResult.successWithResult(expertService.getPeiXunKeChengKeJieList(req));
}
} }
package com.cnooc.expert.controller.expert.model.request;
import com.cnooc.expert.common.request.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author: FuHongZhang
* @date 2025-11-15 13:58
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class KaoShiPageReq extends BasePageRequest {
/**
* 课程名称
*/
private String courseName;
/**
* 课程类型Guid
*/
private String courseTypeGuid;
/**
* 课节名称
*/
private String lessonName;
/**
* 课程发布时间查询开始时间
*/
private Long courseReleaseStartTimestamp;
/**
* 课程发布时间查询结束时间
*/
private Long courseReleaseEndTimestamp;
/**
* 考试状态
*/
private Short examStatus;
/**
* 专家Guid todo 可能不需要传,需要从后端获取当前登录人guid
*/
private String expertGuid;
/**
* 课程类型名称
*/
private String courseTypeName;
/**
* 排除的课程类型列表 (续期培训,续期考试) 需要了解下业务,小程序端专家申请续期需要进行培训及考试吗
*/
private List<String> excludeCourseTypeList;
}
package com.cnooc.expert.controller.expert.model.request;
import lombok.Data;
/**
* @author: FuHongZhang
* @date 2025-11-15 14:46
*/
@Data
public class PeiXunKeChengReq {
/**
* 课程Guid
*/
private String courseGuid;
// -------查询课程详情下课节信息入参----------
private String userId; // 从服务上获取
// 必传
// private String courseGuid;
}
package com.cnooc.expert.controller.expert.model.request;
import com.cnooc.expert.common.request.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author: FuHongZhang
* @date 2025-11-15 14:25
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PeiXunPageReq extends BasePageRequest {
/**
* courseName 课程名称
*/
private String courseName;
/**
* courseTypeGuid 课程类型Guid
*/
private String courseTypeGuid;
/**
* courseTypeName 课程类型名称
*/
private String courseTypeName;
/**
* courseReleaseStartTimestamp 课程发布时间查询开始时间
*/
private Long courseReleaseStartTimestamp;
/**
* courseReleaseEndTimestamp 课程发布时间查询结束时间
*/
private Long courseReleaseEndTimestamp;
/**
* 学习进度状态(10:未完成;20:已完成)
*/
private Short progressStatus;
/**
* 当前用户guid
*/
private String userGuid;
/**
* 当前用户guid
*/
private String expertGuid;
/**
* 二开 - 排除的课程类型列表 (续期考试,续期培训)
*/
private List<String> excludeCourseTypeList;
}
package com.cnooc.expert.controller.expert.model.request;
import lombok.Data;
/**
* @author: FuHongZhang
* @date 2025-11-15 11:23
*/
@Data
public class WeiGuiInfoByZhunaJiaWeiGuiGuidReq {
// 专家违规的guid
private String guid;
// 专家违规的guids weiguiReason
private String guids;
// 专家违规guid
private String zhuanJiaWeiGuiGuid;
}
package com.cnooc.expert.controller.expert.model.request;
import com.cnooc.expert.common.request.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author: FuHongZhang
* @date 2025-11-14 17:39
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class WeiGuiJiLuPageReq extends BasePageRequest {
private String zhuanJiaGuid;
}
package com.cnooc.expert.controller.expert.model.response;
import lombok.Builder;
import lombok.Data;
/**
* @author: FuHongZhang
* @date 2025-11-15 13:59
*/
@Data
@Builder
public class KaoShiPageResp {
private String courseGuid;
private String courseName;
private Long courseReleaseTimestamp;
private String courseTypeName;
private Object examPassTimestamp;
private Integer examResult;
private Double jiGeScore;
private String lessonGuid;
private String lessonName;
private Double score;
private Object studyProgress;
private String testPaperGuid;
private Object zuiGaoScore;
}
package com.cnooc.expert.controller.expert.model.response;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author: FuHongZhang
* @date 2025-11-15 14:26
*/
@Data
@Builder
public class PeiXunPageResp {
/**
* courseGuid 课程Guid
*/
private String courseGuid;
/**
* courseName 课程名称
*/
private String courseName;
/**
* courseTypeName 课程类型名称
*/
private String courseTypeName;
/**
* lessonCount 课节数量
*/
private Integer lessonCount;
/**
* courseReleaseTimestamp 发布时间
*/
private Long courseReleaseTimestamp;
/**
* 学习进度
*/
private BigDecimal studyProgress;
/**
* 学习进度状态(10:未完成;20:已完成)
*/
private Short progressStatus;
/**
* 培训课程详情
*/
@Data
@Builder
public static class PeiXunKeChengInfo {
/** 课程唯一标识(GUID) */
private String courseGuid;
/** 课程介绍 */
private String courseIntroduction;
/** 课程名称 */
private String courseName;
/** 课程发布状态() */
private Short courseReleaseStatus;
/** 课程发布时间戳(毫秒) */
private Long courseReleaseTimestamp;
/** 课程类型唯一标识(GUID) */
private String courseTypeGuid;
/** 课程类型名称(如:日常培训、定期培训) */
private String courseTypeName;
/** 学习后是否需要考试(true=是,false=否) */
private Boolean isTestAfterLearn;
/** 课程包含的课节数量 */
private Integer lessonCount;
/** 关联的试卷唯一标识(GUID) */
private String testPaperGuid;
}
}
package com.cnooc.expert.controller.expert.model.response;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @author: FuHongZhang
* @date 2025-11-14 20:28
*/
@Data
@Builder
public class WeiGuiPageResp {
private String bidSectionCode;
private String bidSectionName;
private String businessId;
private String chouquRenwuGuid;
private Long chuliEndTime;
private String chuliPeriod;
private Long chuliStartTime;
private String fujianGuid;
private Object serialNum;
private String shenFenZheng;
private Integer shenheStatus;
private String shenheStatusName;
private Long submitTime;
private String submitTimeStr;
private String submiter;
private Integer weiguiChuliShichang;
private String weiguiChuliShichangStr;
private String weiguiReason;
private String weiguiReasonName;
private String weiguiXiangxiMiaoshu;
private String zhuanJiaAdAccount;
private String zhuanJiaCode;
private Object zhuanJiaZhuangTai;
private String zhuanJiaZhuangTaiName;
private String zhuanjiaGuid;
private String zhuanjiaName;
private String zhuanjiaWeiguiGuid;
@Data
@Builder
public static class WeiGuiShiXiang {
private Long createTime;
private String creatorGuid;
private String creatorName;
private Boolean isDeleted;
private String modifierGuid;
private String modifierName;
private Long modifyTime;
private Integer qiYongstatus;
private String weiguiChuliReason;
private String weiguiChuliShichangs;
private String weiguiShixiangGuid;
}
@Data
@Builder
public static class WeiGuiChuLiXiangQingResp {
private String applyBusinessId;
private Integer applyshenheStatus;
private String businessId;
private String chouquRenwuGuid;
private Long chuliEndTime;
private Long chuliStartTime;
private Long createTime;
private String creatorGuid;
private String creatorName;
private String fujianGuid;
private Boolean isDeleted;
private String modifierGuid;
private String modifierName;
private Long modifyTime;
private String shenheRen;
private Integer shenheStatus;
private Long shenheTime;
private Long submitTime;
private String submiter;
private String submiterGuid;
private Long submiterPersonId;
private String tijiaorenEmail;
private String tijiaorenPhone;
private Integer weiguiChuliShichang;
private String weiguiReason;
private String weiguiReasonName;
private String weiguiXiangxiMiaoshu;
private String zhuanJiaAdAccount;
private String zhuanJiaCode;
private List<ZhuanJiaItem> zhuanJiaList;
private Object zhuanJiaZhuangTai;
private String zhuanjiaGuid;
private String zhuanjiaName;
private String zhuanjiaWeiguiGuid;
}
@Data
@Builder
public static class ZhuanJiaItem {
private String chouQuQingKuangGuid;
private String chouQuRenWuGuid;
private Object pingShenType;
private String zhuanJiaAdAccount;
private String zhuanJiaCode;
private String zhuanJiaGuid;
private String zhuanJiaName;
private Integer zhuanJiaZhuangTai;
}
@Data
@Builder
public static class WeiGuiChuLiYuanYin {
private Long createTime;
private String creatorGuid;
private String creatorName;
private Boolean isDeleted;
private String modifierGuid;
private String modifierName;
private Long modifyTime;
private Integer qiYongstatus;
private String weiguiChuliReason;
private String weiguiChuliShichangs;
private String weiguiShixiangGuid;
}
@Data
@Builder
public static class WeiGuiShenHeChuliJiLu {
private Object bianGengXuHao;
private String buTongGuoEndSequence;
private Object buTongGuoStartSequence;
private Long createTime;
private String createTimeText;
private String creatorGuid;
private String creatorName;
private String daiShenRenGuids;
private String daiShenRenNames;
private String fujianGuid;
private Boolean isCurrent;
private Boolean isDeleted;
private Boolean isFinish;
private String modifierGuid;
private String modifierName;
private Object modifyTime;
private String modifyTimeText;
private String remark;
private Object sequence;
private String shenHeBuMenGuid;
private String shenHeBuMenName;
private String shenHeFuJianGuid;
private String shenHeGuid;
private String shenHeRenGuid;
private String shenHeRenName;
private Integer shenHeStatus;
private Long shenHeTime;
private String shenHeTimeText;
private String shenHeYiJian;
private String shenPiJieGuoGuid;
private Object shenQingLeiXing;
private Boolean shiFouYiFaZhuanJia;
private Boolean shiFouZhuanJiao;
private String shiXiangGuid;
private String shiXiangName;
private Object shiXiangType;
private Object shouLiTime;
private String shouLiTimeText;
private String tiJiaoRenGuid;
private String tiJiaoRenName;
private Long tiJiaoTime;
private String tiJiaoTimeText;
private String xiaJiShenHeRenGuid;
private String xiaJiShenHeRenName;
private String xiangMuGuid;
private Boolean zhiJieHuiFu;
}
}
package com.cnooc.expert.service; package com.cnooc.expert.service;
import com.cnooc.expert.common.response.BasePageResp; import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.expert.model.request.CompanyPageReq; import com.cnooc.expert.controller.expert.model.request.*;
import com.cnooc.expert.controller.expert.model.request.DictNofilterListReq; import com.cnooc.expert.controller.expert.model.response.*;
import com.cnooc.expert.controller.expert.model.request.PingBiaoXiangMuInfoGetByChouQuMaReq;
import com.cnooc.expert.controller.expert.model.request.PingBiaoXiangMuPageReq;
import com.cnooc.expert.controller.expert.model.request.QingJiaJinJiPageReq;
import com.cnooc.expert.controller.expert.model.response.CompanyPageResp;
import com.cnooc.expert.controller.expert.model.response.DictListItemResp;
import com.cnooc.expert.controller.expert.model.response.ExpertInfoGetResp;
import com.cnooc.expert.controller.expert.model.response.NofilterListItemResp;
import com.cnooc.expert.controller.expert.model.response.PingBiaoXiangMuInfoGetByChouQuMaResp;
import com.cnooc.expert.controller.expert.model.response.PingBiaoXiangMuPageResp;
import com.cnooc.expert.controller.expert.model.response.QingJiaJinJiPageResp;
import com.cnooc.expert.controller.expert.model.response.SecondaryUnitListItemResp;
import com.cnooc.expert.external.expert.model.request.ExpertInfoGetReq; import com.cnooc.expert.external.expert.model.request.ExpertInfoGetReq;
import com.cnooc.expert.external.expert.model.response.ExpertInfoGetTestResp; import com.cnooc.expert.external.expert.model.response.ExpertInfoGetTestResp;
import com.cnooc.expert.external.expert.service.ExpertServiceClient; import com.cnooc.expert.external.expert.service.ExpertServiceClient;
...@@ -23,7 +12,9 @@ import com.google.common.collect.Lists; ...@@ -23,7 +12,9 @@ import com.google.common.collect.Lists;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -873,4 +864,738 @@ public class ExpertService { ...@@ -873,4 +864,738 @@ public class ExpertService {
.data(data) .data(data)
.build(); .build();
} }
public BasePageResp<WeiGuiPageResp> pageWeiGuiList(WeiGuiJiLuPageReq req) {
List<WeiGuiPageResp> list = Lists.newArrayList(
WeiGuiPageResp.builder()
.bidSectionCode("24-CNCCC-GC-GK-5142/01")
.bidSectionName("c测试可视化待办")
.businessId("1241043784526479360")
.chouquRenwuGuid("07072824-728b-417c-add9-17f94f746e10")
.chuliEndTime(1723910399999L)
.chuliPeriod("")
.chuliStartTime(1715929495719L)
.fujianGuid("")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(50)
.shenheStatusName("")
.submitTime(1715929400628L)
.submitTimeStr("")
.submiter("物装中心十四")
.weiguiChuliShichang(3)
.weiguiChuliShichangStr("")
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiXiangxiMiaoshu("12333")
.zhuanJiaAdAccount("qiaojf")
.zhuanJiaCode("000030")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("8ffb7651-1416-4f74-a590-1f0cf860463b")
.zhuanjiaName("龙测试")
.zhuanjiaWeiguiGuid("316cf113-2233-4118-9bd6-713e75b81363")
.build(),
// 第2条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6374/01")
.bidSectionName("【测试】专家数据准备-公开20231201")
.businessId("1180170399706714113")
.chouquRenwuGuid("a9d36440-e9d2-454b-87a1-1c5974509bec")
.chuliEndTime(null)
.chuliPeriod("")
.chuliStartTime(1701416394784L)
.fujianGuid("1181242285830963201")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(40)
.shenheStatusName("")
.submitTime(1701671712704L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(3)
.weiguiChuliShichangStr("")
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiXiangxiMiaoshu("侧深")
.zhuanJiaAdAccount("ex_yangbin9")
.zhuanJiaCode("000026")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("d5438f77-543a-44cb-b1db-a4a9b51fcc5b")
.zhuanjiaName("李建")
.zhuanjiaWeiguiGuid("2df73bb7-46f4-44f7-a863-9bebe8cc30ba")
.build(),
// 第3条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6374/01")
.bidSectionName("【测试】专家数据准备-公开20231201")
.businessId("1180169298274095105")
.chouquRenwuGuid("a9d36440-e9d2-454b-87a1-1c5974509bec")
.chuliEndTime(1709308799999L)
.chuliPeriod("")
.chuliStartTime(1701415932775L)
.fujianGuid("1180169289942958081")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(50)
.shenheStatusName("")
.submitTime(1701415892168L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(3)
.weiguiChuliShichangStr("")
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiXiangxiMiaoshu("测试")
.zhuanJiaAdAccount("ex_yangbin9")
.zhuanJiaCode("000004")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("62ffa331-de1e-4ae6-9e6f-4743411a936f")
.zhuanjiaName("张颖")
.zhuanjiaWeiguiGuid("8c5db0c5-df09-459e-9f43-803173457a84")
.build(),
// 第4条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6374/01")
.bidSectionName("【测试】专家数据准备-公开20231201")
.businessId("1180168290248626177")
.chouquRenwuGuid("a9d36440-e9d2-454b-87a1-1c5974509bec")
.chuliEndTime(1733068799999L)
.chuliPeriod("")
.chuliStartTime(1701415692839L)
.fujianGuid("")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(50)
.shenheStatusName("")
.submitTime(1701415653793L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(12)
.weiguiChuliShichangStr("")
.weiguiReason("4f337ae8-c921-4882-bf5f-c2d6ff132cdb")
.weiguiReasonName("有关部门依法对投诉进行调查时,不予配合")
.weiguiXiangxiMiaoshu("侧深V")
.zhuanJiaAdAccount("ex_yangbin9")
.zhuanJiaCode("000019")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("b1cad18b-6b29-4c0b-b5ad-8013c771184c")
.zhuanjiaName("杨春龙")
.zhuanjiaWeiguiGuid("3bc65f24-9c60-449e-b364-e3670f6c7bf2")
.build(),
// 第5条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6374/01")
.bidSectionName("【测试】专家数据准备-公开20231201")
.businessId("1180167048596230144")
.chouquRenwuGuid("a9d36440-e9d2-454b-87a1-1c5974509bec")
.chuliEndTime(1709308799999L)
.chuliPeriod("")
.chuliStartTime(1701415475043L)
.fujianGuid("")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(50)
.shenheStatusName("")
.submitTime(1701415390605L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(3)
.weiguiChuliShichangStr("")
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiXiangxiMiaoshu("测试")
.zhuanJiaAdAccount("ex_yangbin9")
.zhuanJiaCode("000024")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("b0bd5255-6e08-4828-923d-be035e3f461e")
.zhuanjiaName("郝亮")
.zhuanjiaWeiguiGuid("7bc6690d-a986-4590-92a6-dee02304b941")
.build(),
// 第6条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6361/01")
.bidSectionName("【测试】专家组建数据-20231129")
.businessId("1179472368429297665")
.chouquRenwuGuid("0a8daf5d-d351-4584-87be-62eb2e00b9f1")
.chuliEndTime(null)
.chuliPeriod("")
.chuliStartTime(null)
.fujianGuid("1179474416336109568")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(40)
.shenheStatusName("")
.submitTime(1701250220305L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(3)
.weiguiChuliShichangStr("")
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiXiangxiMiaoshu("测试")
.zhuanJiaAdAccount("heyang")
.zhuanJiaCode("000011")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("1167a862-5c24-4a31-a363-a6c9a4174170")
.zhuanjiaName("何阳")
.zhuanjiaWeiguiGuid("5f4176fe-cc99-4bce-9fb0-22d26c3632c4")
.build(),
// 第7条数据
WeiGuiPageResp.builder()
.bidSectionCode("23-CNCCC-GC-GK-6361/01")
.bidSectionName("【测试】专家组建数据-20231129")
.businessId("1179473917188632576")
.chouquRenwuGuid("0a8daf5d-d351-4584-87be-62eb2e00b9f1")
.chuliEndTime(1703865599999L)
.chuliPeriod("")
.chuliStartTime(1701250198453L)
.fujianGuid("")
.serialNum(null)
.shenFenZheng("")
.shenheStatus(50)
.shenheStatusName("")
.submitTime(1701250095570L)
.submitTimeStr("")
.submiter("物装中心一")
.weiguiChuliShichang(1)
.weiguiChuliShichangStr("")
.weiguiReason("4f337ae8-c921-4882-bf5f-c2d6ff132cdb")
.weiguiReasonName("有关部门依法对投诉进行调查时,不予配合")
.weiguiXiangxiMiaoshu("测试")
.zhuanJiaAdAccount("huangmeng")
.zhuanJiaCode("000010")
.zhuanJiaZhuangTai(null)
.zhuanJiaZhuangTaiName("")
.zhuanjiaGuid("3c1e76e9-6cfa-4bfb-9bf2-d5cc1da1bf3b")
.zhuanjiaName("黄孟")
.zhuanjiaWeiguiGuid("b0e6ac17-e185-44f1-b2a8-6fd72020e168")
.build()
);
return BasePageResp.<WeiGuiPageResp>builder()
.current(1)
.pages(1)
.total(7)
.data(list)
.build();
}
public List<WeiGuiPageResp.WeiGuiShiXiang> listWeiGuiShiXiang() {
ArrayList<WeiGuiPageResp.WeiGuiShiXiang> list = Lists.newArrayList(
// 第1条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698737053322L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1698737082055L)
.qiYongstatus(1)
.weiguiChuliReason("向他人透露对投标文件的评审和比较、中标候选人的推荐以及与评标有关的其他情况")
.weiguiChuliShichangs("-1")
.weiguiShixiangGuid("23490f8f-c4e1-4726-a7d8-ad623f3e133f")
.build(),
// 第2条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698737076518L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1698737079691L)
.qiYongstatus(1)
.weiguiChuliReason("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiChuliShichangs("-1,3")
.weiguiShixiangGuid("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.build(),
// 第3条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698736884442L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1715860266425L)
.qiYongstatus(1)
.weiguiChuliReason("有关部门依法对投诉进行调查时,不予配合")
.weiguiChuliShichangs("3,6,12,0")
.weiguiShixiangGuid("4f337ae8-c921-4882-bf5f-c2d6ff132cdb")
.build(),
// 第4条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698737002259L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1698737084120L)
.qiYongstatus(1)
.weiguiChuliReason("违反评标工作纪律或存在其他违反执业规范或者职业道德行为,情节较轻")
.weiguiChuliShichangs("12,24,36")
.weiguiShixiangGuid("5419e886-a624-41f3-acb1-87cd334b3e25")
.build(),
// 第5条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698736902543L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1715860276633L)
.qiYongstatus(1)
.weiguiChuliReason("违反评标工作纪律或存在其他违反执业规范或者职业道德行为,未造成实质性影响")
.weiguiChuliShichangs("3,6,12,0")
.weiguiShixiangGuid("5f789f05-67a1-4d45-8e58-2a7dbd656f40")
.build(),
// 第6条数据
WeiGuiPageResp.WeiGuiShiXiang.builder()
.createTime(1698736949297L)
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1698737089858L)
.qiYongstatus(1)
.weiguiChuliReason("暗示或者诱导投标人对投标文件作出澄清、说明或者接受投标人主动提出的澄清、说明,影响评标公正性")
.weiguiChuliShichangs("12,24,36")
.weiguiShixiangGuid("6386e0f8-6995-41d7-8247-ef3a427830c5")
.build()
);
return list;
}
public Object weiGuiChuLiXiangQing(WeiGuiInfoByZhunaJiaWeiGuiGuidReq req) {
ArrayList<WeiGuiPageResp.ZhuanJiaItem> zhuanJiaItems = Lists.newArrayList(
WeiGuiPageResp.ZhuanJiaItem.builder()
.chouQuQingKuangGuid("")
.chouQuRenWuGuid("")
.pingShenType(null)
.zhuanJiaAdAccount("qiaojf")
.zhuanJiaCode("000030")
.zhuanJiaGuid("8ffb7651-1416-4f74-a590-1f0cf860463b")
.zhuanJiaName("龙测试")
.zhuanJiaZhuangTai(11)
.build()
);
return WeiGuiPageResp.WeiGuiChuLiXiangQingResp.builder()
.applyBusinessId("1240990734186446848")
.applyshenheStatus(50)
.businessId("1241043784526479360")
.chouquRenwuGuid("07072824-728b-417c-add9-17f94f746e10")
.chuliEndTime(1723910399999L)
.chuliStartTime(1715929495719L)
.createTime(1715916848348L)
.creatorGuid("1171528704599830529")
.creatorName("物装中心十四")
.fujianGuid("")
.isDeleted(false)
.modifierGuid("1171528704599830529")
.modifierName("物装中心十四")
.modifyTime(1715929400639L)
.shenheRen("中化建国际招标有限责任公司")
.shenheStatus(50)
.shenheTime(1715929495790L)
.submitTime(1715929400628L)
.submiter("物装中心十四")
.submiterGuid("1171528704599830529")
.submiterPersonId(1171739935665954817L)
.tijiaorenEmail("")
.tijiaorenPhone("18912344321")
.weiguiChuliShichang(3)
.weiguiReason("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.weiguiReasonName("")
.weiguiXiangxiMiaoshu("12333")
.zhuanJiaAdAccount("")
.zhuanJiaCode("")
.zhuanJiaList(zhuanJiaItems) // 关联专家列表
.zhuanJiaZhuangTai(null)
.zhuanjiaGuid("8ffb7651-1416-4f74-a590-1f0cf860463b")
.zhuanjiaName("")
.zhuanjiaWeiguiGuid("316cf113-2233-4118-9bd6-713e75b81363")
.build();
}
public Object weiGuiChuLiYuanYin() {
ArrayList<WeiGuiPageResp.WeiGuiChuLiYuanYin> weiGuiChuLiYuanYins = Lists.newArrayList(
WeiGuiPageResp.WeiGuiChuLiYuanYin.builder()
.createTime(1698737076518L) // 时间戳加L标识long类型
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.isDeleted(false)
.modifierGuid("1005209701203447809")
.modifierName("中化建国际招标有限责任公司")
.modifyTime(1698737079691L)
.qiYongstatus(1)
.weiguiChuliReason("严重违反评标工作纪律、执业规范或者职业道德")
.weiguiChuliShichangs("-1,3") // 保留原字符串格式
.weiguiShixiangGuid("4c1102e5-bf31-491d-8879-1ea335f5e40f")
.build()
);
return weiGuiChuLiYuanYins;
}
public Object listWeiGuiChuLiJiLu() {
return Lists.newArrayList(
WeiGuiPageResp.WeiGuiShenHeChuliJiLu.builder()
.bianGengXuHao(null)
.buTongGuoEndSequence("")
.buTongGuoStartSequence(null)
.createTime(1715929495805L)
.createTimeText("2024-05-17 15:04:55")
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.daiShenRenGuids("")
.daiShenRenNames("")
.fujianGuid("")
.isCurrent(false)
.isDeleted(false)
.isFinish(true)
.modifierGuid("")
.modifierName("")
.modifyTime(null)
.modifyTimeText("")
.remark("")
.sequence(null)
.shenHeBuMenGuid("")
.shenHeBuMenName("")
.shenHeFuJianGuid("")
.shenHeGuid("789bba36-62a8-4dba-aa10-be7b5b6fb662")
.shenHeRenGuid("")
.shenHeRenName("中化建国际招标有限责任公司")
.shenHeStatus(50)
.shenHeTime(1715929495805L)
.shenHeTimeText("2024-05-17 15:04:55")
.shenHeYiJian("")
.shenPiJieGuoGuid("3c935668-2087-416e-af58-24a43da2e4f7")
.shenQingLeiXing(null)
.shiFouYiFaZhuanJia(false)
.shiFouZhuanJiao(false)
.shiXiangGuid("316cf113-2233-4118-9bd6-713e75b81363")
.shiXiangName("")
.shiXiangType(null)
.shouLiTime(null)
.shouLiTimeText("")
.tiJiaoRenGuid("")
.tiJiaoRenName("中化建国际招标有限责任公司")
.tiJiaoTime(1715929495805L)
.tiJiaoTimeText("2024-05-17 15:04:55")
.xiaJiShenHeRenGuid("")
.xiaJiShenHeRenName("")
.xiangMuGuid("")
.zhiJieHuiFu(false)
.build(),
// 第2条记录
WeiGuiPageResp.WeiGuiShenHeChuliJiLu.builder()
.bianGengXuHao(null)
.buTongGuoEndSequence("")
.buTongGuoStartSequence(null)
.createTime(1715929481048L)
.createTimeText("2024-05-17 15:04:41")
.creatorGuid("1171528704599830529")
.creatorName("物装中心十四")
.daiShenRenGuids("")
.daiShenRenNames("")
.fujianGuid("")
.isCurrent(false)
.isDeleted(false)
.isFinish(true)
.modifierGuid("")
.modifierName("")
.modifyTime(null)
.modifyTimeText("")
.remark("")
.sequence(null)
.shenHeBuMenGuid("")
.shenHeBuMenName("")
.shenHeFuJianGuid("")
.shenHeGuid("8361f885-2a4b-4870-9d6a-ebee5171448b")
.shenHeRenGuid("1171739935665954817")
.shenHeRenName("物装中心十四")
.shenHeStatus(30)
.shenHeTime(1715929481048L)
.shenHeTimeText("2024-05-17 15:04:41")
.shenHeYiJian("")
.shenPiJieGuoGuid("d0a846ac-2a72-4603-86a4-fa22af893841")
.shenQingLeiXing(null)
.shiFouYiFaZhuanJia(false)
.shiFouZhuanJiao(false)
.shiXiangGuid("316cf113-2233-4118-9bd6-713e75b81363")
.shiXiangName("")
.shiXiangType(null)
.shouLiTime(null)
.shouLiTimeText("")
.tiJiaoRenGuid("1171739935665954817")
.tiJiaoRenName("物装中心十四")
.tiJiaoTime(1715929481048L)
.tiJiaoTimeText("2024-05-17 15:04:41")
.xiaJiShenHeRenGuid("")
.xiaJiShenHeRenName("")
.xiangMuGuid("")
.zhiJieHuiFu(false)
.build(),
// 第3条记录
WeiGuiPageResp.WeiGuiShenHeChuliJiLu.builder()
.bianGengXuHao(null)
.buTongGuoEndSequence("")
.buTongGuoStartSequence(null)
.createTime(1715929259722L)
.createTimeText("2024-05-17 15:00:59")
.creatorGuid("1005209701203447809")
.creatorName("中化建国际招标有限责任公司")
.daiShenRenGuids("")
.daiShenRenNames("")
.fujianGuid("")
.isCurrent(false)
.isDeleted(false)
.isFinish(true)
.modifierGuid("")
.modifierName("")
.modifyTime(null)
.modifyTimeText("")
.remark("vs")
.sequence(null)
.shenHeBuMenGuid("")
.shenHeBuMenName("")
.shenHeFuJianGuid("")
.shenHeGuid("8e27c179-c64f-4e16-81aa-1050a41394f7")
.shenHeRenGuid("")
.shenHeRenName("中化建国际招标有限责任公司")
.shenHeStatus(40)
.shenHeTime(1715929259722L)
.shenHeTimeText("2024-05-17 15:00:59")
.shenHeYiJian("")
.shenPiJieGuoGuid("dbc40cdb-8db5-42b0-884f-bf4d3eb2823d")
.shenQingLeiXing(null)
.shiFouYiFaZhuanJia(false)
.shiFouZhuanJiao(false)
.shiXiangGuid("316cf113-2233-4118-9bd6-713e75b81363")
.shiXiangName("")
.shiXiangType(null)
.shouLiTime(null)
.shouLiTimeText("")
.tiJiaoRenGuid("")
.tiJiaoRenName("中化建国际招标有限责任公司")
.tiJiaoTime(1715929259722L)
.tiJiaoTimeText("2024-05-17 15:00:59")
.xiaJiShenHeRenGuid("")
.xiaJiShenHeRenName("")
.xiangMuGuid("")
.zhiJieHuiFu(false)
.build(),
// 第4条记录
WeiGuiPageResp.WeiGuiShenHeChuliJiLu.builder()
.bianGengXuHao(null)
.buTongGuoEndSequence("")
.buTongGuoStartSequence(null)
.createTime(1715929171875L)
.createTimeText("2024-05-17 14:59:31")
.creatorGuid("1171528704599830529")
.creatorName("物装中心十四")
.daiShenRenGuids("")
.daiShenRenNames("")
.fujianGuid("")
.isCurrent(false)
.isDeleted(false)
.isFinish(true)
.modifierGuid("")
.modifierName("")
.modifyTime(null)
.modifyTimeText("")
.remark("")
.sequence(null)
.shenHeBuMenGuid("")
.shenHeBuMenName("")
.shenHeFuJianGuid("")
.shenHeGuid("b1712b8b-5d4d-4a24-af83-9e5f6d1bd013")
.shenHeRenGuid("1171739935665954817")
.shenHeRenName("物装中心十四")
.shenHeStatus(30)
.shenHeTime(1715929171875L)
.shenHeTimeText("2024-05-17 14:59:31")
.shenHeYiJian("")
.shenPiJieGuoGuid("d0a846ac-2a72-4603-86a4-fa22af893841")
.shenQingLeiXing(null)
.shiFouYiFaZhuanJia(false)
.shiFouZhuanJiao(false)
.shiXiangGuid("316cf113-2233-4118-9bd6-713e75b81363")
.shiXiangName("")
.shiXiangType(null)
.shouLiTime(null)
.shouLiTimeText("")
.tiJiaoRenGuid("1171739935665954817")
.tiJiaoRenName("物装中心十四")
.tiJiaoTime(1715929171875L)
.tiJiaoTimeText("2024-05-17 14:59:31")
.xiaJiShenHeRenGuid("")
.xiaJiShenHeRenName("")
.xiangMuGuid("")
.zhiJieHuiFu(false)
.build()
);
}
public BasePageResp<KaoShiPageResp> pageKaoShi(KaoShiPageReq req) {
List<KaoShiPageResp> list = Arrays.asList(
KaoShiPageResp.builder()
.courseGuid("3a7f2d9e-1b4c-4890-8765-1234567890ab")
.courseName("2025年度新专家入库培训")
.courseReleaseTimestamp(1735689600000L) // 2025-01-01 00:00:00
.courseTypeName("入库培训")
.examPassTimestamp(null)
.examResult(0)
.jiGeScore(60.00)
.lessonGuid("")
.lessonName("")
.score(0.00)
.studyProgress(null)
.testPaperGuid("1e2d3c4b-5f6a-7890-abcd-ef1234567890")
.zuiGaoScore(null)
.build(),
// 第2条:定期培训(假数据)
KaoShiPageResp.builder()
.courseGuid("7d9f8e7c-6b5a-4032-1987-6543210fedcb")
.courseName("2025Q2评标规范定期培训")
.courseReleaseTimestamp(1743465600000L) // 2025-04-01 00:00:00
.courseTypeName("定期培训")
.examPassTimestamp(null)
.examResult(0)
.jiGeScore(60.00)
.lessonGuid("")
.lessonName("")
.score(0.00)
.studyProgress(null)
.testPaperGuid("1e2d3c4b-5f6a-7890-abcd-ef1234567890")
.zuiGaoScore(null)
.build(),
// 第3条:日常培训(假数据)
KaoShiPageResp.builder()
.courseGuid("2b4d6f8a-9c7e-4135-8260-abcdef123456")
.courseName("评标保密制度日常培训")
.courseReleaseTimestamp(1750329600000L) // 2025-07-19 00:00:00
.courseTypeName("日常培训")
.examPassTimestamp(null)
.examResult(0)
.jiGeScore(60.00)
.lessonGuid("")
.lessonName("")
.score(0.00)
.studyProgress(null)
.testPaperGuid("1e2d3c4b-5f6a-7890-abcd-ef1234567890")
.zuiGaoScore(null)
.build(),
// 第4条:专项培训(假数据)
KaoShiPageResp.builder()
.courseGuid("9f7d5b3a-8c6e-4201-7359-654321fedcba")
.courseName("电子评标系统操作专项培训")
.courseReleaseTimestamp(1758192000000L) // 2025-10-18 00:00:00
.courseTypeName("专项培训")
.examPassTimestamp(null)
.examResult(0)
.jiGeScore(60.00)
.lessonGuid("")
.lessonName("")
.score(0.00)
.studyProgress(null)
.testPaperGuid("1e2d3c4b-5f6a-7890-abcd-ef1234567890")
.zuiGaoScore(null)
.build()
);
return BasePageResp.<KaoShiPageResp>builder()
.current(1)
.pages(1)
.total(4)
.data(list)
.build();
}
public BasePageResp<PeiXunPageResp> pagePeiXunKeCheng(PeiXunPageReq req) {
ArrayList<PeiXunPageResp> list = Lists.newArrayList(
// 第1条:日常培训(含3课时,2025年最新发布)
PeiXunPageResp.builder()
.courseGuid("1a2b3c4d-5e6f-4789-8765-4321fedcba01")
.courseName("2025评标规范日常培训(基础版)")
.courseReleaseTimestamp(1758902400000L) // 2025-10-27 00:00:00
.courseTypeName("日常培训")
.lessonCount(3)
.progressStatus((short) 0)
.studyProgress(BigDecimal.valueOf(0.00))
.build(),
// 第2条:定期培训(含6课时,季度更新)
PeiXunPageResp.builder()
.courseGuid("2b3c4d5e-6f7a-4890-9876-54321fedcba2")
.courseName("2025Q4评标专家定期考核培训")
.courseReleaseTimestamp(1749667200000L) // 2025-07-12 00:00:00
.courseTypeName("定期培训")
.lessonCount(6)
.progressStatus((short) 0)
.studyProgress(BigDecimal.valueOf(0.00))
.build(),
// 第3条:入库培训(含8课时,新专家必备)
PeiXunPageResp.builder()
.courseGuid("3c4d5e6f-7a8b-4901-0987-654321fedcba3")
.courseName("2025新评标专家入库必修培训")
.courseReleaseTimestamp(1735689600000L) // 2025-01-01 00:00:00
.courseTypeName("入库培训")
.lessonCount(8)
.progressStatus((short) 0)
.studyProgress(BigDecimal.valueOf(0.00))
.build(),
// 第4条:专项培训(含4课时,系统操作类)
PeiXunPageResp.builder()
.courseGuid("4d5e6f7a-8b9c-4012-1987-7654321fedcba4")
.courseName("电子评标系统操作专项培训(2025升级)")
.courseReleaseTimestamp(1755225600000L) // 2025-08-14 00:00:00
.courseTypeName("专项培训")
.lessonCount(4)
.progressStatus((short) 0)
.studyProgress(BigDecimal.valueOf(0.00))
.build()
);
return BasePageResp.<PeiXunPageResp>builder()
.current(1)
.pages(1)
.total(4)
.data(list)
.build();
}
public Object getPeiXunInfo(PeiXunKeChengReq req) {
return PeiXunPageResp.PeiXunKeChengInfo.builder()
.courseGuid("0966b932-cf4f-45bc-bdbf-03ccc4a7e92a")
.courseIntroduction("日常培训test")
.courseName("日常培训test")
.courseReleaseStatus((short) 1)
.courseReleaseTimestamp(1758902400000L)
.courseTypeGuid("7e68a592-91b1-4ce9-b946-59af183ef5ab")
.courseTypeName("日常培训")
.isTestAfterLearn(true)
.lessonCount(2)
.testPaperGuid("0d747edf-eb8b-4a06-8f91-3970adb54eed")
.build();
}
public Object getPeiXunKeChengKeJieList(PeiXunKeChengReq req) {
}
} }
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