package Ġsmart doc . dashboard . controller . console . rest Ċ Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . domain . Page Request Ċ import Ġorg . springframework . data . mongodb . core . Mongo Template Ċ import Ġorg . springframework . data . mongodb . core . query . Criteria Ċ import Ġorg . springframework . data . mongodb . core . query . Query Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġsmart doc . dashboard . controller . console . model . Create Project Dto Ċ import Ġsmart doc . dashboard . controller . console . model . Update Project Dto Ċ import Ġsmart doc . dashboard . core . ApiResponse Ċ import Ġsmart doc . dashboard . core . Api Standard Ċ import Ġsmart doc . dashboard . core . ok Ċ import Ġsmart doc . dashboard . model . ANY _ ROLE Ċ import Ġsmart doc . dashboard . model . Project Ċ import Ġsmart doc . dashboard . model . Project Type Ċ import Ġsmart doc . dashboard . model . SYS _ ADMIN Ċ import Ġsmart doc . dashboard . repository . Project Repository Ċ import Ġsmart doc . dashboard . util . MD 5 Util Ċ import Ġjava . util .* Ċ import Ġjavax . validation . Valid Ċ Ċ @ RestController Ċ @ RequestMapping ("/ project ") Ċ class ĠProject Controller Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmongo Template : ĠMongo Template ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġproject Repository : ĠProject Repository ĊĊĠĠĠ Ġ@ GetMapping ("/ list ") ĊĠĠĠ Ġ@ smart doc . dashboard . base . auth . Verify ( role Ġ= Ġ[ SYS _ ADMIN ]) ĊĠĠĠ Ġfun Ġlist (@ RequestParam ( required Ġ= Ġfalse , ĠdefaultValue Ġ= Ġ" 0 ") Ġpage : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( required Ġ= Ġfalse , ĠdefaultValue Ġ= Ġ" 1 2 ") Ġsize : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam Ġtype : ĠProject Type ĊĠĠĠ Ġ): ĠApiResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġok ( project Repository . page ( Query (). add Criteria ( Criteria (" type "). ` is `( type )), ĠPage Request . of ( page , Ġsize ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ("/ { id }") ĊĠĠĠ Ġ@ smart doc . dashboard . base . auth . Verify ( role Ġ= Ġ[ ANY _ ROLE ]) ĊĠĠĠ Ġfun Ġget (@ PathVariable Ġid : ĠString ): ĠApiResponse Ġ= Ġok ( mongo Template . findById ( id , ĠProject :: class . java )) ĊĊĠĠĠ Ġ@ Delete Mapping ("/ { id }") ĊĠĠĠ Ġ@ smart doc . dashboard . base . auth . Verify ( role Ġ= Ġ[ SYS _ ADMIN ]) ĊĠĠĠ Ġfun Ġdelete (@ PathVariable Ġid : ĠString ): ĠApiResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdelete Result Ġ= Ġproject Repository . delete ( Query (). add Criteria ( Criteria ("_ id "). ` is `( id ))) ĊĠĠĠĠĠĠĠ Ġreturn Ġok ( delete Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PostMapping ("") ĊĠĠĠ Ġ@ smart doc . dashboard . base . auth . Verify ( role Ġ= Ġ[ SYS _ ADMIN ]) ĊĠĠĠ Ġfun Ġcreate (@ RequestBody Ġdto : ĠCreate Project Dto ): ĠApiResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dto . type Ġ== ĠProject Type . SPR ING CLOUD ) ĠApi Standard . BAD _ REQUEST . error (" æļĤ ä¸į æĶ¯æĮģ Spring Cloud é¡¹çĽ® ") ĊĠĠĠĠĠĠĠ Ġval ĠprojectId Ġ= Ġsmart doc . dashboard . util . ID Util . id () ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠprojectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreateTime Ġ= ĠDate (). time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc Ġ= Ġdto . desc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġdto . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess Password Ġ= Ġ ĠMD 5 Util . encrypt Password (" rest doc ", ĠprojectId , Ġ 1 0 2 4 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmongo Template . save ( project ) ĊĠĠĠĠĠĠĠ Ġreturn Ġok () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Patch Mapping ("") ĊĠĠĠ Ġ@ smart doc . dashboard . base . auth . Verify ( role Ġ= Ġ[ SYS _ ADMIN ]) ĊĠĠĠ Ġfun Ġupdate (@ RequestBody Ġ@ Valid Ġdto : ĠUpdate Project Dto ): ĠApiResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġproject Repository . update ( Project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdto . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreateTime Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc Ġ= Ġdto . desc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġdto . type ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġreturn Ġok () ĊĠĠĠ Ġ} Ċ }