SystemController.go 96 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252
  1. package partial
  2. import (
  3. "errors"
  4. "fmt"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
  7. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  8. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  9. sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  10. "html/template"
  11. "strconv"
  12. "strings"
  13. "time"
  14. )
  15. // _Sidebar
  16. // @Title _Sidebar
  17. // @Description 获取导航菜单
  18. // @Param user string false "用户id"
  19. // @Success 200 {object} Account
  20. // @Failure 403 :id is empty
  21. func System_Sidebar(c *entitys.CtrlContext) {
  22. //System_GetMenuTree(c)
  23. _type := c.Ctx.DefaultQuery("type", "")
  24. type_op := c.Ctx.DefaultQuery("type_op", "")
  25. hidden := c.Ctx.DefaultQuery("hidden", "")
  26. name := c.Ctx.DefaultQuery("name", "")
  27. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  28. tk, _ := c.Ctx.Get("token")
  29. user := tk.(*entitys.Token)
  30. op := template.HTML(type_op)
  31. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
  32. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user.UserId, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  33. //如果是管理员
  34. var paramMap_i_t map[string]interface{}
  35. if exist {
  36. paramMap_i_t = map[string]interface{}{"user_id": "", "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  37. } else {
  38. paramMap_i_t = map[string]interface{}{"user_id": user.UserId, "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  39. }
  40. result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
  41. if err == nil {
  42. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  43. } else {
  44. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  45. }
  46. }
  47. // _GetMenuTree
  48. // @Title _GetMenuTree
  49. // @Description 获取系统菜单
  50. // @Param user string false "用户id"
  51. // @Success 200 {object} Account
  52. // @Failure 403 :id is empty
  53. func System_GetMenuTree(c *entitys.CtrlContext) {
  54. _type := c.Ctx.DefaultQuery("type", "")
  55. type_op := c.Ctx.DefaultQuery("type_op", "")
  56. hidden := c.Ctx.DefaultQuery("hidden", "")
  57. name := c.Ctx.DefaultQuery("name", "")
  58. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  59. op := template.HTML(type_op)
  60. paramMap_i_t := map[string]interface{}{"user_id": "", "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  61. result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
  62. if err == nil {
  63. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  64. } else {
  65. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  66. }
  67. }
  68. // _GetDomainTree
  69. // @Title _GetDomainTree
  70. // @Description 获取域树
  71. // @Success 200 {object} Account
  72. // @Failure 403 :id is empty
  73. func System_GetDomainTree(c *entitys.CtrlContext) {
  74. del_flag := c.Ctx.DefaultQuery("del_flag", "")
  75. paramMap_i_t := map[string]interface{}{"sort": "name", "del_flag": del_flag}
  76. result, err := sysutils.TreeSearch(c.Db, "system", "get_domain_tree", "sys_domain", paramMap_i_t)
  77. if err == nil {
  78. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  79. } else {
  80. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  81. }
  82. }
  83. // _FindUserPage
  84. // @Title _FindUserPage
  85. // @Description 获取用户分页数
  86. // @Success 200 {object} Account
  87. // @Failure 403 :id is empty
  88. func System_FindUserPage(c *entitys.CtrlContext) {
  89. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  90. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  91. name := c.Ctx.DefaultQuery("name", "")
  92. login_id := c.Ctx.DefaultQuery("login_id", "")
  93. org_id := c.Ctx.DefaultQuery("org_id", "")
  94. cn_org_id := c.Ctx.DefaultQuery("cn_org_id", "")
  95. role_name := c.Ctx.DefaultQuery("role_name", "")
  96. var roleRule interface{}
  97. rule_code := "org_tree"
  98. user_id := c.Ctx.GetString("user_id")
  99. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  100. //如果是管理员
  101. if exist {
  102. user_id = ""
  103. roleRule = ""
  104. } else if rule_code != "" {
  105. var roleRules []models.SysDataPermissionDetail
  106. // 根据rule_code获取角色对应的接口规则
  107. err := c.Db.SqlMapClient("get_user_rule_by_code", rule_code, user_id).Find(&roleRules)
  108. if err != nil {
  109. roleRule = ""
  110. } else {
  111. roleRule = sysutils.ParseRule(roleRules)
  112. }
  113. }
  114. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_id, "org_id": org_id, "cn_org_id": cn_org_id, "user_id": user_id, "role_name": role_name, "role_rule": roleRule}
  115. result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t)
  116. if err != nil {
  117. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), ""})
  118. return
  119. }
  120. //type Role struct {
  121. // RoleName string `json:"role_name"`
  122. // UserRole string `json:"user_role"`
  123. //}
  124. ////获取用户角色
  125. //users := result.Content.([]map[string]interface{})
  126. //for i, user := range users {
  127. // roles := []Role{}
  128. // err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles)
  129. // if err != nil {
  130. // fmt.Println("----", err.Error())
  131. // continue
  132. // }
  133. // users[i]["user_role"] = roles[0].UserRole
  134. // users[i]["role_name"] = roles[0].RoleName
  135. //}
  136. //
  137. //result.Content = users
  138. if err == nil {
  139. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  140. } else {
  141. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  142. }
  143. }
  144. // _GetOrgTree
  145. // @Title _GetOrgTree
  146. // @Description 获取组织架构树
  147. // @Success 200 {object} Account
  148. // @Failure 403 :id is empty
  149. func System_GetOrgTree(c *entitys.CtrlContext) {
  150. var roleRule interface{} = ""
  151. rule_code := "org_tree"
  152. var user sysmodel.SysUser
  153. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
  154. user_id := c.Ctx.GetString("user_id")
  155. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  156. //如果是管理员
  157. if exist {
  158. user_id = ""
  159. paramMap_i_t := map[string]interface{}{"sort": "name", "role_rule": roleRule}
  160. result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
  161. if err == nil {
  162. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  163. } else {
  164. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  165. }
  166. } else if rule_code != "" {
  167. var roleRules []models.SysDataPermissionDetail
  168. // 根据rule_code获取角色对应的接口规则
  169. err := c.Db.SqlMapClient("get_user_rule_by_code", rule_code, user_id).Find(&roleRules)
  170. if err != nil {
  171. roleRule = ""
  172. } else {
  173. roleRule = sysutils.ParseRule(roleRules)
  174. }
  175. // 查找用户组织ID
  176. _, err = c.Db.ID(user_id).Get(&user)
  177. if err != nil {
  178. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  179. return
  180. }
  181. stplkey := fmt.Sprintf("%s_%s.tpl", "system", "get_org_tree")
  182. paramMap_i_t := map[string]interface{}{"sort": "name", "org_id": user.OrgId, "role_rule": roleRule}
  183. result, err := c.Db.SqlTemplateClient(stplkey, &paramMap_i_t).Query().List()
  184. if err != nil {
  185. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  186. return
  187. }
  188. var org_id = ""
  189. if roleRule.(template.HTML) == "" {
  190. org_id = ""
  191. } else {
  192. org_id = user.OrgId
  193. }
  194. tree, err := sysutils.BuildTree(org_id, result)
  195. if err == nil {
  196. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", tree})
  197. } else {
  198. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  199. }
  200. }
  201. }
  202. // _FindOrgPage
  203. // @Title _FindOrgPage
  204. // @Description 获取组织架构分页数
  205. // @Success 200 {object} Account
  206. // @Failure 403 :id is empty
  207. func System_FindOrgPage(c *entitys.CtrlContext) {
  208. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  209. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  210. name := c.Ctx.DefaultQuery("name", "")
  211. code := c.Ctx.DefaultQuery("code", "")
  212. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  213. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id}
  214. result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "sys_org", paramMap_i_t)
  215. if err == nil {
  216. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  217. } else {
  218. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  219. }
  220. }
  221. // _AddUser
  222. // @Title _AddUser
  223. // @Description 添加用户
  224. // @Param login_id string false "登录ID"
  225. // @Param password string false "密码"
  226. // @Param org_id string false "组织ID"
  227. // @Param email string false "邮箱"
  228. // @Success 200 {object} Account
  229. // @Failure 403 :id is empty
  230. func System_AddUser(c *entitys.CtrlContext) {
  231. tk, _ := c.Ctx.Get("token")
  232. opUser := tk.(*entitys.Token)
  233. var user sysmodel.SysUser
  234. err := c.Ctx.BindJSON(&user)
  235. if err != nil {
  236. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  237. }
  238. fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId)
  239. //查找login_id是否存在
  240. exit, _ := c.PlatformDbEngine.Table(new(sysmodel.SysUser)).Where("login_id = ? and del_flag = ?", user.LoginId, 0).Exist()
  241. if exit {
  242. c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
  243. return
  244. }
  245. user_id := c.Ctx.GetString("user_id")
  246. user.Id = sysutils.NewUUID()
  247. user.Name = user.Name
  248. user.CreateTime = models.NowLocal()
  249. user.LastUpdateTime = time.Now().UnixNano()
  250. user.CreateBy = user_id
  251. user.LastUpdateBy = user_id
  252. user.DelFlag = 0
  253. user.Domain = opUser.Domain
  254. user.Password = sysutils.HashPassword(user.Password, "")
  255. _, err = c.PlatformDbEngine.Insert(&user)
  256. if err != nil {
  257. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台插入用户错误:" + err.Error(), nil})
  258. }
  259. _, err = c.Db.Insert(&user)
  260. ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email)
  261. if ret && err == nil {
  262. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  263. } else {
  264. c.Ctx.JSON(200, sysmodel.SysReturn{500, "域数据库插入用户错误:" + err.Error(), nil})
  265. }
  266. }
  267. // _DelUser
  268. // @Title _DelUser
  269. // @Description 删除用户
  270. // @Param id string false "用户ID"
  271. // @Success 200 {object} Account
  272. // @Failure 403 :id is empty
  273. func System_DelUser(c *entitys.CtrlContext) {
  274. type Param struct {
  275. Id string `json:"id"`
  276. }
  277. var params []Param
  278. c.Ctx.BindJSON(&params)
  279. ids := []string{}
  280. for _, param := range params {
  281. ids = append(ids, param.Id)
  282. }
  283. session := c.Db.NewSession()
  284. defer session.Close()
  285. session.Begin()
  286. _, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  287. if err != nil {
  288. session.Rollback()
  289. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  290. return
  291. }
  292. _, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1})
  293. if err != nil {
  294. session.Rollback()
  295. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  296. return
  297. }
  298. session.Commit()
  299. _, err = c.PlatformDbEngine.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  300. if err == nil {
  301. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  302. } else {
  303. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台删除用户失败:" + err.Error(), nil})
  304. }
  305. }
  306. // _UpdateUser
  307. // @Title _UpdateUser
  308. // @Description 修改用户
  309. // @Param login_id string false "登录ID"
  310. // @Param password string false "密码"
  311. // @Param org_id string false "组织ID"
  312. // @Param email string false "邮箱"
  313. // @Success 200 {object} Account
  314. // @Failure 403 :id is empty
  315. func System_UpdateUser(c *entitys.CtrlContext) {
  316. tk, _ := c.Ctx.Get("token")
  317. user := tk.(*entitys.Token)
  318. var postData struct {
  319. sysmodel.SysUser
  320. UserRole []string `json:"user_role"`
  321. }
  322. //var user sysmodel.SysUser
  323. err := c.Ctx.BindJSON(&postData)
  324. if err != nil {
  325. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  326. return
  327. }
  328. //postData.LastUpdateTime = time.Now().UnixNano()
  329. //postData.LastUpdateBy = user.UserId
  330. session := c.Db.NewSession()
  331. defer session.Close()
  332. session.Begin()
  333. //paramMap, _ := sysutils.BeanToMap(&postData)
  334. paramMap := map[string]interface{}{"id": postData.Id, "temp_id": postData.TempId, "temp_value": postData.TempValue, "name": postData.Name, "email": postData.Email, "mobile": postData.Mobile, "org_id": postData.OrgId, "last_update_time": time.Now().UnixNano(), "last_update_by": user.UserId}
  335. _, err = session.SqlMapClient("update_user", &paramMap).Execute()
  336. if err != nil {
  337. session.Rollback()
  338. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  339. return
  340. }
  341. _, err = c.PlatformDbEngine.SqlMapClient("update_user", &paramMap).Execute()
  342. if err != nil {
  343. session.Rollback()
  344. c.Ctx.JSON(500, sysmodel.SysReturn{500, "平台更新用户失败:" + err.Error(), nil})
  345. return
  346. }
  347. userRoles := []sysmodel.SysUserRole{}
  348. for _, roleId := range postData.UserRole {
  349. userRole := sysmodel.SysUserRole{}
  350. userRole.Id = sysutils.NewUUID()
  351. userRole.UserId = postData.Id
  352. userRole.RoleId = roleId
  353. userRole.DelFlag = 0
  354. userRole.CreateTime = sysmodel.NowLocal()
  355. userRole.CreateBy = user.UserId
  356. userRole.LastUpdateBy = user.UserId
  357. userRole.LastUpdateTime = time.Now().UnixNano()
  358. userRoles = append(userRoles, userRole)
  359. }
  360. _, err = session.SqlMapClient("delete_user_role", &map[string]interface{}{"user_id": postData.Id}).Execute()
  361. if err != nil {
  362. session.Rollback()
  363. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  364. return
  365. }
  366. _, err = session.InsertMulti(&userRoles)
  367. if err == nil {
  368. session.Commit()
  369. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  370. } else {
  371. session.Rollback()
  372. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  373. }
  374. }
  375. // _UpdatePassword
  376. // @Title _UpdatePassword
  377. // @Description 修改用户密码
  378. // @Param string false "用户ID"
  379. // @Param password string false "密码"
  380. // @Success 200 {object} Account
  381. // @Failure 403 :id is empty
  382. func System_UpdatePassword(c *entitys.CtrlContext) {
  383. var user sysmodel.SysUser
  384. err := c.Ctx.BindJSON(&user)
  385. operatorId := c.Ctx.GetString("user_id")
  386. if err != nil {
  387. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  388. return
  389. }
  390. user.Password = sysutils.HashPassword(user.Password, "")
  391. paramMap := map[string]interface{}{"id": user.Id, "password": user.Password, "last_update_time": time.Now().UnixNano(), "last_update_by": operatorId}
  392. _, err = c.PlatformDbEngine.SqlMapClient("update_user_password", &paramMap).Execute()
  393. if err == nil {
  394. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  395. } else {
  396. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  397. }
  398. }
  399. // _GetUser
  400. // @Title _GetUser
  401. // @Description 更加用户ID获取用户信息
  402. // @Param user_id string false "用户ID"
  403. // @Success 200 {object} Account
  404. // @Failure 403 :id is empty
  405. func System_GetUser(c *entitys.CtrlContext) {
  406. user_id := c.Ctx.Query("user_id")
  407. var user sysmodel.SysUser
  408. _, err := c.Db.SqlMapClient("selectone_sys_user", &map[string]interface{}{"id": user_id}).Get(&user)
  409. if err == nil {
  410. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", user})
  411. } else {
  412. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  413. }
  414. }
  415. // _AddRole
  416. // @Title _AddRole
  417. // @Description 添加角色
  418. // @Param name string false "角色名称"
  419. // @Param remark string false "备注"
  420. // @Success 200 {object} Account
  421. // @Failure 403 :id is empty
  422. func System_AddRole(c *entitys.CtrlContext) {
  423. var paramObj0 models.SysRole
  424. c.Ctx.BindJSON(&paramObj0)
  425. tk, _ := c.Ctx.Get("token")
  426. user := tk.(*entitys.Token)
  427. paramObj0.Id = sysutils.NewUUID()
  428. paramObj0.CreateBy = user.UserId
  429. paramObj0.LastUpdateBy = user.UserId
  430. paramObj0.CreateTime = models.NowLocal()
  431. paramObj0.LastUpdateTime = time.Now().UnixNano()
  432. paramObj0.DelFlag = 0
  433. //_, err := c.LocalSqlMapClient("insert_sys_role", &paramObj0).Execute()
  434. paramMap, err := sysutils.BeanToMap(&paramObj0)
  435. _, err = c.Db.SqlMapClient("insert_sys_role", paramMap).Execute()
  436. if err == nil {
  437. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  438. } else {
  439. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  440. }
  441. }
  442. // _DelRole
  443. // @Title _DelRole
  444. // @Description 添加角色
  445. // @Param id string false "角色ID"
  446. // @Success 200 {object} Account
  447. // @Failure 403 :id is empty
  448. func System_DelRole(c *entitys.CtrlContext) {
  449. type Param struct {
  450. Id string `json:"id"`
  451. }
  452. var params []Param
  453. c.Ctx.BindJSON(&params)
  454. ids := []string{}
  455. for _, param := range params {
  456. ids = append(ids, param.Id)
  457. }
  458. _, err := c.Db.Table(new(models.SysRole)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  459. if err == nil {
  460. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  461. } else {
  462. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  463. }
  464. }
  465. // _UpdateRole
  466. // @Title _UpdateRole
  467. // @Description 修改角色
  468. // @Param id string false "角色ID"
  469. // @Param name string false "角色名称"
  470. // @Param remark string false "备注"
  471. // @Success 200 {object} Account
  472. // @Failure 403 :id is empty
  473. func System_UpdateRole(c *entitys.CtrlContext) {
  474. var role sysmodel.SysRole
  475. err := c.Ctx.BindJSON(&role)
  476. if err != nil {
  477. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  478. return
  479. }
  480. paramMap, _ := sysutils.BeanToMap(&role)
  481. _, err = c.Db.SqlMapClient("update_sys_role", paramMap).Execute()
  482. if err == nil {
  483. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  484. } else {
  485. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  486. }
  487. }
  488. // _GetUserRoles
  489. // @Title _GetUserRoles
  490. // @Description 根据用户id获取用户角色
  491. // @Param user_id string false "用户ID"
  492. // @Success 200 {object} Account
  493. // @Failure 403 :id is empty
  494. func System_GetUserRoles(c *entitys.CtrlContext) {
  495. user_id := c.Ctx.Query("user_id")
  496. var roles []sysmodel.SysRole
  497. err := c.Db.SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", user_id).Find(&roles)
  498. if err == nil {
  499. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", roles})
  500. } else {
  501. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  502. }
  503. }
  504. // _FindRolePage
  505. // @Title _FindRolePage
  506. // @Description 角色分页
  507. // @Param page false "分页参数"
  508. // @Success 200 {object} Account
  509. // @Failure 403 :id is empty
  510. func System_FindRolePage(c *entitys.CtrlContext) {
  511. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  512. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  513. name := c.Ctx.DefaultQuery("name", "")
  514. code := c.Ctx.DefaultQuery("code", "")
  515. paramMap_i_t := map[string]interface{}{"name": name, "code": code, "page": page, "rows": rows}
  516. result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t)
  517. if err == nil {
  518. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  519. } else {
  520. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  521. }
  522. }
  523. // _FindMenuPage
  524. // @Title _FindMenuPage
  525. // @Description 获取角色分页数
  526. // @Success 200 {object} Account
  527. // @Failure 403 :id is empty
  528. func System_FindMenuPage(c *entitys.CtrlContext) {
  529. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  530. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  531. user_id := c.Ctx.DefaultQuery("user_id", "")
  532. name := c.Ctx.DefaultQuery("name", "")
  533. code := c.Ctx.DefaultQuery("code", "")
  534. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  535. _type := c.Ctx.DefaultQuery("type", "")
  536. type_op := c.Ctx.DefaultQuery("type_op", "")
  537. hidden := c.Ctx.DefaultQuery("hidden", "")
  538. op := template.HTML(type_op)
  539. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
  540. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  541. //如果是管理员
  542. if exist {
  543. user_id = ""
  544. }
  545. paramMap_i_t := map[string]interface{}{"user_id": user_id, "hidden": hidden, "page": page, "rows": rows, "type": _type, "type_op": op, "name": name, "code": code, "cn_id": cn_id}
  546. result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t)
  547. if err == nil {
  548. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  549. } else {
  550. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  551. }
  552. }
  553. // _FindDomainPage
  554. // @Title _FindDomainPage
  555. // @Description 获取域分页数
  556. // @Success 200 {object} Account
  557. // @Failure 403 :id is empty
  558. func System_FindDomainPage(c *entitys.CtrlContext) {
  559. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  560. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  561. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  562. result, err := sysutils.PageSearch(c.Db, "system", "find_domain_page", "sys_domain", paramMap_i_t)
  563. if err == nil {
  564. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  565. } else {
  566. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  567. }
  568. }
  569. // _FindRoleMenu
  570. // @Title _FindRoleMenu
  571. // @Description 查找角色权限
  572. // @Param role_id string false "角色id"
  573. // @Success 200 {object} Account
  574. // @Failure 403 :id is empty
  575. func System_FindRoleMenu(c *entitys.CtrlContext) {
  576. role_id := c.Ctx.Query("role_id")
  577. ret := __none_func_system__(role_id)
  578. if ret {
  579. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  580. } else {
  581. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  582. }
  583. }
  584. // _SaveRoleMenu
  585. // @Title _SaveRoleMenu
  586. // @Description 保存角色权限
  587. // @Param role_menu string false "角色权限"
  588. // @Success 200 {object} Account
  589. // @Failure 403 :id is empty
  590. func System_SaveRoleMenu(c *entitys.CtrlContext) {
  591. var paramObj0 []models.SaveRoleMenu
  592. c.Ctx.BindJSON(&paramObj0)
  593. ret := __none_func_system__(paramObj0)
  594. if ret {
  595. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  596. } else {
  597. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  598. }
  599. }
  600. // _RoleAll
  601. // @Title _RoleAll
  602. // @Description 查找所有角色
  603. // @Success 200 {object} Account
  604. // @Failure 403 :id is empty
  605. func System_RoleAll(c *entitys.CtrlContext) {
  606. ret := __none_func_system__()
  607. if ret {
  608. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  609. } else {
  610. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  611. }
  612. }
  613. // _FindPermissions
  614. // @Title _FindPermissions
  615. // @Description 查找用户权限
  616. // @Success 200 {object} Account
  617. // @Failure 403 :id is empty
  618. func System_FindPermissions(c *entitys.CtrlContext) {
  619. ret := __none_func_system__()
  620. if ret {
  621. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  622. } else {
  623. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  624. }
  625. }
  626. // _AddMenu
  627. // @Title _AddMenu
  628. // @Description 添加菜单
  629. // @Param string false "菜单"
  630. // @Success 200 {object} Account
  631. // @Failure 403 :id is empty
  632. func System_AddMenu(c *entitys.CtrlContext) {
  633. var paramObj0 models.SysMenu
  634. c.Ctx.BindJSON(&paramObj0)
  635. tk, _ := c.Ctx.Get("token")
  636. user := tk.(*entitys.Token)
  637. paramObj0.Id = sysutils.NewUUID()
  638. paramObj0.CreateBy = user.UserId
  639. paramObj0.LastUpdateBy = user.UserId
  640. paramObj0.CreateTime = models.NowLocal()
  641. paramObj0.LastUpdateTime = time.Now().UnixNano()
  642. paramObj0.DelFlag = 0
  643. if paramObj0.Parent != "" {
  644. parentNodes := []sysmodel.SysMenu{}
  645. err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Find(&parentNodes)
  646. if err != nil {
  647. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  648. return
  649. }
  650. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  651. } else {
  652. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  653. }
  654. //_, err := c.LocalSqlMapClient("insert_sys_menu", &paramObj0).Execute()
  655. paramMap, err := sysutils.BeanToMap(&paramObj0)
  656. _, err = c.Db.SqlMapClient("insert_sys_menu", paramMap).Execute()
  657. if err == nil {
  658. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  659. } else {
  660. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  661. }
  662. }
  663. // _DelMenu
  664. // @Title _DelMenu
  665. // @Description 删除菜单
  666. // @Param id string false "菜单ID"
  667. // @Success 200 {object} Account
  668. // @Failure 403 :id is empty
  669. func System_DelMenu(c *entitys.CtrlContext) {
  670. type Param struct {
  671. Id string `json:"id"`
  672. }
  673. var params []Param
  674. c.Ctx.BindJSON(&params)
  675. ids := []string{}
  676. for _, param := range params {
  677. ids = append(ids, param.Id)
  678. }
  679. _, err := c.Db.Table(new(models.SysMenu)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  680. if err == nil {
  681. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  682. } else {
  683. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  684. }
  685. }
  686. // _UpdateMenu
  687. // @Title _UpdateMenu
  688. // @Description 更新菜单
  689. // @Param string false "菜单"
  690. // @Success 200 {object} Account
  691. // @Failure 403 :id is empty
  692. func System_UpdateMenu(c *entitys.CtrlContext) {
  693. var paramObj0 models.SysMenu
  694. err := c.Ctx.BindJSON(&paramObj0)
  695. tk, _ := c.Ctx.Get("token")
  696. user := tk.(*entitys.Token)
  697. if paramObj0.Parent != "" {
  698. parentNode := sysmodel.SysMenu{}
  699. bool, err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Get(&parentNode)
  700. if !bool || err != nil {
  701. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  702. return
  703. }
  704. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNode.Inheritance)
  705. } else {
  706. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  707. }
  708. paramObj0.LastUpdateBy = user.UserId
  709. paramObj0.LastUpdateTime = time.Now().UnixNano()
  710. sess := c.Db.NewSession()
  711. sess.Begin()
  712. paramMap, err := sysutils.BeanToMap(&paramObj0)
  713. _, err = sess.SqlMapClient("update_sys_menu", paramMap).Execute()
  714. if err != nil {
  715. sess.Rollback()
  716. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  717. }
  718. // 查找目录,修改Inheritance值
  719. //childrenNodes := []sysmodel.SysMenu{}
  720. childrenNode := new(sysmodel.SysMenu)
  721. rows, err := sess.SqlMapClient("select_children_menu", paramObj0.Id).Rows(childrenNode)
  722. if err != nil {
  723. sess.Rollback()
  724. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  725. return
  726. }
  727. defer rows.Close()
  728. for rows.Next() {
  729. err = rows.Scan(childrenNode)
  730. if err != nil {
  731. sess.Rollback()
  732. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  733. return
  734. }
  735. childrenNode.Inheritance = fmt.Sprintf("%s%s|", paramObj0.Inheritance, childrenNode.Id)
  736. childrenNode.LastUpdateBy = user.UserId
  737. childrenNode.LastUpdateTime = time.Now().UnixNano()
  738. paramMap, _ := sysutils.BeanToMap(childrenNode)
  739. _, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute()
  740. if err != nil {
  741. break
  742. }
  743. }
  744. if err == nil {
  745. sess.Commit()
  746. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  747. } else {
  748. sess.Rollback()
  749. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  750. }
  751. }
  752. // _AddOrg
  753. // @Title _AddOrg
  754. // @Description 添加组织
  755. // @Param name string false "组织名称"
  756. // @Param domain string false "域"
  757. // @Param parent string false "父ID"
  758. // @Success 200 {object} Account
  759. // @Failure 403 :id is empty
  760. func System_AddOrg(c *entitys.CtrlContext) {
  761. var paramObj0 models.SysOrg
  762. c.Ctx.BindJSON(&paramObj0)
  763. tk, _ := c.Ctx.Get("token")
  764. user := tk.(*entitys.Token)
  765. paramObj0.Id = sysutils.NewUUID()
  766. paramObj0.CreateBy = user.UserId
  767. paramObj0.LastUpdateBy = user.UserId
  768. paramObj0.CreateTime = models.NowLocal()
  769. paramObj0.LastUpdateTime = time.Now().UnixNano()
  770. paramObj0.DelFlag = 0
  771. if paramObj0.Parent != "" {
  772. parentNodes := []sysmodel.SysOrg{}
  773. err := c.Db.SqlMapClient("selectone_sys_org", &map[string]interface{}{"id": paramObj0.Parent}).Find(&parentNodes)
  774. if err != nil {
  775. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  776. return
  777. }
  778. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  779. } else {
  780. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  781. }
  782. //_, err := c.LocalSqlMapClient("insert_sys_org", &paramObj0).Execute()
  783. paramMap, err := sysutils.BeanToMap(&paramObj0)
  784. _, err = c.Db.SqlMapClient("insert_sys_org", paramMap).Execute()
  785. if err == nil {
  786. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  787. } else {
  788. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  789. }
  790. }
  791. // _DelOrg
  792. // @Title _DelOrg
  793. // @Description 删除组织
  794. // @Param id string array false "用户ID"
  795. // @Success 200 {object} Account
  796. // @Failure 403 :id is empty
  797. func System_DelOrg(c *entitys.CtrlContext) {
  798. type Param struct {
  799. Id string `json:"id"`
  800. }
  801. var params []Param
  802. c.Ctx.BindJSON(&params)
  803. ids := []string{}
  804. for _, param := range params {
  805. ids = append(ids, param.Id)
  806. }
  807. _, err := c.Db.Table(new(models.SysOrg)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  808. if err == nil {
  809. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  810. } else {
  811. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  812. }
  813. }
  814. // _UpdateOrg
  815. // @Title _UpdateOrg
  816. // @Description 修改组织
  817. // @Param name string false "组织名称"
  818. // @Param domain string false "域"
  819. // @Param parent string false "父ID"
  820. // @Success 200 {object} Account
  821. // @Failure 403 :id is empty
  822. func System_UpdateOrg(c *entitys.CtrlContext) {
  823. //name := c.Ctx.Query("name")
  824. //domain := c.Ctx.Query("domain")
  825. //parent := c.Ctx.Query("parent")
  826. var paramObj0 models.SysOrg
  827. err := c.Ctx.BindJSON(&paramObj0)
  828. tk, _ := c.Ctx.Get("token")
  829. user := tk.(*entitys.Token)
  830. if paramObj0.Parent != "" {
  831. parentNodes := []sysmodel.SysOrg{}
  832. err := c.Db.SqlMapClient("one_sys_org", paramObj0.Parent).Find(&parentNodes)
  833. if err != nil {
  834. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  835. return
  836. }
  837. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  838. } else {
  839. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  840. }
  841. paramObj0.LastUpdateBy = user.UserId
  842. paramObj0.LastUpdateTime = time.Now().UnixNano()
  843. paramMap, err := sysutils.BeanToMap(&paramObj0)
  844. _, err = c.Db.SqlMapClient("update_sys_org", paramMap).Execute()
  845. if err == nil {
  846. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  847. } else {
  848. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  849. }
  850. }
  851. // _GetOrgByUserid
  852. // @Title _GetOrgByUserid
  853. // @Description 根据组织
  854. // @Param user_id string false "用户id"
  855. // @Success 200 {object} Account
  856. // @Failure 403 :id is empty
  857. func System_GetOrgUsers(c *entitys.CtrlContext) {
  858. user_id := c.Ctx.Query("user_id")
  859. role_id := c.Ctx.Query("role_id")
  860. fmt.Println(user_id, "---------", role_id)
  861. var err error
  862. //users := []sysmodel.SysUser{}
  863. var users []sysmodel.SysUser
  864. if role_id == "" {
  865. err = c.Db.SqlMapClient("get_org_users", user_id).Find(&users)
  866. } else {
  867. err = c.Db.SqlMapClient("get_org_role_users", user_id, role_id).Find(&users)
  868. if err != nil || users == nil {
  869. c.Ctx.JSON(500, sysmodel.SysReturn{500, "无法找到部门审批人!", nil})
  870. return
  871. }
  872. }
  873. if err == nil {
  874. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", users})
  875. } else {
  876. c.Ctx.JSON(500, sysmodel.SysReturn{500, "错误", nil})
  877. }
  878. }
  879. // _AddDomain
  880. // @Title _AddDomain
  881. // @Description 添加域
  882. // @Param false "域"
  883. // @Success 200 {object} Account
  884. // @Failure 403 :id is empty
  885. func System_AddDomain(c *entitys.CtrlContext) {
  886. var paramObj0 models.SysDomain
  887. c.Ctx.BindJSON(&paramObj0)
  888. ////1、测试连接串
  889. //db, err := xorm.NewEngine("mysql", paramObj0.DataSource)
  890. //if err == nil {
  891. // //engine.initOrmEngine(db, "mysql")
  892. // //c.BusinessOrmEngine[v.Domain] = db
  893. //}
  894. tk, _ := c.Ctx.Get("token")
  895. user := tk.(*entitys.Token)
  896. paramObj0.Id = sysutils.NewUUID()
  897. paramObj0.CreateBy = user.UserId
  898. paramObj0.LastUpdateBy = user.UserId
  899. paramObj0.CreateTime = sysmodel.NowLocal()
  900. paramObj0.LastUpdateTime = time.Now().UnixNano()
  901. paramObj0.Theme = "default"
  902. paramObj0.DelFlag = 0
  903. paramMap, err := sysutils.BeanToMap(&paramObj0)
  904. if err != nil {
  905. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  906. return
  907. }
  908. _, err = c.Db.SqlMapClient("insert_sys_domain", paramMap).Execute()
  909. if err == nil {
  910. //添加数据库基本用户权限数据
  911. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  912. if ret {
  913. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  914. } else {
  915. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  916. }
  917. } else {
  918. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  919. }
  920. }
  921. // _DelDomain
  922. // @Title _DelDomain
  923. // @Description 删除域
  924. // @Param id string false "域ID"
  925. // @Success 200 {object} Account
  926. // @Failure 403 :id is empty
  927. func System_DelDomain(c *entitys.CtrlContext) {
  928. type Param struct {
  929. Id string `json:"id"`
  930. }
  931. var params []Param
  932. c.Ctx.BindJSON(&params)
  933. ids := []string{}
  934. for _, param := range params {
  935. ids = append(ids, param.Id)
  936. }
  937. _, err := c.Db.Table(new(models.SysDomain)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  938. if err != nil {
  939. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  940. return
  941. }
  942. ret := __none_func_system__()
  943. if ret {
  944. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  945. } else {
  946. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  947. }
  948. }
  949. // _UpdateDomain
  950. // @Title _UpdateDomain
  951. // @Description 修改域
  952. // @Param false "域"
  953. // @Success 200 {object} Account
  954. // @Failure 403 :id is empty
  955. func System_UpdateDomain(c *entitys.CtrlContext) {
  956. var paramObj0 models.SysDomain
  957. c.Ctx.BindJSON(&paramObj0)
  958. tk, _ := c.Ctx.Get("token")
  959. user := tk.(*entitys.Token)
  960. paramObj0.LastUpdateTime = time.Now().UnixNano()
  961. paramObj0.LastUpdateBy = user.UserId
  962. paramMap, err := sysutils.BeanToMap(&paramObj0)
  963. if err != nil {
  964. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  965. return
  966. }
  967. _, err = c.Db.SqlMapClient("update_sys_domain", paramMap).Execute()
  968. if err == nil {
  969. //添加数据库基本用户权限数据
  970. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  971. if ret {
  972. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  973. } else {
  974. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  975. }
  976. } else {
  977. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  978. }
  979. }
  980. // _GetDomain
  981. // @Title _GetDomain
  982. // @Description 根据domain获取域
  983. // @Param domain string false "域"
  984. // @Success 200 {object} Account
  985. // @Failure 403 :id is empty
  986. func System_GetDomain(c *entitys.CtrlContext) {
  987. domain := c.Ctx.Query("domain")
  988. var domainObj sysmodel.SysDomain
  989. _, err := c.PlatformDbEngine.Where("domain = ?", domain).Get(&domainObj)
  990. if err == nil {
  991. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", domainObj})
  992. } else {
  993. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  994. }
  995. }
  996. // _AddDomainMenu
  997. // @Title _AddDomainMenu
  998. // @Description 域添加菜单
  999. // @Param false "添加域菜单bean"
  1000. // @Success 200 {object} Account
  1001. // @Failure 403 :id is empty
  1002. func System_AddDomainMenu(c *entitys.CtrlContext) {
  1003. var paramObj0 struct {
  1004. //域名ID
  1005. DomainId string `json:"domain_id"`
  1006. //菜单
  1007. Menus []sysmodel.SysMenu `json:"menus"`
  1008. // type
  1009. Type int `json:"type"`
  1010. }
  1011. err := c.Ctx.BindJSON(&paramObj0)
  1012. if err != nil {
  1013. c.Ctx.JSON(500, sysmodel.SysReturn{500, "BindJSON error: " + err.Error(), nil})
  1014. return
  1015. }
  1016. var domain sysmodel.SysDomain
  1017. param := map[string]interface{}{"id": paramObj0.DomainId}
  1018. _, err = c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  1019. if err != nil {
  1020. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  1021. return
  1022. }
  1023. var menuIds = make([]string, len(paramObj0.Menus))
  1024. for i := range paramObj0.Menus {
  1025. menuIds[i] = paramObj0.Menus[i].Id
  1026. }
  1027. var menus []sysmodel.SysMenu
  1028. err = c.Db.In("id", menuIds).Find(&menus)
  1029. if err != nil {
  1030. c.Ctx.JSON(500, sysmodel.SysReturn{500, "find menu error: " + err.Error(), nil})
  1031. return
  1032. }
  1033. for i := range menus {
  1034. for j := range paramObj0.Menus {
  1035. if menus[i].Id == paramObj0.Menus[j].Id {
  1036. menus[i].Name = paramObj0.Menus[j].Name
  1037. break
  1038. }
  1039. }
  1040. }
  1041. session := c.App.GetBusinessDb(domain.Domain).NewSession()
  1042. defer session.Close()
  1043. session.Begin()
  1044. deleteSqlMapKey := ""
  1045. if paramObj0.Type >= 0 {
  1046. deleteSqlMapKey = "delete_backend_sys_menu"
  1047. } else {
  1048. deleteSqlMapKey = "delete_app_sys_menu"
  1049. }
  1050. _, err = c.App.GetBusinessDb(domain.Domain).SqlMapClient(deleteSqlMapKey).Execute()
  1051. if err != nil {
  1052. session.Rollback()
  1053. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  1054. return
  1055. }
  1056. if len(paramObj0.Menus) <= 0 {
  1057. session.Commit()
  1058. c.Ctx.JSON(200, sysmodel.SysReturn{200, "the menus is empty", nil})
  1059. return
  1060. }
  1061. _, err = c.App.GetBusinessDb(domain.Domain).Insert(&paramObj0.Menus)
  1062. if err != nil {
  1063. session.Rollback()
  1064. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  1065. return
  1066. }
  1067. session.Commit()
  1068. ret := __none_func_system__(paramObj0)
  1069. if ret {
  1070. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1071. } else {
  1072. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1073. }
  1074. }
  1075. // _GetDomainMenuTree
  1076. // @Title _GetDomainMenuTree
  1077. // @Description 域添加菜单
  1078. // @Param domain_id string false "域id"
  1079. // @Success 200 {object} Account
  1080. // @Failure 403 :id is empty
  1081. func System_GetDomainMenuTree(c *entitys.CtrlContext) {
  1082. domain_id := c.Ctx.Query("domain_id")
  1083. _type := c.Ctx.DefaultQuery("type", "")
  1084. type_op := c.Ctx.DefaultQuery("type_op", "")
  1085. op := template.HTML(type_op)
  1086. var domain sysmodel.SysDomain
  1087. param := map[string]interface{}{"id": domain_id, "type": _type, "type_op": op}
  1088. _, err := c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  1089. if err != nil {
  1090. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  1091. return
  1092. }
  1093. paramMap := map[string]interface{}{"user_id": "", "type": _type, "type_op": op, "name": "", "hidden": ""}
  1094. domainMenus, err := c.App.GetBusinessDb(domain.Domain).SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  1095. if err != nil {
  1096. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get domain_menu tree: " + err.Error(), nil})
  1097. return
  1098. }
  1099. domainTree, err := sysutils.BuildTree("", domainMenus)
  1100. sysMenus, err := c.Db.SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  1101. if err != nil {
  1102. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get sys_menu tree: " + err.Error(), nil})
  1103. return
  1104. }
  1105. var sysMenusMap map[string]map[string]interface{}
  1106. sysMenusMap = make(map[string]map[string]interface{}, 0)
  1107. for _, menu := range sysMenus {
  1108. sysMenusMap[menu["id"].(string)] = menu
  1109. }
  1110. //剔除域已存在的菜单
  1111. //for _, domainMenu := range domainMenus {
  1112. // delete(sysMenusMap, domainMenu["id"].(string))
  1113. //}
  1114. var sysMenuRest []map[string]interface{}
  1115. for _, menu := range sysMenusMap {
  1116. sysMenuRest = append(sysMenuRest, menu)
  1117. }
  1118. sysTree, err := sysutils.BuildTree("", sysMenuRest)
  1119. ret := __none_func_system__(domain_id)
  1120. if ret {
  1121. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "domain_tree": domainTree}})
  1122. } else {
  1123. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1124. }
  1125. }
  1126. // _GetUserMenuTree
  1127. // @Title _GetUserMenuTree
  1128. // @Description 获取用户权限菜单
  1129. // @Param user_id string false "用户id"
  1130. // @Success 200 {object} Account
  1131. // @Failure 403 :id is empty
  1132. func System_GetRoleMenuTree(c *entitys.CtrlContext) {
  1133. role_id := c.Ctx.Query("role_id")
  1134. //paramMap := map[string]interface{}{"role_id": role_id}
  1135. //sysMenu, err := c.Db.SqlMapClient("get_role_no_have_menu_tree", &paramMap).Query().List()
  1136. //if err != nil {
  1137. // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1138. // return
  1139. //}
  1140. //sysTree, err := sysutils.BuildTree("", sysMenu)
  1141. op := template.HTML(">=")
  1142. paramMap := map[string]interface{}{"user_id": "", "sort": "name", "type": 0, "type_op": op, "hidden": 0}
  1143. sysTree, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap)
  1144. if err != nil {
  1145. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1146. return
  1147. }
  1148. paramMap2 := map[string]interface{}{"role_id": role_id}
  1149. //roleTree, err := sysutils.TreeSearch(c.Db, "system", "get_role_menu_tree", "sys_menu", paramMap2)
  1150. roleMenu, err := c.Db.SqlMapClient("get_role_menu_tree", &paramMap2).Query().List()
  1151. if err != nil {
  1152. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1153. return
  1154. }
  1155. roleTree, err := sysutils.BuildTree("", roleMenu)
  1156. ret := __none_func_system__(role_id)
  1157. if ret {
  1158. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
  1159. } else {
  1160. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1161. }
  1162. }
  1163. // _AddRoleMenu
  1164. // @Title _AddRoleMenu
  1165. // @Description 添加角色菜单
  1166. // @Param menu_id false "菜单id"
  1167. // @Param role_id string false "角色id"
  1168. // @Success 200 {object} Account
  1169. // @Failure 403 :id is empty
  1170. func System_AddRoleMenu(c *entitys.CtrlContext) {
  1171. tk, _ := c.Ctx.Get("token")
  1172. user := tk.(*entitys.Token)
  1173. var paramObj0 struct {
  1174. MenuIds []string `json:"menu_ids"`
  1175. RoleId string `json:"role_id"`
  1176. }
  1177. c.Ctx.BindJSON(&paramObj0)
  1178. session := c.Db.NewSession()
  1179. defer session.Close()
  1180. session.Begin()
  1181. _, err := session.SqlMapClient("del_role_menu", paramObj0.RoleId).Execute()
  1182. if err != nil {
  1183. session.Rollback()
  1184. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1185. return
  1186. }
  1187. var roleMenus []*sysmodel.SysRoleMenu
  1188. for _, menu := range paramObj0.MenuIds {
  1189. roleMenu := &sysmodel.SysRoleMenu{}
  1190. roleMenu.Id = sysutils.NewUUID()
  1191. roleMenu.MenuId = menu
  1192. roleMenu.RoleId = paramObj0.RoleId
  1193. roleMenu.CreateBy = user.UserId
  1194. roleMenu.CreateTime = sysmodel.NowLocal()
  1195. roleMenus = append(roleMenus, roleMenu)
  1196. }
  1197. _, err = session.InsertMulti(&roleMenus)
  1198. if err != nil {
  1199. session.Rollback()
  1200. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1201. return
  1202. }
  1203. session.Commit()
  1204. ret := __none_func_system__(paramObj0)
  1205. if ret {
  1206. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1207. } else {
  1208. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1209. }
  1210. }
  1211. // _FindAreaPage
  1212. // @Title _FindAreaPage
  1213. // @Description 获取区域管理分页数
  1214. // @Success 200 {object} Account
  1215. // @Failure 403 :id is empty
  1216. func System_FindAreaPage(c *entitys.CtrlContext) {
  1217. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1218. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1219. var paramMap = make(map[string]interface{})
  1220. paramMap["page"] = page
  1221. paramMap["rows"] = rows
  1222. paramMap["del_flag"] = c.Ctx.Query("del_flag")
  1223. paramMap["id"] = c.Ctx.Query("id")
  1224. paramMap["name"] = c.Ctx.Query("name")
  1225. paramMap["parent"] = c.Ctx.Query("parent")
  1226. paramMap["inheritance"] = c.Ctx.Query("inheritance")
  1227. paramMap["temp_id"] = c.Ctx.Query("temp_id")
  1228. paramMap["manager"] = c.Ctx.Query("manager")
  1229. paramMap["org_id"] = c.Ctx.Query("org_id")
  1230. paramMap["org_name"] = c.Ctx.Query("org_name")
  1231. paramMap["org_inheritance"] = c.Ctx.Query("org_inheritance")
  1232. paramMap["manager_name"] = c.Ctx.Query("manager_name")
  1233. result, err := sysutils.PageSearch(c.Db, "system", "find_area_page", "sys_user", paramMap)
  1234. if err == nil {
  1235. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1236. } else {
  1237. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1238. }
  1239. }
  1240. // _AddArea
  1241. // @Title _AddArea
  1242. // @Description 添加区域
  1243. // @Param name string false "区域名称"
  1244. // @Param parent string false "父节点"
  1245. // @Param inheritance string false "继承关系"
  1246. // @Param org_id string false "组织ID"
  1247. // @Param temp_id string false "模板ID"
  1248. // @Param temp_value string false "模板内容"
  1249. // @Param manager string false "负责人"
  1250. // @Success 200 {object} Account
  1251. // @Failure 403 :id is empty
  1252. func System_AddArea(c *entitys.CtrlContext) {
  1253. var err error
  1254. var bean sysmodel.SysArea
  1255. if err = c.Ctx.BindJSON(&bean); err != nil {
  1256. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1257. return
  1258. }
  1259. user_id := c.Ctx.GetString("user_id")
  1260. bean.Id = sysutils.NewUUID()
  1261. bean.DelFlag = 0
  1262. bean.CreateBy = user_id
  1263. bean.LastUpdateBy = user_id
  1264. bean.CreateTime = sysmodel.NowLocal()
  1265. bean.LastUpdateTime = time.Now().UnixNano()
  1266. if bean.Parent != "" {
  1267. parentNodes := sysmodel.SysArea{}
  1268. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1269. if err != nil {
  1270. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1271. return
  1272. }
  1273. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1274. } else {
  1275. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1276. }
  1277. _, err = c.Db.InsertOne(&bean)
  1278. if err == nil {
  1279. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1280. } else {
  1281. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1282. }
  1283. }
  1284. // _DelArea
  1285. // @Title _DelArea
  1286. // @Description 删除区域
  1287. // @Param ids string false "用户ID"
  1288. // @Success 200 {object} Account
  1289. // @Failure 403 :id is empty
  1290. func System_DelArea(c *entitys.CtrlContext) {
  1291. var err error
  1292. var bean = &models.SysArea{}
  1293. type Param struct {
  1294. Id string `json:"id"`
  1295. }
  1296. var params []Param
  1297. c.Ctx.BindJSON(&params)
  1298. ids := []string{}
  1299. for _, param := range params {
  1300. ids = append(ids, param.Id)
  1301. }
  1302. session := c.Db.NewSession()
  1303. defer session.Close()
  1304. if err := session.Begin(); err != nil {
  1305. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1306. return
  1307. }
  1308. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1309. if err == nil {
  1310. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1311. }
  1312. if err == nil {
  1313. err = session.Commit()
  1314. }
  1315. if err == nil {
  1316. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1317. } else {
  1318. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1319. }
  1320. }
  1321. // _RecoverArea
  1322. // @Title _RecoverArea
  1323. // @Description 恢复区域
  1324. // @Param ids string false "区域ID"
  1325. // @Success 200 {object} Account
  1326. // @Failure 403 :id is empty
  1327. func System_RecoverArea(c *entitys.CtrlContext) {
  1328. var err error
  1329. var bean = &models.SysArea{}
  1330. idArr := make([]string, 0)
  1331. if ids := c.Ctx.Query("ids"); ids == "" {
  1332. err = c.Ctx.BindJSON(&idArr)
  1333. if err != nil || len(idArr) <= 0 {
  1334. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1335. return
  1336. }
  1337. } else {
  1338. idArr = strings.Split(ids, ",")
  1339. }
  1340. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1341. if err == nil {
  1342. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1343. } else {
  1344. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1345. }
  1346. }
  1347. // _UpdateArea
  1348. // @Title _UpdateArea
  1349. // @Description 修改区域
  1350. // @Param name string false "区域名称"
  1351. // @Param parent string false "父节点"
  1352. // @Param inheritance string false "继承关系"
  1353. // @Param org_id string false "组织ID"
  1354. // @Param temp_id string false "模板ID"
  1355. // @Param temp_value string false "模板内容"
  1356. // @Param manager string false "负责人"
  1357. // @Success 200 {object} Account
  1358. // @Failure 403 :id is empty
  1359. func System_UpdateArea(c *entitys.CtrlContext) {
  1360. var err error
  1361. var bean sysmodel.SysArea
  1362. if err = c.Ctx.BindJSON(&bean); err != nil {
  1363. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1364. return
  1365. }
  1366. user_id := c.Ctx.GetString("user_id")
  1367. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1368. if !exist && err == nil {
  1369. err = errors.New("record does not exist")
  1370. }
  1371. if err != nil {
  1372. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1373. return
  1374. }
  1375. bean.LastUpdateBy = user_id
  1376. bean.LastUpdateTime = time.Now().UnixNano()
  1377. if bean.Parent != "" {
  1378. parentNodes := sysmodel.SysArea{}
  1379. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1380. if err != nil {
  1381. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1382. return
  1383. }
  1384. if parentNodes.Inheritance == "" {
  1385. parentNodes.Inheritance = "|"
  1386. }
  1387. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1388. } else {
  1389. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1390. }
  1391. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1392. if err == nil {
  1393. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1394. } else {
  1395. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1396. }
  1397. }
  1398. // _GetArea
  1399. // @Title _GetArea
  1400. // @Description 根据区域ID获取区域信息
  1401. // @Param id string false "区域ID"
  1402. // @Success 200 {object} Account
  1403. // @Failure 403 :id is empty
  1404. func System_GetArea(c *entitys.CtrlContext) {
  1405. id := c.Ctx.Query("id")
  1406. //var area sysmodel.SysArea
  1407. //exist, err := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Get(&area)
  1408. result := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Query()
  1409. if result.Result != nil && len(result.Result) > 0 {
  1410. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result.Result[0]})
  1411. } else {
  1412. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1413. }
  1414. }
  1415. // _GetAreaTree
  1416. // @Title _GetAreaTree
  1417. // @Description 获取区域管理树
  1418. // @Success 200 {object} Account
  1419. // @Failure 403 :id is empty
  1420. func System_GetAreaTree(c *entitys.CtrlContext) {
  1421. paramMap_i_t := map[string]interface{}{"sort": "name"}
  1422. result, err := sysutils.TreeSearch(c.Db, "system", "get_area_tree", "sys_area", paramMap_i_t)
  1423. if err == nil {
  1424. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1425. } else {
  1426. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1427. }
  1428. }
  1429. // _FindAreaTemplatePage
  1430. // @Title _FindAreaTemplatePage
  1431. // @Description 获取区域模板分页数
  1432. // @Success 200 {object} Account
  1433. // @Failure 403 :id is empty
  1434. func System_FindAreaTemplatePage(c *entitys.CtrlContext) {
  1435. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1436. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1437. del_flag := c.Ctx.Query("del_flag")
  1438. name := c.Ctx.Query("name")
  1439. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1440. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_page", "sys_area", paramMap_i_t)
  1441. if err == nil {
  1442. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1443. } else {
  1444. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1445. }
  1446. }
  1447. // _AddAreaTemplate
  1448. // @Title _AddAreaTemplate
  1449. // @Description 添加区域模板
  1450. // @Param name string false "名称"
  1451. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1452. // @Param default int64 false "是否默认 1:是 0:否"
  1453. // @Success 200 {object} Account
  1454. // @Failure 403 :id is empty
  1455. func System_AddAreaTemplate(c *entitys.CtrlContext) {
  1456. var err error
  1457. var bean sysmodel.SysAreaTemplate
  1458. if err = c.Ctx.BindJSON(&bean); err != nil {
  1459. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1460. return
  1461. }
  1462. user_id := c.Ctx.GetString("user_id")
  1463. bean.Id = sysutils.NewUUID()
  1464. bean.DelFlag = 0
  1465. bean.CreateBy = user_id
  1466. bean.LastUpdateBy = user_id
  1467. bean.CreateTime = sysmodel.NowLocal()
  1468. bean.LastUpdateTime = time.Now().UnixNano()
  1469. _, err = c.Db.InsertOne(&bean)
  1470. if err == nil {
  1471. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1472. } else {
  1473. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1474. }
  1475. }
  1476. // _UpdateAreaTemplate
  1477. // @Title _UpdateAreaTemplate
  1478. // @Description 修改区域模板
  1479. // @Param name string false "名称"
  1480. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1481. // @Param default int64 false "是否默认 1:是 0:否"
  1482. // @Success 200 {object} Account
  1483. // @Failure 403 :id is empty
  1484. func System_UpdateAreaTemplate(c *entitys.CtrlContext) {
  1485. var err error
  1486. var bean sysmodel.SysAreaTemplate
  1487. if err = c.Ctx.BindJSON(&bean); err != nil {
  1488. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1489. return
  1490. }
  1491. user_id := c.Ctx.GetString("user_id")
  1492. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1493. if !exist && err == nil {
  1494. err = errors.New("record does not exist")
  1495. }
  1496. if err != nil {
  1497. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1498. return
  1499. }
  1500. bean.LastUpdateBy = user_id
  1501. bean.LastUpdateTime = time.Now().UnixNano()
  1502. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1503. if err == nil {
  1504. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1505. } else {
  1506. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1507. }
  1508. }
  1509. // _DelAreaTemplate
  1510. // @Title _DelAreaTemplate
  1511. // @Description 删除区域模板
  1512. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1513. // @Success 200 {object} Account
  1514. // @Failure 403 :id is empty
  1515. func System_DelAreaTemplate(c *entitys.CtrlContext) {
  1516. var err error
  1517. var bean = &models.SysAreaTemplate{}
  1518. type Param struct {
  1519. Id string `json:"id"`
  1520. }
  1521. var params []Param
  1522. c.Ctx.BindJSON(&params)
  1523. ids := []string{}
  1524. for _, param := range params {
  1525. ids = append(ids, param.Id)
  1526. }
  1527. session := c.Db.NewSession()
  1528. defer session.Close()
  1529. if err := session.Begin(); err != nil {
  1530. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1531. return
  1532. }
  1533. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1534. if err == nil {
  1535. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1536. }
  1537. if err == nil {
  1538. err = session.Commit()
  1539. }
  1540. if err == nil {
  1541. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1542. } else {
  1543. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1544. }
  1545. }
  1546. // _RecoverAreaTemplate
  1547. // @Title _RecoverAreaTemplate
  1548. // @Description 恢复区域模板
  1549. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1550. // @Success 200 {object} Account
  1551. // @Failure 403 :id is empty
  1552. func System_RecoverAreaTemplate(c *entitys.CtrlContext) {
  1553. var err error
  1554. var bean = &models.SysAreaTemplate{}
  1555. idArr := make([]string, 0)
  1556. if ids := c.Ctx.Query("ids"); ids == "" {
  1557. err = c.Ctx.BindJSON(&idArr)
  1558. if err != nil || len(idArr) <= 0 {
  1559. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1560. return
  1561. }
  1562. } else {
  1563. idArr = strings.Split(ids, ",")
  1564. }
  1565. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1566. if err == nil {
  1567. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1568. } else {
  1569. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1570. }
  1571. }
  1572. // _GetAreaTemplate
  1573. // @Title _GetAreaTemplate
  1574. // @Description 根据区域模板ID获取区域模板信息
  1575. // @Param id string false "区域模板ID"
  1576. // @Success 200 {object} Account
  1577. // @Failure 403 :id is empty
  1578. func System_GetAreaTemplate(c *entitys.CtrlContext) {
  1579. id := c.Ctx.Query("id")
  1580. var area sysmodel.SysAreaTemplate
  1581. exist, err := c.Db.SqlMapClient("selectone_sys_area_template", &map[string]interface{}{"id": id}).Get(&area)
  1582. if !exist && err == nil {
  1583. err = errors.New("record does not exist")
  1584. }
  1585. if err == nil {
  1586. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1587. } else {
  1588. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1589. }
  1590. }
  1591. // _FindAreaTemplateDetailPage
  1592. // @Title _FindAreaTemplateDetailPage
  1593. // @Description 获取区域模板明细分页数
  1594. // @Success 200 {object} Account
  1595. // @Failure 403 :id is empty
  1596. func System_FindAreaTemplateDetailPage(c *entitys.CtrlContext) {
  1597. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1598. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1599. del_flag := c.Ctx.Query("del_flag")
  1600. __sort__ := c.Ctx.Query("__sort__")
  1601. name := c.Ctx.Query("name")
  1602. temp_id := c.Ctx.Query("temp_id")
  1603. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1604. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_detail_page", "sys_area", paramMap_i_t)
  1605. if err == nil {
  1606. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1607. } else {
  1608. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1609. }
  1610. }
  1611. // _AddAreaTemplateDetail
  1612. // @Title _AddAreaTemplateDetail
  1613. // @Description 添加区域模板明细
  1614. // @Param temp_id string false "模板id"
  1615. // @Param name string false "名称"
  1616. // @Param value string false "值"
  1617. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1618. // @Param priority int64 false "优先级"
  1619. // @Param content string false "内容"
  1620. // @Success 200 {object} Account
  1621. // @Failure 403 :id is empty
  1622. func System_AddAreaTemplateDetail(c *entitys.CtrlContext) {
  1623. var err error
  1624. var bean sysmodel.SysAreaTemplateDetail
  1625. if err = c.Ctx.BindJSON(&bean); err != nil {
  1626. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1627. return
  1628. }
  1629. user_id := c.Ctx.GetString("user_id")
  1630. bean.Id = sysutils.NewUUID()
  1631. bean.DelFlag = 0
  1632. bean.CreateBy = user_id
  1633. bean.LastUpdateBy = user_id
  1634. bean.CreateTime = sysmodel.NowLocal()
  1635. bean.LastUpdateTime = time.Now().UnixNano()
  1636. _, err = c.Db.InsertOne(&bean)
  1637. if err == nil {
  1638. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1639. } else {
  1640. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1641. }
  1642. }
  1643. // _UpdateAreaTemplateDetail
  1644. // @Title _UpdateAreaTemplateDetail
  1645. // @Description 修改区域模板明细
  1646. // @Param temp_id string false "模板id"
  1647. // @Param name string false "名称"
  1648. // @Param value string false "值"
  1649. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1650. // @Param priority int64 false "优先级"
  1651. // @Param content string false "内容"
  1652. // @Success 200 {object} Account
  1653. // @Failure 403 :id is empty
  1654. func System_UpdateAreaTemplateDetail(c *entitys.CtrlContext) {
  1655. var err error
  1656. var bean sysmodel.SysAreaTemplateDetail
  1657. if err = c.Ctx.BindJSON(&bean); err != nil {
  1658. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1659. return
  1660. }
  1661. user_id := c.Ctx.GetString("user_id")
  1662. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1663. if !exist && err == nil {
  1664. err = errors.New("record does not exist")
  1665. }
  1666. if err != nil {
  1667. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1668. return
  1669. }
  1670. bean.LastUpdateBy = user_id
  1671. bean.LastUpdateTime = time.Now().UnixNano()
  1672. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1673. if err == nil {
  1674. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1675. } else {
  1676. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1677. }
  1678. }
  1679. // _DelAreaTemplateDetail
  1680. // @Title _DelAreaTemplateDetail
  1681. // @Description 删除区域模板明细
  1682. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1683. // @Success 200 {object} Account
  1684. // @Failure 403 :id is empty
  1685. func System_DelAreaTemplateDetail(c *entitys.CtrlContext) {
  1686. var err error
  1687. var bean = &models.SysAreaTemplateDetail{}
  1688. type Param struct {
  1689. Id string `json:"id"`
  1690. }
  1691. var params []Param
  1692. c.Ctx.BindJSON(&params)
  1693. ids := []string{}
  1694. for _, param := range params {
  1695. ids = append(ids, param.Id)
  1696. }
  1697. session := c.Db.NewSession()
  1698. defer session.Close()
  1699. if err := session.Begin(); err != nil {
  1700. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1701. return
  1702. }
  1703. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1704. if err == nil {
  1705. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1706. }
  1707. if err == nil {
  1708. err = session.Commit()
  1709. }
  1710. if err == nil {
  1711. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1712. } else {
  1713. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1714. }
  1715. }
  1716. // _RecoverAreaTemplateDetail
  1717. // @Title _RecoverAreaTemplateDetail
  1718. // @Description 恢复区域模板明细
  1719. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1720. // @Success 200 {object} Account
  1721. // @Failure 403 :id is empty
  1722. func System_RecoverAreaTemplateDetail(c *entitys.CtrlContext) {
  1723. var err error
  1724. var bean = &models.SysAreaTemplateDetail{}
  1725. idArr := make([]string, 0)
  1726. if ids := c.Ctx.Query("ids"); ids == "" {
  1727. err = c.Ctx.BindJSON(&idArr)
  1728. if err != nil || len(idArr) <= 0 {
  1729. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1730. return
  1731. }
  1732. } else {
  1733. idArr = strings.Split(ids, ",")
  1734. }
  1735. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1736. if err == nil {
  1737. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1738. } else {
  1739. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1740. }
  1741. }
  1742. // _GetAreaTemplateDetail
  1743. // @Title _GetAreaTemplateDetail
  1744. // @Description 根据区域模板明细ID获取区域模板明细信息
  1745. // @Param id string false "区域模板明细ID"
  1746. // @Success 200 {object} Account
  1747. // @Failure 403 :id is empty
  1748. func System_GetAreaTemplateDetail(c *entitys.CtrlContext) {
  1749. id := c.Ctx.Query("id")
  1750. var area sysmodel.SysAreaTemplateDetail
  1751. exist, err := c.Db.SqlMapClient("selectone_sys_area_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  1752. if !exist && err == nil {
  1753. err = errors.New("record does not exist")
  1754. }
  1755. if err == nil {
  1756. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1757. } else {
  1758. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1759. }
  1760. }
  1761. // _FindUserTemplatePage
  1762. // @Title _FindUserTemplatePage
  1763. // @Description 获取用户信息模板分页数
  1764. // @Success 200 {object} Account
  1765. // @Failure 403 :id is empty
  1766. func System_FindUserTemplatePage(c *entitys.CtrlContext) {
  1767. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1768. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1769. del_flag := c.Ctx.Query("del_flag")
  1770. name := c.Ctx.Query("name")
  1771. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1772. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_page", "sys_area", paramMap_i_t)
  1773. if err == nil {
  1774. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1775. } else {
  1776. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1777. }
  1778. }
  1779. // _AddUserTemplate
  1780. // @Title _AddUserTemplate
  1781. // @Description 添加用户信息模板
  1782. // @Param name string false "名称"
  1783. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1784. // @Param default int64 false "是否默认 1:是 0:否"
  1785. // @Success 200 {object} Account
  1786. // @Failure 403 :id is empty
  1787. func System_AddUserTemplate(c *entitys.CtrlContext) {
  1788. var err error
  1789. var bean sysmodel.SysUserTemplate
  1790. if err = c.Ctx.BindJSON(&bean); err != nil {
  1791. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1792. return
  1793. }
  1794. user_id := c.Ctx.GetString("user_id")
  1795. bean.Id = sysutils.NewUUID()
  1796. bean.DelFlag = 0
  1797. bean.CreateBy = user_id
  1798. bean.LastUpdateBy = user_id
  1799. bean.CreateTime = sysmodel.NowLocal()
  1800. bean.LastUpdateTime = time.Now().UnixNano()
  1801. _, err = c.Db.InsertOne(&bean)
  1802. if err == nil {
  1803. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1804. } else {
  1805. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1806. }
  1807. }
  1808. // _UpdateUserTemplate
  1809. // @Title _UpdateUserTemplate
  1810. // @Description 修改用户信息模板
  1811. // @Param name string false "名称"
  1812. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1813. // @Param default int64 false "是否默认 1:是 0:否"
  1814. // @Success 200 {object} Account
  1815. // @Failure 403 :id is empty
  1816. func System_UpdateUserTemplate(c *entitys.CtrlContext) {
  1817. var err error
  1818. var bean sysmodel.SysUserTemplate
  1819. if err = c.Ctx.BindJSON(&bean); err != nil {
  1820. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1821. return
  1822. }
  1823. user_id := c.Ctx.GetString("user_id")
  1824. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1825. if !exist && err == nil {
  1826. err = errors.New("record does not exist")
  1827. }
  1828. if err != nil {
  1829. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1830. return
  1831. }
  1832. bean.LastUpdateBy = user_id
  1833. bean.LastUpdateTime = time.Now().UnixNano()
  1834. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1835. if err == nil {
  1836. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1837. } else {
  1838. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1839. }
  1840. }
  1841. // _DelUserTemplate
  1842. // @Title _DelUserTemplate
  1843. // @Description 删除用户信息模板
  1844. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1845. // @Success 200 {object} Account
  1846. // @Failure 403 :id is empty
  1847. func System_DelUserTemplate(c *entitys.CtrlContext) {
  1848. var err error
  1849. var bean = &models.SysUserTemplate{}
  1850. type Param struct {
  1851. Id string `json:"id"`
  1852. }
  1853. var params []Param
  1854. c.Ctx.BindJSON(&params)
  1855. ids := []string{}
  1856. for _, param := range params {
  1857. ids = append(ids, param.Id)
  1858. }
  1859. session := c.Db.NewSession()
  1860. defer session.Close()
  1861. if err := session.Begin(); err != nil {
  1862. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1863. return
  1864. }
  1865. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1866. if err == nil {
  1867. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1868. }
  1869. if err == nil {
  1870. err = session.Commit()
  1871. }
  1872. if err == nil {
  1873. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1874. } else {
  1875. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1876. }
  1877. }
  1878. // _RecoverUserTemplate
  1879. // @Title _RecoverUserTemplate
  1880. // @Description 恢复用户信息模板
  1881. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1882. // @Success 200 {object} Account
  1883. // @Failure 403 :id is empty
  1884. func System_RecoverUserTemplate(c *entitys.CtrlContext) {
  1885. var err error
  1886. var bean = &models.SysUserTemplate{}
  1887. idArr := make([]string, 0)
  1888. if ids := c.Ctx.Query("ids"); ids == "" {
  1889. err = c.Ctx.BindJSON(&idArr)
  1890. if err != nil || len(idArr) <= 0 {
  1891. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1892. return
  1893. }
  1894. } else {
  1895. idArr = strings.Split(ids, ",")
  1896. }
  1897. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1898. if err == nil {
  1899. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1900. } else {
  1901. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1902. }
  1903. }
  1904. // _GetUserTemplate
  1905. // @Title _GetUserTemplate
  1906. // @Description 根据用户信息模板ID获取用户信息模板信息
  1907. // @Param id string false "用户信息模板ID"
  1908. // @Success 200 {object} Account
  1909. // @Failure 403 :id is empty
  1910. func System_GetUserTemplate(c *entitys.CtrlContext) {
  1911. id := c.Ctx.Query("id")
  1912. var area sysmodel.SysUserTemplate
  1913. exist, err := c.Db.SqlMapClient("selectone_sys_user_template", &map[string]interface{}{"id": id}).Get(&area)
  1914. if !exist && err == nil {
  1915. err = errors.New("record does not exist")
  1916. }
  1917. if err == nil {
  1918. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1919. } else {
  1920. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1921. }
  1922. }
  1923. // _FindUserTemplateDetailPage
  1924. // @Title _FindUserTemplateDetailPage
  1925. // @Description 获取用户信息模板明细分页数
  1926. // @Success 200 {object} Account
  1927. // @Failure 403 :id is empty
  1928. func System_FindUserTemplateDetailPage(c *entitys.CtrlContext) {
  1929. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1930. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1931. del_flag := c.Ctx.Query("del_flag")
  1932. __sort__ := c.Ctx.Query("__sort__")
  1933. name := c.Ctx.Query("name")
  1934. temp_id := c.Ctx.Query("temp_id")
  1935. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1936. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_detail_page", "sys_area", paramMap_i_t)
  1937. if err == nil {
  1938. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1939. } else {
  1940. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1941. }
  1942. }
  1943. // _AddUserTemplateDetail
  1944. // @Title _AddUserTemplateDetail
  1945. // @Description 添加用户信息模板明细
  1946. // @Param temp_id string false "模板id"
  1947. // @Param name string false "名称"
  1948. // @Param value string false "值"
  1949. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1950. // @Param priority int64 false "优先级"
  1951. // @Param content string false "内容"
  1952. // @Success 200 {object} Account
  1953. // @Failure 403 :id is empty
  1954. func System_AddUserTemplateDetail(c *entitys.CtrlContext) {
  1955. var err error
  1956. var bean sysmodel.SysUserTemplateDetail
  1957. if err = c.Ctx.BindJSON(&bean); err != nil {
  1958. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1959. return
  1960. }
  1961. user_id := c.Ctx.GetString("user_id")
  1962. bean.Id = sysutils.NewUUID()
  1963. bean.DelFlag = 0
  1964. bean.CreateBy = user_id
  1965. bean.LastUpdateBy = user_id
  1966. bean.CreateTime = sysmodel.NowLocal()
  1967. bean.LastUpdateTime = time.Now().UnixNano()
  1968. _, err = c.Db.InsertOne(&bean)
  1969. if err == nil {
  1970. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1971. } else {
  1972. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1973. }
  1974. }
  1975. // _UpdateUserTemplateDetail
  1976. // @Title _UpdateUserTemplateDetail
  1977. // @Description 修改用户信息模板明细
  1978. // @Param temp_id string false "模板id"
  1979. // @Param name string false "名称"
  1980. // @Param value string false "值"
  1981. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1982. // @Param priority int64 false "优先级"
  1983. // @Param content string false "内容"
  1984. // @Success 200 {object} Account
  1985. // @Failure 403 :id is empty
  1986. func System_UpdateUserTemplateDetail(c *entitys.CtrlContext) {
  1987. var err error
  1988. var bean sysmodel.SysUserTemplateDetail
  1989. if err = c.Ctx.BindJSON(&bean); err != nil {
  1990. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1991. return
  1992. }
  1993. user_id := c.Ctx.GetString("user_id")
  1994. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1995. if !exist && err == nil {
  1996. err = errors.New("record does not exist")
  1997. }
  1998. if err != nil {
  1999. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2000. return
  2001. }
  2002. bean.LastUpdateBy = user_id
  2003. bean.LastUpdateTime = time.Now().UnixNano()
  2004. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  2005. if err == nil {
  2006. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  2007. } else {
  2008. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  2009. }
  2010. }
  2011. // _DelUserTemplateDetail
  2012. // @Title _DelUserTemplateDetail
  2013. // @Description 删除用户信息模板明细
  2014. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  2015. // @Success 200 {object} Account
  2016. // @Failure 403 :id is empty
  2017. func System_DelUserTemplateDetail(c *entitys.CtrlContext) {
  2018. var err error
  2019. var bean = &models.SysUserTemplateDetail{}
  2020. type Param struct {
  2021. Id string `json:"id"`
  2022. }
  2023. var params []Param
  2024. c.Ctx.BindJSON(&params)
  2025. ids := []string{}
  2026. for _, param := range params {
  2027. ids = append(ids, param.Id)
  2028. }
  2029. session := c.Db.NewSession()
  2030. defer session.Close()
  2031. if err := session.Begin(); err != nil {
  2032. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2033. return
  2034. }
  2035. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  2036. if err == nil {
  2037. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  2038. }
  2039. if err == nil {
  2040. err = session.Commit()
  2041. }
  2042. if err == nil {
  2043. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2044. } else {
  2045. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2046. }
  2047. }
  2048. // _RecoverUserTemplateDetail
  2049. // @Title _RecoverUserTemplateDetail
  2050. // @Description 恢复用户信息模板明细
  2051. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  2052. // @Success 200 {object} Account
  2053. // @Failure 403 :id is empty
  2054. func System_RecoverUserTemplateDetail(c *entitys.CtrlContext) {
  2055. var err error
  2056. var bean = &models.SysUserTemplateDetail{}
  2057. idArr := make([]string, 0)
  2058. if ids := c.Ctx.Query("ids"); ids == "" {
  2059. err = c.Ctx.BindJSON(&idArr)
  2060. if err != nil || len(idArr) <= 0 {
  2061. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  2062. return
  2063. }
  2064. } else {
  2065. idArr = strings.Split(ids, ",")
  2066. }
  2067. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  2068. if err == nil {
  2069. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2070. } else {
  2071. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2072. }
  2073. }
  2074. // _GetUserTemplateDetail
  2075. // @Title _GetUserTemplateDetail
  2076. // @Description 根据用户信息模板明细ID获取用户信息模板明细信息
  2077. // @Param id string false "用户信息模板明细ID"
  2078. // @Success 200 {object} Account
  2079. // @Failure 403 :id is empty
  2080. func System_GetUserTemplateDetail(c *entitys.CtrlContext) {
  2081. id := c.Ctx.Query("id")
  2082. var area sysmodel.SysUserTemplateDetail
  2083. exist, err := c.Db.SqlMapClient("selectone_sys_user_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  2084. if !exist && err == nil {
  2085. err = errors.New("record does not exist")
  2086. }
  2087. if err == nil {
  2088. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  2089. } else {
  2090. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2091. }
  2092. }
  2093. // _AddOptionset
  2094. // @Title _AddOptionset
  2095. // @Description 添加字典
  2096. // @Param false "字典"
  2097. // @Success 200 {object} Account
  2098. // @Failure 403 :id is empty
  2099. func System_AddOptionset(c *entitys.CtrlContext) {
  2100. var paramObj0 models.SysOptionset
  2101. c.Ctx.BindJSON(&paramObj0)
  2102. user_id := c.Ctx.GetString("user_id")
  2103. paramObj0.Id = sysutils.NewUUID()
  2104. paramObj0.CreateBy = user_id
  2105. paramObj0.CreateTime = sysmodel.NowLocal()
  2106. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2107. paramObj0.LastUpdateBy = user_id
  2108. paramObj0.DelFlag = 0
  2109. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2110. _, err := c.Db.SqlMapClient("insert_sys_optionset", paramMap).Execute()
  2111. if err == nil {
  2112. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2113. } else {
  2114. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2115. }
  2116. }
  2117. // _DelOptionset
  2118. // @Title _DelOptionset
  2119. // @Description 删除字典
  2120. // @Param id string false "字典ID"
  2121. // @Success 200 {object} Account
  2122. // @Failure 403 :id is empty
  2123. func System_DelOptionset(c *entitys.CtrlContext) {
  2124. type Param struct {
  2125. Id string `json:"id"`
  2126. }
  2127. var params []Param
  2128. c.Ctx.BindJSON(&params)
  2129. ids := []string{}
  2130. for _, param := range params {
  2131. ids = append(ids, param.Id)
  2132. }
  2133. _, err := c.Db.Table(new(models.SysOptionset)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2134. if err == nil {
  2135. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2136. } else {
  2137. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2138. }
  2139. }
  2140. // _UpdateOptionset
  2141. // @Title _UpdateOptionset
  2142. // @Description 修改字典
  2143. // @Param false "字典"
  2144. // @Success 200 {object} Account
  2145. // @Failure 403 :id is empty
  2146. func System_UpdateOptionset(c *entitys.CtrlContext) {
  2147. var paramObj0 models.SysOptionset
  2148. c.Ctx.BindJSON(&paramObj0)
  2149. user_id := c.Ctx.GetString("user_id")
  2150. paramObj0.LastUpdateBy = user_id
  2151. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2152. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2153. _, err := c.Db.SqlMapClient("update_sys_optionset", paramMap).Execute()
  2154. if err == nil {
  2155. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2156. } else {
  2157. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2158. }
  2159. }
  2160. // _FindOptionsetPage
  2161. // @Title _FindOptionsetPage
  2162. // @Description 获取字典分页数
  2163. // @Success 200 {object} Account
  2164. // @Failure 403 :id is empty
  2165. func System_FindOptionsetPage(c *entitys.CtrlContext) {
  2166. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2167. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2168. name := c.Ctx.DefaultQuery("name", "")
  2169. code := c.Ctx.DefaultQuery("code", "")
  2170. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code}
  2171. result, err := sysutils.PageSearch(c.Db, "system", "find_optionset_page", "sys_optionset", paramMap_i_t)
  2172. if err == nil {
  2173. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2174. } else {
  2175. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2176. }
  2177. }
  2178. // _GetOptionsetByCode
  2179. // @Title _GetOptionsetByCode
  2180. // @Description 根据编码查找字典
  2181. // @Param code string false "字典编码"
  2182. // @Success 200 {object} Account
  2183. // @Failure 403 :id is empty
  2184. func System_GetOptionsetByCode(c *entitys.CtrlContext) {
  2185. code := c.Ctx.Query("code")
  2186. var option sysmodel.SysOptionset
  2187. exit, err := c.Db.Table(new(sysmodel.SysOptionset)).Where("code = ?", code).Get(&option)
  2188. if exit && err == nil {
  2189. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", option})
  2190. } else {
  2191. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2192. }
  2193. }
  2194. // _AddTableColUser
  2195. // @Title _AddTableColUser
  2196. // @Description 添加用户可见列
  2197. // @Param false "用户可见列"
  2198. // @Success 200 {object} Account
  2199. // @Failure 403 :id is empty
  2200. func System_AddTableColUser(c *entitys.CtrlContext) {
  2201. var paramObj0 models.SysTableColUser
  2202. c.Ctx.BindJSON(&paramObj0)
  2203. user_id := c.Ctx.GetString("user_id")
  2204. // 查询用户是否有此可见列数据
  2205. var tabelColUser sysmodel.SysTableColUser
  2206. exit, err := c.Db.Where("user_id = ? and code = ?", user_id, paramObj0.Code).Get(&tabelColUser)
  2207. if err != nil {
  2208. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2209. return
  2210. }
  2211. // 如果存在,更新,不存在插入
  2212. if exit {
  2213. tabelColUser.Value = paramObj0.Value
  2214. _, err = c.Db.ID(tabelColUser.Id).Cols("value").Update(&tabelColUser)
  2215. if err == nil {
  2216. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2217. } else {
  2218. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2219. }
  2220. return
  2221. }
  2222. paramObj0.Id = sysutils.NewUUID()
  2223. paramObj0.UserId = user_id
  2224. paramObj0.DelFlag = 0
  2225. paramObj0.CreateTime = sysmodel.NowLocal()
  2226. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2227. paramObj0.CreateBy = user_id
  2228. paramObj0.LastUpdateBy = user_id
  2229. _, err = c.Db.Insert(&paramObj0)
  2230. if err == nil {
  2231. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2232. } else {
  2233. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2234. }
  2235. }
  2236. // _UpdateTableColUser
  2237. // @Title _UpdateTableColUser
  2238. // @Description 修改用户可见列
  2239. // @Param false "用户可见列"
  2240. // @Success 200 {object} Account
  2241. // @Failure 403 :id is empty
  2242. func System_UpdateTableColUser(c *entitys.CtrlContext) {
  2243. var paramObj0 models.SysTableColUser
  2244. c.Ctx.BindJSON(&paramObj0)
  2245. ret := __none_func_system__(paramObj0)
  2246. if ret {
  2247. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2248. } else {
  2249. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2250. }
  2251. }
  2252. // _FindTableColUserpage
  2253. // @Title _FindTableColUserpage
  2254. // @Description 分页获取用户可见列
  2255. // @Success 200 {object} Account
  2256. // @Failure 403 :id is empty
  2257. func System_FindTableColUserpage(c *entitys.CtrlContext) {
  2258. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2259. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2260. code := c.Ctx.DefaultQuery("code", "")
  2261. user_id := c.Ctx.DefaultQuery("user_id", "")
  2262. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "code": code, "user_id": user_id}
  2263. result, err := sysutils.PageSearch(c.Db, "system", "find_table_col_userpage", "sys_table_col_user", paramMap_i_t)
  2264. if err == nil {
  2265. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2266. } else {
  2267. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2268. }
  2269. }
  2270. // _AddDataPermission
  2271. // @Title _AddDataPermission
  2272. // @Description 添加数据权限
  2273. // @Param string false "数据权限"
  2274. // @Success 200 {object} Account
  2275. // @Failure 403 :id is empty
  2276. func System_AddDataPermission(c *entitys.CtrlContext) {
  2277. var paramObj0 struct {
  2278. Permission models.SysDataPermission `json:"permission"`
  2279. Details []models.SysDataPermissionDetail `json:"details"`
  2280. }
  2281. if err := c.Ctx.BindJSON(&paramObj0); err != nil {
  2282. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2283. return
  2284. }
  2285. user_id := c.Ctx.GetString("user_id")
  2286. paramObj0.Permission.Id = sysutils.NewUUID()
  2287. paramObj0.Permission.CreateBy = user_id
  2288. paramObj0.Permission.LastUpdateBy = user_id
  2289. paramObj0.Permission.CreateTime = sysmodel.NowLocal()
  2290. paramObj0.Permission.LastUpdateTime = time.Now().UnixNano()
  2291. paramObj0.Permission.DelFlag = 0
  2292. if _, err := c.Db.Insert(&paramObj0.Permission); err != nil {
  2293. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2294. return
  2295. }
  2296. for i, _ := range paramObj0.Details {
  2297. paramObj0.Details[i].Id = sysutils.NewUUID()
  2298. paramObj0.Details[i].DataPermissionId = paramObj0.Permission.Id
  2299. paramObj0.Details[i].CreateBy = user_id
  2300. paramObj0.Details[i].LastUpdateBy = user_id
  2301. paramObj0.Details[i].CreateTime = sysmodel.NowLocal()
  2302. paramObj0.Details[i].LastUpdateTime = time.Now().UnixNano()
  2303. paramObj0.Details[i].DelFlag = 0
  2304. }
  2305. _, err := c.Db.Insert(&paramObj0.Details)
  2306. if err == nil {
  2307. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2308. } else {
  2309. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2310. }
  2311. }
  2312. // _DelDataPermission
  2313. // @Title _DelDataPermission
  2314. // @Description 删除数据权限
  2315. // @Param id string false "数据权限ID"
  2316. // @Success 200 {object} Account
  2317. // @Failure 403 :id is empty
  2318. func System_DelDataPermission(c *entitys.CtrlContext) {
  2319. type Param struct {
  2320. Id string `json:"id"`
  2321. }
  2322. var params []Param
  2323. c.Ctx.BindJSON(&params)
  2324. ids := []string{}
  2325. for _, param := range params {
  2326. ids = append(ids, param.Id)
  2327. }
  2328. _, err := c.Db.Table(new(models.SysDataPermission)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2329. if err == nil {
  2330. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2331. } else {
  2332. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2333. }
  2334. }
  2335. // _UpdateDataPermission
  2336. // @Title _UpdateDataPermission
  2337. // @Description 更新数据权限
  2338. // @Param string false "数据权限"
  2339. // @Success 200 {object} Account
  2340. // @Failure 403 :id is empty
  2341. func System_UpdateDataPermission(c *entitys.CtrlContext) {
  2342. var paramObj0 struct {
  2343. Permission models.SysDataPermission `json:"permission"`
  2344. Details []models.SysDataPermissionDetail `json:"details"`
  2345. }
  2346. if err := c.Ctx.BindJSON(&paramObj0); err != nil {
  2347. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2348. return
  2349. }
  2350. user_id := c.Ctx.GetString("user_id")
  2351. paramObj0.Permission.LastUpdateBy = user_id
  2352. paramObj0.Permission.LastUpdateTime = time.Now().UnixNano()
  2353. if _, err := c.Db.ID(paramObj0.Permission.Id).Update(&paramObj0.Permission); err != nil {
  2354. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2355. return
  2356. }
  2357. for _, detail := range paramObj0.Details {
  2358. if detail.Id != "" {
  2359. detail.LastUpdateBy = user_id
  2360. detail.LastUpdateTime = time.Now().UnixNano()
  2361. if _, err := c.Db.Update(&detail); err != nil {
  2362. logs.Error(err.Error())
  2363. }
  2364. } else {
  2365. detail.Id = sysutils.NewUUID()
  2366. detail.DataPermissionId = paramObj0.Permission.Id
  2367. detail.CreateBy = user_id
  2368. detail.LastUpdateBy = user_id
  2369. detail.CreateTime = sysmodel.NowLocal()
  2370. detail.LastUpdateTime = time.Now().UnixNano()
  2371. detail.DelFlag = 0
  2372. if _, err := c.Db.Insert(&detail); err != nil {
  2373. logs.Error(err.Error())
  2374. }
  2375. }
  2376. }
  2377. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2378. }
  2379. // _FindDataPermissionPage
  2380. // @Title _FindDataPermissionPage
  2381. // @Description 分页获取数据权限
  2382. // @Success 200 {object} Account
  2383. // @Failure 403 :id is empty
  2384. func System_FindDataPermissionPage(c *entitys.CtrlContext) {
  2385. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2386. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2387. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  2388. result, err := sysutils.PageSearch(c.Db, "system", "find_data_permission_page", "sys_data_permission", paramMap_i_t)
  2389. if err == nil {
  2390. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2391. } else {
  2392. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2393. }
  2394. }
  2395. // _AddDataPermissionDetail
  2396. // @Title _AddDataPermissionDetail
  2397. // @Description 添加数据权限规则
  2398. // @Param string false "数据权限"
  2399. // @Success 200 {object} Account
  2400. // @Failure 403 :id is empty
  2401. func System_AddDataPermissionDetail(c *entitys.CtrlContext) {
  2402. var paramObj0 models.SysDataPermission
  2403. c.Ctx.BindJSON(&paramObj0)
  2404. user_id := c.Ctx.GetString("user_id")
  2405. paramObj0.CreateBy = user_id
  2406. paramObj0.CreateTime = models.NowLocal()
  2407. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2408. paramObj0.LastUpdateBy = user_id
  2409. paramObj0.DelFlag = 0
  2410. _, err := c.Db.Insert(&paramObj0)
  2411. if err == nil {
  2412. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2413. } else {
  2414. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2415. }
  2416. }
  2417. // _DelDataPermissionDetail
  2418. // @Title _DelDataPermissionDetail
  2419. // @Description 删除数据权限规则
  2420. // @Param id string false "数据权限ID"
  2421. // @Success 200 {object} Account
  2422. // @Failure 403 :id is empty
  2423. func System_DelDataPermissionDetail(c *entitys.CtrlContext) {
  2424. type Param struct {
  2425. Id string `json:"id"`
  2426. }
  2427. var params []Param
  2428. c.Ctx.BindJSON(&params)
  2429. ids := []string{}
  2430. for _, param := range params {
  2431. ids = append(ids, param.Id)
  2432. }
  2433. _, err := c.Db.Table(new(models.SysDataPermissionDetail)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2434. if err == nil {
  2435. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2436. } else {
  2437. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2438. }
  2439. }
  2440. // _UpdateDataPermissionDetail
  2441. // @Title _UpdateDataPermissionDetail
  2442. // @Description 更新数据权限规则
  2443. // @Param string false "数据权限"
  2444. // @Success 200 {object} Account
  2445. // @Failure 403 :id is empty
  2446. func System_UpdateDataPermissionDetail(c *entitys.CtrlContext) {
  2447. var paramObj0 models.SysDataPermissionDetail
  2448. if err := c.Ctx.BindJSON(&paramObj0); err != nil {
  2449. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2450. return
  2451. }
  2452. user_id := c.Ctx.GetString("user_id")
  2453. paramObj0.LastUpdateBy = user_id
  2454. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2455. _, err := c.Db.ID(paramObj0.Id).Update(&paramObj0)
  2456. if err != nil {
  2457. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2458. } else {
  2459. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2460. }
  2461. }
  2462. // _FindDataPermissionDetailPage
  2463. // @Title _FindDataPermissionDetailPage
  2464. // @Description 分页获取数据权限规则
  2465. // @Success 200 {object} Account
  2466. // @Failure 403 :id is empty
  2467. func System_FindDataPermissionDetailPage(c *entitys.CtrlContext) {
  2468. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2469. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2470. data_permission_id := c.Ctx.DefaultQuery("data_permission_id", "")
  2471. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "data_permission_id": data_permission_id}
  2472. result, err := sysutils.PageSearch(c.Db, "system", "find_data_permission_detail_page", "sys_data_permission_detail", paramMap_i_t)
  2473. if err == nil {
  2474. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2475. } else {
  2476. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2477. }
  2478. }
  2479. // _ModifyPassword
  2480. // @Title _ModifyPassword
  2481. // @Description 修改密码
  2482. // @Param body models.ModifyPassword true ""
  2483. // @Success 200 {object} Account
  2484. // @Failure 403 :id is empty
  2485. func System_ModifyPassword(c *entitys.CtrlContext) {
  2486. var err error
  2487. var param models.ModifyPassword
  2488. if err = c.Ctx.BindJSON(&param); err != nil {
  2489. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2490. return
  2491. }
  2492. var errmsg string
  2493. switch {
  2494. case param.Origin == "":
  2495. errmsg = "原密码不能为空"
  2496. case param.New == "":
  2497. errmsg = "新密码不能为空"
  2498. case param.Confirm == "":
  2499. errmsg = "确认密码不能为空"
  2500. case param.Confirm != param.New:
  2501. errmsg = "两次密码不一致"
  2502. }
  2503. if errmsg != "" {
  2504. c.Ctx.JSON(500, sysmodel.SysReturn{500, errmsg, nil})
  2505. return
  2506. }
  2507. engine := c.PlatformDbEngine
  2508. var userId = c.Ctx.GetString("user_id")
  2509. if param.UserId == "" {
  2510. param.UserId = userId
  2511. }
  2512. var user sysmodel.SysUser
  2513. _, err = engine.ID(param.UserId).Get(&user)
  2514. if err != nil {
  2515. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2516. return
  2517. }
  2518. password := sysutils.HashPassword(param.Origin, "")
  2519. if !strings.EqualFold(password, user.Password) {
  2520. c.Ctx.JSON(500, sysmodel.SysReturn{500, "原密码错误", nil})
  2521. return
  2522. }
  2523. _, err = engine.Table(user).ID(user.Id).
  2524. Update(map[string]interface{}{
  2525. "password": sysutils.HashPassword(param.New, ""),
  2526. "last_update_by": userId,
  2527. "last_update_time": time.Now().UnixNano(),
  2528. })
  2529. if err == nil {
  2530. c.Ctx.JSON(200, sysmodel.SysReturn{200, "modify successfully", nil})
  2531. } else {
  2532. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2533. }
  2534. }
  2535. // _AddTagGroup
  2536. // @Title _AddTagGroup
  2537. // @Description 添加标签分组
  2538. // @Param name string false "分组名称"
  2539. // @Param code string false "编码"
  2540. // @Success 200 {object} Account
  2541. // @Failure 403 :id is empty
  2542. func System_AddTagGroup(c *entitys.CtrlContext) {
  2543. userId := c.Ctx.GetString("user_id")
  2544. var obj struct {
  2545. Name string `json:"name"`
  2546. Code string `json:"code"`
  2547. Tags []sysmodel.SysTag `json:"tags"`
  2548. }
  2549. if err := c.Ctx.BindJSON(&obj); err != nil {
  2550. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2551. return
  2552. }
  2553. tagGroup := sysmodel.SysTagGroup{}
  2554. tagGroup.Id = sysutils.NewUUID()
  2555. tagGroup.Name = obj.Name
  2556. tagGroup.Code = obj.Code
  2557. tagGroup.LastUpdateBy = userId
  2558. tagGroup.CreateBy = userId
  2559. tagGroup.CreateTime = sysmodel.NowLocal()
  2560. tagGroup.LastUpdateTime = time.Now().UnixNano()
  2561. tagGroup.DelFlag = 0
  2562. tags := []sysmodel.SysTag{}
  2563. for _, t := range obj.Tags {
  2564. tag := sysmodel.SysTag{}
  2565. tag.GroupId = tagGroup.Id
  2566. tag.Name = t.Name
  2567. tag.Id = sysutils.NewUUID()
  2568. tag.LastUpdateBy = userId
  2569. tag.CreateBy = userId
  2570. tag.CreateTime = sysmodel.NowLocal()
  2571. tag.LastUpdateTime = time.Now().UnixNano()
  2572. tag.DelFlag = 0
  2573. tags = append(tags, tag)
  2574. }
  2575. session := c.Db.NewSession()
  2576. session.Begin()
  2577. _, err := session.Insert(&tagGroup)
  2578. if err != nil {
  2579. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2580. session.Rollback()
  2581. return
  2582. }
  2583. _, err = session.Insert(&tags)
  2584. if err == nil {
  2585. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2586. session.Commit()
  2587. } else {
  2588. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2589. session.Rollback()
  2590. }
  2591. }
  2592. // _DelTagGroup
  2593. // @Title _DelTagGroup
  2594. // @Description 删除分组
  2595. // @Param id string false "角色ID"
  2596. // @Success 200 {object} Account
  2597. // @Failure 403 :id is empty
  2598. func System_DelTagGroup(c *entitys.CtrlContext) {
  2599. type Param struct {
  2600. Id string `json:"id"`
  2601. }
  2602. var params []Param
  2603. if err := c.Ctx.BindJSON(&params); err != nil {
  2604. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2605. return
  2606. }
  2607. ids := []string{}
  2608. for _, param := range params {
  2609. ids = append(ids, param.Id)
  2610. }
  2611. _, err := c.Db.Table(new(models.SysTagGroup)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2612. if err == nil {
  2613. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2614. } else {
  2615. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2616. }
  2617. }
  2618. // _UpdateTagGroup
  2619. // @Title _UpdateTagGroup
  2620. // @Description 修改分组
  2621. // @Param name string false "分组名称"
  2622. // @Param code string false "编码"
  2623. // @Success 200 {object} Account
  2624. // @Failure 403 :id is empty
  2625. func System_UpdateTagGroup(c *entitys.CtrlContext) {
  2626. userId := c.Ctx.GetString("user_id")
  2627. var obj struct {
  2628. sysmodel.SysTagGroup
  2629. Tags []sysmodel.SysTag `json:"tags"`
  2630. }
  2631. if err := c.Ctx.BindJSON(&obj); err != nil {
  2632. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2633. return
  2634. }
  2635. session := c.Db.NewSession()
  2636. session.Begin()
  2637. if _, err := c.Db.Table(new(sysmodel.SysTagGroup)).ID(obj.Id).Update(map[string]interface{}{"name": obj.Name, "code": obj.Code, "last_update_time": time.Now().UnixNano(), "last_update_by": userId}); err != nil {
  2638. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2639. session.Rollback()
  2640. return
  2641. }
  2642. for _, t := range obj.Tags {
  2643. if t.Id == "" {
  2644. tag := sysmodel.SysTag{}
  2645. tag.GroupId = obj.Id
  2646. tag.Name = t.Name
  2647. tag.Id = sysutils.NewUUID()
  2648. tag.LastUpdateBy = userId
  2649. tag.CreateBy = userId
  2650. tag.CreateTime = sysmodel.NowLocal()
  2651. tag.LastUpdateTime = time.Now().UnixNano()
  2652. tag.DelFlag = 0
  2653. if _, err := c.Db.Insert(&tag); err != nil {
  2654. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2655. session.Rollback()
  2656. return
  2657. }
  2658. } else {
  2659. if _, err := c.Db.Table(new(sysmodel.SysTag)).ID(t.Id).Update(map[string]interface{}{"name": t.Name, "last_update_time": time.Now().UnixNano(), "last_update_by": userId}); err != nil {
  2660. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2661. session.Rollback()
  2662. return
  2663. }
  2664. }
  2665. }
  2666. session.Commit()
  2667. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2668. }
  2669. // _GetTagGroup
  2670. // @Title _GetTagGroup
  2671. // @Description 根据标签ID获取标签分组
  2672. // @Param id string false "分组ID"
  2673. // @Success 200 {object} Account
  2674. // @Failure 403 :id is empty
  2675. func System_GetTagGroup(c *entitys.CtrlContext) {
  2676. //type Param struct {
  2677. // Id string `json:"id"`
  2678. //}
  2679. //var params []Param
  2680. //if err := c.Ctx.BindJSON(&params); err != nil {
  2681. // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2682. // return
  2683. //}
  2684. //ids := []string{}
  2685. //for _, param := range params {
  2686. // ids = append(ids, param.Id)
  2687. //}
  2688. //
  2689. //_, err := c.Db.Table(new(models.SysTagGroup)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2690. //
  2691. //if err == nil {
  2692. // c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2693. //} else {
  2694. // c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2695. //}
  2696. }
  2697. // _TagGroupPage
  2698. // @Title _TagGroupPage
  2699. // @Description 获取标签分组分页数
  2700. // @Success 200 {object} Account
  2701. // @Failure 403 :id is empty
  2702. func System_TagGroupPage(c *entitys.CtrlContext) {
  2703. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2704. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2705. name := c.Ctx.DefaultQuery("name", "")
  2706. code := c.Ctx.DefaultQuery("code", "")
  2707. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code}
  2708. result, err := sysutils.PageSearch(c.Db, "system", "tag_group_page", "sys_tag_group", paramMap_i_t)
  2709. if err == nil {
  2710. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2711. } else {
  2712. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2713. }
  2714. }
  2715. // _TagPage
  2716. // @Title _TagPage
  2717. // @Description 获取标签分页数
  2718. // @Success 200 {object} Account
  2719. // @Failure 403 :id is empty
  2720. func System_TagPage(c *entitys.CtrlContext) {
  2721. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2722. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2723. group_id := c.Ctx.DefaultQuery("group_id", "")
  2724. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "group_id": group_id}
  2725. result, err := sysutils.PageSearch(c.Db, "system", "tag_page", "sys_tag", paramMap_i_t)
  2726. if err == nil {
  2727. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2728. } else {
  2729. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2730. }
  2731. }
  2732. // _UserTagPage
  2733. // @Title _UserTagPage
  2734. // @Description 分页获取用户标签
  2735. // @Success 200 {object} Account
  2736. // @Failure 403 :id is empty
  2737. func System_UserTagPage(c *entitys.CtrlContext) {
  2738. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2739. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2740. user_id := c.Ctx.DefaultQuery("user_id", "")
  2741. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "user_id": user_id}
  2742. result, err := sysutils.PageSearch(c.Db, "system", "user_tag_page", "sys_user_tag", paramMap_i_t)
  2743. if err == nil {
  2744. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2745. } else {
  2746. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2747. }
  2748. }
  2749. // _AddTag
  2750. // @Title _AddTag
  2751. // @Description 添加标签
  2752. // @Param name string false "分组名称"
  2753. // @Param group_id string false "分组ID"
  2754. // @Success 200 {object} Account
  2755. // @Failure 403 :id is empty
  2756. func System_AddTag(c *entitys.CtrlContext) {
  2757. name := c.Ctx.Query("name")
  2758. group_id := c.Ctx.Query("group_id")
  2759. ret := __none_func_system__(name, group_id)
  2760. if ret {
  2761. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2762. } else {
  2763. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2764. }
  2765. }
  2766. // _DelTag
  2767. // @Title _DelTag
  2768. // @Description 删除标签
  2769. // @Param id string false "标签ID"
  2770. // @Success 200 {object} Account
  2771. // @Failure 403 :id is empty
  2772. func System_DelTag(c *entitys.CtrlContext) {
  2773. type Param struct {
  2774. Id string `json:"id"`
  2775. }
  2776. var params []Param
  2777. if err := c.Ctx.BindJSON(&params); err != nil {
  2778. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2779. return
  2780. }
  2781. ids := []string{}
  2782. for _, param := range params {
  2783. ids = append(ids, param.Id)
  2784. }
  2785. _, err := c.Db.Table(new(models.SysTag)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2786. if err == nil {
  2787. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2788. } else {
  2789. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2790. }
  2791. }
  2792. // _UpdateTagGroup
  2793. // @Title _UpdateTagGroup
  2794. // @Description 修改标签
  2795. // @Param name string false "分组名称"
  2796. // @Param group_id string false "分组ID"
  2797. // @Success 200 {object} Account
  2798. // @Failure 403 :id is empty
  2799. func System_UpdateTag(c *entitys.CtrlContext) {
  2800. name := c.Ctx.Query("name")
  2801. group_id := c.Ctx.Query("group_id")
  2802. ret := __none_func_system__(name, group_id)
  2803. if ret {
  2804. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2805. } else {
  2806. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2807. }
  2808. }
  2809. // _GetTag
  2810. // @Title _GetTag
  2811. // @Description 根据标签ID获取标签
  2812. // @Param id string false "标签ID"
  2813. // @Success 200 {object} Account
  2814. // @Failure 403 :id is empty
  2815. func System_GetTag(c *entitys.CtrlContext) {
  2816. id := c.Ctx.Query("id")
  2817. ret := __none_func_system__(id)
  2818. if ret {
  2819. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2820. } else {
  2821. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2822. }
  2823. }
  2824. // _AddUserTag
  2825. // @Title _AddUserTag
  2826. // @Description 添加用户标签
  2827. // @Param user_id string false "用户ID"
  2828. // @Param tag_id string false "标签ID"
  2829. // @Success 200 {object} Account
  2830. // @Failure 403 :id is empty
  2831. func System_AddUserTag(c *entitys.CtrlContext) {
  2832. //user_id := c.Ctx.Query("user_id")
  2833. // //tag_id := c.Ctx.Query("tag_id")
  2834. var userTags []models.SysUserTag
  2835. if err := c.Ctx.BindJSON(&userTags); err != nil {
  2836. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2837. return
  2838. }
  2839. userId := c.Ctx.GetString("user_id")
  2840. for i, _ := range userTags {
  2841. userTags[i].Id = sysutils.NewUUID()
  2842. //userTag.UserId = user_id
  2843. //userTag.TagId = tag_id
  2844. userTags[i].CreateTime = sysmodel.NowLocal()
  2845. userTags[i].CreateBy = userId
  2846. userTags[i].LastUpdateTime = time.Now().UnixNano()
  2847. userTags[i].LastUpdateBy = userId
  2848. userTags[i].DelFlag = 0
  2849. }
  2850. if _, err := c.Db.Insert(&userTags); err == nil {
  2851. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2852. } else {
  2853. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2854. }
  2855. }
  2856. // _DelUserTag
  2857. // @Title _DelUserTag
  2858. // @Description 删除标签
  2859. // @Param id string false "标签ID"
  2860. // @Success 200 {object} Account
  2861. // @Failure 403 :id is empty
  2862. func System_DelUserTag(c *entitys.CtrlContext) {
  2863. type Param struct {
  2864. Id string `json:"id"`
  2865. }
  2866. var params []Param
  2867. if err := c.Ctx.BindJSON(&params); err != nil {
  2868. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2869. return
  2870. }
  2871. ids := []string{}
  2872. for _, param := range params {
  2873. ids = append(ids, param.Id)
  2874. }
  2875. var usertag sysmodel.SysUserTag
  2876. _, err := c.Db.In("id", ids).Delete(&usertag)
  2877. if err == nil {
  2878. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2879. } else {
  2880. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2881. }
  2882. }
  2883. func __none_func_system__(params ...interface{}) bool {
  2884. return true
  2885. }