User.go 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769
  1. package controllers
  2. import (
  3. "Cold_Api/Nats/NatsServer"
  4. "Cold_Api/conf"
  5. "Cold_Api/controllers/lib"
  6. "Cold_Api/logs"
  7. "Cold_Api/models/Account"
  8. "Cold_Api/models/Company"
  9. "Cold_Api/models/System"
  10. "Cold_Api/models/Warning"
  11. "encoding/json"
  12. "fmt"
  13. "github.com/beego/beego/v2/adapter/orm"
  14. beego "github.com/beego/beego/v2/server/web"
  15. uuid "github.com/satori/go.uuid"
  16. "github.com/shopspring/decimal"
  17. "github.com/xuri/excelize/v2"
  18. "math"
  19. "os"
  20. "strconv"
  21. "strings"
  22. "time"
  23. )
  24. type UserController struct {
  25. beego.Controller
  26. Admin_r Account.Admin // 登陆的用户
  27. T_pid int // 公司id
  28. }
  29. func (c *UserController) Prepare() {
  30. GetCookie := c.Ctx.GetCookie("User_tokey")
  31. GetString := c.GetString("User_tokey")
  32. User_tokey := GetCookie
  33. if len(User_tokey) == 0 {
  34. User_tokey = GetString
  35. }
  36. c.Admin_r = *Account.Admin_r
  37. T_pid := c.Admin_r.T_pid
  38. EntryPid, _ := Account.Redis_Tokey_T_pid_Get(User_tokey)
  39. if EntryPid > 0 {
  40. T_pid = EntryPid
  41. }
  42. c.T_pid = T_pid
  43. }
  44. // 获取微信二维码 ( 扫描后 ,Nats 自动绑定在 Admin->T_wx )
  45. func (c *UserController) User_WxQRCode() {
  46. T_name := c.GetString("T_name")
  47. WxQRCode_str, _ := NatsServer.Wx_GenerateQRCode("-|" + lib.AesEncryptCBC(c.Admin_r.T_uuid+"/"+T_name, "0123456789012345") + "|- @宝智达冷链 微信公众号通知")
  48. WxQRCode_str = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + WxQRCode_str
  49. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: WxQRCode_str}
  50. c.ServeJSON()
  51. return
  52. }
  53. // 用户绑定的公司列表
  54. func (c *UserController) Company_Tree() {
  55. var r_jsons lib.R_JSONS
  56. T_name := c.GetString("T_name")
  57. r_jsons.Data = Account.Read_Company_Tree(c.Admin_r, T_name)
  58. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  59. c.ServeJSON()
  60. return
  61. }
  62. // 所有公司树
  63. func (c *UserController) Company_List() {
  64. var r_jsons lib.R_JSONS
  65. T_name := c.GetString("T_name")
  66. r_jsons.Data = Account.Read_Company_List(T_name)
  67. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  68. c.ServeJSON()
  69. return
  70. }
  71. func (c *UserController) Company_Get() {
  72. var r_jsons lib.R_JSONS
  73. Company_r, err := Account.Read_Company_ById(c.T_pid)
  74. if err != nil {
  75. logs.Warning(lib.FuncName(), "获取公司信息失败", err)
  76. }
  77. r_jsons.Data = Account.CompanyToCompany_R(Company_r)
  78. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  79. c.ServeJSON()
  80. return
  81. }
  82. func (c *UserController) Company_Add() {
  83. T_mid, _ := c.GetInt("T_mid")
  84. T_name := c.GetString("T_name")
  85. T_plan := c.GetString("T_plan")
  86. T_data := c.GetString("T_data")
  87. T_v3d := c.GetString("T_v3d")
  88. var_ := Account.Company{
  89. T_mid: T_mid,
  90. T_name: T_name,
  91. T_State: 1,
  92. T_plan: T_plan,
  93. T_data: T_data,
  94. T_v3d: T_v3d,
  95. T_warning: 1,
  96. }
  97. id, err := Account.Add_Company(var_)
  98. if err != nil {
  99. c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
  100. c.ServeJSON()
  101. return
  102. }
  103. if c.Admin_r.T_pids != "*" {
  104. T_pids := []int{int(id)}
  105. if err = Account.Add_Company_bind(c.Admin_r, T_pids); err != nil {
  106. c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"}
  107. c.ServeJSON()
  108. return
  109. }
  110. }
  111. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "添加", var_)
  112. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id}
  113. c.ServeJSON()
  114. return
  115. }
  116. func (c *UserController) Company_Edit() {
  117. Id, Id_err := c.GetInt("Id")
  118. if Id_err != nil {
  119. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  120. c.ServeJSON()
  121. return
  122. }
  123. Company_r, err := Account.Read_Company_ById(Id)
  124. if err != nil {
  125. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  126. c.ServeJSON()
  127. return
  128. }
  129. T_name := c.GetString("T_name")
  130. if len(T_name) > 0 {
  131. Company_r.T_name = T_name
  132. }
  133. is := Account.Update_Company(Company_r, "T_name")
  134. if !is {
  135. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  136. c.ServeJSON()
  137. return
  138. }
  139. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "修改", Company_r)
  140. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  141. c.ServeJSON()
  142. return
  143. }
  144. // 数字孪生
  145. func (c *UserController) Company_DigitalTwin() {
  146. Id, Id_err := c.GetInt("Id")
  147. if Id_err != nil {
  148. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  149. c.ServeJSON()
  150. return
  151. }
  152. Company_r, err := Account.Read_Company_ById(Id)
  153. if err != nil {
  154. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  155. c.ServeJSON()
  156. return
  157. }
  158. T_plan := c.GetString("T_plan")
  159. T_data := c.GetString("T_data")
  160. T_v3d := c.GetString("T_v3d")
  161. T_warning, _ := c.GetInt("T_warning")
  162. if len(T_plan) > 0 {
  163. Company_r.T_plan = T_plan
  164. }
  165. if len(T_data) > 0 {
  166. Company_r.T_data = T_data
  167. }
  168. if len(T_v3d) > 0 {
  169. Company_r.T_v3d = T_v3d
  170. }
  171. if T_warning > 0 {
  172. Company_r.T_warning = T_warning
  173. }
  174. is := Account.Update_Company(Company_r, "T_plan", "T_data", "T_v3d")
  175. if !is {
  176. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  177. c.ServeJSON()
  178. return
  179. }
  180. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "修改数字孪生", Company_r)
  181. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  182. c.ServeJSON()
  183. return
  184. }
  185. // 充值
  186. func (c *UserController) Company_Pay() {
  187. Id, Id_err := c.GetInt("Id")
  188. if Id_err != nil {
  189. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  190. c.ServeJSON()
  191. return
  192. }
  193. Company_r, err := Account.Read_Company_ById(Id)
  194. if err != nil {
  195. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  196. c.ServeJSON()
  197. return
  198. }
  199. T_balance, _ := c.GetFloat("T_balance")
  200. T_money64, _ := decimal.NewFromFloat(float64(Company_r.T_money) + T_balance).Round(2).Float64()
  201. Company_r.T_money = float32(T_money64)
  202. is := Account.Update_Company(Company_r, "T_money")
  203. if !is {
  204. c.Data["json"] = lib.JSONS{Code: 202, Msg: "充值失败!"}
  205. c.ServeJSON()
  206. return
  207. }
  208. // 添加充值记录
  209. bill := Company.CompanyBill{
  210. T_pid: Company_r.Id,
  211. T_type: "充值",
  212. T_project: "充值",
  213. T_bill: "充值",
  214. T_charging: float32(T_balance),
  215. T_balance: float32(T_money64),
  216. }
  217. _, err = Company.Add_CompanyBill(bill)
  218. if err != nil {
  219. c.Data["json"] = lib.JSONS{Code: 202, Msg: "充值失败!"}
  220. c.ServeJSON()
  221. return
  222. }
  223. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "充值", Company_r)
  224. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  225. c.ServeJSON()
  226. return
  227. }
  228. // 报警统计
  229. func (c *UserController) Company_Warning() {
  230. Id, Id_err := c.GetInt("Id")
  231. if Id_err != nil {
  232. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  233. c.ServeJSON()
  234. return
  235. }
  236. Company_r, err := Account.Read_Company_ById(Id)
  237. if err != nil {
  238. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  239. c.ServeJSON()
  240. return
  241. }
  242. T_warning, _ := c.GetInt("T_warning")
  243. if T_warning > 0 {
  244. Company_r.T_warning = T_warning
  245. }
  246. is := Account.Update_Company(Company_r, "T_warning")
  247. if !is {
  248. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  249. c.ServeJSON()
  250. return
  251. }
  252. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "修改报警统计", Company_r)
  253. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  254. c.ServeJSON()
  255. return
  256. }
  257. func (c *UserController) Company_Del() {
  258. Id, Id_err := c.GetInt("Id")
  259. if Id_err != nil {
  260. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  261. c.ServeJSON()
  262. return
  263. }
  264. Company_r, err := Account.Read_Company_ById(Id)
  265. if err != nil {
  266. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  267. c.ServeJSON()
  268. return
  269. }
  270. ids := Account.ReadCompanyIds_T_path(Company_r.T_path)
  271. if cnt := Account.Read_Admin_Num_ByT_pid(ids); cnt > 0 {
  272. c.Data["json"] = lib.JSONS{Code: 202, Msg: "有关联用户,禁止删除!"}
  273. c.ServeJSON()
  274. return
  275. }
  276. o := orm.NewOrm()
  277. o.Begin()
  278. for _, id := range ids {
  279. if is := Account.Delete_Company(o, id); !is {
  280. o.Rollback()
  281. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  282. c.ServeJSON()
  283. return
  284. }
  285. if err = Account.Delete_Company_bind_T_pids(o, id); err != nil {
  286. o.Rollback()
  287. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  288. c.ServeJSON()
  289. return
  290. }
  291. }
  292. o.Commit()
  293. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "删除", Company_r)
  294. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  295. c.ServeJSON()
  296. return
  297. }
  298. // 进入公司
  299. func (c *UserController) Company_Entry() {
  300. GetCookie := c.Ctx.GetCookie("User_tokey")
  301. GetString := c.GetString("User_tokey")
  302. User_tokey := GetCookie
  303. if len(User_tokey) == 0 {
  304. User_tokey = GetString
  305. }
  306. T_pid, _ := c.GetInt("T_pid")
  307. // 操作pid
  308. company_r, err := Account.Read_Company_ById(T_pid)
  309. if err != nil {
  310. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  311. c.ServeJSON()
  312. return
  313. }
  314. visit := false
  315. if c.Admin_r.T_pid > 0 && strings.Contains(company_r.T_path, fmt.Sprintf("/%d/", c.Admin_r.T_pid)) {
  316. visit = true
  317. }
  318. if c.Admin_r.T_pid == 0 {
  319. if c.Admin_r.T_pids == "*" {
  320. visit = true
  321. } else {
  322. pids := lib.SplitStringToIntIds(c.Admin_r.T_pids, "P")
  323. if len(pids) > 0 {
  324. list := Account.ReadCompanyIds_T_pids(pids)
  325. for _, v := range list {
  326. if T_pid == v {
  327. visit = true
  328. break
  329. }
  330. }
  331. }
  332. }
  333. }
  334. if !visit {
  335. c.Data["json"] = lib.JSONS{Code: 202, Msg: "没有权限!"}
  336. c.ServeJSON()
  337. return
  338. }
  339. Account.Redis_Tokey_T_pid_Set(User_tokey, T_pid)
  340. System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "进入公司", T_pid)
  341. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  342. c.ServeJSON()
  343. return
  344. }
  345. // 检查 Tokey 是否过期
  346. // 用户管理
  347. func (c *UserController) User_List() {
  348. var r_jsons lib.R_JSONS
  349. page, _ := c.GetInt("page")
  350. if page < 1 {
  351. page = 1
  352. }
  353. page_z, _ := c.GetInt("page_z")
  354. if page_z < 1 {
  355. page_z = conf.Page_size
  356. }
  357. T_name := c.GetString("T_name")
  358. Account.Read_Power_All_Map()
  359. r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(c.T_pid, T_name, page, page_z)
  360. r_jsons.Page = page
  361. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  362. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  363. c.ServeJSON()
  364. return
  365. }
  366. func (c *UserController) User_Get() {
  367. T_uuid := c.GetString("T_uuid")
  368. if len(T_uuid) < 8 {
  369. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  370. c.ServeJSON()
  371. return
  372. }
  373. admin_r, err := Account.Read_Admin_ByUuid(T_uuid)
  374. if err != nil {
  375. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  376. c.ServeJSON()
  377. return
  378. }
  379. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Account.AdminToAdmin_R(admin_r)}
  380. c.ServeJSON()
  381. return
  382. }
  383. func (c *UserController) User_Info() {
  384. type User_ struct {
  385. User Account.Admin_R
  386. //Power Account.Power // 权限
  387. //Menu map[string]Account.Menu_R // 菜单
  388. //Menu []Account.Menu // 菜单
  389. }
  390. Admin_r := User_{}
  391. Admin_r.User = Account.AdminToAdmin_R(c.Admin_r)
  392. //Admin_r.Power, _ = Account.Read_Power_ById(admin_r.T_power)
  393. //Admin_r.Menu = Account.Read_Menu_Tree(Power.T_menu, T_pid)
  394. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Admin_r}
  395. c.ServeJSON()
  396. return
  397. }
  398. func (c *UserController) User_Post() {
  399. admin_r := c.Admin_r
  400. T_name := c.GetString("T_name")
  401. T_pass := c.GetString("T_pass")
  402. T_phone := c.GetString("T_phone")
  403. T_mail := c.GetString("T_mail")
  404. T_wx := c.GetString("T_wx")
  405. if len(T_pass) < 8 && len(T_pass) > 0 {
  406. c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
  407. c.ServeJSON()
  408. return
  409. }
  410. if len(T_name) > 0 {
  411. admin_r.T_name = T_name
  412. }
  413. if len(T_pass) >= 8 {
  414. admin_r.T_pass = T_pass
  415. }
  416. if len(T_phone) > 0 {
  417. admin_r.T_phone = T_phone
  418. }
  419. if len(T_mail) > 0 {
  420. admin_r.T_mail = T_mail
  421. }
  422. if len(T_wx) > 0 {
  423. if T_wx == "-" {
  424. T_wx = ""
  425. }
  426. admin_r.T_wx = T_wx
  427. }
  428. is := Account.Update_Admin(admin_r, "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
  429. if !is {
  430. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  431. c.ServeJSON()
  432. return
  433. }
  434. admin_r.T_pass = "******"
  435. System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "修改个人信息", admin_r)
  436. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  437. c.ServeJSON()
  438. return
  439. }
  440. func (c *UserController) User_Add() {
  441. T_power, _ := c.GetInt("T_power")
  442. T_name := c.GetString("T_name")
  443. T_user := c.GetString("T_user")
  444. T_pass := c.GetString("T_pass")
  445. T_phone := c.GetString("T_phone")
  446. T_mail := c.GetString("T_mail")
  447. T_wx := c.GetString("T_wx")
  448. T_uuid := uuid.NewV4().String()
  449. var_ := Account.Admin{
  450. T_uuid: T_uuid,
  451. T_pid: c.T_pid,
  452. T_name: T_name,
  453. T_user: T_user,
  454. T_phone: T_phone,
  455. T_mail: T_mail,
  456. T_wx: T_wx,
  457. T_pass: T_pass,
  458. T_power: T_power,
  459. T_State: 1,
  460. }
  461. if len(T_pass) < 8 {
  462. c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
  463. c.ServeJSON()
  464. return
  465. }
  466. _, err := Account.Read_Admin_T_user(T_user)
  467. if err == nil {
  468. c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"}
  469. c.ServeJSON()
  470. return
  471. }
  472. _, err = Account.Add_Admin(var_)
  473. if err != nil {
  474. c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
  475. c.ServeJSON()
  476. return
  477. }
  478. var_.T_pass = "******"
  479. System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "添加", var_)
  480. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  481. c.ServeJSON()
  482. return
  483. }
  484. func (c *UserController) User_Edit() {
  485. T_uuid := c.GetString("T_uuid")
  486. if len(T_uuid) < 8 {
  487. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  488. c.ServeJSON()
  489. return
  490. }
  491. r, err := Account.Read_Admin_ByUuid(T_uuid)
  492. if err != nil {
  493. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  494. c.ServeJSON()
  495. return
  496. }
  497. T_power, T_power_err := c.GetInt("T_power")
  498. T_name := c.GetString("T_name")
  499. T_pass := c.GetString("T_pass")
  500. T_phone := c.GetString("T_phone")
  501. T_mail := c.GetString("T_mail")
  502. if T_power_err == nil {
  503. r.T_power = T_power
  504. }
  505. if len(T_pass) < 8 && len(T_pass) > 0 {
  506. c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
  507. c.ServeJSON()
  508. return
  509. }
  510. if len(T_name) > 0 {
  511. r.T_name = T_name
  512. }
  513. if len(T_pass) >= 8 {
  514. r.T_pass = T_pass
  515. }
  516. if len(T_phone) > 0 {
  517. r.T_phone = T_phone
  518. }
  519. if len(T_mail) > 0 {
  520. r.T_mail = T_mail
  521. }
  522. is := Account.Update_Admin(r, "T_power", "T_pid", "T_name", "T_pass", "T_phone", "T_mail")
  523. if !is {
  524. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  525. c.ServeJSON()
  526. return
  527. }
  528. if len(T_name) > 0 {
  529. if is = Company.Update_CompanyNotice_Bind_By_T_uuid(T_uuid, T_name); !is {
  530. logs.Println("修改用户 => 修改用户关联报警通知失败", T_uuid, T_name)
  531. }
  532. }
  533. r.T_pass = "******"
  534. System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "编辑", r)
  535. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  536. c.ServeJSON()
  537. return
  538. }
  539. func (c *UserController) User_Del() {
  540. T_uuid := c.GetString("T_uuid")
  541. if len(T_uuid) <= 0 {
  542. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  543. c.ServeJSON()
  544. return
  545. }
  546. admin_r_lod, err := Account.Read_Admin_ByUuid(T_uuid)
  547. if err != nil {
  548. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  549. c.ServeJSON()
  550. return
  551. }
  552. if is := Account.Delete_Admin(admin_r_lod); !is {
  553. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  554. c.ServeJSON()
  555. return
  556. }
  557. if is := Company.Delete_CompanyNotice_Bind_By_T_uuid(T_uuid); !is {
  558. logs.Println("删除用户 => 删除用户关联报警通知失败", T_uuid)
  559. }
  560. System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "删除", T_uuid)
  561. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  562. c.ServeJSON()
  563. return
  564. }
  565. // 管理员
  566. func (c *UserController) User_Home() {
  567. // 验证登录
  568. admin_r := c.Admin_r
  569. type NoticeRecord struct {
  570. Sms int // 短信
  571. Phone int // 电话
  572. }
  573. type Info struct {
  574. T_name string // 姓名
  575. T_pids string // 内部用户绑定的公司id
  576. T_pid int // 公司id
  577. T_Days int // 服务天输
  578. Admin []Account.Admin_ // 专属管理员
  579. WarningNum int64 // 报警数量
  580. UntreatedWarningNum int64 // 未处理报警数量
  581. WorkOrderNum int64 // 工单数量
  582. WarningRate float32 // 设备报警率
  583. UntreatedWorkOrderNum int64 // 未处理工单数量
  584. Balance float32 // 余额
  585. NoticeRecord NoticeRecord // 通知记录
  586. }
  587. var info Info
  588. info.T_name = admin_r.T_name
  589. info.T_pid = admin_r.T_pid
  590. if admin_r.T_pid > 0 {
  591. power, _ := Account.Read_Power_ById(admin_r.T_power)
  592. company, _ := Account.Read_Company_ById(admin_r.T_pid)
  593. info.T_Days = lib.GetDiffDays(time.Now(), company.CreateTime)
  594. AdminList := Account.Read_Admin_List_T_pids(admin_r.T_pid)
  595. var Admin_ []Account.Admin_
  596. for _, v := range AdminList {
  597. Admin_ = append(Admin_, Account.Admin_RToAdmin_(v))
  598. }
  599. info.Admin = Admin_
  600. info.WarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 1, power.T_warning, true)
  601. info.UntreatedWarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 3, power.T_warning, false)
  602. info.Balance = company.T_money
  603. info.NoticeRecord.Sms = Warning.Get_WarningSandNum_CurrentMonth(admin_r.T_pid, 1)
  604. info.NoticeRecord.Phone = Warning.Get_WarningSandNum_CurrentMonth(admin_r.T_pid, 2)
  605. }
  606. if admin_r.T_pid == 0 {
  607. if len(admin_r.T_pids) > 0 && admin_r.T_pids != "*" {
  608. info.T_pids = admin_r.T_pids
  609. info.WarningRate = Warning.Read_WarningRate_Yesterday(admin_r.T_uuid)
  610. }
  611. info.WorkOrderNum, info.UntreatedWorkOrderNum = NatsServer.Read_WorkOrderT_State_Count(admin_r.T_pids)
  612. }
  613. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: info}
  614. c.ServeJSON()
  615. return
  616. }
  617. // 内部用户管理
  618. func (c *UserController) Admin_List() {
  619. var r_jsons lib.R_JSONS
  620. page, _ := c.GetInt("page")
  621. if page < 1 {
  622. page = 1
  623. }
  624. page_z, _ := c.GetInt("page_z")
  625. if page_z < 1 {
  626. page_z = conf.Page_size
  627. }
  628. T_name := c.GetString("T_name")
  629. if c.Admin_r.T_pid > 0 {
  630. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权查看!"}
  631. c.ServeJSON()
  632. return
  633. }
  634. T_bind_company, _ := c.GetInt("T_bind_company") // 管理员绑定公司 0-全部 1-绑定公司
  635. Account.Read_Power_All_Map()
  636. userList, num := Account.Read_Admin_List(0, T_name, page, page_z)
  637. r_jsons.Data, r_jsons.Num = userList, num
  638. // 过滤已绑定公司列表
  639. if T_bind_company == 1 {
  640. var adminList []Account.Admin_R
  641. for _, v := range userList {
  642. if len(v.T_pids) == 0 || v.T_pids == "*" {
  643. continue
  644. }
  645. adminList = append(adminList, v)
  646. }
  647. r_jsons.Data = adminList
  648. }
  649. r_jsons.Page = page
  650. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  651. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  652. c.ServeJSON()
  653. return
  654. }
  655. func (c *UserController) Admin_Get() {
  656. T_uuid := c.GetString("T_uuid")
  657. if len(T_uuid) < 8 {
  658. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  659. c.ServeJSON()
  660. return
  661. }
  662. admin_r, err := Account.Read_Admin_ByUuid(T_uuid)
  663. if err != nil {
  664. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  665. c.ServeJSON()
  666. return
  667. }
  668. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Account.AdminToAdmin_R(admin_r)}
  669. c.ServeJSON()
  670. return
  671. }
  672. func (c *UserController) Admin_Add() {
  673. T_power, _ := c.GetInt("T_power")
  674. T_name := c.GetString("T_name")
  675. T_user := c.GetString("T_user")
  676. T_pass := c.GetString("T_pass")
  677. T_phone := c.GetString("T_phone")
  678. T_mail := c.GetString("T_mail")
  679. T_wx := c.GetString("T_wx")
  680. var_ := Account.Admin{
  681. T_uuid: uuid.NewV4().String(),
  682. T_pid: 0,
  683. T_name: T_name,
  684. T_user: T_user,
  685. T_phone: T_phone,
  686. T_mail: T_mail,
  687. T_wx: T_wx,
  688. T_pass: T_pass,
  689. T_power: T_power,
  690. T_State: 1,
  691. }
  692. if len(T_pass) < 8 {
  693. c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
  694. c.ServeJSON()
  695. return
  696. }
  697. _, err := Account.Read_Admin_T_user(T_user)
  698. if err == nil {
  699. c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"}
  700. c.ServeJSON()
  701. return
  702. }
  703. _, err = Account.Add_Admin(var_)
  704. if err != nil {
  705. c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
  706. c.ServeJSON()
  707. return
  708. }
  709. var_.T_pass = "******"
  710. System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "添加", var_)
  711. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  712. c.ServeJSON()
  713. return
  714. }
  715. func (c *UserController) Admin_Edit() {
  716. T_uuid := c.GetString("T_uuid")
  717. if len(T_uuid) < 8 {
  718. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  719. c.ServeJSON()
  720. return
  721. }
  722. r, err := Account.Read_Admin_ByUuid(T_uuid)
  723. if err != nil {
  724. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  725. c.ServeJSON()
  726. return
  727. }
  728. T_power, T_power_err := c.GetInt("T_power")
  729. T_name := c.GetString("T_name")
  730. T_pass := c.GetString("T_pass")
  731. T_phone := c.GetString("T_phone")
  732. T_mail := c.GetString("T_mail")
  733. T_wx := c.GetString("T_wx")
  734. if T_power_err == nil {
  735. r.T_power = T_power
  736. }
  737. if len(T_pass) < 8 && len(T_pass) > 0 {
  738. c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
  739. c.ServeJSON()
  740. return
  741. }
  742. if len(T_name) > 0 {
  743. r.T_name = T_name
  744. }
  745. if len(T_pass) >= 8 {
  746. r.T_pass = T_pass
  747. }
  748. if len(T_phone) > 0 {
  749. r.T_phone = T_phone
  750. }
  751. if len(T_mail) > 0 {
  752. r.T_mail = T_mail
  753. }
  754. if len(T_wx) > 0 {
  755. r.T_wx = T_wx
  756. }
  757. is := Account.Update_Admin(r, "T_power", "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
  758. if !is {
  759. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  760. c.ServeJSON()
  761. return
  762. }
  763. if len(T_name) > 0 {
  764. if is = Company.Update_CompanyNotice_Bind_By_T_uuid(T_uuid, "内管-"+T_name); !is {
  765. logs.Println("修改内部用户 => 修改内部用户关联报警通知失败", T_uuid, T_name)
  766. }
  767. }
  768. r.T_pass = "********"
  769. System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "修改", r)
  770. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  771. c.ServeJSON()
  772. return
  773. }
  774. func (c *UserController) Admin_Del() {
  775. T_uuid := c.GetString("T_uuid")
  776. if len(T_uuid) <= 0 {
  777. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  778. c.ServeJSON()
  779. return
  780. }
  781. admin_r_lod, err := Account.Read_Admin_ByUuid(T_uuid)
  782. if err != nil {
  783. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  784. c.ServeJSON()
  785. return
  786. }
  787. if admin_r_lod.Id == 1 {
  788. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权删除!"}
  789. c.ServeJSON()
  790. return
  791. }
  792. if is := Account.Delete_Admin(admin_r_lod); !is {
  793. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  794. c.ServeJSON()
  795. return
  796. }
  797. if is := Company.Delete_CompanyNotice_Bind_By_T_uuid(T_uuid); !is {
  798. logs.Println("删除内部用户 => 删除内部用户关联报警通知失败", T_uuid)
  799. }
  800. System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "删除", T_uuid)
  801. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  802. c.ServeJSON()
  803. return
  804. }
  805. // 报警通知的用户列表
  806. func (c *UserController) User_Notice_List() {
  807. T_name := c.GetString("T_name")
  808. type R_JSONS struct {
  809. //必须的大写开头
  810. AdminList []Account.Admin_R
  811. UserList []Account.Admin_R
  812. }
  813. var AdminList, UserList []Account.Admin_R
  814. var r_jsons R_JSONS
  815. // 操作pid
  816. company_r, err := Account.Read_Company_ById(c.T_pid)
  817. if err != nil {
  818. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  819. c.ServeJSON()
  820. return
  821. }
  822. T_pids := []int{}
  823. for _, v := range strings.Split(strings.Trim(company_r.T_path, "/"), "/") {
  824. pid, _ := strconv.Atoi(v)
  825. T_pids = append(T_pids, pid)
  826. }
  827. // 绑定公司id的内部用户列表
  828. AdminList = Account.Read_Admin_List_T_pids(c.T_pid)
  829. // 绑定公司id的公司用户列表
  830. //r_jsons.UserList = Account.Read_Admin_List_T_pid(c.T_pid)
  831. // 绑定上级公司用户列表
  832. UserList = Account.Read_Parent_Admin_List(T_pids)
  833. if len(T_name) > 0 {
  834. for _, v := range AdminList {
  835. if strings.Contains(v.T_name, T_name) {
  836. r_jsons.AdminList = append(r_jsons.AdminList, v)
  837. }
  838. }
  839. for _, v := range UserList {
  840. if strings.Contains(v.T_name, T_name) {
  841. r_jsons.UserList = append(r_jsons.UserList, v)
  842. }
  843. }
  844. } else {
  845. r_jsons.AdminList = AdminList
  846. r_jsons.UserList = UserList
  847. }
  848. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  849. c.ServeJSON()
  850. return
  851. }
  852. // 管理员绑定公司
  853. func (c *UserController) AdminCompanyBind_List() {
  854. var r_jsons lib.R_JSONS
  855. T_uuid := c.GetString("T_uuid")
  856. if len(T_uuid) < 8 {
  857. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  858. c.ServeJSON()
  859. return
  860. }
  861. r, err := Account.Read_Admin_ByUuid(T_uuid)
  862. if err != nil {
  863. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  864. c.ServeJSON()
  865. return
  866. }
  867. r_jsons.Data = Account.Read_Company_List_ByT_pids(r.T_pids)
  868. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  869. c.ServeJSON()
  870. return
  871. }
  872. func (c *UserController) AdminCompanyBind_Add() {
  873. T_uuid := c.GetString("T_uuid")
  874. if len(T_uuid) < 8 {
  875. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  876. c.ServeJSON()
  877. return
  878. }
  879. T_pid, _ := c.GetInt("T_pid")
  880. if T_pid == 0 {
  881. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"}
  882. c.ServeJSON()
  883. return
  884. }
  885. r, err := Account.Read_Admin_ByUuid(T_uuid)
  886. if err != nil {
  887. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  888. c.ServeJSON()
  889. return
  890. }
  891. if r.T_pids == "*" {
  892. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  893. c.ServeJSON()
  894. return
  895. }
  896. Company_r, err := Account.Read_Company_ById(T_pid)
  897. if err != nil {
  898. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"}
  899. c.ServeJSON()
  900. return
  901. }
  902. T_pids := Account.ReadCompanyIds_T_path(Company_r.T_path)
  903. if err = Account.Add_Company_bind(r, T_pids); err != nil {
  904. c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"}
  905. c.ServeJSON()
  906. return
  907. }
  908. System.Add_UserLogs(c.Admin_r.T_uuid, "内部用户管理", "公司绑定添加", T_uuid+"-"+strconv.Itoa(T_pid))
  909. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  910. c.ServeJSON()
  911. return
  912. }
  913. func (c *UserController) AdminCompanyBind_Del() {
  914. T_uuid := c.GetString("T_uuid")
  915. if len(T_uuid) < 8 {
  916. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
  917. c.ServeJSON()
  918. return
  919. }
  920. T_pid, _ := c.GetInt("T_pid")
  921. if T_pid == 0 {
  922. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"}
  923. c.ServeJSON()
  924. return
  925. }
  926. r, err := Account.Read_Admin_ByUuid(T_uuid)
  927. Company_r, err := Account.Read_Company_ById(T_pid)
  928. if err != nil {
  929. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"}
  930. c.ServeJSON()
  931. return
  932. }
  933. T_pids := Account.ReadCompanyIds_T_path(Company_r.T_path)
  934. if len(T_pids) == 0 {
  935. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  936. c.ServeJSON()
  937. return
  938. }
  939. if err = Account.Delete_Company_bind(r, T_pids); err != nil {
  940. c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"}
  941. c.ServeJSON()
  942. return
  943. }
  944. if is := Company.Delete_CompanyNotice_Bind_By_T_uuid_T_pid(T_uuid, T_pids); !is {
  945. logs.Println("删除内部用户公司绑定 => 删除内部用户绑定的公司关联报警通知失败", T_uuid)
  946. }
  947. System.Add_UserLogs(c.Admin_r.T_uuid, "内部用户管理", "公司绑定删除", T_uuid+"-"+strconv.Itoa(T_pid))
  948. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  949. c.ServeJSON()
  950. return
  951. }
  952. // 权限管理
  953. func (c *UserController) Power_List() {
  954. var r_jsons lib.R_JSONS
  955. page, _ := c.GetInt("page")
  956. if page < 1 {
  957. page = 1
  958. }
  959. page_z, _ := c.GetInt("page_z")
  960. if page_z < 1 {
  961. page_z = conf.Page_size
  962. }
  963. Name := c.GetString("T_name")
  964. r_jsons.Data, r_jsons.Num = Account.Read_Power_List(Name, page, page_z)
  965. r_jsons.Page = page
  966. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  967. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  968. c.ServeJSON()
  969. return
  970. }
  971. // 添加用户 权限选择列表
  972. func (c *UserController) Power_List_All() {
  973. r, err := Account.Read_Power_ById(c.Admin_r.T_power)
  974. if err != nil {
  975. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  976. c.ServeJSON()
  977. return
  978. }
  979. var r_jsons lib.R_JSONS
  980. r_jsons.Data = Account.Read_Power_List_ALL_User(r.T_select)
  981. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  982. c.ServeJSON()
  983. return
  984. }
  985. func (c *UserController) Power_Get() {
  986. type Data struct {
  987. Power Account.Power_
  988. Menu []Account.Menu
  989. Menu_checked []int
  990. Select []Account.Power_R
  991. Warning []Warning.WarningType_R
  992. }
  993. var data Data
  994. id, id_err := c.GetInt("T_id")
  995. if id_err != nil || id == 0 {
  996. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  997. c.ServeJSON()
  998. return
  999. }
  1000. power, err := Account.Read_Power_ById(id)
  1001. if err != nil {
  1002. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  1003. c.ServeJSON()
  1004. return
  1005. }
  1006. data.Power = Account.PowerToPower_(power)
  1007. data.Menu, data.Menu_checked = Account.Read_Menu_List_All()
  1008. if err != nil {
  1009. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_menu Err!"}
  1010. c.ServeJSON()
  1011. return
  1012. }
  1013. if power.T_menu != "*" {
  1014. data.Menu_checked = lib.SplitStringToIntIds(power.T_menu, "M")
  1015. }
  1016. if err != nil {
  1017. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_menu Err!"}
  1018. c.ServeJSON()
  1019. return
  1020. }
  1021. data.Select = Account.Read_Power_List_ALL_T_select(power.T_select)
  1022. if err != nil {
  1023. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_select Err!"}
  1024. c.ServeJSON()
  1025. return
  1026. }
  1027. data.Warning = Warning.Read_WarningType_All_Power_T_Warning(power.T_warning)
  1028. if err != nil {
  1029. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_warning Err!"}
  1030. c.ServeJSON()
  1031. return
  1032. }
  1033. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: data}
  1034. c.ServeJSON()
  1035. return
  1036. }
  1037. func (c *UserController) Power_Add() {
  1038. T_name := c.GetString("T_name")
  1039. T_select := c.GetString("T_select")
  1040. T_warning := c.GetString("T_warning")
  1041. T_menu := c.GetString("T_menu")
  1042. var_ := Account.Power{
  1043. T_name: T_name,
  1044. T_select: T_select,
  1045. T_warning: T_warning,
  1046. T_menu: T_menu,
  1047. T_State: 1,
  1048. }
  1049. _, err := Account.Add_Power(var_)
  1050. if err != nil {
  1051. c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
  1052. c.ServeJSON()
  1053. return
  1054. }
  1055. System.Add_UserLogs_T(c.Admin_r.T_uuid, "权限管理", "添加", var_)
  1056. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1057. c.ServeJSON()
  1058. return
  1059. }
  1060. func (c *UserController) Power_Edit() {
  1061. Id, Id_err := c.GetInt("T_id")
  1062. if Id_err != nil || Id == 0 {
  1063. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  1064. c.ServeJSON()
  1065. return
  1066. }
  1067. if Id == 1 {
  1068. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权修改!"}
  1069. c.ServeJSON()
  1070. return
  1071. }
  1072. r, err := Account.Read_Power_ById(Id)
  1073. if err != nil {
  1074. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  1075. c.ServeJSON()
  1076. return
  1077. }
  1078. T_name := c.GetString("T_name")
  1079. T_select := c.GetString("T_select")
  1080. T_warning := c.GetString("T_warning")
  1081. T_menu := c.GetString("T_menu")
  1082. if len(T_name) > 0 {
  1083. r.T_name = T_name
  1084. }
  1085. if len(T_select) > 0 {
  1086. r.T_select = T_select
  1087. }
  1088. if len(T_warning) > 0 {
  1089. r.T_warning = T_warning
  1090. }
  1091. if len(T_menu) > 0 {
  1092. r.T_menu = T_menu
  1093. }
  1094. is := Account.Update_Power(r, "T_name", "T_select", "T_warning", "T_menu")
  1095. if !is {
  1096. c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"}
  1097. c.ServeJSON()
  1098. return
  1099. }
  1100. System.Add_UserLogs_T(c.Admin_r.T_uuid, "权限管理", "修改", r)
  1101. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1102. c.ServeJSON()
  1103. return
  1104. }
  1105. func (c *UserController) Power_Del() {
  1106. id, id_err := c.GetInt("T_id")
  1107. if id_err != nil || id == 0 {
  1108. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  1109. c.ServeJSON()
  1110. return
  1111. }
  1112. r, err := Account.Read_Power_ById(id)
  1113. if err != nil {
  1114. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  1115. c.ServeJSON()
  1116. return
  1117. }
  1118. if cnt := Account.Read_Admin_Num_ByT_power(id); cnt > 0 {
  1119. c.Data["json"] = lib.JSONS{Code: 202, Msg: "有关联用户,禁止删除!"}
  1120. c.ServeJSON()
  1121. return
  1122. }
  1123. is := Account.Delete_Power(r)
  1124. if !is {
  1125. c.Data["json"] = lib.JSONS{Code: 302, Msg: "删除失败!"}
  1126. c.ServeJSON()
  1127. return
  1128. }
  1129. System.Add_UserLogs(c.Admin_r.T_uuid, "权限管理", "删除", strconv.Itoa(id))
  1130. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1131. c.ServeJSON()
  1132. return
  1133. }
  1134. // 菜单列表
  1135. func (c *UserController) User_Menu_List() {
  1136. type R_JSONS struct {
  1137. //必须的大写开头
  1138. Data interface{}
  1139. Permission interface{}
  1140. }
  1141. var r_jsons R_JSONS
  1142. power, err := Account.Read_Power_ById(c.Admin_r.T_power)
  1143. if err != nil {
  1144. c.Data["json"] = lib.JSONS{Code: 202, Msg: "获取菜单失败"}
  1145. c.ServeJSON()
  1146. return
  1147. }
  1148. logs.Println("登录用户 菜单 pid 为:", c.T_pid)
  1149. ret := Account.Read_Menu_Bind_List(power.Id, power.T_menu, c.T_pid)
  1150. r_jsons.Data = ret.Menu
  1151. r_jsons.Permission = ret.Permission
  1152. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1153. c.ServeJSON()
  1154. return
  1155. }
  1156. // 权限菜单列表
  1157. func (c *UserController) Menu_List_All() {
  1158. var r_jsons lib.R_JSONS
  1159. r_jsons.Data, _ = Account.Read_Menu_List_All()
  1160. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1161. c.ServeJSON()
  1162. return
  1163. }
  1164. func (c *UserController) Menu_Excel() {
  1165. filename := fmt.Sprintf("冷链3.0菜单")
  1166. f := excelize.NewFile()
  1167. Style1, _ := f.NewStyle(
  1168. &excelize.Style{
  1169. Font: &excelize.Font{Bold: true, Size: 16, Family: "宋体"},
  1170. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
  1171. })
  1172. Style2, _ := f.NewStyle(
  1173. &excelize.Style{
  1174. Font: &excelize.Font{Bold: true, Size: 14, Family: "宋体"},
  1175. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1176. Border: []excelize.Border{
  1177. {Type: "left", Color: "000000", Style: 1},
  1178. {Type: "top", Color: "000000", Style: 1},
  1179. {Type: "bottom", Color: "000000", Style: 1},
  1180. {Type: "right", Color: "000000", Style: 1},
  1181. },
  1182. })
  1183. f.MergeCell("Sheet1", "A1", "G1")
  1184. f.SetRowStyle("Sheet1", 1, 1, Style1)
  1185. f.SetCellValue("Sheet1", "A1", "Menu")
  1186. f.SetRowHeight("Sheet1", 1, 30)
  1187. f.MergeCell("Sheet1", "H1", "M1")
  1188. f.SetRowStyle("Sheet1", 1, 1, Style1)
  1189. f.SetCellValue("Sheet1", "H1", "API")
  1190. f.SetRowHeight("Sheet1", 1, 30)
  1191. f.SetCellStyle("Sheet1", "A2", "G2", Style2)
  1192. f.SetRowHeight("Sheet1", 2, 25)
  1193. // 这里设置表头
  1194. f.SetCellValue("Sheet1", "A2", "ID")
  1195. f.SetCellValue("Sheet1", "B2", "t_mid")
  1196. f.SetCellValue("Sheet1", "C2", "t_name")
  1197. f.SetCellValue("Sheet1", "D2", "t_permission")
  1198. f.SetCellValue("Sheet1", "E2", "t_sort")
  1199. f.SetCellValue("Sheet1", "F2", "t_pid")
  1200. f.SetCellValue("Sheet1", "G2", "t_icon")
  1201. f.SetCellValue("Sheet1", "H2", "ID")
  1202. f.SetCellValue("Sheet1", "I2", "t__menu__id")
  1203. f.SetCellValue("Sheet1", "J2", "t_name")
  1204. f.SetCellValue("Sheet1", "K2", "t_uri")
  1205. f.SetCellValue("Sheet1", "L2", "t_method")
  1206. f.SetCellValue("Sheet1", "M2", "t_enable")
  1207. // 设置列宽
  1208. f.SetColWidth("Sheet1", "A", "M", 15)
  1209. line := 2
  1210. menu := Account.Read_Menu_All()
  1211. for _, m := range menu {
  1212. Menu_Call(f, m, line)
  1213. }
  1214. Style11, _ := f.NewStyle(
  1215. &excelize.Style{
  1216. Font: &excelize.Font{Size: 10, Family: "宋体"},
  1217. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1218. Border: []excelize.Border{
  1219. {Type: "top", Color: "000000", Style: 1},
  1220. },
  1221. })
  1222. Style22, _ := f.NewStyle(
  1223. &excelize.Style{
  1224. Font: &excelize.Font{Size: 10, Family: "宋体"},
  1225. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1226. Border: []excelize.Border{
  1227. {Type: "left", Color: "000000", Style: 1},
  1228. },
  1229. })
  1230. Style33, _ := f.NewStyle(
  1231. &excelize.Style{
  1232. Font: &excelize.Font{Size: 10, Family: "宋体"},
  1233. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1234. Border: []excelize.Border{
  1235. {Type: "right", Color: "000000", Style: 1},
  1236. },
  1237. })
  1238. Style44, _ := f.NewStyle(
  1239. &excelize.Style{
  1240. Font: &excelize.Font{Size: 10, Family: "宋体"},
  1241. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1242. Border: []excelize.Border{
  1243. {Type: "bottom", Color: "000000", Style: 1},
  1244. },
  1245. })
  1246. //// 循环写入数据
  1247. for _, v := range menu {
  1248. line1 := line
  1249. line = Menu_Call(f, v, line)
  1250. f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line1), fmt.Sprintf("M%d", line1), Style11)
  1251. f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line), fmt.Sprintf("A%d", line), Style22)
  1252. f.SetCellStyle("Sheet1", fmt.Sprintf("M%d", line), fmt.Sprintf("M%d", line), Style33)
  1253. f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line), fmt.Sprintf("M%d", line), Style44)
  1254. }
  1255. timeStr := filename + fmt.Sprintf("(%s)", lib.GetRandstring(8, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", 0))
  1256. // 保存文件
  1257. if err := f.SaveAs("ofile/" + timeStr + ".xlsx"); err != nil {
  1258. fmt.Println(err)
  1259. }
  1260. var url string
  1261. ////// 上传 OSS
  1262. //url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/ofile/"+timeStr+".xlsx", "ofile/"+timeStr+".xlsx")
  1263. //if !is {
  1264. // c.Data["json"] = lib.JSONS{Code: 202, Msg: "oss!"}
  1265. // c.ServeJSON()
  1266. // return
  1267. //}
  1268. ////删除目录
  1269. //err = os.Remove("ofile/" + timeStr + ".xlsx")
  1270. //if err != nil {
  1271. // fmt.Println(err)
  1272. //}
  1273. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url}
  1274. c.ServeJSON()
  1275. return
  1276. }
  1277. func Menu_Call(f *excelize.File, v Account.Menu, line int) int {
  1278. line++
  1279. f.SetCellValue("Sheet1", fmt.Sprintf("A%d", line), v.Id)
  1280. f.SetCellValue("Sheet1", fmt.Sprintf("B%d", line), v.T_mid)
  1281. f.SetCellValue("Sheet1", fmt.Sprintf("C%d", line), v.T_name)
  1282. f.SetCellValue("Sheet1", fmt.Sprintf("D%d", line), v.T_permission)
  1283. f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), v.T_sort)
  1284. f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), v.T_pid)
  1285. f.SetCellValue("Sheet1", fmt.Sprintf("G%d", line), v.T_icon)
  1286. apiList := Account.Read_API_List_ByMenuId(v.Id)
  1287. for _, api := range apiList {
  1288. f.SetCellValue("Sheet1", fmt.Sprintf("H%d", line), api.Id)
  1289. f.SetCellValue("Sheet1", fmt.Sprintf("I%d", line), api.T_Menu_Id)
  1290. f.SetCellValue("Sheet1", fmt.Sprintf("J%d", line), api.T_name)
  1291. f.SetCellValue("Sheet1", fmt.Sprintf("K%d", line), api.T_uri)
  1292. f.SetCellValue("Sheet1", fmt.Sprintf("L%d", line), api.T_method)
  1293. f.SetCellValue("Sheet1", fmt.Sprintf("M%d", line), api.T_enable)
  1294. line++
  1295. }
  1296. return line
  1297. }
  1298. // 流量池
  1299. func (c *UserController) Flow_Pool() {
  1300. var r_jsons lib.R_JSONS
  1301. r_jsons.Data, _ = lib.Yidong_group_data_margin()
  1302. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1303. c.ServeJSON()
  1304. return
  1305. }
  1306. // 账单下载
  1307. func (c *UserController) CompanyBill_Excel() {
  1308. T_month := c.GetString("T_month")
  1309. _, err := time.Parse("2006-01", T_month)
  1310. if err != nil {
  1311. c.Data["json"] = lib.JSONS{Code: 202, Msg: "日期格式错误!"}
  1312. c.ServeJSON()
  1313. return
  1314. }
  1315. year, month := strings.Split(T_month, "-")[0], strings.Split(T_month, "-")[1]
  1316. company, _ := Account.Read_Company_ById(c.Admin_r.T_pid)
  1317. if err != nil {
  1318. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  1319. c.ServeJSON()
  1320. return
  1321. }
  1322. filename := fmt.Sprintf("%s%s年%s月账单", company.T_name, year, month)
  1323. f := excelize.NewFile()
  1324. Style1, _ := f.NewStyle(
  1325. &excelize.Style{
  1326. Font: &excelize.Font{Bold: true, Size: 16, Family: "宋体"},
  1327. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
  1328. })
  1329. Style2, _ := f.NewStyle(
  1330. &excelize.Style{
  1331. Font: &excelize.Font{Bold: true, Size: 14, Family: "宋体"},
  1332. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1333. Border: []excelize.Border{
  1334. {Type: "left", Color: "000000", Style: 1},
  1335. {Type: "top", Color: "000000", Style: 1},
  1336. {Type: "bottom", Color: "000000", Style: 1},
  1337. {Type: "right", Color: "000000", Style: 1},
  1338. },
  1339. })
  1340. f.MergeCell("Sheet1", "A1", "G1")
  1341. f.SetRowStyle("Sheet1", 1, 1, Style1)
  1342. f.SetCellValue("Sheet1", "A1", filename)
  1343. f.SetRowHeight("Sheet1", 1, 30)
  1344. f.SetCellStyle("Sheet1", "A2", "G2", Style2)
  1345. f.SetRowHeight("Sheet1", 2, 25)
  1346. // 这里设置表头
  1347. f.SetCellValue("Sheet1", "A2", "编号")
  1348. f.SetCellValue("Sheet1", "B2", "项目")
  1349. f.SetCellValue("Sheet1", "C2", "说明")
  1350. f.SetCellValue("Sheet1", "D2", "扣费/充值")
  1351. f.SetCellValue("Sheet1", "E2", "金额(元)")
  1352. f.SetCellValue("Sheet1", "F2", "余额(元)")
  1353. f.SetCellValue("Sheet1", "G2", "时间")
  1354. // 设置列宽
  1355. f.SetColWidth("Sheet1", "A", "A", 10)
  1356. f.SetColWidth("Sheet1", "B", "B", 50)
  1357. f.SetColWidth("Sheet1", "C", "C", 15)
  1358. f.SetColWidth("Sheet1", "D", "D", 12)
  1359. f.SetColWidth("Sheet1", "E", "E", 15)
  1360. f.SetColWidth("Sheet1", "F", "F", 15)
  1361. f.SetColWidth("Sheet1", "G", "G", 20)
  1362. line := 2
  1363. CompanyBill_List, err := Company.Read_CompanyBill_List(c.Admin_r.T_pid, T_month)
  1364. if err != nil {
  1365. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  1366. c.ServeJSON()
  1367. return
  1368. }
  1369. // 循环写入数据
  1370. for i, v := range CompanyBill_List {
  1371. line++
  1372. f.SetCellValue("Sheet1", fmt.Sprintf("A%d", line), i+1)
  1373. f.SetCellValue("Sheet1", fmt.Sprintf("B%d", line), v.T_project)
  1374. f.SetCellValue("Sheet1", fmt.Sprintf("C%d", line), v.T_bill)
  1375. f.SetCellValue("Sheet1", fmt.Sprintf("D%d", line), v.T_type)
  1376. f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), v.T_charging)
  1377. f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), v.T_balance)
  1378. f.SetCellValue("Sheet1", fmt.Sprintf("G%d", line), v.CreateTime.Format("2006-01-02"))
  1379. }
  1380. Style4, _ := f.NewStyle(
  1381. &excelize.Style{
  1382. Font: &excelize.Font{Size: 12, Family: "宋体"},
  1383. Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
  1384. Border: []excelize.Border{
  1385. {Type: "left", Color: "000000", Style: 1},
  1386. {Type: "top", Color: "000000", Style: 1},
  1387. {Type: "bottom", Color: "000000", Style: 1},
  1388. {Type: "right", Color: "000000", Style: 1},
  1389. },
  1390. })
  1391. f.SetCellStyle("Sheet1", "A2", fmt.Sprintf("G%d", line), Style4)
  1392. timeStr := filename + fmt.Sprintf("(%s)", lib.GetRandstring(8, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", 0))
  1393. // 保存文件
  1394. if err = f.SaveAs("ofile/" + timeStr + ".xlsx"); err != nil {
  1395. fmt.Println(err)
  1396. }
  1397. var url string
  1398. //// 上传 OSS
  1399. url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/ofile/"+timeStr+".xlsx", "ofile/"+timeStr+".xlsx")
  1400. if !is {
  1401. c.Data["json"] = lib.JSONS{Code: 202, Msg: "oss!"}
  1402. c.ServeJSON()
  1403. return
  1404. }
  1405. //删除目录
  1406. err = os.Remove("ofile/" + timeStr + ".xlsx")
  1407. if err != nil {
  1408. fmt.Println(err)
  1409. }
  1410. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url}
  1411. c.ServeJSON()
  1412. return
  1413. }
  1414. // 获取微信支付二维码
  1415. func (c *UserController) WxPay_QRCode() {
  1416. if c.Admin_r.T_pid == 0 {
  1417. c.Data["json"] = lib.JSONS{Code: 202, Msg: "非公司用户不能充值"}
  1418. c.ServeJSON()
  1419. return
  1420. }
  1421. Total, _ := c.GetFloat("Total")
  1422. Title := "冷链3.0-" + c.Admin_r.T_user
  1423. res, err := lib.PayTransactionNative(Title, Total)
  1424. if err != nil {
  1425. c.Data["json"] = lib.JSONS{Code: 202, Msg: err.Error()}
  1426. c.ServeJSON()
  1427. return
  1428. }
  1429. if res.Code != 200 {
  1430. c.Data["json"] = lib.JSONS{Code: 202, Msg: res.Message}
  1431. c.ServeJSON()
  1432. return
  1433. }
  1434. var_ := Company.CompanyPayOrder{
  1435. T_pid: c.Admin_r.T_pid,
  1436. T_type: "微信",
  1437. T_title: Title,
  1438. T_total: Total,
  1439. T_order_no: res.OrderNo,
  1440. T_remark: c.Admin_r.T_uuid,
  1441. }
  1442. _, err = Company.Add_CompanyPayOrder(var_)
  1443. if err != nil {
  1444. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加订单失败!"}
  1445. c.ServeJSON()
  1446. return
  1447. }
  1448. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: res}
  1449. c.ServeJSON()
  1450. return
  1451. }
  1452. // 微信支付回调
  1453. func (c *UserController) WxPay_Notify() {
  1454. type RequestBody struct {
  1455. TradeNo string
  1456. Status string
  1457. }
  1458. type JSON struct {
  1459. Code int
  1460. Message string
  1461. }
  1462. buf := make([]byte, 1024)
  1463. n, _ := c.Ctx.Request.Body.Read(buf)
  1464. logs.Info("Body================ ", string(buf[0:n]))
  1465. //解密
  1466. adc_str, _ := lib.AesDeCrypt(buf[0:n], []byte(conf.Weixin_PwdKey))
  1467. //adc_str, _ := lib.AesDeCrypt(buf[0:n], []byte(conf.Weixin_PwdKey))
  1468. var body RequestBody
  1469. logs.Info("data================ ", string(adc_str))
  1470. err := json.Unmarshal(adc_str, &body)
  1471. if err != nil {
  1472. c.Data["json"] = JSON{Code: 202, Message: "json.Unmarshal is err:" + err.Error()}
  1473. c.ServeJSON()
  1474. }
  1475. payOrder, err := Company.Get_CompanyPayOrder_ByT_order_no(body.TradeNo)
  1476. if err != nil {
  1477. c.Data["json"] = JSON{Code: 202, Message: "查询失败!"}
  1478. c.ServeJSON()
  1479. return
  1480. }
  1481. //交易状态
  1482. //SUCCESS:支付成功
  1483. //REFUND:转入退款
  1484. //NOTPAY:未支付
  1485. //CLOSED:已关闭
  1486. //REVOKED:已撤销(付款码支付)
  1487. //USERPAYING:用户支付中(付款码支付)
  1488. //PAYERROR:支付失败(其他原因,如银行返回失败)
  1489. payOrder.T_status = body.Status
  1490. err = Company.Update_CompanyPayOrder(payOrder, "T_status")
  1491. if err != nil {
  1492. c.Data["json"] = JSON{Code: 202, Message: "更新状态失败!"}
  1493. c.ServeJSON()
  1494. return
  1495. }
  1496. // 添加充值记录
  1497. // 余额加上充值金额
  1498. if body.Status == "SUCCESS" {
  1499. Company_r, err := Account.Read_Company_ById(payOrder.T_pid)
  1500. if err != nil {
  1501. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
  1502. c.ServeJSON()
  1503. return
  1504. }
  1505. T_money64, _ := decimal.NewFromFloat(float64(Company_r.T_money) + payOrder.T_total).Round(2).Float64()
  1506. Company_r.T_money = float32(T_money64)
  1507. is := Account.Update_Company(Company_r, "T_money")
  1508. if !is {
  1509. c.Data["json"] = lib.JSONS{Code: 202, Msg: "充值失败!"}
  1510. c.ServeJSON()
  1511. return
  1512. }
  1513. }
  1514. c.Data["json"] = JSON{Code: 200, Message: "成功"}
  1515. c.ServeJSON()
  1516. return
  1517. }
  1518. // 获取微信支付订单状态
  1519. func (c *UserController) WxPay_GetOrderState() {
  1520. OrderNo := c.GetString("OrderNo")
  1521. payOrder, err := Company.Get_CompanyPayOrder_ByT_order_no(OrderNo)
  1522. if err != nil {
  1523. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  1524. c.ServeJSON()
  1525. return
  1526. }
  1527. c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功", Data: payOrder}
  1528. c.ServeJSON()
  1529. return
  1530. }