Ver código fonte

refactor(mcs_api_weixin): 目录改名,修改为gomodule模式,支持v2版influxdb

sunmiao 4 anos atrás
pai
commit
4d20442d6f
100 arquivos alterados com 231 adições e 79 exclusões
  1. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/.idea/.gitignore
  2. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/.idea/mms_api_weixin.iml
  3. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/.idea/modules.xml
  4. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/.idea/vcs.xml
  5. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/channels/channels.go
  6. 6 5
      backend/src/dashoo.cn/mcs_api_weixin/business/channels/channelsService.go
  7. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/company/basecompany.go
  8. 11 11
      backend/src/dashoo.cn/mcs_api_weixin/business/company/basecompanyService.go
  9. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/device/channels.go
  10. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/device/channelsSort.go
  11. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/device/device.go
  12. 24 24
      backend/src/dashoo.cn/mcs_api_weixin/business/device/deviceService.go
  13. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/device/devicekey.go
  14. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/business/trigger/trigger.go
  15. 0 12
      backend/src/dashoo.cn/mcs_api_weixin/conf/app.conf
  16. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/controllers/a_test.go
  17. 1 1
      backend/src/dashoo.cn/mcs_api_weixin/controllers/base.go
  18. 5 5
      backend/src/dashoo.cn/mcs_api_weixin/controllers/channels.go
  19. 2 2
      backend/src/dashoo.cn/mcs_api_weixin/controllers/common.go
  20. 1 1
      backend/src/dashoo.cn/mcs_api_weixin/controllers/home.go
  21. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/controllers/reportdetails
  22. 4 4
      backend/src/dashoo.cn/mcs_api_weixin/controllers/token.go
  23. 3 3
      backend/src/dashoo.cn/mcs_api_weixin/controllers/triggerinfos.go
  24. 8 8
      backend/src/dashoo.cn/mcs_api_weixin/controllers/user.go
  25. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/controllers/weixin.go
  26. 22 0
      backend/src/dashoo.cn/mcs_api_weixin/go.mod
  27. 141 0
      backend/src/dashoo.cn/mcs_api_weixin/go.sum
  28. 2 2
      backend/src/dashoo.cn/mcs_api_weixin/main.go
  29. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/models/token.go
  30. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/models/user.go
  31. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/root/MP_verify_XIPcHUaYnpL9Y26h.txt
  32. 1 1
      backend/src/dashoo.cn/mcs_api_weixin/routers/router.go
  33. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/favicon-16x16.png
  34. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/favicon-32x32.png
  35. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/index.html
  36. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/oauth2-redirect.html
  37. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-bundle.js
  38. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-bundle.js.map
  39. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-standalone-preset.js
  40. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-standalone-preset.js.map
  41. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.css
  42. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.css.map
  43. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.js
  44. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.js.map
  45. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger.json
  46. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger.yml
  47. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/swaggerbat.bat
  48. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/tests/default_test.go
  49. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/css/11cea876.583be5cf.css
  50. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/css/21ae6d43.a29fdc71.css
  51. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/css/app.0b2b04a4.css
  52. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.5cb7edfc.woff
  53. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.87284894.woff
  54. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.b00849e0.woff
  55. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.adcde98f.woff
  56. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bb1e4dc6.woff
  57. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOmCnqEu92Fr1Mu4mxM.60fa3c06.woff
  58. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff
  59. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2
  60. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/beijing.ae484472.png
  61. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/daiji.347a261e.png
  62. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/daiji1.8884973b.png
  63. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/guzhang.3bdb99a3.png
  64. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/guzhang1.f1b55c74.png
  65. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/labsop.25d568fa.png
  66. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/logo.1520abbe.png
  67. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/mima.c84c5896.png
  68. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yonghu.434752aa.png
  69. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yunxing.fc1b784b.png
  70. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yunxing1.911242f4.png
  71. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/index.html
  72. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/11cea876.b235a504.js
  73. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/21ae6d43.8372b4b1.js
  74. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/3f393755.786ac97b.js
  75. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/3ff4b1ec.913af40e.js
  76. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/4b47640d.0143f3ac.js
  77. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/5b964492.8a97552a.js
  78. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/app.2439882a.js
  79. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/runtime.b9b3761c.js
  80. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/js/vendor.26204283.js
  81. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/app-logo-128x128.png
  82. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-120x120.png
  83. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-152x152.png
  84. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-167x167.png
  85. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-180x180.png
  86. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-16x16.png
  87. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-32x32.png
  88. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-96x96.png
  89. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon.ico
  90. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-128x128.png
  91. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-192x192.png
  92. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-256x256.png
  93. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-384x384.png
  94. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-512x512.png
  95. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/ms-icon-144x144.png
  96. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/safari-pinned-tab.svg
  97. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_1.png
  98. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_2.png
  99. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_3.png
  100. 0 0
      backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_4.png

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/.idea/.gitignore → backend/src/dashoo.cn/mcs_api_weixin/.idea/.gitignore


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/.idea/mms_api_weixin.iml → backend/src/dashoo.cn/mcs_api_weixin/.idea/mms_api_weixin.iml


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/.idea/modules.xml → backend/src/dashoo.cn/mcs_api_weixin/.idea/modules.xml


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/.idea/vcs.xml → backend/src/dashoo.cn/mcs_api_weixin/.idea/vcs.xml


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/channels/channels.go → backend/src/dashoo.cn/mcs_api_weixin/business/channels/channels.go


+ 6 - 5
backend/src/dashoo.cn/mms_api_weixin/business/channels/channelsService.go → backend/src/dashoo.cn/mcs_api_weixin/business/channels/channelsService.go

@@ -3,9 +3,10 @@ package channels
 import (
 	"strconv"
 
+	"xorm.io/xorm"
+
 	"dashoo.cn/base_common/utils"
 	. "dashoo.cn/base_common/utils/db"
-	"github.com/go-xorm/xorm"
 )
 
 type ChannelsService struct {
@@ -21,7 +22,7 @@ func GetChannlesService(xormEngine *xorm.Engine) *ChannelsService {
 func (s *ChannelsService) GetChannelids(userid string) (ids []string) {
 	var idList []Id_Str
 
-	err := s.DBE.Sql(`select ChannelsId Id FROM Base_UserChannels where UserId= ` + userid).Find(&idList)
+	err := s.DBE.SQL(`select ChannelsId Id FROM Base_UserChannels where UserId= ` + userid).Find(&idList)
 	LogError(err)
 	ids = s.GetIdsFromId_StrList(idList)
 	if len(ids) == 0 {
@@ -38,7 +39,7 @@ func (s *ChannelsService) GetChannels(searchstring string) []Channels {
 		where ` + searchstring
 
 	List := make([]Channels, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 
 	return List
 }
@@ -58,7 +59,7 @@ func (s *ChannelsService) GetPagingEntitiesWithOrderSearch(pageIndex, itemsPerPa
 	left join ChannelsSort c on a.Id=c.ChannelId and c.UserId=` + Uid + `
 		where ` + searchstring + ` order by ` + order + limitstr
 	List := make([]Channels, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -85,6 +86,6 @@ func (s *ChannelsService) GetChannelMaps() []ChannelMap {
 		select group_concat(a.Title) CName,count(1) CNum,a.Latitude,a.Longitude,a.CreateUserId,a.Id from Channels a 
 		where a.DataItem in (0,6,7,9,10) and a.Latitude>0 group by a.Latitude,a.Longitude
 		) b left join Base_User c on b.CreateUserId=c.Id`
-	s.DBE.Sql(sql).Find(&entitys)
+	s.DBE.SQL(sql).Find(&entitys)
 	return entitys
 }

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/company/basecompany.go → backend/src/dashoo.cn/mcs_api_weixin/business/company/basecompany.go


+ 11 - 11
backend/src/dashoo.cn/mms_api_weixin/business/company/basecompanyService.go → backend/src/dashoo.cn/mcs_api_weixin/business/company/basecompanyService.go

@@ -5,7 +5,7 @@ import (
 
 	"dashoo.cn/base_common/utils"
 	. "dashoo.cn/base_common/utils/db"
-	"github.com/go-xorm/xorm"
+	"xorm.io/xorm"
 )
 
 type BaseCompanyService struct {
@@ -36,7 +36,7 @@ func (s *BaseCompanyService) AddCompany(fullname, shortname, domain, agentcode,
 //根据Domain,ID查企业ID
 func (s *BaseCompanyService) GetCompanyid(where string) (ids []string) {
 	var idList []Id_Str
-	s.DBE.Sql(` select Id from Base_Company ` + where).Find(&idList)
+	s.DBE.SQL(` select Id from Base_Company ` + where).Find(&idList)
 	ids = s.GetIdsFromId_StrList(idList)
 	if len(ids) == 0 {
 		ids = append(ids, "-1")
@@ -66,7 +66,7 @@ func (s *BaseCompanyService) GetFullnameByAccode(Accode string) string {
 //获取公司列表
 func (s *BaseCompanyService) GetCompanyTree(companytitle string) []Base_Companytree {
 	var tree []Base_Companytree
-	s.DBE.Sql(`select
+	s.DBE.SQL(`select
 		0 Id,-1 ParentId,'` + companytitle + `' Fullname union all
 		select Id,0 ParentId,Fullname from Base_Company order by Id`).Find(&tree)
 	return tree
@@ -86,7 +86,7 @@ func (s *BaseCompanyService) GetPagingEntitiesWithOrderSearch(pageIndex, itemsPe
 		Base_Company b on a.AccCode=b.Id where ` + where + ` order by ` + order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
 
 	List := make([]UserCompany, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -102,7 +102,7 @@ func (s *BaseCompanyService) GetPagingEntitiesWithOrderSearch(pageIndex, itemsPe
 }
 
 func (s *BaseCompanyService) GetBindingTree(whereorg, wherecompany string) (tree []Base_Companytree) {
-	s.DBE.Sql(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname, 'true' IsParent,'false' Nocheck from Base_Organize
+	s.DBE.SQL(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname, 'true' IsParent,'false' Nocheck from Base_Organize
 		where ` + whereorg + `
 		union all
 		select Id,concat('o',OrganizeId) ParentId,Fullname, 'false' IsParent ,'false' Nocheck
@@ -118,13 +118,13 @@ func (s *BaseCompanyService) GetEntityByUserid(userId string) (Base_Company, boo
 	sql := `select b.* from Base_User a
 		inner join Base_Company b on a.AccCode=b.Id
 		where a.Id=` + userId
-	has, _ := s.DBE.Sql(sql).Get(&model)
+	has, _ := s.DBE.SQL(sql).Get(&model)
 	return model, has
 }
 
 func (s *BaseCompanyService) GetDevicesNumByOrg(whereorg, wherecompany string) int {
 	var num Id_Int
-	s.DBE.Sql(`select count(*) Id from Channels a
+	s.DBE.SQL(`select count(*) Id from Channels a
 		inner join Base_User b on a.CreateUserId=b.Id
 		inner join Base_Company c on b.AccCode=c.Id and ` + wherecompany + `
 		inner join Base_Organize d on c.OrganizeId=d.Id and
@@ -135,7 +135,7 @@ func (s *BaseCompanyService) GetDevicesNumByOrg(whereorg, wherecompany string) i
 
 func (s *BaseCompanyService) GetDevicesNumByCompany(wherecompany string) int {
 	var num Id_Int
-	s.DBE.Sql(`select count(*) Id from Channels a
+	s.DBE.SQL(`select count(*) Id from Channels a
 		inner join Base_User b on a.CreateUserId=b.Id
 		inner join Base_Company c on b.AccCode=c.Id and ` + wherecompany).Get(&num)
 	return num.Id
@@ -143,7 +143,7 @@ func (s *BaseCompanyService) GetDevicesNumByCompany(wherecompany string) int {
 }
 
 func (s *BaseCompanyService) GetIndexTree(whereorg, wherecompany string) (tree []Base_Indextree) {
-	s.DBE.Sql(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname, 'true' IsParent,'true' Nocheck,0 Longitude,0 Latitude,0 DeviceState from Base_Organize
+	s.DBE.SQL(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname, 'true' IsParent,'true' Nocheck,0 Longitude,0 Latitude,0 DeviceState from Base_Organize
 		where ` + whereorg + `
 		union all
 		select Id,concat('o',OrganizeId) ParentId,Fullname, 'false' IsParent ,'false' Nocheck,Longitude,Latitude,DeviceState
@@ -154,7 +154,7 @@ func (s *BaseCompanyService) GetIndexTree(whereorg, wherecompany string) (tree [
 }
 
 func (s *BaseCompanyService) GetIndexTree1(whereorg, wherecompany string) (tree []Base_Indextree1) {
-	s.DBE.Sql(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname from Base_Organize
+	s.DBE.SQL(`select concat('o',Id) Id,concat('o',ParentId) ParentId,Fullname from Base_Organize
 		where ` + whereorg + `
 		union all
 		select Id,concat('o',OrganizeId) ParentId,Fullname
@@ -166,7 +166,7 @@ func (s *BaseCompanyService) GetIndexTree1(whereorg, wherecompany string) (tree
 
 func (s *BaseCompanyService) GetUidByCompanyid(companyid string) int {
 	var uid Id_Int
-	s.DBE.Sql("select Id from Base_User where CreateUserId='0' and AccCode=" + companyid + " limit 1").Get(&uid)
+	s.DBE.SQL("select Id from Base_User where CreateUserId='0' and AccCode=" + companyid + " limit 1").Get(&uid)
 	return uid.Id
 
 }

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/device/channels.go → backend/src/dashoo.cn/mcs_api_weixin/business/device/channels.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/device/channelsSort.go → backend/src/dashoo.cn/mcs_api_weixin/business/device/channelsSort.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/device/device.go → backend/src/dashoo.cn/mcs_api_weixin/business/device/device.go


+ 24 - 24
backend/src/dashoo.cn/mms_api_weixin/business/device/deviceService.go → backend/src/dashoo.cn/mcs_api_weixin/business/device/deviceService.go

@@ -4,11 +4,11 @@ import (
 	"fmt"
 	"strconv"
 
-	"github.com/go-xorm/xorm"
+	"xorm.io/xorm"
 
-	"dashoo.cn/mms_api_mobile/business/organize"
 	"dashoo.cn/base_common/utils"
 	. "dashoo.cn/base_common/utils/db"
+	"dashoo.cn/mcs_common/business/organize"
 )
 
 type DeviceService struct {
@@ -27,7 +27,7 @@ func (s *DeviceService) GetEntitiesWithOrderSearch(order, searchstring string) [
 		where ` + searchstring + ` order by ` + order
 
 	List := make([]Device, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 
 	return List
 }
@@ -62,7 +62,7 @@ func (s *DeviceService) GetPagingEntitiesWithOrderSearch(pageIndex, itemsPerPage
 		where ` + searchstring + ` order by ` + order + limitstr
 	List := make([]DeviceChannels, 0)
 	fmt.Println("----sql----", sql)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -88,7 +88,7 @@ func (s *DeviceService) GetPagingEntitiesWithOrderSearch1(pageIndex, itemsPerPag
 		where ` + searchstring + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
 
 	List := make([]Device, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -156,7 +156,7 @@ func (s *DeviceService) GetDeviceChannel(did int, channels interface{}) {
 }
 func (s *DeviceService) GetDeviceTreeByRole(roleid, permissionitem string) (utree []DeviceShowr) {
 
-	s.DBE.Sql(`select distinct a.TargetId  Id,c.Title FullName
+	s.DBE.SQL(`select distinct a.TargetId  Id,c.Title FullName
 			from Base_PermissionScope a
 			left join Device c on a.TargetId=c.Id
 			where a.ResourceCategory='Base_Role'
@@ -208,7 +208,7 @@ func (s *DeviceService) GetDTitleBySerial(serial string) string {
 func (s *DeviceService) GetWdidByCode(code string) int {
 	var devices Device
 	sql := `select a.WDid from Device a left join Channels b on a.Id=b.DId where b.Code='` + code + `'`
-	s.DBE.Sql(sql).Get(&devices)
+	s.DBE.SQL(sql).Get(&devices)
 	return devices.Wdid
 }
 
@@ -225,7 +225,7 @@ func (s *DeviceService) GetCIds(searchstring string) string {
 		where ` + searchstring
 	var cids = "-1"
 	List := make([]Channels, 0)
-	s.DBE.Sql(sql).Find(&List)
+	s.DBE.SQL(sql).Find(&List)
 	for i, j := 0, len(List); i < j; i++ {
 		cids += "," + utils.ToStr(List[i].Code)
 	}
@@ -246,7 +246,7 @@ func (s *DeviceService) GetDeviceAlertor(code, alerttype, binddatatype string) *
 		inner join Channels c on a.Id=c.DId and c.DataItem=` + binddatatype + `
 		where a.DataItem=4 and b.Code='` + code + `' 
 		group by a.Id`
-	s.DBE.Sql(sql).Get(entity)
+	s.DBE.SQL(sql).Get(entity)
 	return entity
 }
 
@@ -260,7 +260,7 @@ func (s *DeviceService) GetCode(searchstring, Uid string) string {
 		where ` + searchstring
 	var cids = "-1"
 	List := make([]DeviceChannels, 0)
-	s.DBE.Sql(sql).Find(&List)
+	s.DBE.SQL(sql).Find(&List)
 	for i, j := 0, len(List); i < j; i++ {
 		cids += "," + utils.ToStr(List[i].Code)
 	}
@@ -275,7 +275,7 @@ func (s *DeviceService) Getlist(order string, where, Uid string) []DeviceChannel
 		where ` + where + ` order by ` + order
 
 	List := make([]DeviceChannels, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 
 	return List
 }
@@ -295,7 +295,7 @@ func (s *DeviceService) GetAbnormal(pageIndex, itemsPerPage int64, order string,
 	}
 	sql = "select a.Title,a.Serial,a.Tags,a.ChannelState,a.DataItem,a.DeviceState,a.CJTime,a.CSTime,a.CreateOn BindingTime,b.Realname,b.UserName,b.Mobile,b.Telephone,c.`Local`  from Channels a left join Base_User b on a.CreateUserId=b.Id	left join Device c on a.DId=c.Id left join Base_Company  d on d.Id=b.AccCode where " + searchstring + " order by " + order + limitstr
 	List := make([]Abnormal, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -325,7 +325,7 @@ func (s *DeviceService) GetBlackboxquery(pageIndex, itemsPerPage int64, order st
 	}
 	sql = "select a.Title,a.Serial,a.ChannelState,a.CreateOn BindingTime,b.Realname,b.UserName from Channels a left join Base_User b on a.CreateUserId=b.Id left join Base_Company  d on d.Id=b.AccCode where " + searchstring + " order by " + order + limitstr
 	List := make([]Blackboxquery, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	resultsSlice, err := s.DBE.Query(sqlCount)
 	LogError(err)
 
@@ -345,7 +345,7 @@ func (s *DeviceService) GetDeviceModel(order, searchstring string) []DeviceModel
 		where ` + searchstring + ` order by ` + order
 
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 
@@ -353,7 +353,7 @@ func (s *DeviceService) GetDeviceModelDItem(searchstring string) []DeviceModel {
 	sql := `select distinct DItem from DeviceModel
 		where ` + searchstring + ` order by DItem`
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 
@@ -361,7 +361,7 @@ func (s *DeviceService) GetDeviceModelBrands(searchstring string) []DeviceModel
 	sql := `select distinct Brands from DeviceModel
 		where ` + searchstring + ` order by Brands`
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 
@@ -369,7 +369,7 @@ func (s *DeviceService) GetDeviceModelDModel(searchstring string) []DeviceModel
 	sql := `select distinct DModel,Photo,Id from DeviceModel
 		where ` + searchstring + ` order by DModel`
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 
@@ -377,7 +377,7 @@ func (s *DeviceService) GetDeviceModelStructure(searchstring string) []DeviceMod
 	sql := `select distinct Structure from DeviceModel
 		where ` + searchstring + ` order by Structure`
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 
@@ -385,7 +385,7 @@ func (s *DeviceService) GetDeviceModelPhoto(searchstring string) []DeviceModel {
 	sql := `select distinct Photo from DeviceModel
 		where ` + searchstring + ` order by Photo`
 	List := make([]DeviceModel, 0)
-	utils.DBE.Sql(sql).Find(&List)
+	utils.DBE.SQL(sql).Find(&List)
 	return List
 }
 func (s *DeviceService) GetChannelsTitles(searchstring string) string {
@@ -395,12 +395,12 @@ func (s *DeviceService) GetChannelsTitles(searchstring string) string {
 	var entity TitleStr
 	sql := `select group_concat(Title) Title from Channels
 		where Code in (` + searchstring + `)`
-	utils.DBE.Sql(sql).Get(&entity)
+	utils.DBE.SQL(sql).Get(&entity)
 	return entity.Title
 }
 
 func (s *DeviceService) GetTree_Org(whereorg string) (tree []organize.Base_Organizetree) {
-	s.DBE.Sql(`select Id, ParentId,Fullname, '/static/img/1_open.png' Icon from Base_Organize
+	s.DBE.SQL(`select Id, ParentId,Fullname, '/static/img/1_open.png' Icon from Base_Organize
 		where ` + whereorg).Find(&tree)
 	return
 
@@ -421,13 +421,13 @@ func (s *DeviceService) GetTree_OrgAndDevice(whereorg, searchstring, uid string,
 		left join Base_User d on a.CreateUserId=d.Id  
 		where ` + searchstring + " order by c.SortCode,a.CreateOn desc"
 	}
-	s.DBE.Sql(sql).Find(&tree)
+	s.DBE.SQL(sql).Find(&tree)
 	return
 }
 
 func (s *DeviceService) GetDistinctLocal(uid int) (list []Channels) {
 	sql := fmt.Sprintf("select distinct Local,Latitude,Longitude from Channels where CreateUserId=%v and Local<>'' and Local is not null order by CreateOn desc", uid)
-	s.DBE.Sql(sql).Find(&list)
+	s.DBE.SQL(sql).Find(&list)
 	return
 }
 
@@ -436,7 +436,7 @@ func (s *DeviceService) GetChannelSerialStrS(searchstring string) string {
 	sql := `select group_concat(Serial) Id from Channels a 
 		left join Base_User b on a.CreateUserId=b.Id
 		where ` + searchstring
-	utils.DBE.Sql(sql).Get(&ids)
+	utils.DBE.SQL(sql).Get(&ids)
 	return ids.Id
 }
 

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/device/devicekey.go → backend/src/dashoo.cn/mcs_api_weixin/business/device/devicekey.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/business/trigger/trigger.go → backend/src/dashoo.cn/mcs_api_weixin/business/trigger/trigger.go


+ 0 - 12
backend/src/dashoo.cn/mms_api_weixin/conf/app.conf → backend/src/dashoo.cn/mcs_api_weixin/conf/app.conf

@@ -9,7 +9,6 @@ EnableDocs = true
 [server]
 apiurl=http://47.92.238.200:10015/v1
 
-
 [db]
 type=mysql
 name=mcs_db
@@ -17,17 +16,6 @@ host=rm-8vbk16zx2rbfu6jt6uo.mysql.zhangbei.rds.aliyuncs.com
 user=mcs_user
 pwd=X6T1pa5o1AgO
 
-#name=coldchaindb
-#host=rm-m5e70160wqe47fg687o.mysql.rds.aliyuncs.com
-#user=coldchain
-#pwd=zkS123456
-
-#type=mysql
-#name=LabsopDB
-#host=192.168.0.252
-#user=labsop
-#pwd=labsop@dash123456
-
 [redis]
 addr = 39.98.34.197:26379
 

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/controllers/a_test.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/a_test.go


+ 1 - 1
backend/src/dashoo.cn/mms_api_weixin/controllers/base.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/base.go

@@ -6,9 +6,9 @@ import (
 
 	"github.com/astaxie/beego"
 
-	"dashoo.cn/mms_api_mobile/models"
 	"dashoo.cn/base_common/utils"
 	"dashoo.cn/base_common/utils/redis"
+	"dashoo.cn/mcs_common/models"
 )
 
 // Operations about tokens

+ 5 - 5
backend/src/dashoo.cn/mms_api_weixin/controllers/channels.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/channels.go

@@ -6,12 +6,12 @@ import (
 	"strconv"
 	"time"
 
-	"dashoo.cn/mms_api/business/actions"
-	"dashoo.cn/mms_api/business/equipment"
-	"dashoo.cn/mms_api/business/organize"
-	"dashoo.cn/mms_api_weixin/business/device"
-	"dashoo.cn/mms_api_weixin/business/userweixin"
 	"dashoo.cn/base_common/utils"
+	"dashoo.cn/mcs_api_weixin/business/device"
+	"dashoo.cn/mcs_common/business/actions"
+	"dashoo.cn/mcs_common/business/equipment"
+	"dashoo.cn/mcs_common/business/organize"
+	"dashoo.cn/mcs_common/business/userweixin"
 	"github.com/silenceper/wechat"
 )
 

+ 2 - 2
backend/src/dashoo.cn/mms_api_weixin/controllers/common.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/common.go

@@ -16,8 +16,8 @@ import (
 	"github.com/axgle/mahonia"
 	"github.com/nsqio/go-nsq"
 
-	"dashoo.cn/business/permission"
-	"dashoo.cn/labsop"
+	"dashoo.cn/base_common/business/permission"
+	"dashoo.cn/base_common/labsop"
 	"dashoo.cn/base_common/utils"
 )
 

+ 1 - 1
backend/src/dashoo.cn/mms_api_weixin/controllers/home.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/home.go

@@ -3,8 +3,8 @@ package controllers
 import (
 	"github.com/silenceper/wechat"
 
-	"dashoo.cn/mms_api_weixin/business/userweixin"
 	"dashoo.cn/base_common/utils"
+	"dashoo.cn/mcs_common/business/userweixin"
 )
 
 type HomeController struct {

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/controllers/reportdetails → backend/src/dashoo.cn/mcs_api_weixin/controllers/reportdetails


+ 4 - 4
backend/src/dashoo.cn/mms_api_weixin/controllers/token.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/token.go

@@ -6,11 +6,11 @@ import (
 
 	"github.com/astaxie/beego"
 
-	"dashoo.cn/business/auth"
-	"dashoo.cn/business/userRole"
-	"dashoo.cn/mms_api_weixin/business/userweixin"
-	"dashoo.cn/mms_api_weixin/models"
+	"dashoo.cn/base_common/business/auth"
+	"dashoo.cn/base_common/business/userRole"
 	"dashoo.cn/base_common/utils"
+	"dashoo.cn/mcs_api_weixin/models"
+	"dashoo.cn/mcs_common/business/userweixin"
 )
 
 // Operations about tokens

+ 3 - 3
backend/src/dashoo.cn/mms_api_weixin/controllers/triggerinfos.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/triggerinfos.go

@@ -6,10 +6,10 @@ import (
 	"strings"
 	"time"
 
-	"dashoo.cn/mms_api/business/actions"
-	"dashoo.cn/mms_api/business/device"
-	"dashoo.cn/mms_api/business/triggerhistory"
 	"dashoo.cn/base_common/utils"
+	"dashoo.cn/mcs_common/business/actions"
+	"dashoo.cn/mcs_common/business/device"
+	"dashoo.cn/mcs_common/business/triggerhistory"
 )
 
 // 报警历史接口说明

+ 8 - 8
backend/src/dashoo.cn/mms_api_weixin/controllers/user.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/user.go

@@ -5,15 +5,15 @@ import (
 	"fmt"
 	"strings"
 
-	"dashoo.cn/business/userRole"
-	"dashoo.cn/mms_api/business/equipment"
-	"dashoo.cn/mms_api/business/organize"
-
-	// "dashoo.cn/mms_api_weixin/business/channels"
-	"dashoo.cn/mms_api_weixin/business/company"
-	"dashoo.cn/mms_api_weixin/business/userweixin"
-	"dashoo.cn/mms_api_weixin/models"
+	"dashoo.cn/base_common/business/userRole"
+	"dashoo.cn/mcs_common/business/equipment"
+	"dashoo.cn/mcs_common/business/organize"
+
 	"dashoo.cn/base_common/utils"
+	// "dashoo.cn/mcs_api_weixin/business/channels"
+	"dashoo.cn/mcs_api_weixin/business/company"
+	"dashoo.cn/mcs_common/business/userweixin"
+	"dashoo.cn/mcs_common/models"
 )
 
 // Operations about Users

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/controllers/weixin.go → backend/src/dashoo.cn/mcs_api_weixin/controllers/weixin.go


+ 22 - 0
backend/src/dashoo.cn/mcs_api_weixin/go.mod

@@ -0,0 +1,22 @@
+module dashoo.cn/mcs_api_weixin
+
+go 1.15
+
+require (
+	dashoo.cn/base_common v0.0.0
+	dashoo.cn/mcs_common v0.0.0
+	github.com/astaxie/beego v1.12.3
+	github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
+	github.com/dgrijalva/jwt-go v3.2.0+incompatible
+	github.com/garyburd/redigo v1.6.2 // indirect
+	github.com/nsqio/go-nsq v1.0.8
+	github.com/silenceper/wechat v0.0.0
+	github.com/smartystreets/goconvey v1.6.4
+	xorm.io/xorm v1.1.2
+)
+
+replace dashoo.cn/base_common => ../../../../../base_dashoo_common/src/dashoo.cn
+
+replace dashoo.cn/mcs_common => ./../mcs_common
+
+replace github.com/silenceper/wechat => ../github.com/silenceper/wechat

+ 141 - 0
backend/src/dashoo.cn/mms_api_weixin/go.sum → backend/src/dashoo.cn/mcs_api_weixin/go.sum

@@ -1,8 +1,11 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
+gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s=
+gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
+github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=
 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
 github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
 github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
@@ -13,17 +16,24 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
 github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/astaxie/beego v1.7.1/go.mod h1:0R4++1tUqERR0WYFWdfkcrsyoVBCG4DgpDGokT3yb+U=
 github.com/astaxie/beego v1.12.3 h1:SAQkdD2ePye+v8Gn1r4X6IKZM1wd28EyUOVQ3PDSOOQ=
 github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM1FkpIA=
+github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ=
+github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394/go.mod h1:Q8n74mJTIgjX4RBBcHnJ05h//6/k6foqmgE45jTQtxg=
 github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
 github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
 github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
+github.com/bradfitz/gomemcache v0.0.0-20160117192205-fb1f79c6b65a/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
+github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737 h1:rRISKWyXfVxvoa702s91Zl5oREZTrR3yv+tXrrX7G/g=
 github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
 github.com/casbin/casbin v1.7.0/go.mod h1:c67qKN6Oum3UF5Q1+BByfFxkwKvhwW57ITjqwtzR1KE=
+github.com/casbin/casbin v1.9.1 h1:ucjbS5zTrmSLtH4XogqOG920Poe6QatdXtz1FEbApeM=
 github.com/casbin/casbin v1.9.1/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=
 github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -35,15 +45,29 @@ github.com/couchbase/gomemcached v0.0.0-20200526233749-ec430f949808/go.mod h1:sr
 github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
 github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
+github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
+github.com/dgrijalva/jwt-go v1.0.2 h1:KPldsxuKGsS2FPWsNeg9ZO18aCrGKujPoWXn2yo+KQM=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
+github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
 github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
 github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
 github.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
+github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk=
 github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
+github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
+github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
+github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM=
+github.com/garyburd/redigo v1.6.2/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
+github.com/gin-gonic/gin v1.1.4/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y=
 github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
@@ -59,9 +83,11 @@ github.com/go-xorm/xorm v0.7.9/go.mod h1:XiVxrMMIhFkwSkh96BW7PACl7UhLtx2iJIHMdmj
 github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v0.0.0-20161117033126-8ee79997227b/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -72,62 +98,96 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
 github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomodule/redigo v1.8.1/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
+github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
 github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=
 github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
 github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
 github.com/jackc/pgx v3.6.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
 github.com/jmoiron/sqlx v1.3.1/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
+github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
+github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/lib/pq v1.10.0 h1:Zx5DJFEYQXio93kgXnQ09fXNiUKsqv4OUEu2UtGcB1E=
 github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/lunny/godbc v0.0.0-20131220142036-57f94ee1eb13 h1:aQopy7KTYTKDFWHzYusiT8lLRIiHECYk2v7VShtkWNE=
 github.com/lunny/godbc v0.0.0-20131220142036-57f94ee1eb13/go.mod h1:8e6WOK6PpJb5JSDf2cutQwrywJw3TimZhvpj8Z3m7F0=
+github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739/go.mod h1:zUx1mhth20V3VKgL5jbd1BSQcW4Fy6Qs4PZvQwRFwzM=
+github.com/mattn/go-isatty v0.0.0-20161123143637-30a891c33c7c/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
+github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
 github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/mediocregopher/radix.v2 v0.0.0-20181115013041-b67df6e626f9 h1:ViNuGS149jgnttqhc6XQNPwdupEMBXqCx9wtlW7P3sA=
 github.com/mediocregopher/radix.v2 v0.0.0-20181115013041-b67df6e626f9/go.mod h1:fLRUbhbSd5Px2yKUaGYYPltlyxi1guJz1vCmo1RQL50=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/nsqio/go-nsq v1.0.8 h1:3L2F8tNLlwXXlp2slDUrUWSBn2O3nMh8R1/KEDFTHPk=
+github.com/nsqio/go-nsq v1.0.8/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU=
 github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
 github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
 github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -137,6 +197,7 @@ github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
@@ -158,31 +219,48 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
 github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
+github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 h1:X+yvsM2yrEktyI+b2qND5gpH8YhURn0k8OCaeRnkINo=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
 github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
 github.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
 github.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=
 github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
+github.com/silenceper/wechat v1.2.6 h1:FED3ko2yD96YD153xIV0I0bDjII4GxWaggjsYKdjQQc=
+github.com/silenceper/wechat v1.2.6/go.mod h1:7Wf0sCqQgJG65zCnl4TcDFk2XYxRCfqwQjg0Cf/lKeM=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
 github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 h1:Jpy1PXuP99tXNrhbq2BaPz9B+jNAvH1JPQQpG/9GCXY=
 github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
+github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
+github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
 github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
+github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
+github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
 github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
+github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
 github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
+github.com/unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8 h1:b/rWs6xu47ewpFN3BZDJ5ppuaPC/yObRC0WJFIlQUZk=
 github.com/unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8/go.mod h1:qu2ZQ/wcC/if2u32263HTVC39PeOQRSmidQk3DuDFQ8=
 github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
@@ -191,10 +269,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -207,13 +289,18 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191125084936-ffdde1057850/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -225,18 +312,33 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80=
 golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
+golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78 h1:M8tBwCtWD/cZV9DZpFYRUgaymAYAr+aIUTWzDaM3uPs=
+golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -253,13 +355,21 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE
 google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
+gopkg.in/go-playground/validator.v8 v8.18.1/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -270,8 +380,39 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+modernc.org/cc/v3 v3.31.5-0.20210308123301-7a3e9dab9009 h1:u0oCo5b9wyLr++HF3AN9JicGhkUxJhMz51+8TIZH9N0=
+modernc.org/cc/v3 v3.31.5-0.20210308123301-7a3e9dab9009/go.mod h1:0R6jl1aZlIl2avnYfbfHBS1QB6/f+16mihBObaBC878=
+modernc.org/ccgo/v3 v3.9.0 h1:JbcEIqjw4Agf+0g3Tc85YvfYqkkFOv6xBwS4zkfqSoA=
+modernc.org/ccgo/v3 v3.9.0/go.mod h1:nQbgkn8mwzPdp4mm6BT6+p85ugQ7FrGgIcYaE7nSrpY=
+modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
+modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
+modernc.org/libc v1.7.13-0.20210308123627-12f642a52bb8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
+modernc.org/libc v1.8.0 h1:Pp4uv9g0csgBMpGPABKtkieF6O5MGhfGo6ZiOdlYfR8=
+modernc.org/libc v1.8.0/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
+modernc.org/mathutil v1.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
+modernc.org/mathutil v1.2.2 h1:+yFk8hBprV+4c0U9GjFtL+dV3N8hOJ8JCituQcMShFY=
+modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
+modernc.org/memory v1.0.4 h1:utMBrFcpnQDdNsmM6asmyH/FM9TqLPS7XF7otpJmrwM=
+modernc.org/memory v1.0.4/go.mod h1:nV2OApxradM3/OVbs2/0OsP6nPfakXpi50C7dcoHXlc=
+modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A=
+modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
+modernc.org/sqlite v1.10.1-0.20210314190707-798bbeb9bb84 h1:rgEUzE849tFlHSoeCrKyS9cZAljC+DY7MdMHKq6R6sY=
+modernc.org/sqlite v1.10.1-0.20210314190707-798bbeb9bb84/go.mod h1:PGzq6qlhyYjL6uVbSgS6WoF7ZopTW/sI7+7p+mb4ZVU=
+modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc=
+modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
+modernc.org/tcl v1.5.0 h1:euZSUNfE0Fd4W8VqXI1Ly1v7fqDJoBuAV88Ea+SnaSs=
+modernc.org/tcl v1.5.0/go.mod h1:gb57hj4pO8fRrK54zveIfFXBaMHK3SKJNWcmRw1cRzc=
+modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk=
+modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+modernc.org/z v1.0.1-0.20210308123920-1f282aa71362/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
+modernc.org/z v1.0.1 h1:WyIDpEpAIx4Hel6q/Pcgj/VhaQV5XPJ2I6ryIYbjnpc=
+modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
 xorm.io/builder v0.3.6 h1:ha28mQ2M+TFx96Hxo+iq6tQgnkC9IZkM6D8w9sKHHF8=
 xorm.io/builder v0.3.6/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU=
+xorm.io/builder v0.3.8 h1:P/wPgRqa9kX5uE0aA1/ukJ23u9KH0aSRpHLwDKXigSE=
+xorm.io/builder v0.3.8/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
 xorm.io/core v0.7.2-0.20190928055935-90aeac8d08eb/go.mod h1:jJfd0UAEzZ4t87nbQYtVjmqpIODugN6PD2D9E+dJvdM=
 xorm.io/core v0.7.3 h1:W8ws1PlrnkS1CZU1YWaYLMQcQilwAmQXU0BJDJon+H0=
 xorm.io/core v0.7.3/go.mod h1:jJfd0UAEzZ4t87nbQYtVjmqpIODugN6PD2D9E+dJvdM=
+xorm.io/xorm v1.1.2 h1:bje+1KZvK3m5AHtZNfUDlKEEyuw/IRHT+an0CLIG5TU=
+xorm.io/xorm v1.1.2/go.mod h1:Cb0DKYTHbyECMaSfgRnIZp5aiUgQozxcJJ0vzcLGJSg=

+ 2 - 2
backend/src/dashoo.cn/mms_api_weixin/main.go → backend/src/dashoo.cn/mcs_api_weixin/main.go

@@ -3,9 +3,9 @@ package main
 import (
 	"github.com/astaxie/beego"
 
-	"dashoo.cn/mms_api_weixin/controllers"
-	_ "dashoo.cn/mms_api_weixin/routers"
 	"dashoo.cn/base_common/utils"
+	"dashoo.cn/mcs_api_weixin/controllers"
+	_ "dashoo.cn/mcs_api_weixin/routers"
 )
 
 func main() {

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/models/token.go → backend/src/dashoo.cn/mcs_api_weixin/models/token.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_mobile/models/user.go → backend/src/dashoo.cn/mcs_api_weixin/models/user.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/root/MP_verify_XIPcHUaYnpL9Y26h.txt → backend/src/dashoo.cn/mcs_api_weixin/root/MP_verify_XIPcHUaYnpL9Y26h.txt


+ 1 - 1
backend/src/dashoo.cn/mms_api_weixin/routers/router.go → backend/src/dashoo.cn/mcs_api_weixin/routers/router.go

@@ -7,7 +7,7 @@ import (
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/plugins/cors"
 
-	"dashoo.cn/mms_api_weixin/controllers"
+	"dashoo.cn/mcs_api_weixin/controllers"
 )
 
 func init() {

+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/favicon-16x16.png → backend/src/dashoo.cn/mcs_api_weixin/swagger/favicon-16x16.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/favicon-32x32.png → backend/src/dashoo.cn/mcs_api_weixin/swagger/favicon-32x32.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/index.html → backend/src/dashoo.cn/mcs_api_weixin/swagger/index.html


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/oauth2-redirect.html → backend/src/dashoo.cn/mcs_api_weixin/swagger/oauth2-redirect.html


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui-bundle.js → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-bundle.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui-bundle.js.map → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-bundle.js.map


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui-standalone-preset.js → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-standalone-preset.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui-standalone-preset.js.map → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui-standalone-preset.js.map


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui.css → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.css


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui.css.map → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.css.map


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui.js → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger-ui.js.map → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger-ui.js.map


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger.json → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger.json


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swagger/swagger.yml → backend/src/dashoo.cn/mcs_api_weixin/swagger/swagger.yml


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/swaggerbat.bat → backend/src/dashoo.cn/mcs_api_weixin/swaggerbat.bat


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/tests/default_test.go → backend/src/dashoo.cn/mcs_api_weixin/tests/default_test.go


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/css/11cea876.583be5cf.css → backend/src/dashoo.cn/mcs_api_weixin/ui2/css/11cea876.583be5cf.css


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/css/21ae6d43.a29fdc71.css → backend/src/dashoo.cn/mcs_api_weixin/ui2/css/21ae6d43.a29fdc71.css


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/css/app.0b2b04a4.css → backend/src/dashoo.cn/mcs_api_weixin/ui2/css/app.0b2b04a4.css


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.5cb7edfc.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.5cb7edfc.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.87284894.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.87284894.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.b00849e0.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.b00849e0.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.adcde98f.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.adcde98f.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bb1e4dc6.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bb1e4dc6.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/KFOmCnqEu92Fr1Mu4mxM.60fa3c06.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/KFOmCnqEu92Fr1Mu4mxM.60fa3c06.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2 → backend/src/dashoo.cn/mcs_api_weixin/ui2/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/beijing.ae484472.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/beijing.ae484472.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/daiji.347a261e.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/daiji.347a261e.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/daiji1.8884973b.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/daiji1.8884973b.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/guzhang.3bdb99a3.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/guzhang.3bdb99a3.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/guzhang1.f1b55c74.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/guzhang1.f1b55c74.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/labsop.25d568fa.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/labsop.25d568fa.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/logo.1520abbe.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/logo.1520abbe.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/mima.c84c5896.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/mima.c84c5896.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/yonghu.434752aa.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yonghu.434752aa.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/yunxing.fc1b784b.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yunxing.fc1b784b.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/img/yunxing1.911242f4.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/img/yunxing1.911242f4.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/index.html → backend/src/dashoo.cn/mcs_api_weixin/ui2/index.html


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/11cea876.b235a504.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/11cea876.b235a504.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/21ae6d43.8372b4b1.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/21ae6d43.8372b4b1.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/3f393755.786ac97b.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/3f393755.786ac97b.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/3ff4b1ec.913af40e.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/3ff4b1ec.913af40e.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/4b47640d.0143f3ac.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/4b47640d.0143f3ac.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/5b964492.8a97552a.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/5b964492.8a97552a.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/app.2439882a.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/app.2439882a.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/runtime.b9b3761c.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/runtime.b9b3761c.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/js/vendor.26204283.js → backend/src/dashoo.cn/mcs_api_weixin/ui2/js/vendor.26204283.js


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/app-logo-128x128.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/app-logo-128x128.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/apple-icon-120x120.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-120x120.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/apple-icon-152x152.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-152x152.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/apple-icon-167x167.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-167x167.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/apple-icon-180x180.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/apple-icon-180x180.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/favicon-16x16.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-16x16.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/favicon-32x32.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-32x32.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/favicon-96x96.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon-96x96.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/favicon.ico → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/favicon.ico


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/icon-128x128.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-128x128.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/icon-192x192.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-192x192.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/icon-256x256.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-256x256.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/icon-384x384.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-384x384.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/icon-512x512.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/icon-512x512.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/ms-icon-144x144.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/ms-icon-144x144.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/icons/safari-pinned-tab.svg → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/icons/safari-pinned-tab.svg


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/images/dianchi_1.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_1.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/images/dianchi_2.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_2.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/images/dianchi_3.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_3.png


+ 0 - 0
backend/src/dashoo.cn/mms_api_weixin/ui2/statics/images/dianchi_4.png → backend/src/dashoo.cn/mcs_api_weixin/ui2/statics/images/dianchi_4.png


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff