├── .github └── workflows │ ├── backup.yml │ ├── main.yml │ └── release.yml ├── .gitignore ├── Dockerfile ├── README.md ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── softeng │ │ └── dingtalk │ │ ├── DingtalkApplication.java │ │ ├── api │ │ ├── BaseApi.java │ │ ├── BlockChainApi.java │ │ ├── ContactsApi.java │ │ ├── MessageApi.java │ │ ├── OAApi.java │ │ ├── ReportApi.java │ │ └── ScheduleApi.java │ │ ├── aspect │ │ └── ACBlockchainAspect.java │ │ ├── bean │ │ ├── Chaincode.java │ │ ├── Orderers.java │ │ └── Peers.java │ │ ├── component │ │ ├── AcAlgorithm.java │ │ ├── DateUtils.java │ │ ├── EncryptorComponent.java │ │ └── Timer.java │ │ ├── config │ │ ├── CacheConfig.java │ │ ├── FabricConfig.java │ │ ├── SwaggerConfig.java │ │ └── WebMvcConfig.java │ │ ├── constant │ │ ├── DingApiUrlConstant.java │ │ ├── ImageUrlConstant.java │ │ └── LocalUrlConstant.java │ │ ├── controller │ │ ├── ApplicationController.java │ │ ├── AuditController.java │ │ ├── BlockChainController.java │ │ ├── BugController.java │ │ ├── DingTalkScheduleController.java │ │ ├── DissertationPropertyController.java │ │ ├── EventPropertyController.java │ │ ├── ExcelController.java │ │ ├── ExceptionController.java │ │ ├── LoginController.java │ │ ├── PaperController.java │ │ ├── PaperFileController.java │ │ ├── PatentController.java │ │ ├── PerformanceController.java │ │ ├── PracticeController.java │ │ ├── PrizeController.java │ │ ├── ProcessPropertyController.java │ │ ├── ProjectController.java │ │ ├── ProjectPropertyController.java │ │ ├── PropertyController.java │ │ ├── ReimburseController.java │ │ ├── SystemController.java │ │ ├── TestController.java │ │ ├── UserController.java │ │ ├── VMApplyController.java │ │ ├── VoteController.java │ │ └── WebSocketController.java │ │ ├── encryption │ │ └── Encryption.java │ │ ├── entity │ │ ├── AbsentOA.java │ │ ├── AcItem.java │ │ ├── AcRecord.java │ │ ├── Bug.java │ │ ├── BugDetail.java │ │ ├── DcRecord.java │ │ ├── DcSummary.java │ │ ├── DingTalkSchedule.java │ │ ├── DingTalkScheduleDetail.java │ │ ├── Dissertation.java │ │ ├── EventFile.java │ │ ├── EventProperty.java │ │ ├── ExternalPaper.java │ │ ├── InternalPaper.java │ │ ├── Iteration.java │ │ ├── IterationDetail.java │ │ ├── Message.java │ │ ├── Paper.java │ │ ├── PaperDetail.java │ │ ├── PaperLevel.java │ │ ├── Patent.java │ │ ├── PatentDetail.java │ │ ├── PatentLevel.java │ │ ├── Practice.java │ │ ├── Prize.java │ │ ├── ProcessFile.java │ │ ├── ProcessProperty.java │ │ ├── Project.java │ │ ├── ProjectProperty.java │ │ ├── ProjectPropertyFile.java │ │ ├── Property.java │ │ ├── Reimbursement.java │ │ ├── ReimbursementFile.java │ │ ├── Review.java │ │ ├── SubsidyLevel.java │ │ ├── User.java │ │ ├── VMApply.java │ │ ├── Vote.java │ │ └── VoteDetail.java │ │ ├── enums │ │ ├── LongitudinalLevel.java │ │ ├── LongitudinalLevelConverter.java │ │ ├── PaperType.java │ │ ├── Position.java │ │ └── PositionConverter.java │ │ ├── excel │ │ ├── AcData.java │ │ ├── DcSummaryData.java │ │ ├── UserPrizeData.java │ │ └── UserPropertyData.java │ │ ├── fabric │ │ ├── ChaincodeManager.java │ │ ├── FabricManager.java │ │ ├── FabricOrg.java │ │ ├── FabricStore.java │ │ └── FabricUser.java │ │ ├── interceptor │ │ └── LoginInterceptor.java │ │ ├── mapper │ │ ├── AcRecordMapper.java │ │ ├── DcRecordMapper.java │ │ ├── DcSummaryMapper.java │ │ └── InternalPaperMapper.java │ │ ├── repository │ │ ├── AbsentOARepository.java │ │ ├── AcItemRepository.java │ │ ├── AcRecordRepository.java │ │ ├── BugDetailRepository.java │ │ ├── BugRepository.java │ │ ├── CustomizedRepository.java │ │ ├── DcRecordRepository.java │ │ ├── DcSummaryRepository.java │ │ ├── DingTalkScheduleDetailRepository.java │ │ ├── DingTalkScheduleRepository.java │ │ ├── DissertationPropertyRepository.java │ │ ├── EventFileRepository.java │ │ ├── EventPropertyRepository.java │ │ ├── ExternalPaperRepository.java │ │ ├── InternalPaperRepository.java │ │ ├── IterationDetailRepository.java │ │ ├── IterationRepository.java │ │ ├── MessageRepository.java │ │ ├── PaperDetailRepository.java │ │ ├── PaperLevelRepository.java │ │ ├── PatentDetailRepository.java │ │ ├── PatentLevelRepository.java │ │ ├── PatentRepository.java │ │ ├── PracticeRepository.java │ │ ├── PrizeRepository.java │ │ ├── ProcessFileRepository.java │ │ ├── ProcessPropertyRepository.java │ │ ├── ProjectPropertyFileRepository.java │ │ ├── ProjectPropertyRepository.java │ │ ├── ProjectRepository.java │ │ ├── PropertyRepository.java │ │ ├── ReimbursementFileRepository.java │ │ ├── ReimbursementRepository.java │ │ ├── ReviewRepository.java │ │ ├── SubsidyLevelRepository.java │ │ ├── UserRepository.java │ │ ├── VMApplyRepository.java │ │ ├── VoteDetailRepository.java │ │ ├── VoteRepository.java │ │ └── impl │ │ │ └── CustomizedRepositoryImpl.java │ │ ├── service │ │ ├── ApplicationService.java │ │ ├── AuditService.java │ │ ├── BlockChainService.java │ │ ├── BugService.java │ │ ├── DingTalkScheduleService.java │ │ ├── DissertationPropertyService.java │ │ ├── EventPropertyService.java │ │ ├── ExcelService.java │ │ ├── FileService.java │ │ ├── InitService.java │ │ ├── InitSys.java │ │ ├── IterationService.java │ │ ├── NotifyService.java │ │ ├── PaperFileService.java │ │ ├── PaperService.java │ │ ├── PatentService.java │ │ ├── PerformanceService.java │ │ ├── PracticeService.java │ │ ├── PrizeService.java │ │ ├── ProcessPropertyService.java │ │ ├── ProjectPropertyService.java │ │ ├── ProjectService.java │ │ ├── PropertyService.java │ │ ├── ReimburseService.java │ │ ├── SystemService.java │ │ ├── UserService.java │ │ ├── VMApplyService.java │ │ ├── VoteService.java │ │ └── WeeklyReportService.java │ │ └── vo │ │ ├── AbsentOAVO.java │ │ ├── AcItemVO.java │ │ ├── AppliedVO.java │ │ ├── ApplingVO.java │ │ ├── ApplyVO.java │ │ ├── AuthorVO.java │ │ ├── BugCheckVO.java │ │ ├── CheckVO.java │ │ ├── CheckedVO.java │ │ ├── ConflictVO.java │ │ ├── DateVO.java │ │ ├── DcRecordVO.java │ │ ├── DcSummaryVO.java │ │ ├── DcVO.java │ │ ├── DingTalkScheduleVO.java │ │ ├── DissertationVO.java │ │ ├── EventPropertyInfoVO.java │ │ ├── ExternalPaperVO.java │ │ ├── FileDownloadVO.java │ │ ├── FlatDecisionVO.java │ │ ├── InternalPaperVO.java │ │ ├── IterateAcVO.java │ │ ├── IterateInfoVO.java │ │ ├── IterationVO.java │ │ ├── PaperFileDownloadInfoVO.java │ │ ├── PaperFileInfoVO.java │ │ ├── PaperInfoVO.java │ │ ├── PaperResultVO.java │ │ ├── PatentVO.java │ │ ├── PollVO.java │ │ ├── PracticeVO.java │ │ ├── PrizeVO.java │ │ ├── ProcessPropertyDetailVO.java │ │ ├── ProcessPropertyVO.java │ │ ├── ProjectPropertyFileVO.java │ │ ├── ProjectPropertyVO.java │ │ ├── ProjectVO.java │ │ ├── PropertyVO.java │ │ ├── QueryUserVO.java │ │ ├── ReimbursementVO.java │ │ ├── ToCheckVO.java │ │ ├── TopupVO.java │ │ ├── UserInfoVO.java │ │ ├── UserVO.java │ │ ├── VMApplyVO.java │ │ └── VoteVO.java └── resources │ ├── application-dev.properties │ ├── application-prod.properties │ ├── application-test.properties │ ├── application.properties │ ├── fabric │ ├── channel-artifacts │ │ ├── genesis.block │ │ └── mychannel.tx │ └── crypto-config │ │ ├── ordererOrganizations │ │ └── example.com │ │ │ ├── ca │ │ │ ├── 106e19a8ca8c2ab8a8d9f0418bed6754156643e6725dc353cc680fb7acba0407_sk │ │ │ └── ca.example.com-cert.pem │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ ├── orderers │ │ │ └── orderer.example.com │ │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.example.com-cert.pem │ │ │ │ ├── keystore │ │ │ │ │ └── e5bcb697e116ed9294c837dfe2656fecb21ce3e759f10d70e83f7b6dd2a97ff9_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── orderer.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ ├── tlsca │ │ │ ├── 1f0671acdb0757d659de972950111c36eeab4eacc3228a0356e5812a8af372e6_sk │ │ │ └── tlsca.example.com-cert.pem │ │ │ └── users │ │ │ └── Admin@example.com │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.example.com-cert.pem │ │ │ ├── keystore │ │ │ │ └── 707c6623255ae8735b81548102dba6ca21da8187438c02e827166ac374576455_sk │ │ │ ├── signcerts │ │ │ │ └── Admin@example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── client.crt │ │ │ └── client.key │ │ └── peerOrganizations │ │ └── org1.example.com │ │ ├── ca │ │ ├── ca.org1.example.com-cert.pem │ │ └── e7b55f2a47f0fa5819d394afceb660b929e8e53f49655ba3cca21fc5f70f6bd2_sk │ │ ├── msp │ │ ├── cacerts │ │ │ └── ca.org1.example.com-cert.pem │ │ ├── config.yaml │ │ └── tlscacerts │ │ │ └── tlsca.org1.example.com-cert.pem │ │ ├── peers │ │ └── peer0.org1.example.com │ │ │ ├── msp │ │ │ ├── cacerts │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ ├── config.yaml │ │ │ ├── keystore │ │ │ │ └── d7e17a2e5202af1aa1a1fc958afc96324c707d9d14253aceb61598466b55110d_sk │ │ │ ├── signcerts │ │ │ │ └── peer0.org1.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ │ ├── tlsca │ │ ├── aa8c13f5eec1a88e2f01937bd578d30c03ab8fbc00154dadd8881ab7e19aaf20_sk │ │ └── tlsca.org1.example.com-cert.pem │ │ └── users │ │ ├── Admin@org1.example.com │ │ ├── msp │ │ │ ├── cacerts │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ ├── config.yaml │ │ │ ├── keystore │ │ │ │ └── 99f3260867cc6b9844fd0d2801be3bbbbc3fd39b0e7afa762cfc04294f7c2f20_sk │ │ │ ├── signcerts │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── client.crt │ │ │ └── client.key │ │ └── User1@org1.example.com │ │ ├── msp │ │ ├── cacerts │ │ │ └── ca.org1.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── 06a7a359b6aa77766f48a3fa6cc0e295808bf9d12874e415d38d2ad771a9a633_sk │ │ ├── signcerts │ │ │ └── User1@org1.example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.org1.example.com-cert.pem │ │ └── tls │ │ ├── ca.crt │ │ ├── client.crt │ │ └── client.key │ └── mybatis │ ├── mapper │ ├── AcRecordMapper.xml │ ├── DcRecordMapper.xml │ ├── DcSummaryMapper.xml │ └── InternalPaperMapper.xml │ └── mybatis-config.xml └── test ├── http ├── ApplicationController.http ├── AuditController.http ├── PerformanceController.http ├── ProjectController.http ├── SystemController.http ├── TaskController.http ├── TestController.http ├── UserController.http ├── VoteController.http ├── login.http └── paperController.http └── java └── com └── softeng └── dingtalk ├── DingtalkApplicationTests.java ├── component └── DateUtilsTest.java ├── performance └── PerformanceTest.java └── service ├── ApplicationServiceTests.java ├── AuditServiceTest.java ├── ExcelServiceTest.java ├── PaperServiceTest.java ├── PerformanceServiceTest.java └── WeeklyReportServiceTest.java /.github/workflows/backup.yml: -------------------------------------------------------------------------------- 1 | # 防止怪物删除我们的仓库 2 | name: Sync To Gitee 3 | on: [ push, delete, create ] 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - name: Sync to Gitee 9 | uses: wearerequired/git-mirror-action@master 10 | env: 11 | # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY 12 | SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }} 13 | with: 14 | # 注意替换为你的 GitHub 源仓库地址 15 | source-repo: git@github.com:${{github.repository}} 16 | # 注意替换为你的 Gitee 目标仓库地址 17 | destination-repo: git@gitee.com:${{github.repository}} 18 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Main 2 | on: 3 | push: 4 | branches: [ main ] 5 | paths: 6 | - 'src/**' 7 | - '.github/workflows/**' 8 | pull_request: 9 | branches: [ main ] 10 | paths: 11 | - 'src/**' 12 | - '.github/workflows/**' 13 | 14 | jobs: 15 | deploy: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Build Docker With SSH 19 | uses: appleboy/ssh-action@master 20 | with: 21 | host: ${{ secrets.DINGTALK_MAIN_HOST }} 22 | username: ${{ secrets.DINGTALK_MAIN_USERNAME }} 23 | key: ${{ secrets.DINGTALK_MAIN_KEY }} 24 | port: ${{ secrets.DINGTALK_HOST_PORT }} 25 | script: | 26 | if [ ! -d "dingtalk-app-main" ]; then 27 | git clone git@github.com:nju-softeng/dingtalk-app-build.git dingtalk-app-main 28 | fi 29 | git checkout main 30 | git pull origin 31 | cd dingtalk-app-main 32 | chmod +x build.sh 33 | ./build.sh -b main -t server -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | push: 4 | branches: [ release ] 5 | paths: 6 | - 'src/**' 7 | - '.github/workflows/**' 8 | pull_request: 9 | branches: [ release ] 10 | paths: 11 | - 'src/**' 12 | - '.github/workflows/**' 13 | 14 | jobs: 15 | deploy: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Build Docker With SSH 19 | uses: appleboy/ssh-action@master 20 | with: 21 | host: ${{ secrets.DINGTALK_RELEASE_HOST }} 22 | username: ${{ secrets.DINGTALK_RELEASE_USERNAME }} 23 | key: ${{ secrets.DINGTALK_RELEASE_KEY }} 24 | port: ${{ secrets.DINGTALK_HOST_PORT }} 25 | script: | 26 | if [ ! -d "dingtalk-app-release" ]; then 27 | git clone git@github.com:nju-softeng/dingtalk-app-build.git dingtalk-app-release 28 | fi 29 | git checkout release 30 | git pull origin 31 | cd dingtalk-app-release 32 | chmod +x build.sh 33 | ./build.sh -b main -t server -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### VS Code ### 31 | .vscode/ 32 | .mvn/wrapper/maven-wrapper.jar 33 | .mvn/wrapper/maven-wrapper.properties 34 | .mvn/wrapper/MavenWrapperDownloader.java 35 | mvnw 36 | mvnw.cmd 37 | hs_err_pid14652.log 38 | replay_pid14652.log 39 | *.log 40 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11 2 | MAINTAINER zhanyeye zhanyeye@qq.com 3 | WORKDIR /ROOT 4 | ADD ./target/dingtalk-0.0.1-SNAPSHOT.jar /ROOT/ 5 | ENV LD_LIBRARY_PATH /usr/lib 6 | ENV PROFILES="prod" 7 | EXPOSE 8080 8 | ENTRYPOINT ["sh", "-c", "java -jar dingtalk-0.0.1-SNAPSHOT.jar --spring.profiles.active=$PROFILES"] -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/DingtalkApplication.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk; 2 | 3 | import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module; 4 | import com.softeng.dingtalk.repository.impl.CustomizedRepositoryImpl; 5 | import org.mybatis.spring.annotation.MapperScan; 6 | import org.springframework.boot.SpringApplication; 7 | import org.springframework.boot.autoconfigure.SpringBootApplication; 8 | import org.springframework.cache.annotation.EnableCaching; 9 | import org.springframework.context.annotation.Bean; 10 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 11 | import org.springframework.scheduling.annotation.EnableScheduling; 12 | 13 | @EnableCaching 14 | @EnableScheduling 15 | @SpringBootApplication 16 | @MapperScan("com.softeng.dingtalk.mapper") 17 | @EnableJpaRepositories(repositoryBaseClass = CustomizedRepositoryImpl.class) 18 | public class DingtalkApplication { 19 | 20 | public static void main(String[] args) { 21 | SpringApplication.run(DingtalkApplication.class, args); 22 | } 23 | 24 | @Bean 25 | protected Hibernate5Module module() { 26 | Hibernate5Module module = new Hibernate5Module(); 27 | // 序列化延迟加载对象的ID 28 | module.enable(Hibernate5Module.Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS); 29 | return module; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/bean/Chaincode.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.bean; 2 | 3 | /** 4 | * @Description Fabric chaincode信息,包括channel等 5 | * @Author Jerrian Zhao 6 | * @Data 03/03/2022 7 | */ 8 | public class Chaincode { 9 | private String channelName; //当前智能合约所属频道名 10 | private String chaincodeName; //智能合约名 11 | private String chaincodePath; //智能合约安装路径 12 | private String chaincodeVersion; //版本号 13 | private int invokeWaitTime = 100000; //执行操作等待时间 14 | private int deployWaitTime = 120000; //执行实例等待时间 15 | 16 | public String getChannelName() { 17 | return channelName; 18 | } 19 | 20 | public void setChannelName(String channelName) { 21 | this.channelName = channelName; 22 | } 23 | 24 | public String getChaincodeName() { 25 | return chaincodeName; 26 | } 27 | 28 | public void setChaincodeName(String chaincodeName) { 29 | this.chaincodeName = chaincodeName; 30 | } 31 | 32 | public String getChaincodePath() { 33 | return chaincodePath; 34 | } 35 | 36 | public void setChaincodePath(String chaincodePath) { 37 | this.chaincodePath = chaincodePath; 38 | } 39 | 40 | public String getChaincodeVersion() { 41 | return chaincodeVersion; 42 | } 43 | 44 | public void setChaincodeVersion(String chaincodeVersion) { 45 | this.chaincodeVersion = chaincodeVersion; 46 | } 47 | 48 | public int getInvokeWaitTime() { 49 | return invokeWaitTime; 50 | } 51 | 52 | public void setInvokeWaitTime(int invokeWatiTime) { 53 | this.invokeWaitTime = invokeWatiTime; 54 | } 55 | 56 | public int getDeployWaitTime() { 57 | return deployWaitTime; 58 | } 59 | 60 | public void setDeployWaitTime(int deployWaitTime) { 61 | this.deployWaitTime = deployWaitTime; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/bean/Orderers.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.bean; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * @Description orderer信息,采取集群方案(但是可以只放一个) 8 | * @Author Jerrian Zhao 9 | * @Data 03/03/2022 10 | */ 11 | public class Orderers { 12 | private String ordererDomainName; //orderer服务器所在根域名 13 | private List orderers; //orderer服务器集合 14 | 15 | public Orderers() { 16 | orderers = new ArrayList<>(); 17 | } 18 | 19 | public String getOrdererDomainName() { 20 | return ordererDomainName; 21 | } 22 | 23 | public void setOrdererDomainName(String ordererDomainName) { 24 | this.ordererDomainName = ordererDomainName; 25 | } 26 | 27 | public void addOrderer(String name, String location) { 28 | orderers.add(new SingleOrderer(name, location)); 29 | } 30 | 31 | public List getOrderers() { 32 | return orderers; 33 | } 34 | 35 | /** 36 | * orderer对象 37 | */ 38 | 39 | public class SingleOrderer { 40 | private String ordererName; //orderer域名 41 | private String ordererLocation; //orderer访问地址 42 | 43 | public SingleOrderer(String ordererName, String ordererLocation) { 44 | super(); 45 | this.ordererName = ordererName; 46 | this.ordererLocation = ordererLocation; 47 | } 48 | 49 | public String getOrdererName() { 50 | return ordererName; 51 | } 52 | 53 | public void setOrdererName(String ordererName) { 54 | this.ordererName = ordererName; 55 | } 56 | 57 | public String getOrdererLocation() { 58 | return ordererLocation; 59 | } 60 | 61 | public void setOrdererLocation(String ordererLocation) { 62 | this.ordererLocation = ordererLocation; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/component/AcAlgorithm.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.component; 2 | 3 | import com.softeng.dingtalk.entity.User; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @author lilingj 9 | * @date 2021/12/17 10 | */ 11 | @Slf4j 12 | @Component 13 | public class AcAlgorithm { 14 | /** 15 | * 不提交周报的扣分标准 16 | * @param user 我猜测以后可能不同用户扣不同的分,预留个user参数 17 | */ 18 | public static double getPointOfUnsubmittedWeekReport(User user) { 19 | return -1.0; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/component/EncryptorComponent.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.component; 2 | 3 | import com.fasterxml.jackson.core.JsonProcessingException; 4 | import com.fasterxml.jackson.databind.ObjectMapper; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.beans.factory.annotation.Value; 7 | import org.springframework.http.HttpStatus; 8 | import org.springframework.security.crypto.encrypt.Encryptors; 9 | import org.springframework.stereotype.Component; 10 | import org.springframework.web.server.ResponseStatusException; 11 | 12 | import java.util.Map; 13 | 14 | /** 15 | * @author zhanyeye 16 | * @description 加密和解密的组件,用于token的加密和解密 17 | * @create 12/11/2019 10:08 AM 18 | */ 19 | @Component 20 | public class EncryptorComponent { 21 | @Value("${my.secretkey}") 22 | private String secretKey; 23 | @Value("${my.salt}") 24 | private String salt; 25 | 26 | @Autowired 27 | private ObjectMapper objectMapper; 28 | 29 | /** 30 | * 加密: 将一个map序列化为字符串,并加密 31 | * @param payload 32 | * @return 33 | */ 34 | public String encrypt(Map payload) { 35 | try { 36 | String json = objectMapper.writeValueAsString(payload); 37 | return Encryptors.text(secretKey, salt).encrypt(json); 38 | } catch (JsonProcessingException e) {} 39 | return null; 40 | } 41 | 42 | /** 43 | * 解密: 将字符串反序列化为map, 并解密 44 | * @param encryptString 45 | * @return 46 | */ 47 | public Map decrypt(String encryptString) { 48 | try { 49 | String json = Encryptors.text(secretKey, salt).decrypt(encryptString); 50 | return objectMapper.readValue(json, Map.class); 51 | } catch (Exception e) { 52 | //若反序列化时抛异常,则说明 token 是伪造的,未登录! 53 | throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "未登录"); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/config/CacheConfig.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.config; 2 | 3 | import com.github.benmanes.caffeine.cache.Cache; 4 | import com.github.benmanes.caffeine.cache.Caffeine; 5 | import org.springframework.cache.CacheManager; 6 | import org.springframework.cache.annotation.EnableCaching; 7 | import org.springframework.cache.caffeine.CaffeineCacheManager; 8 | import org.springframework.context.annotation.Bean; 9 | import org.springframework.context.annotation.Configuration; 10 | 11 | import java.util.concurrent.TimeUnit; 12 | 13 | @Configuration 14 | public class CacheConfig { 15 | /** 16 | * Caffeine 缓存 17 | * @return 18 | */ 19 | @Bean 20 | public Cache caffeineCache() { 21 | return Caffeine.newBuilder().expireAfterWrite(60 * 55 * 2, TimeUnit.SECONDS) 22 | .maximumSize(100).build(); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/config/SwaggerConfig.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.core.env.Environment; 6 | import org.springframework.core.env.Profiles; 7 | import springfox.documentation.builders.RequestHandlerSelectors; 8 | import springfox.documentation.service.ApiInfo; 9 | import springfox.documentation.service.Contact; 10 | import springfox.documentation.spi.DocumentationType; 11 | import springfox.documentation.spring.web.plugins.Docket; 12 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 13 | 14 | import java.util.ArrayList; 15 | 16 | @Configuration 17 | @EnableSwagger2 // 我下的swagger 3.0.0 18 | public class SwaggerConfig { 19 | @Bean 20 | public Docket docket(Environment environment) { 21 | // 生产环境禁用 22 | var enable = !environment.acceptsProfiles(Profiles.of("prod")); 23 | return new Docket(DocumentationType.SWAGGER_2) 24 | .apiInfo(apiInfo()) 25 | .enable(enable) 26 | .select() 27 | .apis(RequestHandlerSelectors.basePackage("com.softeng.dingtalk.controller")) 28 | .build(); 29 | } 30 | 31 | private ApiInfo apiInfo() { 32 | return new ApiInfo( 33 | "Dingtalk Api Documentation", 34 | "钉钉绩效系统后端接口文档", 35 | "1.0", 36 | "urn:tos", 37 | new Contact("", "https://github.com/zhanyeye/dingtalk-springboot", ""), 38 | "Apache 2.0", 39 | "http://www.apache.org/licenses/LICENSE-2.0", 40 | new ArrayList()); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/config/WebMvcConfig.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.config; 2 | 3 | import com.softeng.dingtalk.interceptor.LoginInterceptor; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 8 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 9 | import org.springframework.web.socket.server.standard.ServerEndpointExporter; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @create 12/11/2019 2:20 PM 15 | */ 16 | @Configuration 17 | public class WebMvcConfig implements WebMvcConfigurer { 18 | @Autowired 19 | private LoginInterceptor loginInterceptor; 20 | 21 | @Override 22 | public void addInterceptors(InterceptorRegistry registry) { 23 | registry.addInterceptor(loginInterceptor) 24 | .addPathPatterns("/api/**") 25 | .excludePathPatterns("/api/login") 26 | .excludePathPatterns("/api/login_test/**") 27 | .excludePathPatterns("/wsapi"); 28 | } 29 | 30 | /** 31 | * webSocket 32 | * @return 33 | */ 34 | @Bean 35 | public ServerEndpointExporter serverEndpointExporter() { 36 | return new ServerEndpointExporter(); 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/constant/DingApiUrlConstant.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.constant; 2 | 3 | /** 4 | * 钉钉接口的url 5 | * @author lilingj 6 | * @date 2022/1/24 7 | */ 8 | public class DingApiUrlConstant { 9 | /** 10 | * 链接消息接口 11 | */ 12 | public static final String LINK_MESSAGE_API_URL = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"; 13 | 14 | /** 15 | * 获取用户发送日志的概要信息接口 16 | */ 17 | public static final String REPORT_SIMPLE_API_URL = "https://oapi.dingtalk.com/topapi/report/simplelist"; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/constant/ImageUrlConstant.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.constant; 2 | 3 | /** 4 | * 引用的图片常量 5 | * @author lilingj 6 | * @date 2022/1/24 7 | */ 8 | public class ImageUrlConstant { 9 | 10 | /** 11 | * 系统图标 12 | */ 13 | public static final String SYSTEM_IMAGE_URL = "https://i.loli.net/2020/11/12/8pP5y6eHwX1VfLd.png"; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/constant/LocalUrlConstant.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.constant; 2 | 3 | /** 4 | * 本应用的路由,包括前端、后端,供发送消息时设置回调 5 | * @author lilingj 6 | * @date 2022/1/24 7 | */ 8 | 9 | public class LocalUrlConstant { 10 | public static final String FRONTEND_PERFORMANCE_URL = "/performance/perfApplication"; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/BlockChainController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.service.BlockChainService; 4 | import com.softeng.dingtalk.vo.ConflictVO; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.web.bind.annotation.*; 8 | 9 | import java.util.List; 10 | 11 | @RestController 12 | @RequestMapping("/api") 13 | @Slf4j 14 | public class BlockChainController { 15 | @Autowired 16 | BlockChainService blockChainService; 17 | @GetMapping("/verification") 18 | public List checkACRecord(){ 19 | return blockChainService.checkACRecord(); 20 | } 21 | 22 | @PostMapping("/verification") 23 | public void decideConflict(@RequestBody ConflictVO conflictVO){ 24 | blockChainService.decideConflict(conflictVO); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/ExcelController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.service.ExcelService; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.*; 7 | 8 | import javax.servlet.http.HttpServletResponse; 9 | import java.io.IOException; 10 | import java.io.OutputStream; 11 | import java.time.LocalDate; 12 | 13 | @Slf4j 14 | @RestController 15 | @RequestMapping("/api") 16 | public class ExcelController { 17 | 18 | @Autowired 19 | ExcelService excelService; 20 | 21 | @PostMapping("/excel/ac_data") 22 | public void downloadAcData(@RequestBody LocalDate date, HttpServletResponse response) throws IOException { 23 | excelService.writeAcDataByDate(date, response.getOutputStream()); 24 | } 25 | 26 | 27 | @PostMapping("/excel/dc_summary_data") 28 | public void downloadDcSummaryData(@RequestBody LocalDate date, HttpServletResponse response) throws IOException { 29 | excelService.writeDcSummaryByDate(date, response.getOutputStream()); 30 | } 31 | 32 | @PostMapping("/excel/userProperty_data") 33 | public void downloadUserPropertyData(HttpServletResponse response) throws IOException { 34 | excelService.writeUserPropertyDataByDate(response.getOutputStream()); 35 | } 36 | 37 | @PostMapping("/excel/userPrize_data") 38 | public void downloadUserPrizeData(HttpServletResponse response) throws IOException { 39 | excelService.writeUserPrizeDataByDate(response.getOutputStream()); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/PracticeController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.entity.Practice; 4 | import com.softeng.dingtalk.service.PracticeService; 5 | import com.softeng.dingtalk.vo.PracticeVO; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import java.util.List; 11 | 12 | @Slf4j 13 | @RestController 14 | @RequestMapping("/api") 15 | public class PracticeController { 16 | @Autowired 17 | PracticeService practiceService; 18 | @PostMapping("/practice") 19 | public void addPractice(@RequestBody PracticeVO practiceVO, @RequestAttribute int uid){ 20 | if(practiceVO.getId()==null){ 21 | practiceService.addPractice(practiceVO,uid); 22 | } else { 23 | practiceService.modifyPractice(practiceVO); 24 | } 25 | } 26 | @GetMapping("/practice") 27 | public List getPracticeList(@RequestAttribute int uid){ 28 | return practiceService.getPracticeList(uid); 29 | } 30 | 31 | 32 | @DeleteMapping("/practice/{id}") 33 | public void deletePractice(@PathVariable int id,@RequestAttribute int uid){ 34 | practiceService.deletePractice(id,uid); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/PrizeController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.entity.Prize; 4 | import com.softeng.dingtalk.service.PrizeService; 5 | import com.softeng.dingtalk.vo.PrizeVO; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @Description 获奖情况 14 | * @Author Jerrian Zhao 15 | * @Data 01/25/2022 16 | */ 17 | 18 | @Slf4j 19 | @RestController 20 | @RequestMapping("/api/users") 21 | public class PrizeController { 22 | @Autowired 23 | PrizeService prizeService; 24 | 25 | /** 26 | * 获取用户的获奖情况 27 | * 28 | * @param uid 29 | * @return 30 | */ 31 | @GetMapping("{uid}/prizes") 32 | public List findByUserId(@PathVariable int uid) { 33 | return prizeService.findByUser(uid); 34 | } 35 | 36 | /** 37 | * 新增奖项 38 | * @param uid 39 | * @param prizeVO 40 | */ 41 | @PostMapping("/{uid}/prizes") 42 | public void addNewPrize(@PathVariable int uid, @RequestBody PrizeVO prizeVO){ 43 | prizeService.addNewPrize(uid,prizeVO); 44 | } 45 | 46 | /** 47 | * 更新奖项信息 48 | * @param prizeVO 49 | */ 50 | @PutMapping("/{uid}/prizes/{prizeId}") 51 | public void updatePrize(@RequestBody PrizeVO prizeVO){ 52 | prizeService.updatePrize(prizeVO); 53 | } 54 | 55 | /** 56 | * 删除奖项 57 | * @param prizeId 58 | */ 59 | @DeleteMapping("/{uid}/prizes/{prizeId}") 60 | public void deletePrize(@PathVariable int prizeId){ 61 | prizeService.deletePrize(prizeId); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/PropertyController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.entity.Property; 4 | import com.softeng.dingtalk.service.PropertyService; 5 | import com.softeng.dingtalk.vo.PropertyVO; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @Description 固定资产 14 | * @Author Jerrian Zhao 15 | * @Data 01/25/2022 16 | */ 17 | 18 | @Slf4j 19 | @RestController 20 | @RequestMapping("/api") 21 | public class PropertyController { 22 | @Autowired 23 | PropertyService propertyService; 24 | 25 | /** 26 | * 获取用户的固定资产 27 | * 28 | * @param uid 29 | * @return 30 | */ 31 | @GetMapping("user/{uid}/propertyList") 32 | public List findByUserId(@PathVariable int uid) { 33 | return propertyService.findByUser(uid); 34 | } 35 | 36 | /** 37 | * 新增固定资产 38 | * @param uid 39 | * @param propertyVO 40 | */ 41 | @PostMapping("user/{uid}/property") 42 | public void addNewProperty(@PathVariable int uid, @RequestBody PropertyVO propertyVO){ 43 | propertyService.addNewProperty(uid,propertyVO); 44 | } 45 | 46 | /** 47 | * 更新资产信息 48 | * @param propertyVO 49 | */ 50 | @PutMapping("/property/update") 51 | public void updateProperty(@RequestBody PropertyVO propertyVO){ 52 | propertyService.updateProperty(propertyVO); 53 | } 54 | 55 | /** 56 | * 删除固定资产 57 | * @param propertyId 58 | */ 59 | @DeleteMapping("/property") 60 | public void deleteProperty(@RequestBody int propertyId){ 61 | propertyService.deleteProperty(propertyId); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.controller; 2 | 3 | import com.softeng.dingtalk.api.BaseApi; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | @Slf4j 11 | @RestController 12 | @RequestMapping("/api") 13 | public class TestController { 14 | @Autowired 15 | BaseApi baseApi; 16 | 17 | @GetMapping("/test/getAccessToken") 18 | public String testGetAccessToken() { 19 | return baseApi.getAccessToken(); 20 | } 21 | 22 | @GetMapping("/test/getJsapiTicket") 23 | public String testGetJsapiTicket() { 24 | return baseApi.getJsapiTicket(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/encryption/Encryption.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.encryption; 2 | 3 | import org.jasypt.util.text.BasicTextEncryptor; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.security.crypto.encrypt.Encryptors; 6 | import org.springframework.stereotype.Component; 7 | 8 | @Component 9 | public class Encryption { 10 | 11 | @Value("${encryption.key}") 12 | private String key; 13 | @Value("${my.secretkey}") 14 | private String secretKey; 15 | @Value("${my.salt}") 16 | private String salt; 17 | /** 18 | * 加密 19 | * @param words 20 | * @return 21 | */ 22 | public String doEncrypt( String words) { 23 | if(words==null) return null; 24 | //BasicTextEncryptor encryptor = new BasicTextEncryptor(); 25 | //encryptor.setPassword(key); 26 | return Encryptors.text(secretKey, salt).encrypt(words); 27 | //return encryptor.encrypt(words); 28 | } 29 | 30 | /** 31 | * 解密 32 | * @param encryptWords 33 | * @return 34 | */ 35 | public String doDecrypt( String encryptWords) { 36 | if(encryptWords==null) return null; 37 | //BasicTextEncryptor encryptor = new BasicTextEncryptor(); 38 | //encryptor.setPassword(key); 39 | return Encryptors.text(secretKey, salt).decrypt(encryptWords); 40 | //return encryptor.decrypt(encryptWords); 41 | } 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/AbsentOA.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | import java.time.LocalDate; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | public class AbsentOA { 16 | 17 | @Id 18 | @GeneratedValue(strategy = GenerationType.IDENTITY) 19 | private Integer id; 20 | 21 | @ManyToOne 22 | @JsonIgnore 23 | DingTalkSchedule dingTalkSchedule; 24 | 25 | @OneToOne 26 | @JoinColumn(name = "user_id") 27 | User user; 28 | //请假类型 事假 病假 其它 29 | String type; 30 | //开始时间 31 | LocalDate start; 32 | //结束时间 33 | LocalDate end; 34 | //请假天数 35 | Double dayNum; 36 | //请假缘由 37 | String reason; 38 | // -1待定,0拒绝,1通过 39 | int state=-1; 40 | //是否通过 41 | boolean isPass=false; 42 | //请求Id 43 | String processInstanceId; 44 | 45 | public AbsentOA(String type, LocalDate start, LocalDate end, Double dayNum, String reason) { 46 | this.type = type; 47 | this.start = start; 48 | this.end = end; 49 | this.dayNum = dayNum; 50 | this.reason = reason; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/AcItem.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | 10 | import javax.persistence.*; 11 | import java.time.LocalDateTime; 12 | 13 | /** 14 | * @author zhanyeye 15 | * @description 每周绩效申请中的AC值申请 (一个 DcRecord 可能有多个 acItem: 一个申请可能包含多个ac申请) 16 | * @date 12/5/2019 17 | */ 18 | @Getter 19 | @Setter 20 | @Entity 21 | @NoArgsConstructor 22 | @ToString 23 | @Deprecated 24 | public class AcItem { 25 | @Id 26 | @GeneratedValue(strategy = GenerationType.IDENTITY) 27 | private int id; 28 | @Column(columnDefinition="DECIMAL(10,3)") 29 | private double ac; 30 | private String reason; 31 | private boolean status; 32 | 33 | /** 34 | * ac申请属于的周绩效申请 35 | * 设置many端对one端延时加载,仅需要其ID 36 | */ 37 | @JsonIgnore 38 | @JsonIgnoreProperties("acItems") 39 | @ManyToOne(fetch = FetchType.LAZY) 40 | private DcRecord dcRecord; 41 | @JsonIgnore 42 | @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) 43 | private AcRecord acRecord; 44 | 45 | public AcItem(String reason, double ac) { 46 | this.reason = reason; 47 | this.ac = ac; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/AcRecord.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.*; 5 | 6 | import javax.persistence.*; 7 | import java.time.LocalDateTime; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description AC值记录 (AC日志:被审核人确认的用户ac变更记录) 12 | * @date 12/5/2019 13 | */ 14 | @Getter 15 | @Setter 16 | @Entity 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | @Builder 20 | @ToString 21 | public class AcRecord { 22 | 23 | public static final int NORMAL = 0; 24 | public static final int PROJECT = 1; 25 | public static final int PAPER = 2; 26 | public static final int VOTE = 3; 27 | public static final int BUG = 4; 28 | public static final int Patent = 5; 29 | public static final int DingTalkSchedule = 6; 30 | 31 | 32 | @Id 33 | @GeneratedValue(strategy = GenerationType.IDENTITY) 34 | private Integer id; 35 | @Column(columnDefinition="DECIMAL(10,3)") 36 | private double ac; 37 | private String reason; 38 | private int classify; 39 | @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", updatable = false, insertable = true) 40 | private LocalDateTime createTime; 41 | @ManyToOne(fetch = FetchType.LAZY) 42 | private User user; 43 | @ManyToOne(fetch = FetchType.LAZY) 44 | private User auditor; 45 | 46 | public AcRecord(User user, User auditor, double ac, String reason, int classify, LocalDateTime createTime) { 47 | this.user = user; 48 | this.auditor = auditor; 49 | this.ac = ac; 50 | this.reason = reason; 51 | this.classify = classify; 52 | this.createTime = createTime; 53 | } 54 | 55 | public AcRecord(DcRecord dcRecord, AcItem acItem, LocalDateTime createTime) { 56 | this.ac = acItem.getAc(); 57 | this.reason = acItem.getReason(); 58 | this.user = dcRecord.getApplicant(); 59 | this.auditor = dcRecord.getAuditor(); 60 | this.createTime = createTime; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Bug.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | import java.time.LocalDateTime; 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 15 | * @create 3/8/2020 11:26 PM 16 | */ 17 | @Getter 18 | @Setter 19 | @Entity 20 | @NoArgsConstructor 21 | @NamedEntityGraph(name="bug.graph",attributeNodes={@NamedAttributeNode("bugDetails")}) 22 | public class Bug { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | private int id; 26 | /** 27 | * 标题 28 | */ 29 | private String title; 30 | /** 31 | * 描述 32 | */ 33 | private String description; 34 | /** 35 | * 状态 36 | */ 37 | private Boolean status; 38 | /** 39 | * 报告人id 40 | */ 41 | private int reporterid; 42 | /** 43 | * bug 所属项目 44 | */ 45 | @ManyToOne 46 | private Project project; 47 | 48 | @JsonIgnoreProperties("bug") 49 | @OneToMany(mappedBy = "bug", cascade = CascadeType.REMOVE) 50 | private List bugDetails; 51 | 52 | @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", updatable = false, insertable = false) 53 | private LocalDateTime insertTime; 54 | 55 | public Bug(int id) { 56 | this.id = id; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/BugDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 3/20/2020 8:49 AM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class BugDetail { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | 24 | @JsonIgnoreProperties("bugDetails") 25 | @ManyToOne(fetch = FetchType.LAZY) 26 | private Bug bug; 27 | @ManyToOne 28 | private User user; 29 | /** 30 | * 是否为主要责任人 31 | */ 32 | private boolean principal; 33 | private double ac; 34 | @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) 35 | private AcRecord acRecord; 36 | 37 | public BugDetail(Bug bug, User user, boolean principal, double ac, AcRecord acRecord) { 38 | this.bug = bug; 39 | this.user = user; 40 | this.principal = principal; 41 | this.ac = ac; 42 | this.acRecord = acRecord; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/DingTalkSchedule.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | public class DingTalkSchedule { 16 | @Id 17 | @GeneratedValue(strategy = GenerationType.IDENTITY) 18 | private Integer id; 19 | 20 | @ManyToOne 21 | @JoinColumn(name = "user_id") 22 | User organizer; 23 | 24 | @OneToMany(mappedBy = "dingTalkSchedule",cascade = {CascadeType.REMOVE}) 25 | List absentOAList; 26 | 27 | @OneToMany(mappedBy = "dingTalkSchedule",cascade = CascadeType.ALL, fetch = FetchType.EAGER) 28 | List dingTalkScheduleDetailList; 29 | //标题 30 | String summary; 31 | LocalDateTime start; 32 | LocalDateTime end; 33 | boolean online; 34 | String location; 35 | String scheduleId; 36 | 37 | @Column(name = "acCalculated") 38 | boolean acCalculated =false; 39 | 40 | public DingTalkSchedule(String summary, LocalDateTime start, LocalDateTime end, boolean online, String location) { 41 | this.summary = summary; 42 | this.start = start; 43 | this.end = end; 44 | this.online = online; 45 | this.location = location; 46 | } 47 | public void update(String summary, LocalDateTime start, LocalDateTime end, boolean online, String location) { 48 | this.summary = summary; 49 | this.start = start; 50 | this.end = end; 51 | this.online = online; 52 | this.location = location; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/DingTalkScheduleDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class DingTalkScheduleDetail { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private Integer id; 18 | 19 | @OneToOne 20 | @JoinColumn(name = "user_id") 21 | User user; 22 | 23 | @OneToOne 24 | @JoinColumn(name = "ac_record_id") 25 | AcRecord acRecord; 26 | 27 | @ManyToOne 28 | @JsonIgnore 29 | DingTalkSchedule dingTalkSchedule; 30 | 31 | public DingTalkScheduleDetail(User user, DingTalkSchedule dingTalkSchedule) { 32 | this.user = user; 33 | this.dingTalkSchedule = dingTalkSchedule; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Dissertation.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import io.swagger.models.auth.In; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | import javax.persistence.*; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | public class Dissertation { 16 | @Id 17 | @GeneratedValue(strategy = GenerationType.IDENTITY) 18 | private Integer id; 19 | 20 | @OneToOne 21 | @JoinColumn(name = "user_id") 22 | User user; 23 | 24 | //论文状态,0 预答辩,1 送审,2 最终答辩,3 最终版本 25 | int state=0; 26 | String filePath; 27 | String graduateYear; 28 | //预答辩 29 | String preRejoinFileName; 30 | String preRejoinFileId; 31 | //送审 32 | String reviewFileName; 33 | String reviewFileId; 34 | //最终答辩 35 | String rejoinFileName; 36 | String rejoinFileId; 37 | //最终版本 38 | String finalFileName; 39 | String finalFileId; 40 | 41 | public void update(int state,String graduateYear){ 42 | this.state=state; 43 | this.graduateYear=graduateYear; 44 | } 45 | 46 | public Dissertation(int state,String graduateYear,String filePath){ 47 | this.state=state; 48 | this.graduateYear=graduateYear; 49 | this.filePath=filePath; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/EventFile.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | import javax.persistence.*; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | public class EventFile { 16 | @Id 17 | @GeneratedValue(strategy = GenerationType.IDENTITY) 18 | private Integer id; 19 | 20 | private String fileName; 21 | 22 | private String fileType; 23 | 24 | private String fileId; 25 | 26 | @ManyToOne(fetch = FetchType.LAZY) 27 | @JsonIgnore 28 | EventProperty eventProperty; 29 | 30 | public EventFile(String fileName, String fileId){ 31 | this.fileName=fileName; 32 | this.fileId=fileId; 33 | } 34 | 35 | public EventFile(String fileName, String fileId, String fileType, EventProperty eventProperty){ 36 | this.fileName=fileName; 37 | this.fileId=fileId; 38 | this.fileType=fileType; 39 | this.eventProperty=eventProperty; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/EventProperty.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | import java.util.List; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | public class EventProperty { 16 | @Id 17 | @GeneratedValue(strategy = GenerationType.IDENTITY) 18 | private Integer id; 19 | 20 | String name; 21 | String year; 22 | String type; 23 | String path; 24 | @JoinColumn(name="picture_event_id") 25 | @OneToMany(cascade = CascadeType.REMOVE) 26 | List pictureFileList; 27 | @JoinColumn(name="video_event_id") 28 | @OneToMany(cascade = CascadeType.REMOVE) 29 | List videoFileList; 30 | @JoinColumn(name="doc_event_id") 31 | @OneToMany(cascade = CascadeType.REMOVE) 32 | List docFileList; 33 | 34 | public void update(String name, String year, String type) { 35 | this.name = name; 36 | this.year = year; 37 | this.type = type; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Iteration.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | import java.time.LocalDate; 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 15 | * @create 3/14/2020 11:21 AM 16 | */ 17 | @Getter 18 | @Setter 19 | @Entity 20 | @NoArgsConstructor 21 | @NamedEntityGraph(name="iteration.graph",attributeNodes={@NamedAttributeNode("iterationDetails")}) 22 | public class Iteration { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | private int id; 26 | /** 27 | * 第几次迭代 28 | */ 29 | private int cnt; 30 | private boolean status; 31 | private LocalDate beginTime; 32 | private LocalDate endTime; 33 | private LocalDate finishTime; 34 | @Column(columnDefinition="DECIMAL(10,3)") 35 | private double expectedAC; 36 | /** 37 | * 上一个迭代版本id 38 | */ 39 | private int prevIteration; 40 | /** 41 | * 持续成功次数 42 | */ 43 | private int conSuccess; 44 | 45 | 46 | @ManyToOne(fetch = FetchType.LAZY) 47 | private User auditor; 48 | @ManyToOne 49 | private Project project; 50 | 51 | @JsonIgnoreProperties("iteration") 52 | @OneToMany(mappedBy = "iteration", cascade = CascadeType.REMOVE) 53 | private List iterationDetails; 54 | 55 | public Iteration(int id) { 56 | this.id = id; 57 | } 58 | 59 | public Iteration(int cnt, User auditor, LocalDate beginTime, LocalDate endTime) { 60 | this.cnt = cnt; 61 | this.auditor = auditor; 62 | this.beginTime = beginTime; 63 | this.endTime = endTime; 64 | } 65 | 66 | 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/IterationDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 3/14/2020 12:14 PM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class IterationDetail { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | 24 | @JsonIgnoreProperties("iterationDetails") 25 | @ManyToOne(fetch = FetchType.LAZY) 26 | private Iteration iteration; 27 | /** 28 | * 开发者 29 | */ 30 | @ManyToOne 31 | private User user; 32 | @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) 33 | /** 34 | * 获得的ac值 35 | */ 36 | private AcRecord acRecord; 37 | @Column(columnDefinition="DECIMAL(10,3)") 38 | private double ac; 39 | 40 | public IterationDetail(Iteration iteration, User user) { 41 | this.iteration = iteration; 42 | this.user = user; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Message.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 2/6/2020 1:56 PM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class Message { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | private String title; 24 | private String content; 25 | private boolean status; 26 | /** 27 | * 接收人id 28 | */ 29 | private int uid; 30 | @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", updatable = false, insertable = false) 31 | private LocalDateTime createTime; 32 | 33 | public Message(String title, String content, int uid) { 34 | this.title = title; 35 | this.content = content; 36 | this.uid = uid; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Paper.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | public interface Paper { 4 | boolean isExternal(); 5 | String getTitle(); 6 | int getId(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/PaperDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 论文 15 | * @create 2/5/2020 4:51 PM 16 | */ 17 | @Getter 18 | @Setter 19 | @Entity 20 | @NoArgsConstructor 21 | @ToString 22 | public class PaperDetail { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | private int id; 26 | private int num; 27 | @Column(columnDefinition="DECIMAL(10,3)") 28 | @Deprecated 29 | private double ac; 30 | @JsonIgnoreProperties("paperDetails") 31 | @ManyToOne(fetch = FetchType.LAZY) 32 | private InternalPaper internalPaper; 33 | @ManyToOne 34 | private User user; 35 | @OneToOne(cascade = CascadeType.REMOVE) 36 | private AcRecord acRecord; 37 | 38 | public PaperDetail(InternalPaper internalPaper, User user, int num) { 39 | this.internalPaper = internalPaper; 40 | this.user = user; 41 | this.num = num; 42 | } 43 | 44 | public PaperDetail(InternalPaper internalPaper, int uid, int num) { 45 | this.internalPaper = internalPaper; 46 | this.user = new User(uid); 47 | this.num = num; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/PaperLevel.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.softeng.dingtalk.enums.PaperType; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 2/5/2020 10:49 PM 14 | */ 15 | 16 | @Getter 17 | @Setter 18 | @Entity 19 | @NoArgsConstructor 20 | public class PaperLevel { 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.IDENTITY) 23 | private int id; 24 | 25 | /** 26 | * 级别名称 27 | */ 28 | private String title; 29 | 30 | /** 31 | * 论文类别 32 | */ 33 | @Enumerated(EnumType.STRING) 34 | private PaperType paperType; 35 | 36 | /** 37 | * 最高可获得的AC 38 | */ 39 | @Column(columnDefinition="DECIMAL(10,3)") 40 | private double total; 41 | 42 | public PaperLevel(String title, PaperType paperType, double total) { 43 | this.title = title; 44 | this.paperType = paperType; 45 | this.total = total; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/PatentDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | 10 | import javax.persistence.*; 11 | import java.util.List; 12 | 13 | @Getter 14 | @Setter 15 | @Entity 16 | @NoArgsConstructor 17 | @ToString 18 | public class PatentDetail { 19 | @Id 20 | @GeneratedValue(strategy = GenerationType.IDENTITY) 21 | private int id; 22 | private int num; 23 | @ManyToOne(fetch = FetchType.LAZY) 24 | @JsonIgnore 25 | private Patent patent; 26 | @ManyToOne 27 | private User user; 28 | @OneToMany(cascade = CascadeType.REMOVE) 29 | private List acRecordList; 30 | 31 | public PatentDetail(int num, Patent patent, User user) { 32 | this.num = num; 33 | this.patent = patent; 34 | this.user = user; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/PatentLevel.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.softeng.dingtalk.enums.PaperType; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class PatentLevel { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private int id; 18 | 19 | /** 20 | * 级别名称 21 | */ 22 | private String title; 23 | 24 | /** 25 | * 最高可获得的AC 26 | */ 27 | @Column(columnDefinition="DECIMAL(10,3)") 28 | private double total; 29 | 30 | public PatentLevel(String title, double total) { 31 | this.title = title; 32 | this.total = total; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Practice.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.time.LocalDate; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class Practice { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private Integer id; 18 | 19 | @ManyToOne 20 | @JoinColumn(name = "user_id") 21 | User user; 22 | //实习单位 23 | String companyName; 24 | //实习部门 25 | String department; 26 | //开始时间 27 | LocalDate start; 28 | //结束时间 29 | LocalDate end; 30 | //状态 -1拒绝,0审核中,1通过 31 | int state=0; 32 | 33 | public Practice(User user, String companyName, String department, LocalDate start, LocalDate end, int state) { 34 | this.user = user; 35 | this.companyName = companyName; 36 | this.department = department; 37 | this.start = start; 38 | this.end = end; 39 | this.state = state; 40 | } 41 | 42 | public void update(String companyName, String department, LocalDate start, LocalDate end, int state) { 43 | this.companyName = companyName; 44 | this.department = department; 45 | this.start = start; 46 | this.end = end; 47 | this.state = state; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/ProcessFile.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class ProcessFile { 15 | 16 | @Id 17 | @GeneratedValue(strategy = GenerationType.IDENTITY) 18 | private Integer id; 19 | 20 | private String fileName; 21 | 22 | /* 23 | 文件类型: Invitation,PPT,PersonalPhoto,ConferencePhoto 24 | */ 25 | private String fileType; 26 | 27 | private String fileId; 28 | 29 | @ManyToOne(fetch = FetchType.LAZY) 30 | @JsonIgnore 31 | ProcessProperty processProperty; 32 | 33 | public ProcessFile(String fileName, String fileType, String fileId) { 34 | this.fileName = fileName; 35 | this.fileType = fileType; 36 | this.fileId = fileId; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/ProcessProperty.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | import org.hibernate.annotations.Fetch; 7 | import org.hibernate.annotations.FetchMode; 8 | import org.hibernate.annotations.Proxy; 9 | 10 | import javax.persistence.*; 11 | import java.util.List; 12 | 13 | @Getter 14 | @Setter 15 | @Entity 16 | @NoArgsConstructor 17 | public class ProcessProperty { 18 | @Id 19 | @GeneratedValue(strategy = GenerationType.IDENTITY) 20 | private Integer id; 21 | 22 | String conferenceName; 23 | 24 | String year; 25 | 26 | String filePath; 27 | //上传人 28 | @OneToOne 29 | @JoinColumn(name = "user_id") 30 | User user; 31 | 32 | /* 33 | 文件类型: Invitation,PPT,PersonalPhoto,ConferencePhoto 34 | */ 35 | 36 | @OneToOne(cascade={CascadeType.REMOVE,CascadeType.PERSIST}) 37 | @JoinColumn(name = "invitation_file_id") 38 | ProcessFile invitationFile; 39 | 40 | @OneToOne(cascade={CascadeType.REMOVE,CascadeType.PERSIST}) 41 | @JoinColumn(name = "ppt_file_id") 42 | ProcessFile PPTFile; 43 | 44 | @OneToMany(cascade={CascadeType.REMOVE},fetch = FetchType.LAZY) 45 | @JoinColumn(name = "personal_photo_id") 46 | List personalPhotoFileList; 47 | 48 | @OneToMany(cascade={CascadeType.REMOVE},fetch = FetchType.LAZY) 49 | @JoinColumn(name = "conference_photo_id") 50 | List conferencePhotoFileList; 51 | 52 | public ProcessProperty(String conferenceName,String year,String filePath,User user){ 53 | this.conferenceName=conferenceName; 54 | this.year=year; 55 | this.filePath=filePath; 56 | this.user=user; 57 | } 58 | 59 | public void update(String conferenceName,String year){ 60 | this.conferenceName=conferenceName; 61 | this.year=year; 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Project.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.softeng.dingtalk.enums.LongitudinalLevel; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 2/25/2020 11:52 AM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class Project { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | /** 24 | * 项目名 25 | */ 26 | private String title; 27 | /** 28 | * 连续按时交付数 29 | */ 30 | private int successCnt; 31 | /** 32 | * 该项目当前迭代版本id 33 | */ 34 | private int curIteration; 35 | /** 36 | * 当前迭代次数 37 | */ 38 | private int cnt; 39 | 40 | @ManyToOne(fetch = FetchType.LAZY) 41 | private User auditor; 42 | 43 | /** 44 | * @Description 新增项目属性 45 | * @Author Jerrian Zhao 46 | * @Data 01/28/2022 47 | */ 48 | 49 | /** 50 | * 负责人 51 | */ 52 | @ManyToOne(fetch = FetchType.LAZY) 53 | private User leader; 54 | 55 | /** 56 | * 项目性质 57 | * true为横向 false为纵向 58 | */ 59 | @Column(nullable = false) 60 | private Boolean nature; 61 | 62 | /** 63 | * 横向项目级别 64 | */ 65 | private char horizontalLevel; 66 | 67 | /** 68 | * 纵向项目级别 69 | */ 70 | private LongitudinalLevel LongitudinalLevel; 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/ProjectProperty.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.util.List; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class ProjectProperty { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private int id; 18 | 19 | String name; 20 | 21 | String path; 22 | 23 | @OneToMany(mappedBy = "projectProperty", fetch = FetchType.EAGER) 24 | List projectPropertyFileList; 25 | 26 | public ProjectProperty(String name,String path){ 27 | this.name=name; 28 | this.path=path; 29 | } 30 | 31 | public void update(String name,String path){ 32 | this.name=name; 33 | this.path=path; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/ProjectPropertyFile.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | import javax.persistence.*; 10 | 11 | @Getter 12 | @Setter 13 | @Entity 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class ProjectPropertyFile { 17 | @Id 18 | @GeneratedValue(strategy = GenerationType.IDENTITY) 19 | private Integer id; 20 | 21 | String version; 22 | @ManyToOne 23 | @JsonIgnore 24 | ProjectProperty projectProperty; 25 | 26 | String codeFileName; 27 | String codeFileId; 28 | String reportFileName; 29 | String reportFileId; 30 | 31 | public void update(String version){ 32 | this.version=version; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Property.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | import java.time.LocalDate; 10 | 11 | /** 12 | * @Description 实验室固定资产项实体类 13 | * @Author Jerrian Zhao 14 | * @Data 01/24/2022 15 | */ 16 | 17 | @Getter 18 | @Setter 19 | @Entity 20 | @NoArgsConstructor 21 | public class Property { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | private int id; 26 | 27 | @JsonIgnoreProperties("allPrizes") 28 | @ManyToOne(fetch = FetchType.LAZY) 29 | private User user; 30 | 31 | /** 32 | * 物品名称 33 | */ 34 | @Column(nullable = false) 35 | private String name; 36 | 37 | /** 38 | * 物品型号 39 | */ 40 | @Column(nullable = false) 41 | private String type; 42 | 43 | /** 44 | * 开始时间 45 | */ 46 | @Column(nullable = false) 47 | private LocalDate startTime; 48 | 49 | /** 50 | * 保管人 51 | */ 52 | private String preserver; 53 | /** 54 | * 备注 55 | */ 56 | private String remark; 57 | /** 58 | * 软删除标识 59 | */ 60 | @Column(nullable = false) 61 | private boolean deleted = false; 62 | 63 | public Property(User user, String name, String type, String preserver, String remark,LocalDate startTime) { 64 | this.user = user; 65 | this.name = name; 66 | this.type = type; 67 | this.preserver = preserver; 68 | this.remark = remark; 69 | this.startTime = startTime; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Reimbursement.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.util.List; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class Reimbursement { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private Integer id; 18 | 19 | @OneToOne 20 | @JoinColumn(name = "user_id") 21 | User user; 22 | 23 | //审核状态: -1 未审核, 0 审核中,1 审核通过, 2 审核不通过 24 | int state=-1; 25 | String name; 26 | // 差旅报销,国内会议报销,国际会议报销,办公用品报销 27 | String type; 28 | 29 | String path; 30 | 31 | @OneToMany(mappedBy = "reimbursement",cascade = {CascadeType.REMOVE},fetch = FetchType.EAGER) 32 | List reimbursementFileList; 33 | 34 | public Reimbursement(String name,String type, String path) { 35 | this.name=name; 36 | this.type = type; 37 | this.path = path; 38 | } 39 | 40 | public void update(String name,String type, String path) { 41 | this.name=name; 42 | this.type = type; 43 | this.path = path; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/ReimbursementFile.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | @Getter 11 | @Setter 12 | @Entity 13 | @NoArgsConstructor 14 | public class ReimbursementFile { 15 | @Id 16 | @GeneratedValue(strategy = GenerationType.IDENTITY) 17 | private int id; 18 | 19 | String description; 20 | 21 | String fileName; 22 | 23 | String fileId; 24 | 25 | @ManyToOne 26 | @JsonIgnore 27 | Reimbursement reimbursement; 28 | 29 | public ReimbursementFile(String description, String fileName, String fileId, Reimbursement reimbursement) { 30 | this.description = description; 31 | this.fileName = fileName; 32 | this.fileId = fileId; 33 | this.reimbursement = reimbursement; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/Review.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import javax.persistence.*; 8 | import java.time.LocalDateTime; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 论文评审意见表 13 | * @create 6/4/2020 12:13 PM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class Review { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | @ManyToOne 24 | private User user; 25 | 26 | /** 27 | * 评审意见所对应的论文id 28 | */ 29 | private int paperid; 30 | 31 | /** 32 | * 是否对应外部论文 33 | */ 34 | private boolean external; 35 | 36 | /** 37 | * 评审意见markdown 38 | */ 39 | @Column(columnDefinition="TEXT") 40 | private String md; 41 | @Column(columnDefinition = "DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", updatable = false, insertable = false) 42 | private LocalDateTime updateTime; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/SubsidyLevel.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.softeng.dingtalk.enums.Position; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 津贴标准 13 | * @create 5/27/2020 6:32 PM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | public class SubsidyLevel { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | private int id; 23 | /** 24 | * 学位 25 | */ 26 | private Position position; 27 | 28 | /** 29 | * 津贴 30 | */ 31 | @Column(columnDefinition="DECIMAL(10,3)") 32 | private double subsidy; 33 | 34 | public SubsidyLevel(Position position, double subsidy) { 35 | this.position = position; 36 | this.subsidy = subsidy; 37 | } 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/entity/VoteDetail.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import javax.persistence.*; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 2/5/2020 5:27 PM 14 | */ 15 | @Getter 16 | @Setter 17 | @Entity 18 | @NoArgsConstructor 19 | @NamedEntityGraph(name="voteDetail.graph",attributeNodes={@NamedAttributeNode("acRecord")}) 20 | @Table(uniqueConstraints = {@UniqueConstraint(columnNames={"vote_id", "user_id"})}) 21 | public class VoteDetail { 22 | @Id 23 | @GeneratedValue(strategy = GenerationType.IDENTITY) 24 | private int id; 25 | private boolean result; 26 | 27 | @JsonIgnoreProperties("voteDetails") 28 | @ManyToOne(fetch = FetchType.LAZY) 29 | private Vote vote; 30 | @ManyToOne(fetch = FetchType.LAZY) 31 | private User user; 32 | 33 | /** 34 | * 投票对应的ac值 35 | */ 36 | @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) 37 | private AcRecord acRecord; 38 | 39 | public VoteDetail(Vote vote, boolean result, User user) { 40 | this.vote = vote; 41 | this.result = result; 42 | this.user = user; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/enums/LongitudinalLevel.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.enums; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | /** 6 | * @Description 纵向项目级别 7 | * @Author Jerrian Zhao 8 | * @Data 01/28/2022 9 | */ 10 | public enum LongitudinalLevel { 11 | NATIONAL("国家级项目"), 12 | PROVINCIAL("省部级项目"), 13 | BUREAU("厅局级项目"), 14 | NATIONAL_INSTITUTE("国家级学会和协会项目"), 15 | PROVINCIAL_INSTITUTE("省级学会和协会项目"); 16 | 17 | private String title; 18 | 19 | private LongitudinalLevel(String title) { 20 | this.title = title; 21 | } 22 | 23 | @JsonValue 24 | public String getTitle() { 25 | return title; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/enums/LongitudinalLevelConverter.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.enums; 2 | 3 | import javax.persistence.AttributeConverter; 4 | import javax.persistence.Converter; 5 | import java.util.stream.Stream; 6 | 7 | /** 8 | * @Description 用于枚举类型 LongitudinalLevel 存入数据库的类型转换 9 | * @Author Jerrian Zhao 10 | * @Data 01/28/2022 11 | */ 12 | 13 | @Converter(autoApply = true) 14 | public class LongitudinalLevelConverter implements AttributeConverter { 15 | 16 | 17 | @Override 18 | public String convertToDatabaseColumn(LongitudinalLevel longitudinalLevel) { 19 | if (longitudinalLevel == null) { 20 | return null; 21 | } 22 | return longitudinalLevel.getTitle(); 23 | } 24 | 25 | @Override 26 | public LongitudinalLevel convertToEntityAttribute(String title) { 27 | if (title == null) { 28 | return null; 29 | } 30 | return Stream.of(LongitudinalLevel.values()).filter(c -> c.getTitle().equals(title)).findFirst().orElseThrow(IllegalArgumentException::new); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/enums/PaperType.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.enums; 2 | 3 | /** 4 | * @author zhanyeye 5 | * @description 6 | * @create 5/30/2020 6:45 AM 7 | */ 8 | public enum PaperType { 9 | JOURNAL_A, 10 | CONFERENCE_A, 11 | JOURNAL_B, 12 | CONFERENCE_B, 13 | JOURNAL_C, 14 | CONFERENCE_C, 15 | Non_CCF 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/enums/Position.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.enums; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | /** 6 | * @author zhanyeye 7 | * @description 学位 8 | * @create 5/28/2020 8:20 AM 9 | */ 10 | 11 | public enum Position { 12 | DOCTOR("博士生"), 13 | ACADEMIC("学硕"), 14 | PROFESSIONAL("专硕"), 15 | UNDERGRADUATE("本科生"), 16 | OTHER("待定"); 17 | 18 | private String title; 19 | 20 | private Position(String title) { 21 | this.title = title; 22 | } 23 | 24 | @JsonValue 25 | public String getTitle() { 26 | return title; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/enums/PositionConverter.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.enums; 2 | 3 | import javax.persistence.AttributeConverter; 4 | import javax.persistence.Converter; 5 | import java.util.stream.Stream; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 用于枚举类型 Position 存入数据库的类型转换 10 | * @create 5/28/2020 8:21 AM 11 | */ 12 | @Converter(autoApply = true) 13 | public class PositionConverter implements AttributeConverter { 14 | 15 | @Override 16 | public String convertToDatabaseColumn(Position position) { 17 | if (position == null) { 18 | return null; 19 | } 20 | return position.getTitle(); 21 | } 22 | 23 | @Override 24 | public Position convertToEntityAttribute(String title) { 25 | if (title == null) { 26 | return null; 27 | } 28 | if (title.equals("硕士生")){ 29 | title = "待定"; 30 | } 31 | String finalTitle = title; 32 | return Stream.of(Position.values()) 33 | .filter(c -> c.getTitle().equals(finalTitle)) 34 | .findFirst() 35 | .orElseThrow(IllegalArgumentException::new); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/excel/AcData.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.excel; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import com.alibaba.excel.annotation.write.style.*; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.apache.poi.ss.usermodel.HorizontalAlignment; 9 | import org.apache.poi.ss.usermodel.IndexedColors; 10 | import org.apache.poi.ss.usermodel.VerticalAlignment; 11 | 12 | @Data 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ContentStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER) 16 | @HeadStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER, 17 | fillForegroundColor = 42, bottomBorderColor = 42, leftBorderColor = 42, rightBorderColor = 42) 18 | @HeadFontStyle(fontHeightInPoints = 11) 19 | public class AcData { 20 | @ColumnWidth(15) 21 | @ExcelProperty("学号") 22 | private String num; 23 | @ExcelProperty("姓名") 24 | private String name; 25 | @ColumnWidth(5) 26 | @ExcelProperty("AC 变化") 27 | private Double ac; 28 | @ColumnWidth(150) 29 | @ExcelProperty("AC 变化原因") 30 | @ContentStyle(horizontalAlignment = HorizontalAlignment.LEFT) 31 | @HeadStyle(horizontalAlignment = HorizontalAlignment.LEFT, 32 | fillForegroundColor = 42, bottomBorderColor = 42, leftBorderColor = 42, rightBorderColor = 42) 33 | private String reason; 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/excel/UserPrizeData.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.excel; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import com.alibaba.excel.annotation.write.style.ColumnWidth; 5 | import com.alibaba.excel.annotation.write.style.ContentStyle; 6 | import com.alibaba.excel.annotation.write.style.HeadFontStyle; 7 | import com.alibaba.excel.annotation.write.style.HeadStyle; 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | import org.apache.poi.ss.usermodel.HorizontalAlignment; 12 | import org.apache.poi.ss.usermodel.VerticalAlignment; 13 | 14 | import java.time.LocalDate; 15 | 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @ContentStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER) 20 | @HeadStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER, 21 | fillForegroundColor = 42, bottomBorderColor = 42, leftBorderColor = 42, rightBorderColor = 42) 22 | @HeadFontStyle(fontHeightInPoints = 11) 23 | public class UserPrizeData { 24 | @ColumnWidth(15) 25 | @ExcelProperty("学号") 26 | private String stuNum; 27 | @ExcelProperty("姓名") 28 | private String stuName; 29 | @ExcelProperty("获将时间") 30 | private String prizeTime; 31 | @ExcelProperty("奖项名称") 32 | private String prizeName; 33 | @ExcelProperty("奖项级别") 34 | private String level; 35 | @ExcelProperty("备注") 36 | private String remark; 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/excel/UserPropertyData.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.excel; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import com.alibaba.excel.annotation.write.style.ColumnWidth; 5 | import com.alibaba.excel.annotation.write.style.ContentStyle; 6 | import com.alibaba.excel.annotation.write.style.HeadFontStyle; 7 | import com.alibaba.excel.annotation.write.style.HeadStyle; 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | import org.apache.poi.ss.usermodel.HorizontalAlignment; 12 | import org.apache.poi.ss.usermodel.VerticalAlignment; 13 | 14 | import java.time.LocalDate; 15 | 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @ContentStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER) 20 | @HeadStyle(verticalAlignment = VerticalAlignment.CENTER, horizontalAlignment = HorizontalAlignment.CENTER, 21 | fillForegroundColor = 42, bottomBorderColor = 42, leftBorderColor = 42, rightBorderColor = 42) 22 | @HeadFontStyle(fontHeightInPoints = 11) 23 | public class UserPropertyData { 24 | @ColumnWidth(15) 25 | @ExcelProperty("学号") 26 | private String stuNum; 27 | @ExcelProperty("保管人") 28 | private String preserver; 29 | @ExcelProperty("物品名称") 30 | private String name; 31 | @ExcelProperty("物品型号") 32 | private String type; 33 | @ExcelProperty("保管开始时间") 34 | private String startTime; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/interceptor/LoginInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.interceptor; 2 | 3 | import com.softeng.dingtalk.component.EncryptorComponent; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.http.HttpStatus; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.server.ResponseStatusException; 8 | import org.springframework.web.servlet.HandlerInterceptor; 9 | 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | import java.util.Optional; 13 | 14 | /** 15 | * @author zhanyeye 16 | * @description 登录拦截器 17 | * @date 12/8/2019 18 | */ 19 | @Component 20 | public class LoginInterceptor implements HandlerInterceptor { 21 | @Autowired 22 | private EncryptorComponent encryptorComponent; 23 | @Override 24 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 25 | Optional.ofNullable(request.getHeader("token")) 26 | .ifPresentOrElse(token -> { 27 | // 如果token存在,则将token 解密后 里面的 uid 和 aid 塞入,request 请求中 28 | // 这个token 是在客户端第一次登录(向LoginController发请求),登录成功后 29 | // LoginController 封装 uid 和 aid 到repsonse响应,给客户端,用于后续客户端发送的请求的声明识别 30 | var token_map = encryptorComponent.decrypt(token); 31 | request.setAttribute("uid", token_map.get("uid")); //塞入 用户id 32 | request.setAttribute("aid", token_map.get("aid")); //塞入 用户权限值 33 | }, () -> { 34 | throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "未登录!"); 35 | }); 36 | return true; 37 | } 38 | } -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/mapper/AcRecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.mapper; 2 | 3 | import com.softeng.dingtalk.excel.AcData; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import java.time.Month; 7 | import java.time.Year; 8 | import java.util.List; 9 | 10 | @Repository 11 | public interface AcRecordMapper { 12 | List listAcDataByYearMonth(int year, Month month); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/mapper/DcRecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.mapper; 2 | 3 | import com.softeng.dingtalk.vo.DcRecordVO; 4 | import com.softeng.dingtalk.vo.UserVO; 5 | import org.apache.ibatis.annotations.Select; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @date 07/07/2020 14 | */ 15 | @Repository 16 | public interface DcRecordMapper { 17 | /** 18 | * 分页查询 19 | * @param offset 20 | * @param size 21 | * @return 22 | */ 23 | List listDcRecordVO(int uid, int offset, int size); 24 | 25 | /** 26 | * 获取提交的总申请数 27 | * @param uid 28 | * @return 29 | */ 30 | @Select("select count(id) from dc_record where applicant_id = #{uid}") 31 | Integer countDcRecordByuid(int uid); 32 | 33 | /** 34 | * 查询申请人最近一次绩效申请的审核人是谁 35 | * @param uid 申请人id 36 | * @return 37 | */ 38 | UserVO getRecentAuditorByApplicantId(int uid); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/mapper/DcSummaryMapper.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.mapper; 2 | 3 | import com.softeng.dingtalk.excel.DcSummaryData; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import java.util.List; 7 | 8 | @Repository 9 | public interface DcSummaryMapper { 10 | List listDcSummaryDataByYearMonth(int yearmonth); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/mapper/InternalPaperMapper.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.mapper; 2 | 3 | import com.softeng.dingtalk.vo.PaperInfoVO; 4 | import org.apache.ibatis.annotations.Select; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description InternalPaper mybatis 映射器 12 | * @date 26/06/2020 13 | */ 14 | @Repository 15 | public interface InternalPaperMapper { 16 | /** 17 | * 分页查询论文数据 18 | * @param offset 19 | * @param size 20 | * @return 21 | */ 22 | List listInternalPaperInfo(int offset, int size); 23 | 24 | List listNonFirstPaperInfo(int offset, int size); 25 | 26 | @Select("select count(id) from internal_paper where is_student_first_author = true or is_student_first_author is null") 27 | Integer countPaper(); 28 | 29 | @Select("select count(id) from internal_paper where is_student_first_author = false") 30 | Integer countNonFirstPaper(); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/AbsentOARepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.AbsentOA; 4 | import com.softeng.dingtalk.entity.DingTalkSchedule; 5 | import com.softeng.dingtalk.entity.User; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface AbsentOARepository extends CustomizedRepository{ 10 | AbsentOA getAbsentOAByUserAndDingTalkSchedule(User user, DingTalkSchedule dingTalkSchedule); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/AcItemRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import com.softeng.dingtalk.entity.DcRecord; 5 | import org.springframework.data.jpa.repository.Query; 6 | import org.springframework.data.repository.query.Param; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @date 12/11/2019 15 | */ 16 | @Repository 17 | public interface AcItemRepository extends CustomizedRepository { 18 | @Query("select a from AcItem a where a.dcRecord.id = :id") 19 | List findAllByDcRecordID(@Param("id") int id); 20 | 21 | /** 22 | * 更新时先将旧数据删除 23 | * @param dcRecord 24 | * @return void 25 | * @Date 4:22 PM 2/1/2020 26 | **/ 27 | void deleteByDcRecord(DcRecord dcRecord); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/BugDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.BugDetail; 4 | import org.springframework.data.jpa.repository.Query; 5 | import org.springframework.data.repository.query.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @date 3/22/2020 14 | */ 15 | @Repository 16 | public interface BugDetailRepository extends CustomizedRepository { 17 | 18 | void deleteBugDetailByBugId(int id); 19 | 20 | /** 21 | * 指定用户被确认bug的Id 22 | * @param uid 23 | * @return 24 | */ 25 | @Query("select bd.bug.id from BugDetail bd where bd.user.id = :uid") 26 | List listBugidByuid(@Param("uid") int uid); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/BugRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Bug; 4 | import org.springframework.data.jpa.repository.EntityGraph; 5 | import org.springframework.data.jpa.repository.Modifying; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 15 | * @date 3/12/2020 16 | */ 17 | @Repository 18 | public interface BugRepository extends CustomizedRepository { 19 | @EntityGraph(value="bug.graph",type= EntityGraph.EntityGraphType.FETCH) 20 | @Query("select b from Bug b where b.project.id = :pid order by b.id desc") 21 | List findAllByProjectId(@Param("pid") int pid); 22 | 23 | @EntityGraph(value="bug.graph",type= EntityGraph.EntityGraphType.FETCH) 24 | @Query("select b from Bug b where b.project.auditor.id = :aid order by b.id desc") 25 | List listBugByAuditor(@Param("aid") int aid); 26 | 27 | /** 28 | * 查询审核人待审的bug数 29 | * @param aid 30 | * @return 31 | */ 32 | @Query("select count (b.id) from Bug b where b.project.auditor.id = :aid and b.status is null ") 33 | Integer getAuditorPendingBugCnt(@Param("aid") int aid); 34 | 35 | @Modifying 36 | @Query("update Bug set status = :status where id = :id") 37 | void updateBugStatus(@Param("id") int id, @Param("status") boolean status); 38 | 39 | 40 | @EntityGraph(value="bug.graph",type= EntityGraph.EntityGraphType.FETCH) 41 | @Query("select b from Bug b where b.id in :ids order by b.id desc") 42 | List findAllById(@Param("ids") List ids); 43 | 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/CustomizedRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.repository.NoRepositoryBean; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author zhanyeye 10 | * @description 自定义支持 refresh() 方法的全局基本接口 11 | * @date 12/7/2019 12 | */ 13 | @NoRepositoryBean // 禁止spring按组件创建对象 14 | public interface CustomizedRepository extends JpaRepository { 15 | 16 | T refresh(T t); // 声明refresh()方法 17 | 18 | void saveBatch(List entities); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/DingTalkScheduleDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.DingTalkSchedule; 4 | import com.softeng.dingtalk.entity.DingTalkScheduleDetail; 5 | import com.softeng.dingtalk.entity.User; 6 | import org.springframework.data.domain.Page; 7 | import org.springframework.data.domain.Pageable; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import java.util.List; 11 | 12 | @Repository 13 | public interface DingTalkScheduleDetailRepository extends CustomizedRepository{ 14 | Page getDingTalkScheduleDetailsByUserEquals(User user, Pageable pageable); 15 | DingTalkScheduleDetail getDingTalkScheduleDetailByUserAndDingTalkSchedule(User user, DingTalkSchedule dingTalkSchedule); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/DingTalkScheduleRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.DingTalkSchedule; 4 | import com.softeng.dingtalk.entity.DingTalkScheduleDetail; 5 | import com.softeng.dingtalk.entity.User; 6 | import org.springframework.data.domain.Pageable; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.List; 10 | 11 | @Repository 12 | public interface DingTalkScheduleRepository extends CustomizedRepository{ 13 | List getDingTalkSchedulesByAcCalculatedFalse(); 14 | List getDingTalkSchedulesByDingTalkScheduleDetailListContains(DingTalkScheduleDetail dingTalkScheduleDetail); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/DissertationPropertyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Dissertation; 4 | import org.springframework.data.jpa.repository.Query; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface DissertationPropertyRepository extends CustomizedRepository{ 9 | 10 | @Query("select diss from Dissertation diss where diss.user.id =:uid") 11 | Dissertation findByUserId(int uid); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/EventFileRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.EventFile; 4 | import com.softeng.dingtalk.entity.EventProperty; 5 | import com.softeng.dingtalk.repository.CustomizedRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface EventFileRepository extends CustomizedRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/EventPropertyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.EventProperty; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.data.domain.Pageable; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.stereotype.Repository; 8 | 9 | 10 | import java.util.List; 11 | 12 | @Repository 13 | public interface EventPropertyRepository extends CustomizedRepository{ 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ExternalPaperRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.ExternalPaper; 4 | import com.softeng.dingtalk.entity.Vote; 5 | import com.softeng.dingtalk.vo.PaperFileInfoVO; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | 9 | /** 10 | * @description: 11 | * @author: zhanyeye 12 | * @create: 2020-10-21 21:28 13 | **/ 14 | public interface ExternalPaperRepository extends CustomizedRepository { 15 | /** 16 | * 查询对应指定投票id的外部论文 17 | * @param vid 18 | * @return 19 | */ 20 | @Query("select ep from ExternalPaper ep where ep.vote.id = :vid") 21 | ExternalPaper findByVid(int vid); 22 | 23 | /** 24 | * 查询指定论文的投票 25 | * @param id 26 | * @return 27 | */ 28 | @Query("select ep.vote from ExternalPaper ep where ep.id = :id") 29 | Vote findVoteById(int id); 30 | 31 | /** 32 | * 查询外部评审论文文件信息 33 | * @param id 34 | * @return 35 | */ 36 | @Query("select new com.softeng.dingtalk.vo.PaperFileInfoVO(p.id, p.reviewFileName, p.reviewFileId,p.submissionFileName," + 37 | "p.submissionFileId,p.publishedFileName,p.publishedFileId,p.publishedLatexFileName,p.publishedLatexFileId," + 38 | "p.publicFileName,p.publicFileId,p.sourceFileName,p.sourceFileId,p.commentFileName,p.commentFileId) " + 39 | "from ExternalPaper p where p.id= :id") 40 | PaperFileInfoVO getExternalPaperFileInfo(@Param("id") int id); 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/IterationDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | 4 | import com.softeng.dingtalk.entity.IterationDetail; 5 | import com.softeng.dingtalk.entity.User; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @date 3/14/2020 15 | */ 16 | public interface IterationDetailRepository extends CustomizedRepository { 17 | 18 | /** 19 | * 删除Iteration 的所有 iterationDetail 20 | * @param id 主键 21 | **/ 22 | void deleteByIterationId(int id); 23 | 24 | 25 | @Query("select itd.user from IterationDetail itd where itd.iteration.id = :id") 26 | List listUserByIterationId(@Param("id") int id); 27 | 28 | 29 | /** 30 | * 查询用户所参与迭代的id 31 | * @param uid 32 | * @return 33 | */ 34 | @Query("select itd.iteration.id from IterationDetail itd where itd.user.id = :uid") 35 | List listIterationIdByUid(@Param("uid") int uid); 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/IterationRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Iteration; 4 | import org.springframework.data.jpa.repository.EntityGraph; 5 | import org.springframework.data.jpa.repository.Query; 6 | import org.springframework.data.repository.query.Param; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @date 3/14/2020 14 | */ 15 | public interface IterationRepository extends CustomizedRepository { 16 | 17 | /** 18 | * 查询项目的所有迭代 19 | * @param pid 20 | * @return 21 | */ 22 | @EntityGraph(value="iteration.graph",type= EntityGraph.EntityGraphType.FETCH) 23 | @Query("select it from Iteration it where it.project.id = :pid order by it.id desc") 24 | List listIterationByPid(@Param("pid") int pid); 25 | 26 | /** 27 | * 根据id查询当前迭代的连续交付次数 28 | * @param id 29 | * @return 30 | */ 31 | @Query("select i.conSuccess from Iteration i where i.id = :id") 32 | Integer getConSucessCntById(@Param("id") int id); 33 | 34 | /** 35 | * 根据id查询迭代 36 | * @param id 37 | * @return 38 | */ 39 | @EntityGraph(value="iteration.graph",type= EntityGraph.EntityGraphType.FETCH) 40 | @Query("select i from Iteration i where i.id = :id") 41 | Iteration getIterationById(@Param("id") int id); 42 | 43 | 44 | /** 45 | * 用户获取自己参与的迭代 46 | * @param uid 47 | * @return 48 | */ 49 | @Query("select p from Iteration p left join IterationDetail pd on p.id = pd.iteration.id where pd.user.id = :uid") 50 | List listunfinishIteration(@Param("uid")int uid); 51 | 52 | 53 | /** 54 | * 根据 id 集合查询 iteration 55 | * @param ids 56 | * @return 57 | */ 58 | @EntityGraph(value="iteration.graph",type= EntityGraph.EntityGraphType.FETCH) 59 | @Query("select i from Iteration i where i.id in :ids order by i.id desc") 60 | List findAllById(@Param("ids") List ids); 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/MessageRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Message; 4 | import org.springframework.data.domain.Page; 5 | import org.springframework.data.domain.Pageable; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @date 3/2/2020 11 | */ 12 | public interface MessageRepository extends CustomizedRepository { 13 | Page findByUid(int uid, Pageable pageable); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PaperDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.InternalPaper; 4 | import com.softeng.dingtalk.entity.PaperDetail; 5 | import org.springframework.data.jpa.repository.Modifying; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import java.util.List; 11 | import java.util.Set; 12 | 13 | /** 14 | * @author zhanyeye 15 | * @description 16 | * @date 2/5/2020 17 | */ 18 | @Repository 19 | public interface PaperDetailRepository extends CustomizedRepository { 20 | void deleteByInternalPaper(InternalPaper internalPaper); 21 | 22 | List findByInternalPaper(InternalPaper internalPaper); 23 | 24 | /** 25 | * 查询论文的作者id 26 | * @param pid 论文id 27 | * @return 28 | */ 29 | @Query("select pd.user.id from PaperDetail pd where pd.internalPaper.id = :pid") 30 | Set listAuthorIdByPid(@Param("pid") int pid); 31 | 32 | /** 33 | * 删除论文记录 34 | * @param id 35 | */ 36 | @Modifying 37 | @Query("delete from PaperDetail pd where pd.internalPaper.id = :id") 38 | void deleteByPaperid(@Param("id") int id); 39 | 40 | 41 | @Query("select pd.user.name from PaperDetail pd where pd.internalPaper.id = :pid") 42 | List listPaperAuthor(@Param("pid") int pid); 43 | 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PaperLevelRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.PaperLevel; 4 | import com.softeng.dingtalk.enums.PaperType; 5 | import org.springframework.data.jpa.repository.Modifying; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description 12 | * @date 2/6/2020 13 | */ 14 | public interface PaperLevelRepository extends CustomizedRepository { 15 | /** 16 | * 查询指定论文可获得AC值 17 | * @param papertype 18 | * @return 19 | */ 20 | @Query("select pl.total from PaperLevel pl where pl.paperType = :papertype") 21 | Double getValue(@Param("papertype") PaperType papertype); 22 | 23 | /** 24 | * 更新论文获得的AC标准 25 | * @param paperType 26 | * @param total 27 | */ 28 | @Modifying 29 | @Query("update PaperLevel set total = :total where paperType = :papertype") 30 | void updatePaperLevel(@Param("papertype") PaperType paperType, @Param("total") double total); 31 | 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PatentDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.PatentDetail; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface PatentDetailRepository extends CustomizedRepository{ 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PatentLevelRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.PatentLevel; 4 | import com.softeng.dingtalk.enums.PaperType; 5 | import org.springframework.data.jpa.repository.Modifying; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | import org.springframework.stereotype.Repository; 9 | 10 | @Repository 11 | public interface PatentLevelRepository extends CustomizedRepository{ 12 | 13 | @Query("select pl.total from PatentLevel pl where pl.title = :title") 14 | Double getValue(@Param("title") String title); 15 | 16 | @Modifying 17 | @Query("update PatentLevel set total = :total where title = :title") 18 | void updatePatentLevel(@Param("title") String title, @Param("total") double total); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PatentRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Patent; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface PatentRepository extends CustomizedRepository{ 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PracticeRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Practice; 4 | import com.softeng.dingtalk.entity.User; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface PracticeRepository extends CustomizedRepository{ 11 | List findAllByStateEquals(int state); 12 | List findAllByUserEquals(User user); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PrizeRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Prize; 4 | import org.springframework.data.jpa.repository.Query; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Description 10 | * @Author Jerrian Zhao 11 | * @Data 01/25/2022 12 | */ 13 | 14 | public interface PrizeRepository extends CustomizedRepository { 15 | 16 | /** 17 | * 查询用户所有奖项 18 | * 19 | * @param userId 20 | * @return 21 | */ 22 | @Query(value = "select * from Prize pr where user_id=:userId and deleted = false ", nativeQuery = true) 23 | List findByUserId(int userId); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ProcessFileRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | import com.softeng.dingtalk.entity.ProcessFile; 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public interface ProcessFileRepository extends CustomizedRepository{ 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ProcessPropertyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | import com.softeng.dingtalk.entity.ProcessProperty; 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public interface ProcessPropertyRepository extends CustomizedRepository{ 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ProjectPropertyFileRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | import com.softeng.dingtalk.entity.ProjectPropertyFile; 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public interface ProjectPropertyFileRepository extends CustomizedRepository{ 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ProjectPropertyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Project; 4 | import com.softeng.dingtalk.entity.ProjectProperty; 5 | import org.springframework.stereotype.Repository; 6 | 7 | @Repository 8 | public interface ProjectPropertyRepository extends CustomizedRepository{ 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ProjectRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Project; 4 | import org.springframework.data.jpa.repository.Modifying; 5 | import org.springframework.data.jpa.repository.Query; 6 | import org.springframework.data.repository.query.Param; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 15 | * @date 2/25/2020 16 | */ 17 | @Repository 18 | public interface ProjectRepository extends CustomizedRepository { 19 | 20 | /** 21 | * 修改项目标题 22 | * @param id 23 | * @param title 24 | */ 25 | @Modifying 26 | @Query("update Project set title = :title where id = :id") 27 | void updateTitle(@Param("id") int id, @Param("title") String title); 28 | 29 | 30 | @Query(value = "SELECT p.id, p.title, p.success_cnt, p.cnt, i.id as itid, i.begin_time, i.end_time, i.finish_time, i.expectedac, i.status FROM (SELECT * FROM project WHERE auditor_id = :aid) p LEFT JOIN iteration i ON p.cur_iteration = i.id order by p.id desc", nativeQuery = true) 31 | List> listProjectInfo(@Param("aid") int aid); 32 | 33 | 34 | /** 35 | * 查询所有项目 36 | * @return 37 | */ 38 | @Query(value = "SELECT p.id, p.title, p.success_cnt, p.cnt, u.name, i.id as itid, i.begin_time, i.end_time, i.finish_time, i.expectedac, i.status FROM project p LEFT JOIN iteration i ON p.cur_iteration = i.id LEFT JOIN user u on p.auditor_id = u.id order by p.id desc", nativeQuery = true) 39 | List> listAllProjectInfo(); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/PropertyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Property; 4 | import org.springframework.data.jpa.repository.Query; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Description 10 | * @Author Jerrian Zhao 11 | * @Data 01/26/2022 12 | */ 13 | 14 | public interface PropertyRepository extends CustomizedRepository { 15 | 16 | /** 17 | * 查询用户所有固定资产 18 | * 19 | * @param userId 20 | * @return 21 | */ 22 | @Query(value = "select * from property where user_id = :userId and deleted=false", nativeQuery = true) 23 | List findByUserId(int userId); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ReimbursementFileRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.ReimbursementFile; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface ReimbursementFileRepository extends CustomizedRepository{ 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ReimbursementRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Reimbursement; 4 | import org.springframework.stereotype.Repository; 5 | 6 | @Repository 7 | public interface ReimbursementRepository extends CustomizedRepository{ 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/ReviewRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.Review; 4 | import org.springframework.data.jpa.repository.Query; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description 12 | * @date 6/6/2020 13 | */ 14 | @Repository 15 | public interface ReviewRepository extends CustomizedRepository { 16 | 17 | /** 18 | * 根据论文类型和论文id,查询论文对应的评审意见 19 | * @param pid 20 | * @param isExternal 21 | * @return 22 | */ 23 | @Query("select r from Review r where r.paperid = :pid and r.external = :external order by r.id DESC") 24 | List findAllByPaperidAndExternal(int pid, boolean external); 25 | 26 | void deleteByPaperid(int pid); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/SubsidyLevelRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | 4 | import com.softeng.dingtalk.entity.SubsidyLevel; 5 | import com.softeng.dingtalk.enums.Position; 6 | import org.springframework.data.jpa.repository.Modifying; 7 | import org.springframework.data.jpa.repository.Query; 8 | import org.springframework.data.repository.query.Param; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @date 5/28/2020 14 | */ 15 | public interface SubsidyLevelRepository extends CustomizedRepository { 16 | /** 17 | * 查询绩效标准 18 | * @param position 19 | * @return double 20 | */ 21 | @Query("select s.subsidy from SubsidyLevel s where s.position = :position") 22 | double getSubsidy(@Param("position") Position position); 23 | 24 | 25 | /** 26 | * 更新绩效标准 27 | * @param position 28 | * @param subsidy 29 | */ 30 | @Modifying 31 | @Query("update SubsidyLevel set subsidy = :subsidy where position = :position") 32 | void updateSubsidy(@Param("position") Position position, @Param("subsidy") double subsidy); 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/VMApplyRepository.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository; 2 | 3 | import com.softeng.dingtalk.entity.User; 4 | import com.softeng.dingtalk.entity.VMApply; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface VMApplyRepository extends CustomizedRepository{ 11 | List findAllByStateEquals(int state); 12 | List findAllByUserEquals(User user); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/repository/impl/CustomizedRepositoryImpl.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.repository.impl; 2 | 3 | import com.softeng.dingtalk.repository.CustomizedRepository; 4 | import org.springframework.data.jpa.repository.support.JpaEntityInformation; 5 | import org.springframework.data.jpa.repository.support.SimpleJpaRepository; 6 | 7 | import javax.persistence.EntityManager; 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 自定义接口实现类,继承SimpleJpaRepository类,从而注入EntityManager对象 13 | * @date 12/7/2019 14 | */ 15 | public class CustomizedRepositoryImpl extends SimpleJpaRepository implements CustomizedRepository { 16 | 17 | private EntityManager em; 18 | 19 | public CustomizedRepositoryImpl(JpaEntityInformation entityInformation, EntityManager entityManager) { 20 | super(entityInformation, entityManager); 21 | this.em = entityManager; 22 | } 23 | 24 | /** 25 | * @Description 基于entityManager对象,实现refresh()方法 26 | * @Author zhanyeye 27 | * @Date 9:10 PM 12/7/2019 28 | **/ 29 | @Override 30 | public T refresh(T t) { 31 | em.refresh(t); 32 | return t; 33 | } 34 | 35 | @Override 36 | public void saveBatch(List entities) { 37 | for (int i = 0; i < entities.size(); i++) { 38 | em.persist(entities.get(i)); 39 | if ((i % 20) == 0) { 40 | em.flush(); 41 | } 42 | } 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/service/InitSys.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.service; 2 | 3 | import org.springframework.beans.factory.InitializingBean; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 3/3/2020 2:24 PM 11 | */ 12 | @Component 13 | public class InitSys implements InitializingBean { 14 | 15 | @Autowired 16 | private InitService initService; 17 | 18 | 19 | @Override 20 | public void afterPropertiesSet() { 21 | initService.initPaperLevel(); 22 | initService.initUser(); 23 | initService.initSubsidyLevel(); 24 | initService.initDcSummary(); 25 | initService.initPatentLevel(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/service/PrizeService.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.service; 2 | 3 | import com.softeng.dingtalk.entity.Prize; 4 | import com.softeng.dingtalk.entity.User; 5 | import com.softeng.dingtalk.repository.PrizeRepository; 6 | import com.softeng.dingtalk.vo.PrizeVO; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | import org.springframework.transaction.annotation.Transactional; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * @Description 获奖情况业务逻辑 16 | * @Author Jerrian Zhao 17 | * @Data 01/25/2022 18 | */ 19 | 20 | @Service 21 | @Transactional 22 | @Slf4j 23 | public class PrizeService { 24 | @Autowired 25 | PrizeRepository prizeRepository; 26 | 27 | /** 28 | * 查询用户所有奖项 29 | * @param userId 30 | * @return 31 | */ 32 | public List findByUser(int userId){ 33 | return prizeRepository.findByUserId(userId); 34 | } 35 | 36 | /** 37 | * 新增奖项 38 | * @param userId 39 | * @param prizeVO 40 | * @return 41 | */ 42 | public Prize addNewPrize(int userId,PrizeVO prizeVO){ 43 | Prize prize=new Prize(new User(userId),prizeVO.getPrizeTime(),prizeVO.getPrizeName(),prizeVO.getLevel(),prizeVO.getRemark()); 44 | return prizeRepository.save(prize); 45 | } 46 | 47 | /** 48 | * 更新奖项 49 | * @param prizeVO 50 | */ 51 | public void updatePrize(PrizeVO prizeVO){ 52 | Prize p = prizeRepository.findById(prizeVO.getId()).get(); 53 | p.setLevel(prizeVO.getLevel()); 54 | p.setPrizeTime(prizeVO.getPrizeTime()); 55 | p.setPrizeName(prizeVO.getPrizeName()); 56 | p.setRemark(prizeVO.getRemark()); 57 | prizeRepository.save(p); 58 | } 59 | 60 | /** 61 | * 删除奖项 62 | * @param prizeId 63 | */ 64 | public void deletePrize(int prizeId){ 65 | Prize p = prizeRepository.findById(prizeId).get(); 66 | p.setDeleted(true); 67 | prizeRepository.save(p); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/AbsentOAVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | import java.time.LocalDate; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | public class AbsentOAVO { 11 | Integer id; 12 | //请假类型 事假 病假 其它 13 | String type; 14 | //开始时间 15 | LocalDate start; 16 | //结束时间 17 | LocalDate end; 18 | //请假天数 19 | Double dayNum; 20 | //请假缘由 21 | String reason; 22 | //是否通过 23 | boolean isPass=false; 24 | //请求Id 25 | String processInstanceId; 26 | 27 | public AbsentOAVO(String type, String reason) { 28 | this.type = type; 29 | this.reason = reason; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/AcItemVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author zhanyeye 7 | * @description 8 | * @create 07/07/2020 11:29 AM 9 | */ 10 | @Data 11 | public class AcItemVO { 12 | private double ac; 13 | private String reason; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/AppliedVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.time.LocalDate; 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 申请人获取已经提交的申请 14 | * @create 2/3/2020 11:12 PM 15 | */ 16 | @Getter 17 | @Setter 18 | public class AppliedVO { 19 | private int id; 20 | private int auditorid; 21 | private String auditorName; 22 | private Boolean status; 23 | private double dvalue; 24 | private double dc; 25 | private double ac; 26 | private int yearmonth; 27 | private int week; 28 | private LocalDate date; 29 | 30 | private LocalDateTime insertTime; 31 | /** 32 | * ac值申请列表 33 | */ 34 | private List acItems; 35 | 36 | public AppliedVO(int id, int auditorid, String auditorName, Boolean status, double dvalue, double dc, double ac, int yearmonth, int week, LocalDate date, LocalDateTime insertTime) { 37 | this.id = id; 38 | this.auditorid = auditorid; 39 | this.auditorName = auditorName; 40 | this.status = status; 41 | this.dvalue = dvalue; 42 | this.dc = dc; 43 | this.ac = ac; 44 | this.date = date; 45 | this.insertTime = insertTime; 46 | this.yearmonth = yearmonth; 47 | this.week = week; 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ApplingVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import lombok.ToString; 7 | 8 | import javax.validation.constraints.Max; 9 | import java.time.LocalDate; 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 申请人每周的提交的绩效申请,包含dvalue, 和 acItems 等 15 | * @create 2/2/2020 2:17 PM 16 | */ 17 | @Getter 18 | @Setter 19 | @ToString 20 | public class ApplingVO { 21 | private int id; 22 | private int auditorid; 23 | private LocalDate date; 24 | @Max(value = 1, message = " D值不能大于 1!") 25 | private double dvalue; 26 | private double ac; 27 | /** 28 | * ac值申请列表 29 | */ 30 | private List acItems; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ApplyVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import javax.validation.constraints.Max; 8 | import java.time.LocalDate; 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @create 4/1/2020 5:48 PM 15 | */ 16 | @Getter 17 | @Setter 18 | public class ApplyVO { 19 | private int id; 20 | private int auditorid; 21 | private LocalDate date; 22 | @Max(value = 1, message = " D值不能大于 1!") 23 | private double dvalue; 24 | @Max(value = 1, message = " C值不能大于 1!") 25 | private double cvalue; 26 | private double ac; 27 | /** 28 | * ac值申请列表 29 | */ 30 | private List acItems; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/AuthorVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 26/06/2020 7:54 PM 11 | */ 12 | @Data 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | public class AuthorVO { 16 | private int uid; 17 | private String name; 18 | private int num; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/BugCheckVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 3/22/2020 2:22 PM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class BugCheckVO { 16 | private int id; 17 | private boolean status; 18 | private int iterationId; 19 | private int uid; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/CheckVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | import lombok.ToString; 8 | 9 | import javax.validation.constraints.Max; 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 审核人提交的审核结果 15 | * @create 1/28/2020 8:49 AM 16 | */ 17 | @Setter 18 | @Getter 19 | @AllArgsConstructor 20 | @ToString 21 | public class CheckVO { 22 | private int id; 23 | private double cvalue; 24 | @Max(value = 1, message = " DC 值不能大于 1!") 25 | private double dc; 26 | private double ac; 27 | private List acItems; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/CheckedVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.*; 5 | 6 | import java.time.LocalDate; 7 | import java.time.LocalDateTime; 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 向前端传送审核人已经审核的申请,向后端传送审核人修改的申请 13 | * @create 1/28/2020 8:11 PM 14 | */ 15 | @AllArgsConstructor 16 | @NoArgsConstructor // 序列化用 17 | @Getter 18 | @Setter 19 | @ToString 20 | public class CheckedVO { 21 | /** 22 | * dcRecord id 23 | */ 24 | private int id; 25 | /** 26 | * 申请人姓名 27 | */ 28 | private String name; 29 | /** 30 | * 申请人id 31 | */ 32 | private int uid; 33 | /** 34 | * Dedication Value 35 | */ 36 | private double dvalue; 37 | /** 38 | * Contribution Value 39 | */ 40 | private double cvalue; 41 | private double dc; 42 | private double ac; 43 | /** 44 | * 表示申请所属 年、月 45 | */ 46 | private int yearmonth; 47 | private int week; 48 | /** 49 | * 审核人id,用于通知消息中,显示审核人 50 | */ 51 | private int aid; 52 | private LocalDateTime insertTime; 53 | private LocalDate weekdate; 54 | private List acItems; 55 | 56 | 57 | 58 | public CheckedVO(int id, String name, int uid, double dvalue, double cvalue, double dc, double ac, int yearmonth, int week, LocalDateTime insertTime, LocalDate weekdate) { 59 | this.id = id; 60 | this.name = name; 61 | this.uid = uid; 62 | this.dvalue = dvalue; 63 | this.cvalue = cvalue; 64 | this.dc = dc; 65 | this.ac = ac; 66 | this.yearmonth = yearmonth; 67 | this.week = week; 68 | this.insertTime = insertTime; 69 | this.weekdate = weekdate; 70 | } 71 | 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ConflictVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcRecord; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | public class ConflictVO { 10 | AcRecord mysqlData; 11 | AcRecord fabricData; 12 | String choice; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DateVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import lombok.ToString; 6 | 7 | import java.time.LocalDate; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description 12 | * @create 2/7/2020 2:59 PM 13 | */ 14 | @Setter 15 | @Getter 16 | @ToString 17 | public class DateVO { 18 | /** 19 | * 查询的日期 20 | */ 21 | private LocalDate date; 22 | /** 23 | * 数据的排序方式 24 | * true: 降序 25 | * false: 升序 26 | */ 27 | private boolean desc; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DcRecordVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.time.LocalDate; 6 | import java.time.LocalDateTime; 7 | import java.util.List; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description 12 | * @create 07/07/2020 11:25 AM 13 | */ 14 | @Data 15 | public class DcRecordVO { 16 | private int id; 17 | private int yearmonth; 18 | private int week; 19 | private LocalDateTime insertTime; 20 | private LocalDate weekdate; 21 | private String auditorName; 22 | private int auditorid; 23 | private double dvalue; 24 | private double cvalue; 25 | private double ac; 26 | private double dc; 27 | private boolean status; 28 | private List acItems; 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DcSummaryVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 1/29/2020 2:19 PM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class DcSummaryVO { 16 | private String name; 17 | private int yearmonth; 18 | private double week1; 19 | private double week2; 20 | private double week3; 21 | private double week4; 22 | private double week5; 23 | private double total; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DcVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 3/17/2020 6:23 PM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class DcVO { 16 | private int date; 17 | private double dc; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DingTalkScheduleVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.time.LocalDate; 8 | import java.time.LocalDateTime; 9 | import java.util.List; 10 | 11 | @Data 12 | @NoArgsConstructor 13 | public class DingTalkScheduleVO { 14 | Integer id; 15 | int organizerId; 16 | List attendeesIdList; 17 | String summary; 18 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 19 | LocalDateTime start; 20 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 21 | LocalDateTime end; 22 | boolean online; 23 | String location; 24 | 25 | public DingTalkScheduleVO(int organizerId, String summary, LocalDateTime start, LocalDateTime end, boolean online, String location) { 26 | this.organizerId = organizerId; 27 | this.summary = summary; 28 | this.start = start; 29 | this.end = end; 30 | this.online = online; 31 | this.location = location; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/DissertationVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Data 8 | @Getter 9 | @Setter 10 | public class DissertationVO { 11 | Integer id; 12 | Integer userId; 13 | int state=0; 14 | String graduateYear; 15 | String filePath; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/EventPropertyInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class EventPropertyInfoVO { 9 | int id; 10 | String name; 11 | String year; 12 | String type; 13 | String path; 14 | public EventPropertyInfoVO(int id, String name, String year, String type) { 15 | this.id = id; 16 | this.name = name; 17 | this.year = year; 18 | this.type = type; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ExternalPaperVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | /** 10 | * @description: 11 | * @author: zhanyeye 12 | * @create: 2020-10-08 18:21 13 | **/ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class ExternalPaperVO { 18 | private Integer id; 19 | private String title; 20 | 21 | private LocalDateTime startTime; 22 | private LocalDateTime endTime; 23 | 24 | public ExternalPaperVO(Integer id, String title, LocalDateTime startTime, LocalDateTime endTime) { 25 | this.id = id; 26 | this.title = title; 27 | this.startTime = startTime; 28 | this.endTime = endTime; 29 | } 30 | private String path; 31 | private String hash; 32 | private String theme; 33 | private String fileName; 34 | private String fileId; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/FileDownloadVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class FileDownloadVO { 7 | String fileName; 8 | String filePath; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/FlatDecisionVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class FlatDecisionVO { 7 | private Integer id; 8 | private Boolean decision; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/InternalPaperVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.enums.PaperType; 4 | import lombok.*; 5 | import org.springframework.web.multipart.MultipartFile; 6 | 7 | import java.time.LocalDate; 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 2/6/2020 11:16 AM 14 | */ 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | public class InternalPaperVO { 19 | private Integer id; 20 | private String title; 21 | private String journal; 22 | private PaperType paperType; 23 | private LocalDate issueDate; 24 | private List authors; 25 | private Boolean isStudentFirstAuthor; 26 | private String firstAuthor; 27 | private int version; 28 | private String path; 29 | private String hash; 30 | private int flatDecision; 31 | private String fileName; 32 | private String fileId; 33 | private String theme; 34 | private String year; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/IterateAcVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.IterationDetail; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.time.LocalDate; 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @create 3/19/2020 5:22 PM 15 | */ 16 | @AllArgsConstructor 17 | @Getter 18 | @Setter 19 | public class IterateAcVO { 20 | private LocalDate finishdate; 21 | private List iterationDetails; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/IterateInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 3/18/2020 8:19 PM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class IterateInfoVO { 16 | private String name; 17 | private double dc; 18 | private double ac; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/IterationVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.time.LocalDate; 8 | import java.util.List; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 3/14/2020 11:11 PM 14 | */ 15 | @AllArgsConstructor 16 | @Getter 17 | @Setter 18 | public class IterationVO { 19 | private int id; 20 | private String title; 21 | private LocalDate[] dates; 22 | private List dingIds; 23 | private boolean updateDingIds; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PaperFileDownloadInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class PaperFileDownloadInfoVO { 7 | String url; 8 | String headerKey1; 9 | String headerKey2; 10 | public PaperFileDownloadInfoVO(String url, String headerKey1, String headerKey2){ 11 | this.url=url; 12 | this.headerKey1=headerKey1; 13 | this.headerKey2=headerKey2; 14 | } 15 | public PaperFileDownloadInfoVO() { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PaperFileInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class PaperFileInfoVO { 9 | int id; 10 | String reviewFileName; 11 | String reviewFileId; 12 | String submissionFileName; 13 | String submissionFileId; 14 | String publishedFileName; 15 | String publishedFileId; 16 | String publishedLatexFileName; 17 | String publishedLatexFileId; 18 | String publicFileName; 19 | String publicFileId; 20 | String sourceFileName; 21 | String sourceFileId; 22 | String commentFileName; 23 | String commentFileId; 24 | public PaperFileInfoVO(int id, String reviewFileName, String reviewFileId, String submissionFileName, String submissionFileId, String publishedFileName, String publishedFileId, String publishedLatexFileName, String publishedLatexFileId) { 25 | this.id = id; 26 | this.reviewFileName = reviewFileName; 27 | this.reviewFileId = reviewFileId; 28 | this.submissionFileName = submissionFileName; 29 | this.submissionFileId = submissionFileId; 30 | this.publishedFileName = publishedFileName; 31 | this.publishedFileId = publishedFileId; 32 | this.publishedLatexFileName = publishedLatexFileName; 33 | this.publishedLatexFileId = publishedLatexFileId; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PaperInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.enums.PaperType; 4 | import lombok.*; 5 | 6 | import java.time.LocalDate; 7 | import java.util.List; 8 | 9 | /** 10 | * @author zhanyeye 11 | * @description 12 | * @create 26/06/2020 4:48 PM 13 | */ 14 | @Data 15 | public class PaperInfoVO { 16 | private int id; 17 | private String title; 18 | private String journal; 19 | private LocalDate issueDate; 20 | private int result; 21 | private PaperType paperType; 22 | private String firstAuthor; 23 | private Boolean v_status; 24 | private int v_result; 25 | private List authors; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PaperResultVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.time.LocalDate; 6 | 7 | @Data 8 | public class PaperResultVO { 9 | private int result; 10 | private LocalDate updateDate; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PatentVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class PatentVO { 13 | Integer id; 14 | String name; 15 | String type; 16 | String year; 17 | String obligee; 18 | Integer applicantId; 19 | List inventorsIdList; 20 | String version; 21 | String filePath; 22 | String patentFileName; 23 | String patentFileId; 24 | String handlingFileName; 25 | String handlingFileId; 26 | String authorizationFileName; 27 | String authorizationFileId; 28 | int state=0; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PollVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @description: 7 | * @author: zhanyeye 8 | * @create: 2020-10-21 10:12 9 | **/ 10 | @Data 11 | public class PollVO { 12 | private boolean result; 13 | private Integer vid; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PracticeVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.User; 4 | import lombok.Data; 5 | import java.time.LocalDate; 6 | @Data 7 | public class PracticeVO { 8 | 9 | private Integer id; 10 | 11 | User user; 12 | //实习单位 13 | String companyName; 14 | //实习部门 15 | String department; 16 | //开始时间 17 | LocalDate start; 18 | //结束时间 19 | LocalDate end; 20 | //状态 -1拒绝,0审核中,1通过 21 | int state=0; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PrizeVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.time.LocalDate; 8 | 9 | /** 10 | * @Description 11 | * @Author Jerrian Zhao 12 | * @Data 01/24/2022 13 | */ 14 | @Setter 15 | @Getter 16 | @AllArgsConstructor 17 | public class PrizeVO { 18 | private int id; 19 | private int userId; 20 | private LocalDate prizeTime; 21 | private String prizeName; 22 | private int level; 23 | private String remark; 24 | private boolean deleted; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ProcessPropertyDetailVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.ProcessFile; 4 | import com.softeng.dingtalk.entity.User; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @AllArgsConstructor 12 | public class ProcessPropertyDetailVO { 13 | private Integer id; 14 | String conferenceName; 15 | String year; 16 | String filePath; 17 | User user; 18 | ProcessFile invitationFile; 19 | ProcessFile PPTFile; 20 | List personalPhotoFileList; 21 | List conferencePhotoFileList; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ProcessPropertyVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class ProcessPropertyVO { 9 | Integer id; 10 | String conferenceName; 11 | String year; 12 | String filePath; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ProjectPropertyFileVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class ProjectPropertyFileVO { 7 | String version; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ProjectPropertyVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class ProjectPropertyVO { 9 | Integer id; 10 | String name; 11 | String path; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ProjectVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.enums.LongitudinalLevel; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.time.LocalDate; 9 | import java.util.List; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @create 2/25/2020 2:15 PM 15 | */ 16 | 17 | @AllArgsConstructor 18 | @Getter 19 | @Setter 20 | public class ProjectVO { 21 | private int id; 22 | private String name; 23 | private int auditorid; 24 | private LocalDate[] dates; 25 | private List dingIds; 26 | private boolean updateDingIds; 27 | 28 | /** 29 | * @Description 30 | * @Author Jerrian Zhao 31 | * @Data 01/28/2022 32 | */ 33 | private int leaderId; 34 | private boolean nature; 35 | private char horizontalLevel; 36 | private LongitudinalLevel longitudinalLevel; 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/PropertyVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.time.LocalDate; 8 | 9 | /** 10 | * @Description 11 | * @Author Jerrian Zhao 12 | * @Data 01/24/2022 13 | */ 14 | @Setter 15 | @Getter 16 | @AllArgsConstructor 17 | public class PropertyVO { 18 | private int id; 19 | private int userId; 20 | private String name; 21 | private String type; 22 | private String preserver; 23 | private LocalDate startTime; 24 | private String remark; 25 | private boolean deleted; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/QueryUserVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 根据条件查询用户的VO 10 | * @create 3/28/2020 10:19 AM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class QueryUserVO { 16 | private String name; 17 | private String position; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ReimbursementVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | import com.softeng.dingtalk.entity.User; 3 | import lombok.Data; 4 | 5 | @Data 6 | public class ReimbursementVO { 7 | private Integer id; 8 | int state=-1; 9 | String name; 10 | String type; 11 | String path; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/ToCheckVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.AcItem; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.time.LocalDate; 9 | import java.time.LocalDateTime; 10 | import java.util.List; 11 | 12 | /** 13 | * @author zhanyeye 14 | * @description 审核人获取待审核申请数据 15 | * @create 1/19/2020 8:33 PM 16 | */ 17 | @AllArgsConstructor 18 | @Getter 19 | @Setter 20 | public class ToCheckVO { 21 | private int id; 22 | private int uid; 23 | private String name; 24 | /** 25 | * Dedication Value 26 | */ 27 | private double dvalue; 28 | /** 29 | * 表示申请所属 年、月 30 | */ 31 | private int yearmonth; 32 | /** 33 | * 申请所属周 34 | */ 35 | private int week; 36 | private LocalDateTime insertTime; 37 | List acItems; 38 | private LocalDate weekdate; 39 | 40 | public ToCheckVO(int id, int uid, String name, double dvalue, int yearmonth, int week, LocalDateTime insertTime, LocalDate weekdate) { 41 | this.id = id; 42 | this.uid = uid; 43 | this.name = name; 44 | this.dvalue = dvalue; 45 | this.yearmonth = yearmonth; 46 | this.week = week; 47 | this.insertTime = insertTime; 48 | this.weekdate = weekdate; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/TopupVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 用来传输要更新的Topup值 10 | * @create 23/06/2020 7:22 AM 11 | */ 12 | @AllArgsConstructor 13 | @Getter 14 | @Setter 15 | public class TopupVO { 16 | private int uid; 17 | private int yearmonth; 18 | private double topup; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/UserInfoVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.enums.Position; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.time.LocalDate; 9 | 10 | /** 11 | * @author zhanyeye 12 | * @description 13 | * @create 3/27/2020 8:09 PM 14 | */ 15 | @Setter 16 | @Getter 17 | @AllArgsConstructor 18 | public class UserInfoVO { 19 | private String name; 20 | private String avatar; 21 | private Position position; 22 | private String stuNum; 23 | private String undergraduateCollege; 24 | private String masterCollege; 25 | private String idCardNo; 26 | private String creditCard; 27 | private String bankName; 28 | private LocalDate rentingStart; 29 | private LocalDate rentingEnd; 30 | private String address; 31 | private Boolean workState; 32 | private String remark; 33 | private String leaseContractFileName; 34 | private String leaseContractFilePath; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/UserVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author zhanyeye 9 | * @description 10 | * @create 2/8/2020 11:16 AM 11 | */ 12 | @Setter 13 | @Getter 14 | @AllArgsConstructor 15 | public class UserVO { 16 | private int id; 17 | private String name; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/VMApplyVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import com.softeng.dingtalk.entity.User; 4 | import lombok.Data; 5 | import java.time.LocalDate; 6 | 7 | @Data 8 | public class VMApplyVO { 9 | 10 | Integer id; 11 | User user; 12 | int state; 13 | //项目组 14 | String projectTeam; 15 | //课题 16 | String subject; 17 | //email 18 | String email; 19 | //开始时间 20 | LocalDate start; 21 | //结束时间 22 | LocalDate end; 23 | //申请用途 24 | String purpose; 25 | //CPU核心数 26 | int coreNum; 27 | //内存大小 GB为单位 28 | int memory; 29 | //硬盘容量 GB为单位 30 | int capacity; 31 | //操作系统 32 | String operationSystem; 33 | //申请日期 34 | LocalDate applyDate=LocalDate.now(); 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/softeng/dingtalk/vo/VoteVO.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import lombok.ToString; 7 | 8 | import java.time.LocalDateTime; 9 | import java.time.LocalTime; 10 | 11 | /** 12 | * @author zhanyeye 13 | * @description 14 | * @create 2/6/2020 6:01 PM 15 | */ 16 | @AllArgsConstructor 17 | @Getter 18 | @Setter 19 | @ToString 20 | public class VoteVO { 21 | private int paperid; 22 | private LocalDateTime endTime; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.profiles.active=prod 2 | spring.profiles.active=dev 3 | -------------------------------------------------------------------------------- /src/main/resources/fabric/channel-artifacts/genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nju-softeng/dingtalk-app-server/da22b7dd13672b8ccfabd6e7c709ecfe964c8a64/src/main/resources/fabric/channel-artifacts/genesis.block -------------------------------------------------------------------------------- /src/main/resources/fabric/channel-artifacts/mychannel.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nju-softeng/dingtalk-app-server/da22b7dd13672b8ccfabd6e7c709ecfe964c8a64/src/main/resources/fabric/channel-artifacts/mychannel.tx -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/ca/106e19a8ca8c2ab8a8d9f0418bed6754156643e6725dc353cc680fb7acba0407_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD1p2MClm1lN9zxWD 3 | D1oaijFOsl60r0BJh8zvBEy8H0uhRANCAAR0Yl51ozQI4aZMs9v84e59BdWUrZ1y 4 | BYWJKfaqbNVfhg9G4x4ODF+MIsOBCjF+qJ+A0lFsX+Ahn6aRRL5n8rQm 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPTCCAeSgAwIBAgIRAJKfZd0ad6wPbzOv90eiHcswCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR0Yl51ozQI4aZMs9v84e59BdWU 9 | rZ1yBYWJKfaqbNVfhg9G4x4ODF+MIsOBCjF+qJ+A0lFsX+Ahn6aRRL5n8rQmo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIBBuGajKjCq4qNnwQYvtZ1QVZkPm 12 | cl3DU8xoD7esugQHMAoGCCqGSM49BAMCA0cAMEQCIAfo2JLB4VkVbFnhNvsvs27K 13 | OYZ6Xu1VR6elv4P1Cp/HAiBVmSqkVNYCbnyF0xeEzaPOchLVy+opfhCceVZGW2ns 14 | sg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQA0j89mmahERSnkx7kSKbhzAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEEArAcm3PENyhVISVb1ozpDP2HPOJR8qtlBraHa4r4s42tknHWSbI 9 | SrIO0h6zh+NR4UUwgcDicWFBG75d5b1AtKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgEG4ZqMqMKrio2fBBi+1nVBVmQ+ZyXcNT 11 | zGgPt6y6BAcwCgYIKoZIzj0EAwIDSAAwRQIhANXtf4XWY78Ct7UUkbNt9rVMhkVB 12 | jXiL5W0khdkxvRN/AiBy9qYTRQ0bmT+iw21MZERR3NvDn9oveEMG9/NxbJeEVQ== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPTCCAeSgAwIBAgIRAJKfZd0ad6wPbzOv90eiHcswCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR0Yl51ozQI4aZMs9v84e59BdWU 9 | rZ1yBYWJKfaqbNVfhg9G4x4ODF+MIsOBCjF+qJ+A0lFsX+Ahn6aRRL5n8rQmo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIBBuGajKjCq4qNnwQYvtZ1QVZkPm 12 | cl3DU8xoD7esugQHMAoGCCqGSM49BAMCA0cAMEQCIAfo2JLB4VkVbFnhNvsvs27K 13 | OYZ6Xu1VR6elv4P1Cp/HAiBVmSqkVNYCbnyF0xeEzaPOchLVy+opfhCceVZGW2ns 14 | sg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQA0j89mmahERSnkx7kSKbhzAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEEArAcm3PENyhVISVb1ozpDP2HPOJR8qtlBraHa4r4s42tknHWSbI 9 | SrIO0h6zh+NR4UUwgcDicWFBG75d5b1AtKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgEG4ZqMqMKrio2fBBi+1nVBVmQ+ZyXcNT 11 | zGgPt6y6BAcwCgYIKoZIzj0EAwIDSAAwRQIhANXtf4XWY78Ct7UUkbNt9rVMhkVB 12 | jXiL5W0khdkxvRN/AiBy9qYTRQ0bmT+iw21MZERR3NvDn9oveEMG9/NxbJeEVQ== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPTCCAeSgAwIBAgIRAJKfZd0ad6wPbzOv90eiHcswCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR0Yl51ozQI4aZMs9v84e59BdWU 9 | rZ1yBYWJKfaqbNVfhg9G4x4ODF+MIsOBCjF+qJ+A0lFsX+Ahn6aRRL5n8rQmo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIBBuGajKjCq4qNnwQYvtZ1QVZkPm 12 | cl3DU8xoD7esugQHMAoGCCqGSM49BAMCA0cAMEQCIAfo2JLB4VkVbFnhNvsvs27K 13 | OYZ6Xu1VR6elv4P1Cp/HAiBVmSqkVNYCbnyF0xeEzaPOchLVy+opfhCceVZGW2ns 14 | sg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/e5bcb697e116ed9294c837dfe2656fecb21ce3e759f10d70e83f7b6dd2a97ff9_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg1DQJ4UkopOetPW4/ 3 | tP+fKF8AmuSw5AhBtEnPbmJYvcehRANCAAR6ldVe0a8nJNLjtkAPBvelEWWKFqF2 4 | Gn0DzE1YPN8OAM0WQOlvy0IgNhWg3WrQJJImB3dtdg6RDxpZrjMZPs3a 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICDTCCAbOgAwIBAgIRAPJdFRVQEuMtnUbfYLjEW50wCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMFgxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI 8 | KoZIzj0DAQcDQgAEepXVXtGvJyTS47ZADwb3pRFlihahdhp9A8xNWDzfDgDNFkDp 9 | b8tCIDYVoN1q0CSSJgd3bXYOkQ8aWa4zGT7N2qNNMEswDgYDVR0PAQH/BAQDAgeA 10 | MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgEG4ZqMqMKrio2fBBi+1nVBVmQ+Zy 11 | XcNTzGgPt6y6BAcwCgYIKoZIzj0EAwIDSAAwRQIhAInVncKJQgliftcJg+h70Fv4 12 | qSxSadnX/rf1Gtq9D27iAiApZKLB1yAN+ou2oDVXEmFH5FqnO5QEbKUMG1Q+Xufk 13 | gA== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWjCCAgCgAwIBAgIRAM5UnTJaTDsbySJConQTuYYwCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMFgxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C 8 | AQYIKoZIzj0DAQcDQgAEWM/42AlqDvVde8eJG8A/heOUD9tD9m7FQk1xB9ofAglD 9 | ZJzZ5orW1+V18swcLwvZoTFJv6dbIaZx6ixIxCUqCqOBljCBkzAOBgNVHQ8BAf8E 10 | BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC 11 | MAAwKwYDVR0jBCQwIoAgHwZxrNsHV9ZZ3pcpUBEcNu6rTqzDIooDVuWBKorzcuYw 12 | JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO 13 | PQQDAgNIADBFAiEAr/S12KCI4ojvOGy/0v+MR48+PuZgCqPzKrNLAANKHJQCIC2a 14 | n/7AzyxvdxeDjPEqt1KmXZHYyTmuzzUiAlHt7CJJ 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5dwyZiP9HQLsQ83B 3 | yiO0M0nSWvJ++6oUZylSEhpJTMGhRANCAARYz/jYCWoO9V17x4kbwD+F45QP20P2 4 | bsVCTXEH2h8CCUNknNnmitbX5XXyzBwvC9mhMUm/p1shpnHqLEjEJSoK 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/tlsca/1f0671acdb0757d659de972950111c36eeab4eacc3228a0356e5812a8af372e6_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGGBZIKvidkBYuA1y 3 | 4CWJlNNSMoCg/q/S6gUGsAjh6gehRANCAASk0J++Fvx/J5f5H5EylOh0jcD76HP5 4 | ro9ZN6HQkKxMw1v/ClrsCJrMgLqB05S8L68d4rctJUaZx4K1e+VaaifJ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQA0j89mmahERSnkx7kSKbhzAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEEArAcm3PENyhVISVb1ozpDP2HPOJR8qtlBraHa4r4s42tknHWSbI 9 | SrIO0h6zh+NR4UUwgcDicWFBG75d5b1AtKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgEG4ZqMqMKrio2fBBi+1nVBVmQ+ZyXcNT 11 | zGgPt6y6BAcwCgYIKoZIzj0EAwIDSAAwRQIhANXtf4XWY78Ct7UUkbNt9rVMhkVB 12 | jXiL5W0khdkxvRN/AiBy9qYTRQ0bmT+iw21MZERR3NvDn9oveEMG9/NxbJeEVQ== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPTCCAeSgAwIBAgIRAJKfZd0ad6wPbzOv90eiHcswCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR0Yl51ozQI4aZMs9v84e59BdWU 9 | rZ1yBYWJKfaqbNVfhg9G4x4ODF+MIsOBCjF+qJ+A0lFsX+Ahn6aRRL5n8rQmo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIBBuGajKjCq4qNnwQYvtZ1QVZkPm 12 | cl3DU8xoD7esugQHMAoGCCqGSM49BAMCA0cAMEQCIAfo2JLB4VkVbFnhNvsvs27K 13 | OYZ6Xu1VR6elv4P1Cp/HAiBVmSqkVNYCbnyF0xeEzaPOchLVy+opfhCceVZGW2ns 14 | sg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/707c6623255ae8735b81548102dba6ca21da8187438c02e827166ac374576455_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbH5TLSxvbZQ/Jhmj 3 | KMzAl5NY4Gsrson8qsGWuuTHRlChRANCAAQQCsBybc8Q3KFUhJVvWjOkM/Yc84lH 4 | yq2UGtodrivizja2ScdZJshKsg7SHrOH41HhRTCBwOJxYUEbvl3lvUC0 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbCgAwIBAgIQA0j89mmahERSnkx7kSKbhzAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowVjELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI 8 | zj0DAQcDQgAEEArAcm3PENyhVISVb1ozpDP2HPOJR8qtlBraHa4r4s42tknHWSbI 9 | SrIO0h6zh+NR4UUwgcDicWFBG75d5b1AtKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG 10 | A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgEG4ZqMqMKrio2fBBi+1nVBVmQ+ZyXcNT 11 | zGgPt6y6BAcwCgYIKoZIzj0EAwIDSAAwRQIhANXtf4XWY78Ct7UUkbNt9rVMhkVB 12 | jXiL5W0khdkxvRN/AiBy9qYTRQ0bmT+iw21MZERR3NvDn9oveEMG9/NxbJeEVQ== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAemgAwIBAgIQLGcd+LgBBPtUS8/OEq5XbjAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTIyMDUxOTAyMTcwMFoXDTMyMDUxNjAyMTcwMFowbDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt 8 | cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKTQn74W/H8nl/kfkTKU 9 | 6HSNwPvoc/muj1k3odCQrEzDW/8KWuwImsyAuoHTlLwvrx3ity0lRpnHgrV75Vpq 10 | J8mjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB 11 | BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgHwZxrNsHV9ZZ3pcpUBEc 12 | Nu6rTqzDIooDVuWBKorzcuYwCgYIKoZIzj0EAwIDSAAwRQIhAPfODoTbpyk4itJn 13 | wl5Uv8B8heU8aS5aJsNXpTbBgLgnAiAmccNKtlOOeBesLihmsN5OKywb3ZlEER2E 14 | vuLcjZgcAw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICLTCCAdOgAwIBAgIRALUyv3i9ofwUfF5N/x6g5PswCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBaMFYxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG 8 | CCqGSM49AwEHA0IABAk7wKIwLf3cswVhwms2galXKfsMj+8XsJlSsBP896/is7iE 9 | tKaK1eKBsDpp5UP+5cfuzStNPfXsVeGNnizjQUejbDBqMA4GA1UdDwEB/wQEAwIF 10 | oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr 11 | BgNVHSMEJDAigCAfBnGs2wdX1lnelylQERw27qtOrMMiigNW5YEqivNy5jAKBggq 12 | hkjOPQQDAgNIADBFAiEAggq6VQgXgv3jRvpcG9QvnIo7NHUFdRmam4aI+2yhBFUC 13 | IEVSWKUcdqaVR/lX8RvUvBy8Nn5i9azN1i5d2vut1lln 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgooaxhLEXx302nPlB 3 | lEc4DP42ZmPbvP5RArgi7LGad7uhRANCAAQJO8CiMC393LMFYcJrNoGpVyn7DI/v 4 | F7CZUrAT/Pev4rO4hLSmitXigbA6aeVD/uXH7s0rTT317FXhjZ4s40FH 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQB4NPevey6DY3iOAXBeORnzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | x1zZCxCzLIQQUXCLIHKO81syJiMxldcSlcc57pEuE7eupGA25z8rSgvMofYqZO97 10 | y0jObr+eLzGga1Pl27e9ZqNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDn 12 | tV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjOPQQDAgNHADBE 13 | AiBY7VVd9azTsivZGd/OZGoIpiOUIgy4TTfSXimScRr5EAIgHY83NyoH7IDbfFJ4 14 | yJD97wXZoNDFfhdOMnnnYIZQrzI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/ca/e7b55f2a47f0fa5819d394afceb660b929e8e53f49655ba3cca21fc5f70f6bd2_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCYpSfeRn7FoQrb2E 3 | rhay64nOalGfOqZkne0oyjr8MH2hRANCAATHXNkLELMshBBRcIsgco7zWzImIzGV 4 | 1xKVxznukS4Tt66kYDbnPytKC8yh9ipk73vLSM5uv54vMaBrU+Xbt71m 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQB4NPevey6DY3iOAXBeORnzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | x1zZCxCzLIQQUXCLIHKO81syJiMxldcSlcc57pEuE7eupGA25z8rSgvMofYqZO97 10 | y0jObr+eLzGga1Pl27e9ZqNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDn 12 | tV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjOPQQDAgNHADBE 13 | AiBY7VVd9azTsivZGd/OZGoIpiOUIgy4TTfSXimScRr5EAIgHY83NyoH7IDbfFJ4 14 | yJD97wXZoNDFfhdOMnnnYIZQrzI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | AdminOUIdentifier: 10 | Certificate: cacerts/ca.org1.example.com-cert.pem 11 | OrganizationalUnitIdentifier: admin 12 | OrdererOUIdentifier: 13 | Certificate: cacerts/ca.org1.example.com-cert.pem 14 | OrganizationalUnitIdentifier: orderer 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQB4NPevey6DY3iOAXBeORnzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | x1zZCxCzLIQQUXCLIHKO81syJiMxldcSlcc57pEuE7eupGA25z8rSgvMofYqZO97 10 | y0jObr+eLzGga1Pl27e9ZqNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDn 12 | tV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjOPQQDAgNHADBE 13 | AiBY7VVd9azTsivZGd/OZGoIpiOUIgy4TTfSXimScRr5EAIgHY83NyoH7IDbfFJ4 14 | yJD97wXZoNDFfhdOMnnnYIZQrzI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | AdminOUIdentifier: 10 | Certificate: cacerts/ca.org1.example.com-cert.pem 11 | OrganizationalUnitIdentifier: admin 12 | OrdererOUIdentifier: 13 | Certificate: cacerts/ca.org1.example.com-cert.pem 14 | OrganizationalUnitIdentifier: orderer 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/d7e17a2e5202af1aa1a1fc958afc96324c707d9d14253aceb61598466b55110d_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTk1EKT+Uhi+5cKgM 3 | apbco5kPVCDk3MLHi6tuf7Ehnb2hRANCAAQFVhWvlLJ7HwYky3m/l9djxGJfclqA 4 | v9z8Rr1DrqbJQ8R/gwzsf2SrIq6dL2R3HPYjiDAP2Px7YhDqg66+tdtQ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAc+gAwIBAgIRALWmIhbd5ikyQYExLGeQbzwwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIxNzAw 6 | WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn 8 | MS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAVWFa+Usnsf 9 | BiTLeb+X12PEYl9yWoC/3PxGvUOupslDxH+DDOx/ZKsirp0vZHcc9iOIMA/Y/Hti 10 | EOqDrr6121CjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud 11 | IwQkMCKAIOe1XypH8PpYGdOUr862YLkp6OU/SWVbo8yiH8X3D2vSMAoGCCqGSM49 12 | BAMCA0gAMEUCIQDu8O081+fVQcz9Cbs2oJebTZujRHJFMyIvmlwNTYI+VAIgI6wh 13 | HnGh8gzbvYuLrVdGzGA1m3QGtnyn9K00XT4e3EA= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZjCCAg2gAwIBAgIQfCvzE4gTCGPdQfBRUWnzPzAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3 6 | MDBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIXKZKp7S5hW+20Ex5XbhaY5rBnqx 9 | p8JQjjevu3OhmNso9L4eGDi830ZyN3T1Buzayz8xmwk/+WKMv9GJLRSvnaOBlzCB 10 | lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC 11 | MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgqowT9e7BqI4vAZN71XjTDAOrj7wA 12 | FU2t2Igat+GaryAwKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF 13 | cGVlcjAwCgYIKoZIzj0EAwIDRwAwRAIgEGZgQMpG1+5IwXmf0JwhA7mcBStHRHkr 14 | NaOLXQ10lAECIBTm0LT2bwUvaTZ8Mk/wAYEtUD1d880J/UbuuYrhUd7i 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbpbjIthAisKRRcoX 3 | eqbZB3UEi+9mRWyHkslHBtfO1T2hRANCAAQhcpkqntLmFb7bQTHlduFpjmsGerGn 4 | wlCON6+7c6GY2yj0vh4YOLzfRnI3dPUG7NrLPzGbCT/5Yoy/0YktFK+d 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/aa8c13f5eec1a88e2f01937bd578d30c03ab8fbc00154dadd8881ab7e19aaf20_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQ2q3nPcGzTAbA3SX 3 | 8Q9bOPQ3H8fWIRLB98PJCz51uqOhRANCAASdMsahgxpLBfhcxLM215feLix6nTJ5 4 | xTgY1/JDxJ1p31VKFppXaIqp4DvApNejzn5vz5qopvOcqp9Yz4LSYlHR 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQB4NPevey6DY3iOAXBeORnzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | x1zZCxCzLIQQUXCLIHKO81syJiMxldcSlcc57pEuE7eupGA25z8rSgvMofYqZO97 10 | y0jObr+eLzGga1Pl27e9ZqNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDn 12 | tV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjOPQQDAgNHADBE 13 | AiBY7VVd9azTsivZGd/OZGoIpiOUIgy4TTfSXimScRr5EAIgHY83NyoH7IDbfFJ4 14 | yJD97wXZoNDFfhdOMnnnYIZQrzI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | AdminOUIdentifier: 10 | Certificate: cacerts/ca.org1.example.com-cert.pem 11 | OrganizationalUnitIdentifier: admin 12 | OrdererOUIdentifier: 13 | Certificate: cacerts/ca.org1.example.com-cert.pem 14 | OrganizationalUnitIdentifier: orderer 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/99f3260867cc6b9844fd0d2801be3bbbbc3fd39b0e7afa762cfc04294f7c2f20_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgo1spLo0zDqQagXAB 3 | L4x/beyDxYKmexmZuNUCNdpdLRqhRANCAAT5aPfb19BqRy6hEJgIy1/mDBnuVH+I 4 | v6qo3nuqZYhq3XctlvU1vU9lg3WfPVMlEB7qgAtEfiKwaVFM/OoCHGpq 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIRAJFhERGhkkjmnnGKhwiqdr4wCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIxNzAw 6 | WjBrMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEOMAwGA1UECxMFYWRtaW4xHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT5aPfb19Bq 9 | Ry6hEJgIy1/mDBnuVH+Iv6qo3nuqZYhq3XctlvU1vU9lg3WfPVMlEB7qgAtEfiKw 10 | aVFM/OoCHGpqo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDntV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjO 12 | PQQDAgNHADBEAiBry07iCGfTt0h6VscCuztv4URP7LszNp5C1p4rvpd5HgIgYZOd 13 | w6LENba97AUbFES2XCyeByjrWnoAVg0ElxnYavY= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAJ3hA+JCrLcVvca2sju0jewwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJh77QnnyEWAYdoMSCFxG2tlCAac 9 | Io+N4CvvB15mHHRR5NXXTLzJ3VmpqPMwzTLe3ljmU60j9BApvzPMJ4UeAyGjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCqjBP17sGoji8Bk3vVeNMMA6uPvAAV 12 | Ta3YiBq34ZqvIDAKBggqhkjOPQQDAgNIADBFAiEA1cJ2orRRdObpRZjkXu+528wU 13 | J5Ef1jQjQttodkRhyZACIHQWCU87ScKvGWqAURBmH9XRyQKh2stFQ810KkgcMFFO 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbIoJ3YQhrvaFr/mG 3 | vZdce1Lez1tKsyNNJna4NNxFPUOhRANCAASYe+0J58hFgGHaDEghcRtrZQgGnCKP 4 | jeAr7wdeZhx0UeTV10y8yd1ZqajzMM0y3t5Y5lOtI/QQKb8zzCeFHgMh 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQB4NPevey6DY3iOAXBeORnzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0yMjA1MTkwMjE3MDBaFw0zMjA1MTYwMjE3MDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | x1zZCxCzLIQQUXCLIHKO81syJiMxldcSlcc57pEuE7eupGA25z8rSgvMofYqZO97 10 | y0jObr+eLzGga1Pl27e9ZqNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDn 12 | tV8qR/D6WBnTlK/OtmC5KejlP0llW6PMoh/F9w9r0jAKBggqhkjOPQQDAgNHADBE 13 | AiBY7VVd9azTsivZGd/OZGoIpiOUIgy4TTfSXimScRr5EAIgHY83NyoH7IDbfFJ4 14 | yJD97wXZoNDFfhdOMnnnYIZQrzI= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | AdminOUIdentifier: 10 | Certificate: cacerts/ca.org1.example.com-cert.pem 11 | OrganizationalUnitIdentifier: admin 12 | OrdererOUIdentifier: 13 | Certificate: cacerts/ca.org1.example.com-cert.pem 14 | OrganizationalUnitIdentifier: orderer 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/06a7a359b6aa77766f48a3fa6cc0e295808bf9d12874e415d38d2ad771a9a633_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTURQuSmlv9xkTqqf 3 | +VrwXr15mtxELi2P0GZTKlJ9h5KhRANCAATb+Zeqx3/w22fCyWrr6gpHYRx+GF7e 4 | 4ZtTePo0a8F681lqMSvwaKegZQLEUwofhU58yhJ6/ejjVphUS8bJRdlF 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKzCCAdGgAwIBAgIRAPhcWDvfvkrxGzPuIKq7F+kwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIxNzAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZVc2VyMUBv 8 | cmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2/mXqsd/ 9 | 8Ntnwslq6+oKR2Ecfhhe3uGbU3j6NGvBevNZajEr8GinoGUCxFMKH4VOfMoSev3o 10 | 41aYVEvGyUXZRaNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAg57VfKkfw+lgZ05SvzrZguSno5T9JZVujzKIfxfcPa9IwCgYIKoZI 12 | zj0EAwIDSAAwRQIhAM9Be+5wodM0gRej7h/vLEWIqcuyih16NoOTix2VCo/kAiBv 13 | O9IqJA6n2Bom/26b6NkvHqQfyzvrPFn9tn9sKfXT5A== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf6gAwIBAgIRAO8aZWw2kyciXYKTTmcl5B0wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ0yxqGDGksF+FzEszbXl94uLHqdMnnFOBjX8kPEnWnfVUoWmldoiqng 10 | O8Ck16POfm/Pmqim85yqn1jPgtJiUdGjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgqowT9e7BqI4vAZN71XjTDAOrj7wAFU2t2Igat+GaryAwCgYIKoZIzj0E 13 | AwIDRwAwRAIgPtLmvYIogVedOVc5gKj4tJ5BNeTCKN8VUbLHAk3OdlgCIBp7FGE8 14 | RAbU9aY1KetJavobZcNx9Sed+Lfk9+fAWhg9 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAKCX7QtEVJUm0ZjTfqdl+rowCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNTE5MDIxNzAwWhcNMzIwNTE2MDIx 6 | NzAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHq70S83RVtX+YNGTDyCGUo5wTKl 9 | xMgSFaACEIv+skzfA+bAQ76BU9A/u3tekT8t21g+1Q7K24nKK6ylUxkIGwSjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCqjBP17sGoji8Bk3vVeNMMA6uPvAAV 12 | Ta3YiBq34ZqvIDAKBggqhkjOPQQDAgNIADBFAiEAnUHoS041QJ1LIfMe/HfVJUGq 13 | 3AGdjMrfpGBZZAmgTqwCIAdinucNrqsAobgYjHs4fDMvOT6jRgSS1umptS63eZVY 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD3PKQk7Ub2nGbOxX 3 | TcGCeh3sqFIq28JwPYVy0z3XSBOhRANCAAR6u9EvN0VbV/mDRkw8ghlKOcEypcTI 4 | EhWgAhCL/rJM3wPmwEO+gVPQP7t7XpE/LdtYPtUOytuJyiuspVMZCBsE 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/mybatis/mapper/AcRecordMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/resources/mybatis/mapper/DcSummaryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 27 | 28 | -------------------------------------------------------------------------------- /src/main/resources/mybatis/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/test/http/AuditController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | 10 | # 审核人提交绩效 11 | POST http://localhost:8080/api/audit 12 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 13 | Content-Type: application/json 14 | 15 | { 16 | "id":1329, 17 | "uid":37, 18 | "name":"刘博涵", 19 | "dvalue":0.7777, 20 | "yearmonth":202105, 21 | "week":4, 22 | "insertTime":"2021-05-24T20:43:01", 23 | "acItems":[], 24 | "weekdate":"2021-05-20", 25 | "index":0 26 | } 27 | 28 | ### 29 | 30 | POST http://localhost:8080/api/audit/report/7 31 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 32 | Content-Type: application/json 33 | 34 | "2020-04-25" 35 | 36 | ### 37 | 38 | POST http://localhost:8080/api/audit/checked/date 39 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 40 | Content-Type: application/json 41 | 42 | "2020-01-30" 43 | 44 | ### 45 | 46 | GET http://localhost:8080/api/audit/uncheck_cnt 47 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 48 | 49 | ### 50 | 51 | GET http://localhost:8080/api/checked 52 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 53 | 54 | ### 55 | 56 | # 获取审核人待审核申请 57 | GET http://localhost:8080/api/pending_audit/ 58 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 59 | 60 | ### -------------------------------------------------------------------------------- /src/test/http/PerformanceController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | POST http://localhost:8080/api/dcsummary 10 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 11 | Content-Type: application/json 12 | 13 | { 14 | "date": "2020-09-01", 15 | "desc": true 16 | } 17 | 18 | ### 19 | GET http://localhost:8080/api/acsummary 20 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 21 | ### 22 | 23 | GET http://localhost:8080/api/userac/1 24 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 25 | 26 | ### 27 | 28 | GET http://localhost:8080/api/lastac 29 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 30 | 31 | ### 32 | 33 | GET http://localhost:8080/api/performance 34 | token: 49c17292b0d3a5ff67400899c4928a75661578d716edd6b2756fd25a5e2a407784f3fb679be9834a8d5a0f8d11015116 35 | #token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 36 | 37 | ### -------------------------------------------------------------------------------- /src/test/http/SystemController.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:8080/api/system/weekreport/reminder?startTime=2022-04-09 2 | token: 796378d18d8d5709fbaf5e33838f4ddc556be16090f7538dba61ca8a5235d5c1823fe1d253d90c93a102370b3b53d52a 3 | 4 | ### 5 | POST http://localhost:8080/api/system/weekreport/acrecord?startTime=2022-04-09 6 | token: 796378d18d8d5709fbaf5e33838f4ddc556be16090f7538dba61ca8a5235d5c1823fe1d253d90c93a102370b3b53d52a -------------------------------------------------------------------------------- /src/test/http/TaskController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | POST http://localhost:8080/api/task 10 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 11 | Content-Type: application/json 12 | 13 | { 14 | "task": { 15 | "name": "task1", 16 | "description": "this is description", 17 | "auditor": { 18 | "id": 1 19 | }, 20 | "expectedAC": 3, 21 | "beginTime": "2020-01-11", 22 | "deadline": "2020-01-11" 23 | }, 24 | "uids": [] 25 | } 26 | 27 | ### 28 | 29 | PATCH http://localhost:8080/api/task 30 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 31 | Content-Type: application/json 32 | 33 | { 34 | "task": { 35 | "id": 5, 36 | "name": "test", 37 | "description": "this is test description", 38 | "expectedAC": 3, 39 | "beginTime": "2020-01-11", 40 | "deadline": "2020-02-11" 41 | }, 42 | "uids": [2, 3, 4] 43 | } 44 | 45 | ### 46 | 47 | POST http://localhost:8080/api/task_ac 48 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 49 | Content-Type: application/json 50 | 51 | { 52 | "id": 5, 53 | "name": "task1", 54 | "description": "this is description", 55 | "auditor": { 56 | "id": 1 57 | }, 58 | "expectedAC": 3, 59 | "beginTime": "2019-12-11", 60 | "deadline": "2020-01-11", 61 | "finishTime": "2020-02-10" 62 | 63 | } 64 | 65 | ### 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/test/http/TestController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | GET http://localhost:8080/api/test/getAccessToken 10 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 11 | 12 | ### 13 | 14 | GET http://localhost:8080/api/excel 15 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 16 | 17 | 18 | ### 19 | 20 | POST http://localhost:8080/api/test/baseapi 21 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 22 | Content-Type: application/json 23 | 24 | { 25 | "paperType" : "JOURNAL_A" 26 | } 27 | ### -------------------------------------------------------------------------------- /src/test/http/UserController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | GET http://localhost:8080/api/user/info 10 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 11 | 12 | ### 13 | 14 | GET http://localhost:8080/api/userlist 15 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 16 | 17 | ### 18 | 19 | 20 | 21 | GET http://localhost:8080/api/user/getAuditors 22 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 23 | ### 24 | 25 | 26 | GET http://localhost:8080/api/message/page/2 27 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 28 | 29 | ### 30 | GET http://localhost:8080/api/listrole 31 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 32 | 33 | ### 34 | 35 | POST http://localhost:8080/api/updaterole 36 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 37 | Content-Type: application/json 38 | 39 | { 40 | "uid": 3, 41 | "authority": 1 42 | } 43 | 44 | 45 | ### 46 | 47 | 48 | POST http://localhost:8080/api/user/query 49 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 50 | Content-Type: application/json 51 | 52 | { 53 | "name": "", 54 | "position": 0 55 | } 56 | 57 | ### -------------------------------------------------------------------------------- /src/test/http/VoteController.http: -------------------------------------------------------------------------------- 1 | # For a quick start check out our HTTP Requests collection (Tools|HTTP Client|Open HTTP Requests Collection) or 2 | # paste cURL into the file and request will be converted to HTTP Request format. 3 | # 4 | # Following HTTP Request Live Templates are available: 5 | # * 'gtrp' and 'gtr' create a GET request with or without query parameters; 6 | # * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body; 7 | # * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data); 8 | 9 | POST http://localhost:8080/api/vote 10 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 11 | Content-Type: application/json 12 | 13 | { 14 | "paperid": 1, 15 | "startTime": "18:46:13", 16 | "endTime": "19:46:13" 17 | } 18 | 19 | ### -------------------------------------------------------------------------------- /src/test/http/login.http: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | # 获取userid 4 | POST http://localhost:8080/api/login 5 | Content-Type: application/json 6 | 7 | { 8 | "authcode": "280975aa37da393bb6158b7b0deae40d" 9 | } 10 | 11 | ### 12 | GET http://localhost:8080/api/login_test/6 13 | 14 | ### 15 | 16 | GET http://localhost:8080/api/paper/test 17 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 18 | 19 | ### 20 | 21 | GET http://localhost:8080/api/tt 22 | token: b8399dc845a122db993470e7483bf6ea3680446a8178dedbe8f74eb71317417c69f1c5430da8c7861d75a0d8259ab2b5 23 | 24 | ### 25 | -------------------------------------------------------------------------------- /src/test/java/com/softeng/dingtalk/DingtalkApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk; 2 | 3 | import com.softeng.dingtalk.component.EncryptorComponent; 4 | import com.softeng.dingtalk.entity.InternalPaper; 5 | import com.softeng.dingtalk.entity.Paper; 6 | import com.softeng.dingtalk.entity.Vote; 7 | import com.softeng.dingtalk.enums.PaperType; 8 | import com.softeng.dingtalk.repository.InternalPaperRepository; 9 | import com.softeng.dingtalk.service.VoteService; 10 | import lombok.extern.slf4j.Slf4j; 11 | import org.junit.Test; 12 | import org.junit.runner.RunWith; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.boot.test.context.SpringBootTest; 15 | import org.springframework.test.context.junit4.SpringRunner; 16 | 17 | import java.time.LocalDate; 18 | import java.time.LocalDateTime; 19 | import java.util.Map; 20 | 21 | @RunWith(SpringRunner.class) 22 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 23 | @Slf4j 24 | public class DingtalkApplicationTests { 25 | 26 | @Autowired 27 | VoteService voteService; 28 | @Autowired 29 | InternalPaperRepository internalPaperRepository; 30 | @Autowired 31 | EncryptorComponent encryptorComponent; 32 | 33 | @Test 34 | public void test() { 35 | log.info(encryptorComponent.encrypt(Map.of("uid", 2, "authorityid", 0))); 36 | } 37 | 38 | @Test 39 | public void test2() { 40 | Paper paper = new InternalPaper("标题11111", "journal", PaperType.JOURNAL_A, LocalDate.now(), true, null,null,null,null); 41 | log.debug(paper.getTitle()); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/test/java/com/softeng/dingtalk/component/DateUtilsTest.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.component; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.junit.Assert; 5 | import org.junit.Test; 6 | import org.junit.runner.RunWith; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.boot.test.context.SpringBootTest; 9 | import org.springframework.test.context.junit4.SpringRunner; 10 | 11 | import java.time.LocalDate; 12 | import java.time.YearMonth; 13 | 14 | /** 15 | * @Author zhanyeye 16 | * @Description 17 | * @Date 19/10/2021 18 | **/ 19 | @RunWith(SpringRunner.class) 20 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 21 | @Slf4j 22 | public class DateUtilsTest { 23 | @Autowired 24 | DateUtils dateUtils; 25 | 26 | @Test 27 | public void testGetWeekBeginAndStart() { 28 | Assert.assertArrayEquals(dateUtils.getWeekBeginAndStart(YearMonth.of(2021, 9), 1), new LocalDate[]{LocalDate.of(2021, 9, 1), LocalDate.of(2021, 9, 5)}); 29 | Assert.assertArrayEquals(dateUtils.getWeekBeginAndStart(YearMonth.of(2021, 9), 2), new LocalDate[]{LocalDate.of(2021, 9, 6), LocalDate.of(2021, 9, 12)}); 30 | Assert.assertArrayEquals(dateUtils.getWeekBeginAndStart(YearMonth.of(2021, 9), 3), new LocalDate[]{LocalDate.of(2021, 9, 13), LocalDate.of(2021, 9, 19)}); 31 | Assert.assertArrayEquals(dateUtils.getWeekBeginAndStart(YearMonth.of(2021, 9), 4), new LocalDate[]{LocalDate.of(2021, 9, 20), LocalDate.of(2021, 9, 26)}); 32 | Assert.assertArrayEquals(dateUtils.getWeekBeginAndStart(YearMonth.of(2021, 9), 5), null); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/test/java/com/softeng/dingtalk/service/AuditServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.service; 2 | 3 | 4 | import com.softeng.dingtalk.entity.AcItem; 5 | import com.softeng.dingtalk.repository.AcItemRepository; 6 | import com.softeng.dingtalk.repository.DcRecordRepository; 7 | import com.softeng.dingtalk.vo.CheckVO; 8 | import lombok.extern.slf4j.Slf4j; 9 | import org.junit.Test; 10 | import org.junit.runner.RunWith; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.boot.test.context.SpringBootTest; 13 | import org.springframework.test.context.junit4.SpringRunner; 14 | 15 | import javax.transaction.Transactional; 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | /** 20 | * @author zhanyeye 21 | * @description 22 | * @create 12/26/2019 3:46 PM 23 | */ 24 | @RunWith(SpringRunner.class) 25 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 26 | @Slf4j 27 | public class AuditServiceTest { 28 | @Autowired 29 | AuditService auditService; 30 | 31 | @Test 32 | public void testUpdateAuditResult() { 33 | List acItems = new ArrayList<>(); 34 | acItems.add(new AcItem("申请ac1", 1)); 35 | acItems.add(new AcItem("申请ac2", 1)); 36 | CheckVO vo = new CheckVO(1329, 0.5, 0.777, 2, acItems); 37 | auditService.updateAuditResult(vo); 38 | } 39 | 40 | @Test 41 | public void testUpdateDcSummary() { 42 | auditService.updateDcSummary(1, 202104,3); 43 | } 44 | 45 | 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/com/softeng/dingtalk/service/ExcelServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.service; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.boot.test.context.SpringBootTest; 8 | import org.springframework.test.context.junit4.SpringRunner; 9 | 10 | @RunWith(SpringRunner.class) 11 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 12 | @Slf4j 13 | public class ExcelServiceTest { 14 | @Autowired 15 | ExcelService excelService; 16 | 17 | @Test 18 | public void func() { 19 | // excelService.WriteAcDataByDate(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/com/softeng/dingtalk/service/PerformanceServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.softeng.dingtalk.service; 2 | 3 | import com.softeng.dingtalk.excel.DcSummaryData; 4 | import com.softeng.dingtalk.mapper.DcSummaryMapper; 5 | import com.softeng.dingtalk.repository.DcSummaryRepository; 6 | import com.softeng.dingtalk.repository.UserRepository; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.boot.test.context.SpringBootTest; 12 | import org.springframework.test.context.junit4.SpringRunner; 13 | 14 | import java.util.List; 15 | import java.util.stream.Collectors; 16 | 17 | /** 18 | * @author zhanyeye 19 | * @description 20 | * @create 1/29/2020 2:36 PM 21 | */ 22 | @RunWith(SpringRunner.class) 23 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 24 | @Slf4j 25 | public class PerformanceServiceTest { 26 | @Autowired 27 | DcSummaryRepository dcSummaryRepository; 28 | @Autowired 29 | PerformanceService performanceService; 30 | @Autowired 31 | UserRepository userRepository; 32 | @Autowired 33 | SystemService systemService; 34 | @Autowired 35 | DcSummaryMapper dcSummaryMapper; 36 | 37 | @Test 38 | public void test1() { 39 | List dataList = dcSummaryMapper.listDcSummaryDataByYearMonth(202110); 40 | log.info(dataList.toString()); 41 | 42 | } 43 | 44 | 45 | 46 | } 47 | --------------------------------------------------------------------------------