kptcwq911 2 vuotta sitten
vanhempi
commit
42d1d5d5e8
62 muutettua tiedostoa jossa 313 lisäystä ja 2642 poistoa
  1. 6 5
      apiserver/service/job.go
  2. 1 1
      cmd/main.go
  3. BIN
      doc/.DS_Store
  4. BIN
      doc/auth/8031271_www.51cow.cn_nginx.zip
  5. 0 14
      doc/baobiao/ss.json
  6. 0 20
      doc/baobiao/ss.sql
  7. 0 35
      doc/baobiao/tt.sql
  8. 0 103
      doc/contract/s.json
  9. 0 12
      doc/eas/eas.md
  10. 0 10
      doc/elec/elec.md
  11. 0 67
      doc/elec/getElecList.sql
  12. 0 161
      doc/elec/insert_electricity.sql
  13. 0 63
      doc/elec/tst.sql
  14. 0 1
      doc/eq/eq.md
  15. 0 1
      doc/eq/eq.sql
  16. 0 171
      doc/eq/getAssetList.sql
  17. 0 15
      doc/eq/loadsql.py
  18. 0 32
      doc/eq/req.py
  19. 0 16
      doc/eq/usql.py
  20. 0 33
      doc/iolupload/ay.sql
  21. 0 184
      doc/iolupload/importDiesel.sql
  22. 0 4
      doc/json/sap-proof-detail.json
  23. 0 11
      doc/json/sap-proof-off.json
  24. 0 1
      doc/md/md.md
  25. 0 17
      doc/md/scrappedEQ.md
  26. 0 5
      doc/md/yunwei.md
  27. 0 17
      doc/outbound/outbound.json
  28. 0 1
      doc/outbound/outbound.sql
  29. 0 2
      doc/part_mana/part.sql
  30. 0 33
      doc/part_mana/part_r.sql
  31. 0 1
      doc/part_mana/purchase.md
  32. 0 75
      doc/part_mana/receive.json
  33. 0 21
      doc/part_mana/reportery.json
  34. 0 5
      doc/part_mana/reportery.sh
  35. 0 99
      doc/plan/geteqList.sql
  36. 0 17
      doc/plan/in.json
  37. 0 62
      doc/plan/out.json
  38. 0 1
      doc/plan/plan.md
  39. 0 2
      doc/plan/plan.sh
  40. 0 8
      doc/plan/plan.sql
  41. 0 16
      doc/plan/upsql.py
  42. 0 11
      doc/py/loadsql.py
  43. 0 12
      doc/py/upsql.py
  44. 0 27
      doc/sh/http.sh
  45. 172 0
      doc/sql/p.json
  46. 16 39
      doc/sql/s.sql
  47. 42 29
      doc/sql/t5.sql
  48. 0 139
      doc/wxload/getRepirsList.sql
  49. 0 1
      doc/wxload/getmaintainappearance.sql
  50. 0 153
      doc/wxload/loadRepirsList.sql
  51. 0 15
      doc/wxload/loadsql.py
  52. 0 3
      doc/wxload/lreq.sh
  53. 0 142
      doc/wxload/psql.sql
  54. 0 35
      doc/wxload/req.py
  55. 0 16
      doc/wxload/tst.json
  56. 0 29
      doc/wxload/tst.sql
  57. 0 16
      doc/wxload/usql.py
  58. 0 29
      doc/wxload/wxload.md
  59. 37 58
      go.mod
  60. 33 544
      go.sum
  61. 1 0
      test/sap.go
  62. 5 2
      test/test.go

+ 6 - 5
apiserver/service/job.go

@@ -10,11 +10,12 @@ import (
 func SapJobInit() {
 	c := cron.New()
 	// 02:00
-	// if _, e := c.AddFunc("00 00 02 * * *", jobMaterial); e != nil {
-	// 	log.Error("jobMaterial", e)
-	// }
-	if _, e := c.AddFunc("30 0/1 6-23 * * ? ", jobTransfer); e != nil {
-		log.Error("transfer", e)
+	if _, e := c.AddFunc("5 5 5 * * ", jobMaterial); e != nil {
+		log.Error("jobMaterial", e)
+	}
+	if _, e := c.AddFunc("1 * * * *", jobTransfer); e != nil {
+		// if _, e := c.AddFunc("@every 1m", jobTransfer); e != nil {
+		log.Error("transfer ", e)
 	}
 	c.Start()
 

+ 1 - 1
cmd/main.go

@@ -37,7 +37,7 @@ import (
 // @BasePath /
 func main() {
 	var path string
-	// path = "/Users/desire/kptdev/xdmy_mod/cmd/"
+	path = "/Users/desire/kptdev/xdmy_mod/cmd/"
 	flag.Parse()
 	setting.Setup(path)
 	dao.Setup()

BIN
doc/.DS_Store


BIN
doc/auth/8031271_www.51cow.cn_nginx.zip


+ 0 - 14
doc/baobiao/ss.json

@@ -1,14 +0,0 @@
-{
-    "name": "geteqclassFeeSum",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "PastureName": [],
-    "DepartmentName": [],
-    "parammaps": {
-        "year": "2022",
-        "month": "05",
-        "eqClassName": ""
-    }
-}

+ 0 - 20
doc/baobiao/ss.sql

@@ -1,20 +0,0 @@
--- select  params,sqlstr from apisql  where sqlname='geteqclassFeeSum';
-
--- select year(receiveTime)  from bigpartuse order  by receiveTime desc  limit 1;
--- select date_format(receiveTime,'%Y-%m')  from bigpartuse  where year(receiveTime)=2022;
-
-show index  from  partuse;
-show index  from  bigpartuse;
-show index  from  pasture;
-show index  from  department;
-show index  from  bigpartapply;
-show index  from  equipment;
-
-bpu.`pastureId`,bpu.`departmentId`
-
-alter table bigpartuse
-add index (`pastureId`),
-add index (`departmentId`);
-
-alter table equipment
-add index (eqClassId)

+ 0 - 35
doc/baobiao/tt.sql

@@ -1,35 +0,0 @@
-SELECT psum,eqcodes,eqClassName,eqClassName typeName,
-ifnull(round(psum/eqcodes,2),0.00) avgsum,pastureName,departmentName
- FROM(
-SELECT
-  ROUND(IFNULL(SUM( pu.`sumPrice` - pu.`quitNumber` * pu.`price`),0),2) psum,
-   COUNT(DISTINCT IF(bpa.`RUCode`='',NULL,bpa.`RUCode`)) eqcodes,
-   COUNT(DISTINCT pu.`bigid`) eqcodes2,
- IFNULL( (SELECT typeName FROM  eqclass WHERE id = e.`eqClassId`),'无类别')eqClassName,
-	p.`name` pastureName,
-	dp.`name` departmentName
-FROM
-  partuse pu
-  INNER JOIN 
-  bigpartuse bpu
-    ON pu.`bigId` = bpu.`id`
-		left join pasture p
-		on p.id =bpu.pastureId
-		left join department dp
-		on dp.id = bpu.departmentId
-   LEFT JOIN `bigpartapply` bpa ON bpa.`applyCode` = bpu.`oddCode`
-   LEFT JOIN equipment e
-   ON (e.`eqCode` = pu.`eqCode` or e.id=pu.eqId)
-WHERE
- bpu.`useType` <> 3 AND
---  date_format(bpu.receiveTime,'%Y-%m') >=concat_ws('-','2022','04')
- date_format(bpu.receiveTime,'%Y-%m') =concat(?,'-',?)
-  AND 
-  (
-      pu.`useTypeV` IN ('维修','保养')
-  )
-  GROUP BY e.`eqClassId`,bpu.`pastureId`,bpu.`departmentId`
-	)tem
-WHERE 
-tem.eqClassName  = ?  OR ? = ''
-order by tem.psum desc,typeName

+ 0 - 103
doc/contract/s.json

@@ -1,103 +0,0 @@
-
-{
-    "name": "providerPactListV2",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "loginid": "3",
-        "pastureName": "磴口牧场",
-        "contractCode": "",
-        "statue": "终止",
-        "stuteSH": "",
-        "providerName": "磴口牧场旧备件",
-        "tab1InputDatetime1": "",
-        "startTime": "",
-        "stopTime": "",
-        "tab1InputDatetime2": "",
-        "SHdateTimeF": "",
-        "SHdateTimeE": "",
-        "SHnums": 2
-    }
-}
-{
-    "name": "providerPactListV2",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "loginid": "3",
-        "pastureName": "磴口牧场",
-        "contractCode": "",
-        "statue": "",
-        "stuteSH": "",
-        "providerName": "磴口牧场旧备件",
-        "tab1InputDatetime1": "",
-        "startTime": "",
-        "stopTime": "",
-        "tab1InputDatetime2": "",
-        "SHdateTimeF": "",
-        "SHdateTimeE": "",
-        "SHnums": 2
-    }
-}
-{
-    "code": 200,
-    "data": {
-        "code": 0,
-        "list": [
-            {
-                "SHdateTime": "2022-08-02",
-                "SHnums": 0,
-                "contractCode": "BJ0022020030",
-                "creatorId": 4741,
-                "creatorMan": "谢爽",
-                "creatorTime": "2022-02-25",
-                "flag": 535,
-                "id": 547082,
-                "isZeroStock": 0,
-                "pastureId": 541,
-                "pastureName": "磴口牧场",
-                "pastureName2": "磴口牧场",
-                "providerId": 2801,
-                "providerName": "磴口牧场旧备件",
-                "remark": "把前期备件做入库",
-                "startTime": "2022-02-01",
-                "statue": 0,
-                "statued": "终止",
-                "stopTime": "2023-02-01",
-                "stopTimeHis": "2023-02-01"
-            },
-            {
-                "SHdateTime": "2022-02-25",
-                "SHnums": 0,
-                "contractCode": "BJ0022020030",
-                "creatorId": 3,
-                "creatorMan": "系统管理员",
-                "creatorTime": "2022-02-25",
-                "flag": 535,
-                "id": 546610,
-                "isZeroStock": 0,
-                "pastureId": 541,
-                "pastureName": "磴口牧场",
-                "pastureName2": "磴口牧场",
-                "providerId": 2801,
-                "providerName": "磴口牧场旧备件",
-                "remark": "把前期备件做入库",
-                "startTime": "2022-02-01",
-                "statue": 0,
-                "statued": "终止",
-                "stopTime": "2023-02-01",
-                "stopTimeHis": "2023-02-01"
-            }
-        ],
-        "message": "ok",
-        "pageNum": 1,
-        "pageSize": 10,
-        "pages": 1,
-        "total": 2
-    },
-    "msg": "ok"
-}

+ 0 - 12
doc/eas/eas.md

@@ -1,12 +0,0 @@
- https://eam.modernfarming.cn:8000/authdata/EasSync
- EASBillSync
- {"typeIn":"5","billCode":"470605"}
- CheckEASWebServiceParts
- EASWebServiceLogin
-{
-    "code": 200,
-    "data": "eas登录失败",
-    "msg": "fail"
-}
-
-Post "http://192.168.61.23:6888/ormrpc/services/EASLogin?wsdl": read tcp 26.26.26.1:51386->192.168.61.23:6888: read: connection reset by peer

+ 0 - 10
doc/elec/elec.md

@@ -1,10 +0,0 @@
-https://tmrwatch.cn:8082/authdata/ImportExcel
-
-name: insertElecsMeasure
-importParams: 牧场,表名称,表编号,上次抄表日期,上次值,抄表日期,用量,本次值,单价,录入人,备注
-sheetname: SheetJS
-file: (二进制)
- call insert_electricity(?,?,?,?,?,?,?,?,?,?,?,?)
-
- {"name":"getElecList","page":1,"offset":1,"pagecount":100,"returntype":"Map","parammaps":{"formName":"","formNumber":"","formType":"","pastureName":"塞一牧场","departName":"","createDate":""}}
- importDiesel

+ 0 - 67
doc/elec/getElecList.sql

@@ -1,67 +0,0 @@
-SELECT
-    DATE_FORMAT(lastinput.date, '%Y-%m-%d') as dateFormat,
-    lastinput.*,
-    e.empname putName,
-    m.lastAmount aAmount,
-    m.startAmount,
-    m.useType,
-    p.name pastureName,
-    de.name departName,
-    p.id AS pastureId2,
-    m.id AS measureId2,
-    m.Multiple,
-    m.Multiple rate,
-    lastinput.elecConsumption consumption,
-    m.meterNumber AS formNumber,
-    m.meterName AS formName,
-    e.empname employeName1,
-    lastinput.price price1
-FROM
-    measure m
-    LEFT JOIN (
-        SELECT
-            *
-        FROM
-            electricity
-        WHERE
-            id =(
-                SELECT
-                    MAX(w.`id`) id
-                FROM
-                    electricity w
-                WHERE
-                    electricity.measureId = w.measureId
-            )
-    ) lastinput ON lastinput.measureId = m.id
-    INNER JOIN pasture p ON m.pastureId = p.id
-    left JOIN department de ON m.departmentId = de.id
-    LEFT JOIN emp e ON e.id = lastinput.`employeId`
-where
-    (
-        lastinput.elecName like concat("%", ?, "%")
-        or ? = ''
-    )
-    and (
-        lastinput.elecNumber like concat("%", ?, "%")
-        or ? = ''
-    )
-    and (
-        m.useType like concat("%", ?, "%")
-        or ? = ''
-    )
-    and (
-        p.name = ?
-        or ? = '现代牧业'
-    )
-    and (
-        de.name = ?
-        or ? = ''
-    )
-    and (
-        date_format(lastinput.date, '%Y-%m-%d') = ?
-        or ? = ''
-    )
-    and m.meterType = '电表'
-    and lastinput.isDel = '0'
-order by
-    m.meterNumber

+ 0 - 161
doc/elec/insert_electricity.sql

@@ -1,161 +0,0 @@
-CREATE DEFINER=`eq`@`%` PROCEDURE `insert_electricity`(
-  pastureIN VARCHAR (100),
-  meterNameIN VARCHAR (50),
-  meterNumberIN VARCHAR (50),
-  lastTimeIN VARCHAR (100),
-  lastAmountINs VARCHAR (50),
-  NowTimeIN VARCHAR (255),
-  useAmounts VARCHAR (255),
-  NowAmountINs VARCHAR(50) ,
-  priceIN DECIMAL(10,2),
-  empIN VARCHAR (100),
-  noteIN VARCHAR (255),
-  jwt_username VARCHAR (255)
-)
-    SQL SECURITY INVOKER
-label:BEGIN
-  DECLARE employeeIdS,
-  pastureIdS,
-  measureIdS,
-  meterIdS,
-  lastendAmountS INT (11);
-  DECLARE _lastdate,measureAmountS,lastAmountIN,
-  measureDateS,
-  inputTime,rates varchar (100);
-
- DECLARE useAmount,NowAmountIN DECIMAL (15, 2);
- DECLARE msg1 TEXT;
-   DECLARE code1 CHAR(5) DEFAULT '00000';
-   DECLARE t_error INTEGER DEFAULT 0;
-  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
-  BEGIN
-      -- 获取异常code,异常信息
-      GET DIAGNOSTICS CONDITION 1
-      code1 = RETURNED_SQLSTATE, msg1 = MESSAGE_TEXT;
-   END;
-
-  #开启事务
-   START TRANSACTION;
-     #日期格式化
-   IF(LENGTH(NowTimeIN)=8)
- THEN
-   SELECT CONCAT('20',SUBSTRING(NowTimeIN,7,2),'-',LEFT(NowTimeIN,2),'-',SUBSTRING(NowTimeIN,4,2)) INTO NowTimeIN;
- END IF;
- IF(LENGTH(lastTimeIN)=8)
-   THEN
-   SELECT CONCAT('20',SUBSTRING(lastTimeIN,7,2),'-',LEFT(lastTimeIN,2),'-',SUBSTRING(lastTimeIN,4,2)) INTO lastTimeIN;
-  END IF;
-  #SELECT CONCAT('20',SUBSTRING(NowTimeIN,7,2),'-',LEFT(NowTimeIN,2),'-',SUBSTRING(NowTimeIN,4,2)) INTO NowTimeIN;
-  #SELECT CONCAT('20',SUBSTRING(lastTimeIN,7,2),'-',LEFT(lastTimeIN,2),'-',SUBSTRING(lastTimeIN,4,2)) INTO lastTimeIN;
-
-  IF (useAmounts='' )
-   THEN
-   SELECT '用量必须输入' msg;
-    LEAVE label;
-   END IF ;
-
-
-  #判断输入的数据
-
-  IF (DATE_FORMAT(NowTimeIN, '%Y-%m-%d') > DATE_FORMAT(NOW(), '%Y-%m-%d') )
-  THEN
-  SELECT
-    '本次抄表日期不可大于当前日期' msg;
-    LEAVE label;
-  END IF ;
-
-
-  #获取牧场id
-  SELECT
-    p.id INTO pastureIdS
-  FROM
-    pasture p
-  WHERE p.`name` = pastureIN LIMIT 1;
-
-  #获取计量表id
-  SELECT
-    m.id , DATE_FORMAT(m.endDate, '%Y-%m-%d'),m.endAmount,m.Multiple
-    INTO measureIdS,measureDateS,measureAmountS,rates
-  FROM
-    measure m
-    left JOIN electricity w ON w.measureId = m.id
-  WHERE m.meterNumber = meterNumberIN AND m.meterType = '电表' and m.meterName=meterNameIN and m.pastureId=pastureIdS AND m.isDel = '0' LIMIT 1;
-
-  IF (measureIdS IS NULL)
-  THEN
-  SELECT
-    '计量表不存在' msg;
-    LEAVE label;
-  END IF ;
-
-
- #获取录入人id
-  SELECT
-    e.id INTO employeeIdS
-  FROM
-    emp e
-  WHERE e.`empname` = empIN limit 1;
-
-
-
-
-
-  INSERT INTO electricity (
-    elecNumber,
-    elecName,
-    elecConsumption,
-    price,
-    sumPrice,
-    employeId,
-    `DATE`,
-    note,
-    pastureId,
-    measureId
-  )
-  VALUES
-    (
-      meterNumberIN,
-      meterNameIN,
-      useAmounts,
-      priceIN,
-      (useAmounts * priceIN*rates),
-      employeeIdS,
-      NowTimeIN,
-      noteIN,
-      pastureIdS,
-      measureIdS
-    )
-    ON DUPLICATE KEY
-    UPDATE
-      elecConsumption = useAmounts, sumPrice= (useAmounts * priceIN*rates),note=noteIN,
-      employeId = employeeIdS,price=priceIN;
-
-      /*SELECT id INTO meterIdS FROM electricity WHERE measureId = measureIdS AND `DATE` = NowTimeIN limit 1;
-
-   if (meterIdS is null)
-   then
-   SELECT
-    '插入水表记录失败,请重试' msg;
-    LEAVE label;
-   end if; */
-  #修改计量设备表中的上次值
-  UPDATE
-    measure
-  SET
-    lastDate = endDate,
-    lastAmount = endAmount,
-    endDate = NowTimeIN,
-    endAmount = NowAmountIN,
-    lastRecodeId = meterIdS
-  WHERE id = measureIdS;
-
-  IF code1 = '00000' THEN
-    COMMIT;
-   SELECT
-    'success' msg;
-  ELSE
-     ROLLBACK;
-   SELECT
-    msg1 msg;
-  END IF;
-END

+ 0 - 63
doc/elec/tst.sql

@@ -1,63 +0,0 @@
--- SELECT
---     m.id,
---     DATE_FORMAT(m.endDate,  '%Y-%m-%d'),
---     m.endAmount,
---     m.Multiple 
---     -- INTO measureIdS,
---     -- measureDateS,
---     -- measureAmountS,
---     -- rates
--- FROM
---     measure m
---     left JOIN electricity w ON w.measureId = m.id
--- WHERE
---     m.meterNumber = '02.01'
---     AND m.meterType = '电表'
---     and m.meterName = '牛舍'
---     and m.pastureId = 52
---     AND m.isDel = '0';
--- 牧场,表名称,表编号,上次抄表日期,上次值,
--- 抄表日期,用量,本次值,单价,录入人,
--- 备注
--- (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
--- 塞一牧场	牛舍	02.01	2022-6-5	12891.8  	2022-7-1	3550.2	3550.2	0.33	周志国
--- 消毒室 02.14
---  call insert_electricity
--- (
--- '塞一牧场',
--- '消毒室',
--- '02.14',
--- '2022-06-05',
--- '12891.8',
--- '2022-07-01',
--- '185',
--- '3238.2',
--- '0.33',
--- '周志国',
--- '',
--- '');
--- call insert_electricity 
--- (
--- '塞一牧场',
--- '牛舍',
--- '02.01',
--- '2022-06-05',
--- '12891.8',
--- '2022-07-01',
--- '12891.8',
--- '12891.8',
--- '0.33',
--- '周志国',
--- '',
--- ''
--- );
--- SELECT * from electricity where date = '2022-07-01';
--- show create table electricity;
--- show index from electricity;
--- SELECT id from measure limit  10;
-SELECT sqlstr from apisql where sqlname ='importDiesel';
-show create PROCEDURE importDiesel;
--- SELECT measureid  from electricity 
--- where pastureId =52
--- order by date desc limit 10;
--- drop PROCEDURE if exists `eq`.`importDiesel`;

+ 0 - 1
doc/eq/eq.md

@@ -1 +0,0 @@
-{"name":"getAssetList","page":1,"offset":1,"pagecount":10,"returntype":"Map","parammaps":{"eqCode":"","eqName":"","departmentId":"","pastureId":"","pastureName":"现代牧业","status":"","inputDatetime1":"","inputDatetime2":"","startTime2":"","stopTime2":"","inputDatetime3":"","startTime3":"","stopTime3":"","warning":"","eqClassId":"","d1":""}}

+ 0 - 1
doc/eq/eq.sql

@@ -1 +0,0 @@
-describe equipment;

+ 0 - 171
doc/eq/getAssetList.sql

@@ -1,171 +0,0 @@
- SELECT
- p.`name` pastureName,
--- CONCAT('uploads/thumbnail/',ep.`picpath`,'/',ep.`newpicname`) picpath,
-'test' picpath,
-  CONCAT('uploads/image/',ep.`picpath`,'/',ep.`newpicname`) srcpath,
-a.picpath picId,
--- a.SHStatus,
-  a.id,
-  a.eqName
-  a.specification,
-  a.eqCode,
-  a.assetCode,
-  di.`value` status,
-  di.id statusId,
-  a.purpose,
-  a.financeCode,
-  a.id assetId,
-  a.changeStatue,
-  a.subtractvalue,
-  a.salvage,
-  a.upkeepgrade upkeepgradeId,
-di1.value upkeepgrade,
-  ass.id eqClassId,
-  ass.typeName,
-  ass.typeName eqClassName,
-  p.id pastureId,
-  a.yuanzhi,
-  a.baseHours,
-  pr.providerName,
-  pr.id providerId,
-  a.inputUser,
-  em1.empName inputUserName,
-  de.id deptId,
-  de.name deptName,
-  DATE_FORMAT(
-    a.inputDatetime ,
-    '%Y-%m-%d'
-  ) lrTime,
-  IFNULL(em2.empname, a.employeName) employeName,
-  em2.id employeId,
-  '查看设备卡片' assetcard,
-  a.yearMaintainCost,
- a.yearUpkeepCost,
-   DATE_FORMAT(a.purchaseDate , '%Y-%m-%d'
-  )purchaseDate ,
-  DATE_FORMAT(a.entranceDate,'%Y-%m-%d') entranceDate,
- DATE_FORMAT(
-    a.inputDatetime,
-    '%Y-%m-%d'
-  )  inputDatetime,
-  if(a.brand='', br.brandName,a.brand)brandName,
-  br.id brandId,
-	ROUND((DATEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d'),DATE_FORMAT(a.entranceDate,'%Y-%m-%d'))+1)/365,2)  serviceDuration,#使用时长单位年
-	ROUND((DATEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d'),DATE_FORMAT(a.entranceDate,'%Y-%m-%d'))+1)/365/a.depreciation*100 ,2)  utilizationRate,  #使用率
-	 IF(NOW()<DATE_SUB(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR),INTERVAL 3 MONTH),0,IF(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR)>NOW() AND NOW()>=DATE_SUB(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR),INTERVAL 3 MONTH),1,2)) warning,#报警0正常1报警2超期使用
-a.depreciation,
-DATE_FORMAT(a.leaveDate , '%Y-%m-%d'
-  )  bfDate,#报废/调出日期
-DATE_FORMAT(a.chargeDate,   '%Y-%m-%d'
-  )  spDate #审批日期
-FROM
-  equipment a
-  LEFT JOIN pasture p
-    ON a.pastureId = p.id
-  LEFT JOIN department de
-    ON a.departmentId = de.id
-  LEFT JOIN eqclass ass
-    ON a.eqClassId = ass.id
-  LEFT JOIN provider pr
-    ON a.proId = pr.id
-  LEFT JOIN brand br
-    ON a.brandId = br.id
-  LEFT JOIN dictlist di
-    ON a.`status` = di.id
-LEFT JOIN dictlist di1
-    ON a.`upkeepgrade` = di1.id
-LEFT JOIN emp em1
-    ON a.inputUser= em1.id
-  LEFT JOIN emp em2
-    ON a.employeeId = em2.id
-LEFT JOIN eq_pic ep
-    ON ep.id = a.picpath
-WHERE
-(
-    a.pastureId = ?
-    OR ? in ('18','')
-  )
-AND (
-    a.eqCode LIKE CONCAT('%', ?, '%')
-    OR ? = ''
-  )
-AND (
-    a.financeCode LIKE CONCAT('%', ?, '%')
-    OR ? = ''
-  )
-  AND (
-    a.assetCode LIKE CONCAT('%', ?, '%')
-    OR ? = ''
-  )
-  AND (
-    p.name = ?
-    OR ? = '现代牧业'
-   or ? = ''
-  )
-  AND (
-    a.status =?
-    OR ? = ''
-  )
-  AND (
-    a.departmentId=?
-    OR ? = ''
-  )
-  AND (
-    (a.inputDatetime>= ? AND a.inputDatetime <= ?)
-    OR ? = ''
-  )
-	AND (
-		a.eqClassId=?
-		OR ? = ''
-	)
-	AND(
-
-		di.`value`=?
-		OR ? = ''
-	)
-	and(
-	IF (?=1,di.`value`='正常',di.`value`=? or ? ='') or ?=''
-	)
-	 and(
-(select case ? when '0' THEN a.entranceDate when '1' THEN DATE_SUB(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR),INTERVAL 3 MONTH) WHEN '2' THEN DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR)  END aa) <= now()  or ?='' )
-
-and
-(now()<=(select case ? when '0' THEN DATE_SUB(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR),INTERVAL 3 MONTH)  when '1' THEN DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR) WHEN '2' THEN '2104-07-06' END aa)  or ?='' )
-
-and
-
-(now()>=(select case ? when '0' THEN a.entranceDate when '1' THEN DATE_SUB(DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR),INTERVAL 3 MONTH) WHEN '2' THEN DATE_ADD(a.entranceDate,INTERVAL a.depreciation YEAR) END aa) or ?='' )
-and
-(
-	UNIX_TIMESTAMP(a.leaveDate) > UNIX_TIMESTAMP(DATE_SUB(?,INTERVAL 1 DAY)) or ?=''
-)
-and
-(
-	UNIX_TIMESTAMP(a.leaveDate) < UNIX_TIMESTAMP(DATE_ADD(?,INTERVAL 1 DAY)) or ? =''
-)
-and
-(
-	UNIX_TIMESTAMP(a.purchaseDate) > UNIX_TIMESTAMP(DATE_SUB(?,INTERVAL 1 DAY)) or ?=''
-)
-and
-(
-	UNIX_TIMESTAMP(a.purchaseDate) < UNIX_TIMESTAMP(DATE_ADD(?,INTERVAL 1 DAY)) or ?=''
-)
-
-
-and
-(
-	UNIX_TIMESTAMP(a.chargeDate) > UNIX_TIMESTAMP(DATE_SUB(?,INTERVAL 1 DAY)) or ?=''
-)
-
-and
-(
-	UNIX_TIMESTAMP(a.chargeDate) < UNIX_TIMESTAMP(DATE_ADD(?,INTERVAL 1 DAY)) or ?=''
-)and
-(
-    a.`eqName` LIKE CONCAT(?, '%')
-    OR ? = ''
-  )
-
-  AND a.`enable` = '1' and (a.SHStatus = 3 or a.SHStatus=1)
-ORDER BY a.assetCode ASC

+ 0 - 15
doc/eq/loadsql.py

@@ -1,15 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root",
-                     passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-sqlname = input("请输入sqlname:")
-
-cursor = db.cursor()
-err = cursor.execute("select sqlstr from apisql where sqlname =%s", sqlname)
-sqlstr = cursor.fetchone()
-write_file = open("%s.sql" % (sqlname), "w",
-                  encoding="utf-8").write(sqlstr[0])
-
-db.close()

+ 0 - 32
doc/eq/req.py

@@ -1,32 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import requests
-
-# name ={"username":"00611","password":"123456"}
-# r = requests.post('https://tmrwatch.cn:8082/auth',data=name)
-
-param ={
-    "name": "getRepirsList",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "pastureName": "现代牧业",
-        "repairCode": "",
-        "eqName": "",
-        "eqCode": "",
-        "orderStatue": "",
-        "SHStatue": "",
-        "inputDatetime": "",
-        "loginId": "3",
-        "menu": "Repair",
-        "logindeptId": "20",
-        "loginpastureId": "18"
-    }
-}
-token ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1NzExNzM5NiwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.cN1hsBrVn_1b6Bq5FKOluvJCRuXlNKEccMe9pbWbREI"
-head ={"token":token}
-r=requests.post("https://tmrwatch.cn:8082/authdata/GetDataByName",data=param,headers=head)
-print(r.text)
-print(r.json())

+ 0 - 16
doc/eq/usql.py

@@ -1,16 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root",
-                     passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-cursor = db.cursor()
-sqlname = input("请输入sqlname:")
-
-sqlstr = open("%s.sql" % (sqlname), "r", encoding="utf-8").read()
-sql = "update apisql set sqlstr =%s where sqlname =%s"
-err = cursor.execute(sql, (sqlstr, sqlname))
-print(err)
-db.commit()
-
-db.close()

+ 0 - 33
doc/iolupload/ay.sql

@@ -1,33 +0,0 @@
-  -- select * from  apisql where sqlname ='getAssetList';
-  -- select * from  pasture where name='合肥牧场';
--- SELECT e.id FROM  equipment e  WHERE   e.eqCode = '11.SYCYCC005'
-  -- and e.pastureId = 199
-  -- and e.eqname = '3吨柴油液力叉车';
-
-SELECT
-  eqname,e.eqCode
-FROM
-  equipment e
-WHERE
- e.pastureId = 199
-  and e.eqname in
-(
-'3吨柴油液力叉车',
-'3吨柴油液力叉车',
-'合力叉车',
-'装载机',
-'斯普瑞自走式搅拌车',
-'斯普瑞自走式搅拌车',
-'犊牛加奶车',
-'辉达劳务',
-'合力叉车',
-'合力叉车',
-'3吨柴油液力叉车',
-'合力叉车',
-'场区种植',
-'辉达劳务',
-'装载机',
-'辉达劳务',
-'辉达劳务',
-'合力叉车'
-);

+ 0 - 184
doc/iolupload/importDiesel.sql

@@ -1,184 +0,0 @@
- CREATE DEFINER=`eq`@`%` PROCEDURE `importDiesel`(
-  pastureIN VARCHAR (100),
-  cardNumberIN VARCHAR (50),
-  eqNameIN VARCHAR (50),
-  eqCodeIN VARCHAR (50),
-  NowTimeIN VARCHAR (255),
---   NowAmountIN DECIMAL(10,2) ,
---   priceIN DECIMAL(10,2),
-  NowAmountIN VARCHAR (255) ,
-  priceIN VARCHAR (255),
-
-  empIN VARCHAR (100),
-  empLIN VARCHAR (100),
-  oliClassIN VARCHAR (100),
-  noteIN varchar (255),
-  userNameIN VARCHAR (255)
-)
-    SQL SECURITY INVOKER
-label:BEGIN
-  DECLARE employeeIdS,
-  employeeLIdS,
-  pastureIdS,
-  measureIdS,
-  meterIdS,
-  lastendAmountS INT (11);
-  DECLARE _lastdate,
-  measureDateS,
-  deptIdS,
-  eqIdS,
-  eqIdx,
-  inputTime varchar (100);
-
-  DECLARE measureAmountS DECIMAL (10, 2);
-  DECLARE msg1 TEXT;
-   DECLARE code1 CHAR(5) DEFAULT '00000';
-   DECLARE t_error INTEGER DEFAULT 0;
-  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
-  BEGIN
-      -- 获取异常code,异常信息
-      GET DIAGNOSTICS CONDITION 1
-      code1 = RETURNED_SQLSTATE, msg1 = MESSAGE_TEXT;
-   END;
-
-  #开启事务
-   START TRANSACTION;
-
-  #SELECT CONCAT('20',SUBSTRING(NowTimeIN,7,2),'-',LEFT(NowTimeIN,2),'-',SUBSTRING(NowTimeIN,4,2)) INTO NowTimeIN;
-  #SELECT CONCAT('20',SUBSTRING(lastTimeIN,7,2),'-',LEFT(lastTimeIN,2),'-',SUBSTRING(lastTimeIN,4,2)) INTO lastTimeIN;
-
-    IF (NowAmountIN is null or NowAmountIN='' )
-	 then
-		select '0' into NowAmountIN;
-	 end if ;
-     #获取牧场id
-  SELECT
-    p.id INTO pastureIdS
-  FROM
-    pasture p
-  WHERE p.`name` = pastureIN;
-
-  IF (pastureIdS IS NULL)
-  THEN
-  SELECT
-    '牧场不存在' msg;
-    LEAVE label;
-  END IF ;
-  #获取油卡id
-  SELECT
-    O.id,O.eqId
-    INTO measureIdS,eqIdx
-  FROM
-    oilcard O
-  WHERE O.cardCode = cardNumberIN and O.pastureId = pastureIdS LIMIT 1;
-
-  IF (measureIdS IS NULL)
-  THEN
-  SELECT
-    '油卡不存在' msg;
-    LEAVE label;
-  END IF ;
-
-
-
-  #获取设备id
-  SELECT
-    e.id,e.departmentId
-    INTO eqIdS,deptIdS
-  FROM
-    equipment e
-  WHERE e.eqCode = eqCodeIN and e.pastureId = pastureIdS and e.eqname =eqNameIN;
-
-  IF (eqIdS IS NULL)
-  THEN
-  SELECT
-    '设备不存在' msg;
-    LEAVE label;
-  END IF ;
-
-
- IF (eqIdS <> eqIdX)
-  THEN
-  SELECT
-    '设备与油卡不匹配' msg;
-    LEAVE label;
-  END IF ;
- #获取录入人id
-  SELECT
-    e.id INTO employeeIdS
-  FROM
-    emp e
-  WHERE e.`empname` = empIN AND e.pastureId = pastureIdS;
-
-  IF(LENGTH(NowTimeIN)=8)
- THEN
-   SELECT CONCAT('20',SUBSTRING(NowTimeIN,7,2),'-',LEFT(NowTimeIN,2),'-',SUBSTRING(NowTimeIN,4,2)) INTO NowTimeIN;
- END IF;
-
-   IF (DATE_FORMAT(NowTimeIN, '%Y-%m-%d') > DATE_FORMAT(NOW(), '%Y-%m-%d') )
-  THEN
-  SELECT
-    '本次抄表日期不可大于当前日期' msg;
-    LEAVE label;
-  END IF ;
-
-
-
-
-
-  INSERT INTO diesel (
-    pastureId,
-    deptId,
-    eqId,
-    eqCode,
-    oilcardId,
-    cardNumber,
-    oilClass,
-    oilAmount,
-    nowPrice,
-    price,
-    empId,
-    inputId,
-    selTime,
-    note
-  )
-  VALUES
-    (
-      pastureIdS,
-      deptIdS,
-      eqIdS,
-      eqCodeIN,
-      measureIdS,
-      cardNumberIN,
-      oliClassIN,
-			    CAST( NowAmountIN as decimal(20,2) ),
-     CAST( NowAmountIN*priceIN as decimal(10,2))  ,
---       NowAmountIN,
---       NowAmountIN*priceIN,
-      priceIN,
-      empLIN,
-      employeeIdS,
-      NowTimeIN,
-      noteIN
-    )
-    ON DUPLICATE KEY
-    UPDATE
-      note = noteIN;
-
-  #修改计量设备表中的上次值
-  UPDATE
-    oilcard
-  SET
-    lastcardAmount = cardAmount,
-    cardAmount = cardAmount-CAST( NowAmountIN*priceIN as decimal(10,2))
-  WHERE id = measureIdS;
-
-   IF code1 = '00000'
-  THEN COMMIT;
-  SELECT
-    'success' msg;
-  ELSE ROLLBACK;
-  SELECT
-    msg1 msg;
-  END IF;
-END

+ 0 - 4
doc/json/sap-proof-detail.json

@@ -1,4 +0,0 @@
-{
-    "OrderNumber": "CK00220822002",
-    "NumberType": 1
-}

+ 0 - 11
doc/json/sap-proof-off.json

@@ -1,11 +0,0 @@
-{
-    "ProofCode": "4900000052",
-    "ProofYear": "2022",
-    "ChargeDate": "2022-08-22",
-    "OrderNumber": "CK00220822002",
-    "OrderNumberId": 3854,
-    "NumberType": 3,
-    "RowsNumber": [
-        1
-    ]
-}

+ 0 - 1
doc/md/md.md

@@ -1 +0,0 @@
-- model url :https://5d2ji7.axshare.com/#id=rcowpx&p=%E7%8E%B0%E4%BB%A3%E7%89%A7%E4%B8%9A%E5%B9%B3%E5%8F%B0&g=1

+ 0 - 17
doc/md/scrappedEQ.md

@@ -1,17 +0,0 @@
-# add scrapped equipment out of storage
-## page
-- insert page
-1. query part list,not change
-{"name":"getPartsListCK","page":1,"offset":1,"pagecount":20,"returntype":"Map","parammaps":{"pastureId":"18"}}
-2. query part name  or code,not change
-{"name":"geteqbyNameCode","page":1,"offset":1,"pagecount":10,"returntype":"Map","parammaps":{"pastureId":"18"}}
-- save
-1. https://tmrwatch.cn:8082/authdata/ExecDataByConfig
-- type:useType=4 ,change
-
-|||
-|----|----|
-|insertBigPartUse |bigpartuse|出库单
-|insertSpotList|
-|insertPartUse|partuse|出库单子表
-|insertPartUseRepertory|part_repertory|更新库存

+ 0 - 5
doc/md/yunwei.md

@@ -1,5 +0,0 @@
-# xdmy
-- 
-{"name":"getPartApplyByBig","returntype":"Map","parammaps":{"id":184063,"pastureId":"17"}}
-184063
-{"name":"getpartapplyListBybig","returntype":"Map","parammaps":{"id":184063}}

+ 0 - 17
doc/outbound/outbound.json

@@ -1,17 +0,0 @@
-{
-    "name": "getApplyCode",
-    "returntype": "Map",
-    "parammaps": {
-        "pastureId": "199",
-        "applyCode": "LY11220726010"
-    }
-}
-
-{
-    "name": "getPartApplyByBig",
-    "returntype": "Map",
-    "parammaps": {
-        "id": 191123,
-        "pastureId": "199"
-    }
-}

+ 0 - 1
doc/outbound/outbound.sql

@@ -1 +0,0 @@
-select sqlstr from apisql where sqlname ='getApplyCode';

+ 0 - 2
doc/part_mana/part.sql

@@ -1,2 +0,0 @@
--- select params,sqlstr from apisql where  sqlname  ='getBigbuydetailList';
--- select *  from bigbuydetail where  buyeCode='CG01220721002';

+ 0 - 33
doc/part_mana/part_r.sql

@@ -1,33 +0,0 @@
-  select   pr.id, pr.partCode,pr.reportery ,p.id,ps.enable ,bc.stopTime ,bc.statue ,c.enable ,bc.isZeroStock ,bc.SHStatus ,pr.contractId
-  from 
--- ,bc.contractCode ,p.name,bpl.laidCode ,pl.id ,pl.storageAmount  ,pl.price ,pl.pastureId ,pl.contractId 
--- update
-part_repertory pr 
-left join warehouse w on w.id =pr.locationId 
-left join contract c on c.id=pr.contractId 
-left join bigcontract bc on bc.id =c.bigId 
-left join pasture p on (p.id=pr.pastureId or p.id=w.pastureId )
-left join parts ps on ps.id =pr.partId 
--- left join partlaid pl on ( pl.partCode =pr.partCode  and )
--- left join bigpartlaid bpl on bpl.id =pl.bigId 
--- set reportery =9
-where p.name ='合肥牧场'
---  and bc.contractCode  like 'BJ0022030004%'
-and pr.partCode ='04.04.18.06.000177'
--- and pr.price =420
--- and reportery =9
-and pr.location ='C-01-03'
--- and bpl.laidCode ='RK08220408010'
-
-
-  -- select pa.id, pa.partCode,  pa.locationId ,bpa.id,bpa.applyCode 
-  -- ,pr.locationId ,pr.reportery 
-  --   from partapply pa
-  --   join bigpartapply bpa   on bpa.id= pa.bigId 
-  --       join part_repertory pr 
-  --   on pr.partCode  =pa.partCode 
-  --   where bpa.applyCode in ('LY08220701004', 'LY08220701005',   'LY08220701006')
-  --   and  (pr.pastureId =17 or
-  --   	(select pastureId from warehouse w where w.id =pr.locationId)=17
-  --   )
-  --   and pr.reportery >0

+ 0 - 1
doc/part_mana/purchase.md

@@ -1 +0,0 @@
-{"name":"getBigbuydetailList","page":1,"offset":1,"pagecount":10,"returntype":"Map","parammaps":{"providerName":"","buyeCode":"CG01220721002","inputDatetime":"","pastureName":"马鞍山牧场","statu":""}}

+ 0 - 75
doc/part_mana/receive.json

@@ -1,75 +0,0 @@
-{
-    "code": 200,
-    "data": {
-        "code": 0,
-        "list": [
-            {
-                "amount": "10.00",
-                "brandId": 8308,
-                "brandName": "北京京东",
-                "eqCode": "SCL001",
-                "eqName": "水处理设备",
-                "id": 247472,
-                "locationId": 12753,
-                "note": "",
-                "partCode": "04.03.04.01.000010",
-                "partId": 406986,
-                "partName": "4.8级外六角螺丝",
-                "pastureId": 31,
-                "price": "2.518",
-                "providerId": 1975,
-                "reportery": "20.00",
-                "specification": "M12*60",
-                "sumPrice": "25.18",
-                "unit": "套",
-                "useAmount": "0.00"
-            },
-            {
-                "amount": "2.00",
-                "brandId": 2083,
-                "brandName": "通用",
-                "eqCode": "SCL001",
-                "eqName": "水处理设备",
-                "id": 247473,
-                "locationId": 12716,
-                "note": "",
-                "partCode": "04.03.04.03.000439",
-                "partId": 410577,
-                "partName": "橡胶垫",
-                "pastureId": 18,
-                "price": "0.65",
-                "providerId": 2708,
-                "reportery": "2.00",
-                "specification": "Φ100",
-                "sumPrice": "1.3",
-                "unit": "个",
-                "useAmount": "0.00"
-            },
-            {
-                "amount": "1.00",
-                "brandId": 8308,
-                "brandName": "北京京东",
-                "eqCode": "SCL001",
-                "eqName": "水处理设备",
-                "id": 247474,
-                "locationId": 12753,
-                "note": "",
-                "partCode": "04.03.03.01.000005",
-                "partId": 403266,
-                "partName": "法兰水表",
-                "pastureId": 31,
-                "price": "674",
-                "providerId": 1975,
-                "reportery": "2.00",
-                "specification": "DN100",
-                "sumPrice": "674",
-                "unit": "个",
-                "useAmount": "0.00"
-            }
-        ],
-        "message": "ok",
-        "pageSize": 0,
-        "total": 3
-    },
-    "msg": "ok"
-}

+ 0 - 21
doc/part_mana/reportery.json

@@ -1,21 +0,0 @@
-{
-    "name": "getStockPastureList",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "pastureName": "塞一牧场",
-        "partCode": "04.05.10.01.000134",
-        "partName": "",
-        "brandName": "",
-        "contractCode": "",
-        "statue": "",
-        "isZeroStock": "",
-        "warnings": "",
-        "reportery": 0,
-        "specification": "",
-        "location": ""
-    },
-    "pastureName": "现代牧业"
-}

+ 0 - 5
doc/part_mana/reportery.sh

@@ -1,5 +0,0 @@
-http  POST   https://eam.modernfarming.cn:8000/authdata/GetDataByName \
-  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJkMmQ0MjRmYmMxOTI3YWEzOTk4M2NkOWM4NWQ5NjA3ZiIsImV4cCI6MTY1NjAxMDU3NiwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.3kdy1TEI87nN7I6xXLzJp9tWkLGeygl0g1bjFasN1EA \
-  <reportery.sh
-
- 

+ 0 - 99
doc/plan/geteqList.sql

@@ -1,99 +0,0 @@
-SELECT
-  a.id
---   ,
---   a.eqName,
---   a.specification,
---   a.eqCode,
---   a.assetCode,
---   di.`value` status,
---   di.id statusId,
---   a.purpose,
---   a.financeCode,
---   a.id assetId,
---   a.changeStatue,
---   a.subtractvalue,
---   a.salvage,
---   a.upkeepgrade upkeepgradeId,
--- di1.value upkeepgrade,
---   ass.id eqClassId,
---   ass.typeName,
---   ass.typeName eqClassName,
---   p.id pastureId,
---   a.yuanzhi,
---   a.baseHours,
---   pr.providerName,
---   pr.id providerId,
---   p.`name` pastureName,
---   a.inputUser,
---   em1.empName inputUserName,
---   de.id deptId,
---   de.name deptName,
---   DATE_FORMAT(
---     a.inputDatetime,
---     '%Y-%m-%d'
---   ) lrTime,
---   IFNULL(em2.empname, a.employeName) employeName,
---   em2.id employeId,
---   '查看设备卡片' assetcard,
---   a.yearMaintainCost,
---   a.yearUpkeepCost,
---   a.purchaseDate,
---   a.entranceDate,
---  DATE_FORMAT(
---     a.inputDatetime,
---     '%Y-%m-%d'
---   )  inputDatetime,
---   ifnull(br.brandName,a.brand) brand,
---   br.id brandId
-FROM
-  equipment a
-  LEFT JOIN pasture p
-    ON a.pastureId = p.id
-  LEFT JOIN department de
-    ON a.departmentId = de.id
-  LEFT JOIN eqclass ass
-    ON a.eqClassId = ass.id
-  LEFT JOIN provider pr
-    ON a.proId = pr.id
-  LEFT JOIN brand br
-    ON a.brandId = br.id
-  LEFT JOIN dictlist di
-    ON a.`status` = di.id
-LEFT JOIN dictlist di1
-    ON a.`upkeepgrade` = di1.id
-LEFT JOIN emp em1
-    ON a.inputUser= em1.id
-  LEFT JOIN emp em2
-    ON a.employeeId = em2.id
-WHERE
-
-
-
-(
-    a.eqName LIKE CONCAT("%", ?, "%")
-    OR ? = ''
-  )and
-(
-    a.eqCode LIKE CONCAT("%", ?, "%")
-    OR ? = ''
-  )
-  AND (
-    a.assetCode LIKE CONCAT(?, "%")
-    OR ? = ''
-  )
-  AND (
-    p.name = ?
-    OR ? = '现代牧业'
-  )
-
-  AND (
-    a.departmentId=?
-    OR ? = ''
-  )
-	and (
-	(case ?  when 1 then a.`status`=17 when 2 then a.`status` !=17 when ''  then''='' end)
-	#if (?=1,a.`status`=17,a.`status` !=17) or ?=''
-	)
-
-  AND a.`enable` = '1' and ass.eqplan = 1 and  a.SHStatus in (1,3)
-ORDER BY a.assetCode ASC

+ 0 - 17
doc/plan/in.json

@@ -1,17 +0,0 @@
-{
-    "name": "geteqList",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "pastureName": "和林牧场",
-        "eqCode": "10.ZZJ015",
-        "eqName": "",
-        "typeCode": "",
-        "partName": "",
-        "statue": 1,
-        "departmentId": ""
-    },
-    "month": "2022-07"
-}

+ 0 - 62
doc/plan/out.json

@@ -1,62 +0,0 @@
-{
-    "code": 200,
-    "data": {
-        "code": 0,
-        "list": [
-            {
-                "assetCode": "01.01.01.00085",
-                "assetId": 16831,
-                "assetcard": "查看设备卡片",
-                "baseHours": "0",
-                "brand": "柳工816",
-                "brandId": 2397,
-                "changeStatue": "停用",
-                "deptId": 514,
-                "deptName": "安环处",
-                "employeId": 2660,
-                "employeName": "于胜明",
-                "entranceDate": "2016-06-28 00:00:00",
-                "eqClassId": 24,
-                "eqClassName": "小型装载机",
-                "eqCode": "10.ZZJ015",
-                "eqName": "小型装载机",
-                "financeCode": "10.02.06-4-00079326",
-                "id": 16831,
-                "inputDatetime": "2020-10-26",
-                "inputUser": "2473",
-                "inputUserName": "赵利平",
-                "lrTime": "2020-10-26",
-                "m10": "M#180195#1#182960#0",
-                "m16": "Z#180196#1#214033#182961",
-                "m17": "Z#180196#1#182961#0",
-                "m2": "Z#180194#1#211956#182959",
-                "m24": "Z#180197#1#182962#0",
-                "m3": "Z#180194#1#182959#0",
-                "m9": "M#180195#1#213589#182960",
-                "pastureId": 178,
-                "pastureName": "和林牧场",
-                "providerId": 2470,
-                "providerName": "济南柳工永安",
-                "purchaseDate": "2016-06-28 00:00:00",
-                "purpose": "",
-                "salvage": "0",
-                "specification": "CLG816",
-                "status": "正常",
-                "statusId": 17,
-                "subtractvalue": "0",
-                "typeName": "小型装载机",
-                "upkeepgrade": "A",
-                "upkeepgradeId": "113",
-                "yearMaintainCost": "75609.04",
-                "yearUpkeepCost": "7339.62",
-                "yuanzhi": "132000"
-            }
-        ],
-        "message": "ok",
-        "pageNum": 1,
-        "pageSize": 10,
-        "pages": 1,
-        "total": 1
-    },
-    "msg": "ok"
-}

+ 0 - 1
doc/plan/plan.md

@@ -1 +0,0 @@
-URL: https://eam.modernfarming.cn:8000/authdata/GetUpkeepPlan

+ 0 - 2
doc/plan/plan.sh

@@ -1,2 +0,0 @@
-#  http https://tmrwatch.cn:8082/auth username=00611 password=123456
-http --verify=no  https://tmrwatch.cn:8082/authdata/GetUpkeepPlan  <./in.json  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTAzMTIwNCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.GmLQNxOq7SUdTRZ8t1ZrP1jPeVeIZWnqXOfHxDAI0ik 

+ 0 - 8
doc/plan/plan.sql

@@ -1,8 +0,0 @@
--- select * from apisql where sqlname ='geteqList';
--- select * from dictlist;
---  SELECT seviceplan.* FROM seviceplan WHERE seviceplan.eqId = 16831;
---  SELECT * FROM bigupkeep where seviceplanId =  180194;
--- describe bigupkeep;
---  select count(*) c from bigupkeep  where pushbackId !=0 ;
- select sqlname from apisql where sqlstr like "%pushbackId%";
---  select * from pushback;

+ 0 - 16
doc/plan/upsql.py

@@ -1,16 +0,0 @@
-#!/usr/bin/python3
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root", passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-cursor  = db.cursor()
-sqlname =input("请输入sqlname:")
-# sqlname ="update_device"
-sqlstr =open("%s.sql"%(sqlname),"r",encoding="utf-8").read()
-# print(sqlstr)
-sql ="update apisql set sqlstr =%s where sqlname =%s" 
-err=cursor.execute(sql,(sqlstr,sqlname))
-# err=cursor.execute(sqlstr)
-
-print(err)
-db.commit()    
-db.close()

+ 0 - 11
doc/py/loadsql.py

@@ -1,11 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root", passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-sqlname =input("请输入sqlname:")
-cursor = db.cursor()
-err =cursor.execute("select sqlstr from apisql where sqlname =%s",sqlname)
-sqlstr =cursor.fetchone()
-write_file = open("../sql/%s.sql"%(sqlname), "w", encoding="utf-8").write(sqlstr[0])
-print()

+ 0 - 12
doc/py/upsql.py

@@ -1,12 +0,0 @@
-#!/usr/bin/python3
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root", passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-cursor  = db.cursor()
-sqlname =input("请输入sqlname:")
-sqlstr =open("../sql/%s.sql"%(sqlname),"r",encoding="utf-8").read()
-sql ="update apisql set sqlstr =%s where sqlname =%s" 
-err=cursor.execute(sql,(sqlstr,sqlname))
-print(err)
-db.commit()
-db.rollback()

+ 0 - 27
doc/sh/http.sh

@@ -1,27 +0,0 @@
-# http :8082/authdata/mcs/accounts token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1ODQ5NzgzNCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.92h6BPwNCXbHI7T9cj-0NK1R162Rr1WUKQbATeZZntI
-# http :8082/authdata/mcs/record  <./json/br.json  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http :8082/authdata/mcs/record  <./json/er.json  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http :8082/data/GetDataByName  <./json/getBigupkeepList.json
-# http :8082/data/ExecDataByConfig <./json/ex.json
-# http :8082/data/UpdateDataRelation <./json/user_mainthenance.json
-# http :8082/data/PostDataByName <./json/updateDeviceInformation.json
-http :8082/auth username=00611 password=123456
-http :8082/authdata/GetDataByName <./json/getBigupkeepList.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http https://tmrwatch.cn:8082/auth username=00611 password=123456
-# http :8082/authdata/sap/proof/detail <../json/sap-proof-detail.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY2MTI2NzM1MiwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.X4Bqp3wm7hwd7waH5MKchaPQWAROHOenNP_xy7OKezs
-http --verify=no https://tmrwatch.cn:8082/authdata/sap/proof/detail <../json/sap-proof-detail.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY2MTI2NzM1MiwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.X4Bqp3wm7hwd7waH5MKchaPQWAROHOenNP_xy7OKezs
-# http --verify=no https://tmrwatch.cn:8082/authdata/sap/proof/off <../json/sap-proof-off.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY2MTI2NzM1MiwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.X4Bqp3wm7hwd7waH5MKchaPQWAROHOenNP_xy7OKezs
-# http --verify=no https://tmrwatch.cn:8082/authdata/GetDataByName <./json/getBigupkeepList.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http --verify=no https://tmrwatch.cn:8082/authdata/mcs/accounts token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1ODQ5NzgzNCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.92h6BPwNCXbHI7T9cj-0NK1R162Rr1WUKQbATeZZntI
-# http --verify=no https://tmrwatch.cn:8082/authdata/mcs/files token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1ODQ5NzgzNCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.92h6BPwNCXbHI7T9cj-0NK1R162Rr1WUKQbATeZZntI <./json/fl.json
-# http --verify=no https://tmrwatch.cn:8082/authdata/mcs/record token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http --verify=no https://tmrwatch.cn:8082/authdata/mcs/record token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http --verify=no  https://tmrwatch.cn:8082/authdata/ExecDataByConfig token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1ODQxMzU5MCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.O9GxxStd6FAGIcUfYZ8nDW51Nd50wSvzekW5t3xkuNQ  <./json/ex.json
-# http --verify=no  https://tmrwatch.cn:8082/authdata/UpdateDataRelation token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1ODQxMzU5MCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.O9GxxStd6FAGIcUfYZ
-# http  https://www.51cow.cn:7715/api/login?uid=PC&pwd=mcs8%40666
-# http http://8.130.17.8:7711/api/postData <./json/br.json
-# http http://8.130.17.8:7711/api/postData <./json/er.json
-# http https://eam.modernfarming.cn:8000/auth username=01721 password=123456
-# http https://eam.modernfarming.cn:8000/authdata/mcs/record  <./json/br.json  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http https://eam.modernfarming.cn:8000/authdata/mcs/record  <./json/er.json  token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk
-# http https://eam.modernfarming.cn:8000/authdata/GetDataByName <./json/getBigupkeepListAPP.json token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1OTU3ODMwOSwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.zGLWpAb4pxzf0wRlRhKVIiQDLX30OVhCCCYlBZscEPk

+ 172 - 0
doc/sql/p.json

@@ -1726,4 +1726,176 @@
             ]
         }
     ]
+}
+
+
+----
+{
+    "common": {
+        "returnmap": "0"
+    },
+    "data": [
+        {
+            "name": "insertSpotList3",
+            "resultmaps": {
+                "list": [
+                    {
+                        "bigId": 419328,
+                        "brand": "无",
+                        "brandId": 1983,
+                        "contractId": 217665,
+                        "enable": 1,
+                        "id": 445500,
+                        "inventoryType": 1,
+                        "isZeroStock": 0,
+                        "locationId": 10573,
+                        "mr": 0,
+                        "partCode": "14.06.09.01.000020",
+                        "partId": 445500,
+                        "partName": "正压气缸",
+                        "partRepId": 68719,
+                        "pastureId": 304,
+                        "pastureName": "蚌埠",
+                        "planAmount": "2.00",
+                        "price": "420",
+                        "prid": 68719,
+                        "providerId": 1963,
+                        "providerName": "赛娜牧业",
+                        "remark": "",
+                        "reportery": "40.00",
+                        "specification": "CP96SB40-250",
+                        "unit": "套",
+                        "amount": "1"
+                    }
+                ]
+            },
+            "children": [
+                {
+                    "name": "updatePartapplyuseAmount_m",
+                    "type": "e",
+                    "parammaps": {
+                        "amount": "@insertSpotList3.amount",
+                        "paid": "@insertSpotList3.contractId",
+                        "RUCode": "BX19220929004"
+                    }
+                }
+            ]
+        },
+        {
+            "name": "insertBigpartapply_m",
+            "type": "e",
+            "parammaps": {
+                "pastureId": 304,
+                "applyCode": "LY19221008015",
+                "applyType": 1,
+                "departmentId": "438",
+                "empId": 3097,
+                "applyDate": "2022-10-08",
+                "RUCode": "BX19220929004"
+            }
+        },
+        {
+            "name": "insertSpotList2",
+            "resultmaps": {
+                "list": []
+            },
+            "children": [
+                {
+                    "name": "insertpartapply_m",
+                    "type": "e",
+                    "parammaps": {
+                        "bigId": "BX19220929004",
+                        "prid": "@insertSpotList2.prid",
+                        "pastureId": "@insertSpotList2.pastureId",
+                        "partId": "@insertSpotList2.partId",
+                        "partCode": "@insertSpotList2.partCode",
+                        "partName": "@insertSpotList2.partName",
+                        "specification": "@insertSpotList2.specification",
+                        "brandId": "@insertSpotList2.brandId",
+                        "price": "@insertSpotList2.price",
+                        "amount": "@insertSpotList2.amount",
+                        "eqName": "柴油叉车",
+                        "eqCode": "19.CYCC018",
+                        "providerId": "@insertSpotList2.providerId",
+                        "note": "@insertSpotList2.note",
+                        "reportery": "@insertSpotList2.reportery",
+                        "contractId": "@insertSpotList2.contractId"
+                    }
+                }
+            ]
+        },
+        {
+            "name": "insertBigpartapply",
+            "type": "e",
+            "parammaps": {
+                "pastureId": 304,
+                "applyCode": "LY19221008015",
+                "applyType": 1,
+                "departmentId": "438",
+                "empId": 3097,
+                "applyDate": "2022-10-08",
+                "RUCode": "BX19220929004",
+                "SHStatus": 9
+            }
+        },
+        {
+            "name": "insertSpotList",
+            "resultmaps": {
+                "list": [
+                    {
+                        "amount": "1",
+                        "bigId": 419328,
+                        "brand": "无",
+                        "brandId": 1983,
+                        "contractId": 217665,
+                        "enable": 1,
+                        "id": 445500,
+                        "inventoryType": 1,
+                        "isZeroStock": 0,
+                        "partCode": "14.06.09.01.000020",
+                        "partId": 445500,
+                        "partName": "正压气缸",
+                        "partRepId": 68719,
+                        "pastureId": 304,
+                        "pastureName": "蚌埠",
+                        "planAmount": "2.00",
+                        "price": "420",
+                        "providerId": 1963,
+                        "providerName": "赛娜牧业",
+                        "remark": "",
+                        "reportery": "40.00",
+                        "specification": "CP96SB40-250",
+                        "unit": "套",
+                        "prid": 68719,
+                        "mr": 0,
+                        "locationId": 10573
+                    }
+                ]
+            },
+            "children": [
+                {
+                    "name": "insertpartapply",
+                    "type": "e",
+                    "parammaps": {
+                        "bigId": "@insertBigpartapply.LastInsertId",
+                        "pastureId": "@insertSpotList.pastureId",
+                        "partId": "@insertSpotList.partId",
+                        "partCode": "@insertSpotList.partCode",
+                        "partName": "@insertSpotList.partName",
+                        "specification": "@insertSpotList.specification",
+                        "brandId": "@insertSpotList.brandId",
+                        "price": "@insertSpotList.price",
+                        "amount": "@insertSpotList.amount",
+                        "eqName": "柴油叉车",
+                        "eqCode": "19.CYCC018",
+                        "providerId": "@insertSpotList.providerId",
+                        "note": "@insertSpotList.note",
+                        "reportery": "@insertSpotList.reportery",
+                        "contractId": "@insertSpotList.contractId",
+                        "locationId": "@insertSpotList.locationId"
+                    }
+                }
+            ]
+        }
+    ]
 }

+ 16 - 39
doc/sql/s.sql

@@ -21,6 +21,9 @@ or sqlname ='updatePartRepertoryTK'  --(还需要前端 修改参数)
 -- or sqlname ='insertPartquit' 
 -- or sqlname ='updatePartUseQuit'
 
+select sqlname,sqlstr,params from apisql where  sqlname ='getPartsListLY'
+select sqlname,sqlstr,params from apisql where  sqlname ='getPartsListLY_m'
+select sqlname,sqlstr,params from apisql where  sqlname ='insertpartapply_m'
 select sqlname,sqlstr,params from apisql where  sqlname ='insertpartapply'
 select sqlname,sqlstr,params from apisql where  sqlname ='getBigpartusecode'
 select sqlname,sqlstr,params from apisql where  sqlname ='getpartUseListBybigTK'
@@ -452,42 +455,16 @@ select  CAST('123.12' as DECIMAL)
 
  UPDATE part_repertory SET reportery = reportery + '1' WHERE contractId = 497108  AND locationid = 10559 and partcode ="14.01.07.01.001030"
 
-call 
-
-
-   "CPM": 1,
-                        "bigId": 559223,
-                        "brandId": 2004,
-                        "brandName": "个",
-                        "checkoutNumber": "1",
-                        "contractId": 497108,
-                        "eqCode": "19.JLM012",
-                        "eqId": 17414,
-                        "eqName": "卷帘门",
-                        "id": 625084,
-                        "isRefuse": 1,
-                        "locationId": 10559,
-                        "maintainId": -1,
-                        "note": "",
-                        "partCode": "14.01.07.01.001030",
-                        "partId": 419638,
-                        "partName": "刹车释放装置",
-                        "planUpkeepId": -1,
-                        "price": 380,
-                        "proId": 0,
-                        "proName": "",
-                        "providerId": 2241,
-                        "providerName": "凯亿斯",
-                        "quitNumber": "1",
-                        "quitNumberC": "0.00",
-                        "refuseNumber": 0,
-                        "refuseStatue": 1,
-                        "reportery": "3.00",
-                        "specification": "定制",
-                        "sumPrice": "0.00",
-                        "unit": "个",
-                        "useNumber": "1.00",
-                        "useTypeV": "维修",
-                        "warehoseCode": "CA-01-21",
-                        "srcpath": "",
-                        "picpath": ""
+select * from bigpartapply where applycode ='LY19221008015'
+select * from partapply where bigid =210605 
+select * from partapply where bigid =419328 
+
+select * from  parts where partcode ='14.02.03.02.000013'
+
+
+select pr.partcode, pr.contractId,pr.reportery,pr.pastureid,p.name from part_repertory  pr  
+left join warehouse w on pr.locationid = w.id
+left join pasture  p on w.pastureId =p.id
+where pr.id =488222
+
+select * from contract where id =521518

+ 42 - 29
doc/sql/t5.sql

@@ -1,33 +1,46 @@
--- select count(*) from (
-  select t.*, 
-IFNULL(pr.`reportery`,0) reporteryQ
-from (
 SELECT
+0 as mr,
 CONCAT('uploads/thumbnail/',ep.`picpath`,'/',ep.`newpicname`) picpath,
   CONCAT('uploads/image/',ep.`picpath`,'/',ep.`newpicname`) srcpath,
-  b.`brandName`,
-c.`id`,c.`brand`,c.`brandId`,c.`partCode`,c.`partId`,c.`partName`,c.`pastureId`,c.`pastureName`,
- c.`specification`,c.`unit`,
- TRIM(TRAILING '.' FROM (TRIM(TRAILING '0' FROM c.`price`))) price
-FROM
-    contract c
-LEFT JOIN brand b  ON b.id = c.brandId
-LEFT JOIN bigcontract bc ON bc.id = c.bigId
-LEFT JOIN bigcontract bc2 ON bc2.contractCode = left(bc.contractCode,12)
-join pasture_bigcontract pbt on pbt.bigcontract_id =bc2.id
-LEFT JOIN parts ps   ON ps.id = c.partId
-LEFT JOIN eq_pic ep  ON ep.id = ps.picpath
+  pr.partId id,
+pr.id prid,
+   c.id contractId,c.bigId,pr.pastureId,c.pastureName,pr.partId,pr.partName,pr.partCode,pr.specification,
+TRIM(TRAILING'.' FROM (TRIM(TRAILING'0' FROM pr.price))) price,pr.brandId,pr.brand,c.inventoryType,
+c.planAmount,c.remark,c.enable,pr.unit,c.isZeroStock,
+   trim(pr.`reportery`) reportery, 
+   pv.providerName,
+  pv.id providerId,
+	pr.locationId,
+  pr.id partRepId 
+ FROM 
+  part_repertory pr
+  LEFT JOIN  contract c
+    ON c.`id` = pr.`contractId` 
+  LEFT JOIN bigcontract bc 
+    ON bc.`id` = c.`bigId`
+  LEFT JOIN provider pv
+    ON pv.`id` = pr.`providerId`
+LEFT JOIN parts ps
+    ON ps.id = pr.partId
+    LEFT JOIN eq_pic ep
+    ON ep.id = ps.picpath
+		left join warehouse w
+		on   w.id = pr.locationId
 WHERE
-bc.`providerId` = '2808' 
-AND c.enable = 1
--- AND (bc.`stopTime`>=DATE_FORMAT(NOW(),'%Y-%m-%d') and  bc.statue=1 and bc.SHStatus = 7 )
--- AND if(''='' ,bc.SHStatus = 7,c.`partCode` = ''  OR c.`partName` ='' OR c.`specification` ='' )
-and (bc.pastureId='631' or  '631'='' or pbt.pasture_id = '631' ) 
-  --  limit 10  
-   )t 
-left join 
- (
-select reportery,contractId from part_repertory pr2 left join warehouse w  on pr2.locationId =w.id
-where pr2.pastureId ='631' or (pr2.pastureId =18 and  w.pastureId = '631') 
-) pr  ON pr.`contractId` = t.`id`
-)a 
+(pr.pastureId =31 or (pr.pastureId =18 and  (select pastureId from warehouse where id = pr.`locationId`)= 31) )
+and
+(
+	(
+    (
+      (bc.`stopTime`>=DATE_FORMAT(NOW(),'%Y-%m-%d') and  bc.statue=1  AND c.`enable`=1 )
+    or 	bc.isZeroStock=0 )
+  and bc.SHStatus = 7)
+or pr.`contractId` <0
+) 
+and (pr.reportery>0 or(bc.`stopTime`>=DATE_FORMAT(NOW(),'%Y-%m-%d') and  bc.statue=1)) 
+-- and ps.enable = 1
+ and (pr.`partCode` LIKE CONCAT('%','14.02.03.02.000013','%')
+  )
+
+
+  

+ 0 - 139
doc/wxload/getRepirsList.sql

@@ -1,139 +0,0 @@
-SELECT
-IFNULL(bpa1.cou,0) laidcou,
-  eq.`specification`,
- DATE_FORMAT(mt.`chargeDate`,'%Y-%m-%d %H:%i:%s') chargeDate,
-  mt.scores,
-  mt.`chargeId`,
-  mt.`checkResult`,
-  mt.`dealTime`,
-  eq.`departmentId`,
-  mt.`details`,
-  mt.`disposeId`,
-  mt.`eqClassId`,
-  mt.`eqCode`,
-  mt.`eqId`,
-  mt.`eqName`,
-  mt.`id`,
-  mt.`orderStatue`,
-  DATE_FORMAT(mt.`orderTime`, '%Y-%m-%d %H:%i:%s') orderTime,
-  mt.`pastureId`,
-  mt.`phenomenId`,
-  mt.`pickId`,
-  -- mt.`positionId`,
-  mt.`repairCode`,
-  mt.`repairDept`,
-  mt.`repairNote`,
-  mt.`requesterId`,
-  DATE_FORMAT(mt.`requestTime`,'%Y-%m-%d %H:%i:%s') requestTime,
-  DATE_FORMAT(mt.`stopTime`,'%Y-%m-%d %H:%i:%s') stopTime, 
-  p.`name` pastureName,
-  IF(bpa.cou  IS NULL,'未领用','已领用') LYStatue,
-  IF(rf.cou  IS NULL,'未录入','已录入') LRStatue,
-  mt.flowCompeleted SHStatue,
-  d.`name` departmentName,
-  d1.`name` repairDeptName,
-  e.`empname` requesterName,
-  e1.`empname` pickName,
- em2.`empname`  useChargePerson,
-    em3.`empname`  chargePerson,
-		em4.`empname` shutdownPerson,
-		mt.shutdownReason,
-		DATE_FORMAT(   mt.shutdownDate,'%Y-%m-%d %H:%i:%s') shutdownDate,
- DATE_FORMAT(   mt.useChargeDate,'%Y-%m-%d %H:%i:%s') useChargeDate,
-
-mt.workflowNote
-FROM
-  maintain mt
-  INNER JOIN pasture p
-    ON p.`id` = mt.`pastureId`
-  INNER JOIN department d1
-    ON d1.`id` = mt.`repairDept`
-  INNER JOIN emp e
-    ON e.`id` = mt.`requesterId`
-  LEFT JOIN emp e1
-    ON e1.`id` = mt.`pickId`
-  LEFT JOIN emp em2
-      ON em2.id = mt.useChargeId
- LEFT JOIN emp em3
-      ON em3.id = mt.chargeId
-	LEFT JOIN emp em4
-			ON em4.id = mt.shutdownPerson
-
-  INNER JOIN equipment eq
-    ON eq.`id` = mt.`eqId`
-  LEFT JOIN department d
-    ON d.`id` = eq.`departmentId`
-  LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply GROUP BY  RUCode ) bpa
-    ON bpa.`RUCode` = mt.`repairCode`
-  LEFT JOIN (SELECT repairCode,COUNT(id)cou FROM  refuse GROUP BY  repairCode)rf
-    ON rf.`repairCode` = mt.`repairCode`
- LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply WHERE statue =0 AND (SHStatus IN (2,3,5,7,9))  GROUP BY  RUCode ) bpa1
-    ON bpa1.`RUCode` = mt.`repairCode`
-WHERE 
-
-
-(((mt.requesterId= ? OR mt.pickId =?) OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = ? AND m.`path`=? ),0) IN (1,2,3))
-
-   AND (eq.departmentId IN (SELECT id FROM department WHERE pastureId =? AND id IN (
-	 
-SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(ss.www,',',b.seq+1),',',-1) AS 'ids' 
-				 FROM 
-					(SELECT @i:=1 i,IFNULL((SELECT GROUP_CONCAT(department_id)SSSS 
-				 FROM role_department WHERE role_id = (SELECT  MAX(r.id) FROM `user` u
-					 LEFT JOIN user_role ur
-					 ON ur.`user_id`= u.`id`
-					 LEFT JOIN role r
-					 ON r.`id` = ur.`role_id`
-					 LEFT JOIN role_menu rm
-					 ON r.`id` = rm.`role_id` 
-					 LEFT JOIN role_department rd
-					 ON r.`id` = rd.`role_id`
-					 LEFT JOIN menu m
-					 ON m.`id` = rm.`menu_id`
-					 WHERE u.`empid` = ? AND m.`path`=?) AND department_id IN (SELECT id FROM department WHERE pastureId = ?)),?) www) ss
-					 JOIN   sequence b ON b.seq < (LENGTH(ss.www) - LENGTH(REPLACE(ss.www,',',''))+1)
-					WHERE ss.i =1
-					GROUP BY ids				
-					) 
-	 )
-	 
-	 OR mt.pickId =? OR mt.requesterId= ? OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` =? AND m.`path`=? ),0) IN (2,3))
-   AND (p.id= ? OR IFNULL((SELECT  MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = ? AND m.`path`=? ),0) = 3)) AND
-(p.`name`=? OR ?='现代牧业') AND (mt.repairCode LIKE CONCAT('%',?,'%')OR ?='') 
-AND (mt.`eqName` LIKE CONCAT('%',?,'%')OR ?='')
-AND (mt.`eqCode` LIKE CONCAT('%',?,'%')OR ?='')
-AND (mt.`orderStatue` =? OR ?='')
-AND (DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')>=? AND DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')<=?  OR ?='')
-AND (
-   IF (?=0,mt.flowCompeleted IN (2,3) ,
-        IF(?=1,mt.flowCompeleted=5,mt.flowCompeleted IN (4,6))
-   )
-    OR ? = ''
-  )

+ 0 - 1
doc/wxload/getmaintainappearance.sql

@@ -1 +0,0 @@
-SELECT *, id rowId  FROM maintain_appearance WHERE maintainId=?

+ 0 - 153
doc/wxload/loadRepirsList.sql

@@ -1,153 +0,0 @@
-select t.*,
-ma.positionName,
-ma.appearanceName,
-ma.failureCause,
-ma.treatmentMethod
-from (
-  select
-IFNULL(bpa1.cou,0) laidcou,
-  eq.`specification`,
- DATE_FORMAT(mt.`chargeDate`,'%Y-%m-%d %H:%i:%s') chargeDate,
-  mt.scores,
-  mt.`chargeId`,
-  mt.`checkResult`,
-  mt.`dealTime`,
-  eq.`departmentId`,
-  mt.`details`,
-  mt.`disposeId`,
-  mt.`eqClassId`,
-  mt.`eqCode`,
-  mt.`eqId`,
-  mt.`eqName`,
-  mt.`id`,
-  mt.`orderStatue`,
-  DATE_FORMAT(mt.`orderTime`, '%Y-%m-%d %H:%i:%s') orderTime,
-  mt.`pastureId`,
-  mt.`phenomenId`,
-  mt.`pickId`,
-  mt.`repairCode`,
-  mt.`repairDept`,
-  mt.`repairNote`,
-  mt.`requesterId`,
-  DATE_FORMAT(mt.`requestTime`,'%Y-%m-%d %H:%i:%s') requestTime,
-  DATE_FORMAT(mt.`stopTime`,'%Y-%m-%d %H:%i:%s') stopTime, 
-  p.`name` pastureName,
-  IF(bpa.cou  IS NULL,'未领用','已领用') LYStatue,
-  IF(rf.cou  IS NULL,'未录入','已录入') LRStatue,
-  mt.flowCompeleted SHStatue,
-  d.`name` departmentName,
-  d1.`name` repairDeptName,
-  e.`empname` requesterName,
-  e1.`empname` pickName,
- em2.`empname`  useChargePerson,
-    em3.`empname`  chargePerson,
-		em4.`empname` shutdownPerson,
-		mt.shutdownReason,
-		DATE_FORMAT(   mt.shutdownDate,'%Y-%m-%d %H:%i:%s') shutdownDate,
- DATE_FORMAT(   mt.useChargeDate,'%Y-%m-%d %H:%i:%s') useChargeDate,
-mt.workflowNote
-FROM
-  maintain mt
-  INNER JOIN pasture p
-    ON p.`id` = mt.`pastureId`
-  INNER JOIN department d1
-    ON d1.`id` = mt.`repairDept`
-  INNER JOIN emp e
-    ON e.`id` = mt.`requesterId`
-  LEFT JOIN emp e1
-    ON e1.`id` = mt.`pickId`
-  LEFT JOIN emp em2
-      ON em2.id = mt.useChargeId
- LEFT JOIN emp em3
-      ON em3.id = mt.chargeId
-	LEFT JOIN emp em4
-			ON em4.id = mt.shutdownPerson
-
-  INNER JOIN equipment eq
-    ON eq.`id` = mt.`eqId`
-  LEFT JOIN department d
-    ON d.`id` = eq.`departmentId`
-  LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply GROUP BY  RUCode ) bpa
-    ON bpa.`RUCode` = mt.`repairCode`
-  LEFT JOIN (SELECT repairCode,COUNT(id)cou FROM  refuse GROUP BY  repairCode)rf
-    ON rf.`repairCode` = mt.`repairCode`
- LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply WHERE statue =0 AND (SHStatus IN (2,3,5,7,9))  GROUP BY  RUCode ) bpa1
-    ON bpa1.`RUCode` = mt.`repairCode`
-WHERE 
-
-
-(((mt.requesterId= ? OR mt.pickId =?) OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = ? AND m.`path`=? ),0) IN (1,2,3))
-
-   AND (eq.departmentId IN (SELECT id FROM department WHERE pastureId =? AND id IN (
-	 
-SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(ss.www,',',b.seq+1),',',-1) AS 'ids' 
-				 FROM 
-					(SELECT @i:=1 i,IFNULL((SELECT GROUP_CONCAT(department_id)SSSS 
-				 FROM role_department WHERE role_id = (SELECT  MAX(r.id) FROM `user` u
-					 LEFT JOIN user_role ur
-					 ON ur.`user_id`= u.`id`
-					 LEFT JOIN role r
-					 ON r.`id` = ur.`role_id`
-					 LEFT JOIN role_menu rm
-					 ON r.`id` = rm.`role_id` 
-					 LEFT JOIN role_department rd
-					 ON r.`id` = rd.`role_id`
-					 LEFT JOIN menu m
-					 ON m.`id` = rm.`menu_id`
-					 WHERE u.`empid` = ? AND m.`path`=?) AND department_id IN (SELECT id FROM department WHERE pastureId = ?)),?) www) ss
-					 JOIN   sequence b ON b.seq < (LENGTH(ss.www) - LENGTH(REPLACE(ss.www,',',''))+1)
-					WHERE ss.i =1
-					GROUP BY ids				
-					) 
-	 )
-	 
-	 OR mt.pickId =? OR mt.requesterId= ? OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` =? AND m.`path`=? ),0) IN (2,3))
-   AND (p.id= ? OR IFNULL((SELECT  MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = ? AND m.`path`=? ),0) = 3)) AND
-(p.`name`=? OR ?='现代牧业') AND (mt.repairCode LIKE CONCAT('%',?,'%')OR ?='') 
-AND (mt.`eqName` LIKE CONCAT('%',?,'%')OR ?='')
-AND (mt.`eqCode` LIKE CONCAT('%',?,'%')OR ?='')
-AND (mt.`orderStatue` =? OR ?='')
-AND (DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')>=? AND DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')<=?  OR ?='')
-AND (
-   IF (?=0,mt.flowCompeleted IN (2,3) ,
-        IF(?=1,mt.flowCompeleted=5,mt.flowCompeleted IN (4,6))
-   )
-    OR ? = ''
-  )
-)t
-  left join
-(
-select distinct 
-maintainId,
-positionName,
-appearanceName,
-failureCause,
-treatmentMethod
-from maintain_appearance)ma on t.id =ma.maintainid

+ 0 - 15
doc/wxload/loadsql.py

@@ -1,15 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root",
-                     passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-sqlname = input("请输入sqlname:")
-
-cursor = db.cursor()
-err = cursor.execute("select sqlstr from apisql where sqlname =%s", sqlname)
-sqlstr = cursor.fetchone()
-write_file = open("%s.sql" % (sqlname), "w",
-                  encoding="utf-8").write(sqlstr[0])
-
-db.close()

+ 0 - 3
doc/wxload/lreq.sh

@@ -1,3 +0,0 @@
-http  POST  http://localhost:8082/authdata/GetAccount \
- token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAwNjExIiwicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsImV4cCI6MTY1NzIwMjQ2MCwiaXNzIjoiaHR0cHM6Ly9naXRodWIuY29tL2twdHl1bi9nby1hZG1pbi8ifQ.XlQhZKAI-VURXTGmD5kwThBOP456fAho_sEkl7F3uaQ \
- < ./tst.json

+ 0 - 142
doc/wxload/psql.sql

@@ -1,142 +0,0 @@
-select
-(select 
-group_concat(
- distinct concat_ws(',',positionName,appearanceName,failureCause,treatmentMethod )
-  order by repirsTime SEPARATOR ' | '
-) from maintain_appearance where maintainid =mt.id  ) mas,
-IFNULL(bpa1.cou,0) laidcou,
-  eq.`specification`,
- DATE_FORMAT(mt.`chargeDate`,'%Y-%m-%d %H:%i:%s') chargeDate,
-  mt.scores,
-  mt.`chargeId`,
-  mt.`checkResult`,
-  mt.`dealTime`,
-  eq.`departmentId`,
-  mt.`details`,
-  mt.`disposeId`,
-  mt.`eqClassId`,
-  mt.`eqCode`,
-  mt.`eqId`,
-  mt.`eqName`,
-  mt.`id`,
-  mt.`orderStatue`,
-  DATE_FORMAT(mt.`orderTime`, '%Y-%m-%d %H:%i:%s') orderTime,
-  mt.`pastureId`,
-  mt.`phenomenId`,
-  mt.`pickId`,
-  mt.`repairCode`,
-  mt.`repairDept`,
-  mt.`repairNote`,
-  mt.`requesterId`,
-  DATE_FORMAT(mt.`requestTime`,'%Y-%m-%d %H:%i:%s') requestTime,
-  DATE_FORMAT(mt.`stopTime`,'%Y-%m-%d %H:%i:%s') stopTime, 
-  p.`name` pastureName,
-  IF(bpa.cou  IS NULL,'未领用','已领用') LYStatue,
-  IF(rf.cou  IS NULL,'未录入','已录入') LRStatue,
-  mt.flowCompeleted SHStatue,
-  d.`name` departmentName,
-  d1.`name` repairDeptName,
-  e.`empname` requesterName,
-  e1.`empname` pickName,
- em2.`empname`  useChargePerson,
-    em3.`empname`  chargePerson,
-		em4.`empname` shutdownPerson,
-		mt.shutdownReason,
-		DATE_FORMAT(   mt.shutdownDate,'%Y-%m-%d %H:%i:%s') shutdownDate,
- DATE_FORMAT(   mt.useChargeDate,'%Y-%m-%d %H:%i:%s') useChargeDate,
-mt.workflowNote
-FROM
-  maintain mt
-  INNER JOIN pasture p
-    ON p.`id` = mt.`pastureId`
-  INNER JOIN department d1
-    ON d1.`id` = mt.`repairDept`
-  INNER JOIN emp e
-    ON e.`id` = mt.`requesterId`
-  LEFT JOIN emp e1
-    ON e1.`id` = mt.`pickId`
-  LEFT JOIN emp em2
-      ON em2.id = mt.useChargeId
- LEFT JOIN emp em3
-      ON em3.id = mt.chargeId
-	LEFT JOIN emp em4
-			ON em4.id = mt.shutdownPerson
-
-  INNER JOIN equipment eq
-    ON eq.`id` = mt.`eqId`
-  LEFT JOIN department d
-    ON d.`id` = eq.`departmentId`
-  LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply GROUP BY  RUCode ) bpa
-    ON bpa.`RUCode` = mt.`repairCode`
-  LEFT JOIN (SELECT repairCode,COUNT(id)cou FROM  refuse GROUP BY  repairCode)rf
-    ON rf.`repairCode` = mt.`repairCode`
- LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply WHERE statue =0 AND (SHStatus IN (2,3,5,7,9))  GROUP BY  RUCode ) bpa1
-    ON bpa1.`RUCode` = mt.`repairCode`
-WHERE 
-
-
-(((mt.requesterId= 3 OR mt.pickId =3) OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = 3 AND m.`path`='Repair' ),0) IN (1,2,3))
-
-   AND (eq.departmentId IN (SELECT id FROM department WHERE pastureId =18 AND id IN (
-	 
-SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(ss.www,',',b.seq+1),',',-1) AS 'ids' 
-				 FROM 
-					(SELECT @i:=1 i,IFNULL((SELECT GROUP_CONCAT(department_id)SSSS 
-				 FROM role_department WHERE role_id = (SELECT  MAX(r.id) FROM `user` u
-					 LEFT JOIN user_role ur
-					 ON ur.`user_id`= u.`id`
-					 LEFT JOIN role r
-					 ON r.`id` = ur.`role_id`
-					 LEFT JOIN role_menu rm
-					 ON r.`id` = rm.`role_id` 
-					 LEFT JOIN role_department rd
-					 ON r.`id` = rd.`role_id`
-					 LEFT JOIN menu m
-					 ON m.`id` = rm.`menu_id`
-					 WHERE u.`empid` = 3 AND m.`path`='Repair') AND department_id IN (SELECT id FROM department WHERE pastureId = 18)),3) www) ss
-					 JOIN   sequence b ON b.seq < (LENGTH(ss.www) - LENGTH(REPLACE(ss.www,',',''))+1)
-					WHERE ss.i =1
-					GROUP BY ids				
-					) 
-	 )
-	 
-	 OR mt.pickId =3 OR mt.requesterId= 3 OR IFNULL((SELECT MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` =3 AND m.`path`='Repair' ),0) IN (2,3))
-   AND (p.id= 18 OR IFNULL((SELECT  MAX(r.`datarole`) FROM `user` u
-   LEFT JOIN user_role ur
-   ON ur.`user_id`= u.`id`
-   LEFT JOIN role r
-   ON r.`id` = ur.`role_id`
-   LEFT JOIN role_menu rm
-   ON r.`id` = rm.`role_id`
-   LEFT JOIN menu m
-   ON m.`id` = rm.`menu_id`
-   WHERE u.`empid` = 3 AND m.`path`='Repair' ),0) = 3)) AND
-(p.`name`='汶上牧场' OR '汶上牧场'='现代牧业') AND (mt.repairCode LIKE CONCAT('%','','%')OR ''='') 
-AND (mt.`eqName` LIKE CONCAT('%','','%')OR ''='')
-AND (mt.`eqCode` LIKE CONCAT('%','','%')OR ''='')
-AND (mt.`orderStatue` ='' OR ''='')
-AND (DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')>='2022-03-02' AND DATE_FORMAT(mt.`requestTime`, '%Y-%m-%d')<='2022-04-02'  OR '2022-03-02'='')
-AND (
-   IF (''=0,mt.flowCompeleted IN (2,3) ,
-        IF(''=1,mt.flowCompeleted=5,mt.flowCompeleted IN (4,6))
-   )
-    OR '' = ''
-  )

+ 0 - 35
doc/wxload/req.py

@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import requests
-import json
-name ={"username":"00611","password":"123456"}
-loginRp = requests.post('https://tmrwatch.cn:8082/auth',json=name)
-loginRpd= json.loads(loginRp.text)
-
-param ={
-    "name": "getRepirsList",
-    "page": 1,
-    "offset": 1,
-    "pagecount": 10,
-    "returntype": "Map",
-    "parammaps": {
-        "pastureName": "汶上牧业",
-        "repairCode": "",
-        "eqName": "",
-        "eqCode": "",
-        "orderStatue": "",
-        "SHStatue": "",
-        "inputDatetime": "",
-        "loginId": "3",
-        "menu": "Repair",
-        "logindeptId": "20",
-        "loginpastureId": "18"
-    }
-}
-head ={"token":loginRpd["data"]["token"]}
-getRp=requests.post("https://tmrwatch.cn:8082/authdata/GetDataByName",json=param,headers=head)
-print(getRp.json()["code"])
-for v in getRp.raw:
-    print(v)
-# r = requests.post("https://httpbin.org/post", data=payload)
-# print(r.text)

+ 0 - 16
doc/wxload/tst.json

@@ -1,16 +0,0 @@
-{
-    "name": "loadRepirsList",
-    "parammaps": {
-        "pastureName": "汶上牧场",
-        "repairCode": "",
-        "eqName": "",
-        "eqCode": "",
-        "orderStatue": "",
-        "SHStatue": "",
-        "inputDatetime": ["2022-03-02","2022-04-01"],
-        "menu": "Repair",
-        "logindeptId": "20",
-        "loginId": "3",
-        "loginpastureId": "18"
-    }
-}

+ 0 - 29
doc/wxload/tst.sql

@@ -1,29 +0,0 @@
-insert into apisql
-(menuid, sqlstr, params, sqlname, method, name, remark, request_body, return_body, sort, enable, created_on, modified_on, deleted_on)
-select 
-menuid,  sqlstr, params, 'loadRepirsList', method, name, remark, request_body, return_body, sort, enable, created_on, modified_on, deleted_on 
-from apisql where sqlname ='getRepirsList';
-alter table maintain_appearance
-add index maintain_appearance_index(maintainId);
--- select maintainid ,count(*) cou from maintain_appearance group by maintainid limit 1;
--- having count(*) > 1;
--- "BX04220321011",80086
--- BX23200611003,塞四牧场
-
--- select
---     m.id,
---     m.repairCode,
---     p.name
--- from
---     maintain  m 
---     left join pasture p on p.id = m.pastureId
--- where
---     m.id = 80086
---     or m.id = 340;
--- drop index 'PRIMARY'  on maintain_appearance;
-
-
--- modify `failureCause` varchar(128) DEFAULT '' COMMENT '故障详情',
--- modify `treatmentMethod` varchar(128) DEFAULT '' COMMENT '故障详情';
--- modify `appearanceName` varchar(128) DEFAULT '' COMMENT '故障详情';
--- add `appearanceName2` varchar(128) DEFAULT '' COMMENT '故障详情';

+ 0 - 16
doc/wxload/usql.py

@@ -1,16 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-import pymysql
-
-db = pymysql.connect(host="222.73.129.15", port=31306, user="root",
-                     passwd="kepaiteng!QAZ", db="eq", charset="utf8")
-cursor = db.cursor()
-sqlname = input("请输入sqlname:")
-
-sqlstr = open("%s.sql" % (sqlname), "r", encoding="utf-8").read()
-sql = "update apisql set sqlstr =%s where sqlname =%s"
-err = cursor.execute(sql, (sqlstr, sqlname))
-print(err)
-db.commit()
-
-db.close()

+ 0 - 29
doc/wxload/wxload.md

@@ -1,29 +0,0 @@
-
-## repire 设备维修信息导出
-***
-- getRepirsList
-- getRepirsList
-```
-{"name":"getRepirsList","page":1,"offset":1,"pagecount":10,"returntype":"Map","parammaps":{"pastureName":"汶上牧场","repairCode":"","eqName":"","eqCode":"","orderStatue":"","SHStatue":"","inputDatetime":"","loginId":"3","menu":"Repair","logindeptId":"20","loginpastureId":"18"}}
-getmaintainappearance
-{"name":"getmaintainappearance","page":1,"offset":1,"pagecount":10,"returntype":"Map","parammaps":{"maintainId":94296}}
-```
-
-02820
-01122
-BY12220609002
-张占禄
-张占禄
-loadRepirsList
-
-loginId,loginId,loginId,menu,loginpastureId,
-loginId,menu,loginpastureId,logindeptId,
-loginId,loginId,
-loginId,menu,
-loginpastureId,loginId,menu,
-pastureName,pastureName,
-repairCode,repairCode,
-eqName,eqName,eqCode,eqCode,
-orderStatue,orderStatue,
-startTime,stopTime,startTime,
-SHStatue,SHStatue,SHStatue

+ 37 - 58
go.mod

@@ -9,39 +9,51 @@ replace (
 )
 
 require (
+	github.com/360EntSecGroup-Skylar/excelize v1.4.1
+	github.com/Anderson-Lu/gofasion v0.0.0-20190530065914-6a05b679ee48
+	github.com/BurntSushi/toml v1.2.0
+	github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
+	github.com/astaxie/beego v1.12.3
+	github.com/axetroy/go-fs v1.0.0
+	github.com/casbin/casbin v1.9.1
+	github.com/dgrijalva/jwt-go v3.2.0+incompatible
+	github.com/facebookgo/inject v0.0.0-20180706035515-f23751cae28b
+	github.com/fastwego/offiaccount v1.0.1
+	github.com/fastwego/wxwork v1.0.0-beta.8
 	github.com/gin-gonic/gin v1.8.1
 	github.com/go-ini/ini v1.66.6
+	github.com/go-sql-driver/mysql v1.6.0
 	github.com/jacobsa/go-serial v0.0.0-20180131005756-15cf729a72d4
+	github.com/jmoiron/sqlx v1.3.5
+	github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
+	github.com/json-iterator/go v1.1.12
+	github.com/k0kubun/pp/v3 v3.1.0
+	github.com/kardianos/service v1.2.1
+	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
+	github.com/patrickmn/go-cache v2.1.0+incompatible
+	github.com/pkg/errors v0.9.1
+	github.com/robfig/cron v1.2.0
+	github.com/robfig/cron/v3 v3.0.0
+	github.com/sirupsen/logrus v1.9.0
+	github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe
+	github.com/swaggo/gin-swagger v1.5.0
+	github.com/swaggo/swag v1.8.3
+	github.com/tealeg/xlsx v1.0.5
+	github.com/unknwon/com v1.0.1
+	github.com/xormplus/xorm v0.0.0-20210822100304-4e1d4fcc1e67
+	github.com/xuri/excelize/v2 v2.6.1
+	gorm.io/driver/mysql v1.3.5
+	gorm.io/gorm v1.23.8
 )
 
 require (
-	github.com/360EntSecGroup-Skylar/excelize v1.4.1 // indirect
-	github.com/Anderson-Lu/gofasion v0.0.0-20190530065914-6a05b679ee48 // indirect
-	github.com/BurntSushi/toml v1.2.0 // indirect
-	github.com/Chronokeeper/anyxml v0.0.0-20160530174208-54457d8e98c6 // indirect
-	github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 // indirect
-	github.com/CloudyKit/jet v2.1.2+incompatible // indirect
 	github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect
 	github.com/KyleBanks/depth v1.2.1 // indirect
-	github.com/PuerkitoBio/purell v1.1.1 // indirect
-	github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
-	github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee // indirect
-	github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4 // indirect
-	github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
-	github.com/astaxie/beego v1.12.3 // indirect
-	github.com/axetroy/go-fs v1.0.0 // indirect
-	github.com/beorn7/perks v1.0.1 // indirect
-	github.com/bndr/gotabulate v1.1.2 // indirect
-	github.com/casbin/casbin v1.9.1 // indirect
-	github.com/cespare/xxhash/v2 v2.1.1 // indirect
-	github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
 	github.com/faabiosr/cachego v0.17.0 // indirect
-	github.com/facebookgo/inject v0.0.0-20180706035515-f23751cae28b // indirect
+	github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c // indirect
+	github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 // indirect
 	github.com/facebookgo/structtag v0.0.0-20150214074306-217e25fb9691 // indirect
-	github.com/fastwego/offiaccount v1.0.1 // indirect
-	github.com/fastwego/wxwork v1.0.0-beta.8 // indirect
-	github.com/fatih/structs v1.1.0 // indirect
-	github.com/fsnotify/fsnotify v1.5.4 // indirect
+	github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 // indirect
 	github.com/gin-contrib/gzip v0.0.6 // indirect
 	github.com/gin-contrib/sse v0.1.0 // indirect
 	github.com/go-openapi/jsonpointer v0.19.5 // indirect
@@ -51,53 +63,25 @@ require (
 	github.com/go-playground/locales v0.14.0 // indirect
 	github.com/go-playground/universal-translator v0.18.0 // indirect
 	github.com/go-playground/validator/v10 v10.11.0 // indirect
-	github.com/go-sql-driver/mysql v1.6.0 // indirect
 	github.com/goccy/go-json v0.9.7 // indirect
-	github.com/golang/protobuf v1.5.0 // indirect
-	github.com/golang/snappy v0.0.4 // indirect
-	github.com/hashicorp/golang-lru v0.5.4 // indirect
-	github.com/jinzhu/gorm v1.9.16 // indirect
 	github.com/jinzhu/inflection v1.0.0 // indirect
 	github.com/jinzhu/now v1.1.5 // indirect
-	github.com/jmoiron/sqlx v1.3.5 // indirect
-	github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible // indirect
 	github.com/josharian/intern v1.0.0 // indirect
-	github.com/json-iterator/go v1.1.12 // indirect
-	github.com/k0kubun/pp/v3 v3.1.0 // indirect
-	github.com/kardianos/service v1.2.1 // indirect
 	github.com/leodido/go-urn v1.2.1 // indirect
+	github.com/lib/pq v1.10.2 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.12 // indirect
 	github.com/mattn/go-isatty v0.0.14 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
-	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
-	github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
 	github.com/pelletier/go-toml/v2 v2.0.2 // indirect
-	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/client_golang v1.7.0 // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.10.0 // indirect
-	github.com/prometheus/procfs v0.1.3 // indirect
 	github.com/richardlehane/mscfb v1.0.4 // indirect
 	github.com/richardlehane/msoleps v1.0.3 // indirect
-	github.com/robfig/cron v1.2.0 // indirect
-	github.com/robfig/cron/v3 v3.0.0 // indirect
 	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
-	github.com/sirupsen/logrus v1.9.0 // indirect
-	github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe // indirect
-	github.com/swaggo/gin-swagger v1.5.0 // indirect
-	github.com/swaggo/swag v1.8.3 // indirect
-	github.com/syndtr/goleveldb v1.0.0 // indirect
-	github.com/tealeg/xlsx v1.0.5 // indirect
+	github.com/stretchr/testify v1.8.0 // indirect
 	github.com/ugorji/go/codec v1.2.7 // indirect
-	github.com/unknwon/com v1.0.1 // indirect
-	github.com/xormplus/builder v0.0.0-20200331055651-240ff40009be // indirect
-	github.com/xormplus/xorm v0.0.0-20210822100304-4e1d4fcc1e67 // indirect
 	github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect
-	github.com/xuri/excelize/v2 v2.6.1 // indirect
 	github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
 	golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect
 	golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect
@@ -105,10 +89,5 @@ require (
 	golang.org/x/text v0.3.7 // indirect
 	golang.org/x/tools v0.1.11 // indirect
 	google.golang.org/protobuf v1.28.0 // indirect
-	gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
-	gorm.io/driver/mysql v1.3.5 // indirect
-	gorm.io/gorm v1.23.8 // indirect
-	xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 // indirect
-	xorm.io/xorm v1.3.2 // indirect
 )

+ 33 - 544
go.sum

@@ -1,7 +1,3 @@
-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=
-gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU=
-gitee.com/travelliu/dm v1.8.11192/go.mod h1:DHTzyhCrM843x9VdKVbZ+GKXGRbKM2sJ4LxihRxShkE=
 github.com/360EntSecGroup-Skylar/excelize v1.4.1 h1:l55mJb6rkkaUzOpSsgEeKYtS6/0gHwBYyfo5Jcjv/Ks=
 github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE=
 github.com/Anderson-Lu/gofasion v0.0.0-20190530065914-6a05b679ee48 h1:Y0um3nHCQDleEpQzahJAkT8mvKTlLqvjoIqZYIAJgAw=
@@ -9,32 +5,15 @@ github.com/Anderson-Lu/gofasion v0.0.0-20190530065914-6a05b679ee48/go.mod h1:nJf
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
 github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
-github.com/Chronokeeper/anyxml v0.0.0-20160530174208-54457d8e98c6 h1:Etfj2lhXyrYemgmWzEtEQQb1kezeEXc8jVjkQUyJnWI=
-github.com/Chronokeeper/anyxml v0.0.0-20160530174208-54457d8e98c6/go.mod h1:YzuYAe2hrrwKXkM9kqjbkTLlkbA+/xw2MA46f1+ENxc=
-github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 h1:sR+/8Yb4slttB4vD+b9btVEnWgL3Q00OBTzVT8B9C0c=
-github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno=
-github.com/CloudyKit/jet v2.1.2+incompatible h1:ybZoYzMBdoijK6I+Ke3vg9GZsmlKo/ZhKdNMWz0P26c=
-github.com/CloudyKit/jet v2.1.2+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w=
 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/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
 github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
-github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
 github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
-github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-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=
-github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
-github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
 github.com/agiledragon/gomonkey/v2 v2.3.1/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY=
-github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee h1:0RklYSvekYaIFI9JUx7TFPQvo++TdILmZiV17QI4nXk=
-github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee/go.mod h1:M9nmO4lBRWR/bBv7UCOmDJ1MB2DVoqz19B4JchDA+K0=
-github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4 h1:XBNSe5eibe5Fh131ah+xnO6s4A97U1T3tKZKLQQvqu0=
-github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4/go.mod h1:n7qJAqL9BKqGqiJyjPbWtxpdswTL5wX0IVP2Uw4vVhQ=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -44,97 +23,55 @@ github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGn
 github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY=
-github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
 github.com/astaxie/beego v1.12.3 h1:SAQkdD2ePye+v8Gn1r4X6IKZM1wd28EyUOVQ3PDSOOQ=
 github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM1FkpIA=
-github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
-github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
 github.com/axetroy/go-fs v1.0.0 h1:un0mpbpYjOQirgdlKlZlzTjF30DZwYwK+ObWMxubAXA=
 github.com/axetroy/go-fs v1.0.0/go.mod h1:Z4DMBpJRluxG178MMNZvixPIL2+j6nh+tBX0nGQeFDY=
 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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bndr/gotabulate v1.1.2 h1:yC9izuZEphojb9r+KYL4W9IJKO/ceIO8HDwxMA24U4c=
-github.com/bndr/gotabulate v1.1.2/go.mod h1:0+8yUgaPTtLRTjf49E8oju7ojpU11YmXyvq1LbPAb3U=
 github.com/bradfitz/gomemcache v0.0.0-20170208213004-1952afaa557d/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
 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/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
-github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-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=
-github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
-github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
-github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/couchbase/go-couchbase v0.0.0-20200519150804-63f3cdb75e0d/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U=
 github.com/couchbase/gomemcached v0.0.0-20200526233749-ec430f949808/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=
 github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
 github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 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-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
-github.com/denisenkom/go-mssqldb v0.10.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 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 v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-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/edsrzf/mmap-go v1.0.0/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/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
-github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
-github.com/faabiosr/cachego v0.15.0 h1:IqcDhvzMbL4a1c9Dek88DIWJYQ5HG//L0PKCReneOA4=
 github.com/faabiosr/cachego v0.15.0/go.mod h1:L2EomlU3/rUWjzFavY9Fwm8B4zZmX2X6u8kTMkETrwI=
 github.com/faabiosr/cachego v0.17.0 h1:VnlGadwy/69reG6X3KA+kAY5MB8czoiyWeeT01g6akI=
 github.com/faabiosr/cachego v0.17.0/go.mod h1:RxQt6jXFMVdz7aTB3fp+JBcdexuhJY602TdAXW3gm5s=
+github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0=
+github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64=
 github.com/facebookgo/inject v0.0.0-20180706035515-f23751cae28b h1:V6c4/dSTNhSaNn4c5ulbakfv277qCvs7byFYv7P83iQ=
 github.com/facebookgo/inject v0.0.0-20180706035515-f23751cae28b/go.mod h1:oO8UHw+fDHjDsk4CTy/E96WDzFUYozAtBAaGNoVL0+c=
+github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A=
+github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg=
 github.com/facebookgo/structtag v0.0.0-20150214074306-217e25fb9691 h1:KnnwHN59Jxec0htA2pe/i0/WI9vxXLQifdhBrP3lqcQ=
 github.com/facebookgo/structtag v0.0.0-20150214074306-217e25fb9691/go.mod h1:sKLL1iua/0etWfo/nPCmyz+v2XDMXy+Ho53W7RAuZNY=
+github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk=
+github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0=
 github.com/fastwego/offiaccount v1.0.1 h1:tmzc29OjteqZoAqFT9WckT+AHINmUDLJhwLHVRx8wm8=
 github.com/fastwego/offiaccount v1.0.1/go.mod h1:8roSt8OhE2CtdkKOqZnmUdjmmEaoJ2k//Bav/+4BrJQ=
 github.com/fastwego/wxwork v1.0.0-beta.8 h1:TJaAMwby7s3oKTPDawokYKAdSbnUUHJjMBsTk7eFEU0=
 github.com/fastwego/wxwork v1.0.0-beta.8/go.mod h1:BzD2YB7T/1dPzKyavIcqJxn+n9eWFpUTwhgriabBWi8=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
-github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
-github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
-github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
-github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
 github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/gin-contrib/gzip v0.0.5/go.mod h1:OPIK6HR0Um2vNmBUTlayD7qle4yVVRZT0PyhdUigrKk=
@@ -144,8 +81,6 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE
 github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
 github.com/gin-gonic/gin v1.7.4/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
 github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U=
-github.com/gin-gonic/gin v1.8.0 h1:4WFH5yycBMA3za5Hnl425yd9ymdw1XPm4666oab+hv4=
-github.com/gin-gonic/gin v1.8.0/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
 github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8=
 github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
 github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
@@ -153,26 +88,22 @@ github.com/go-ini/ini v1.66.6 h1:h6k2Bb0HWS/BXXHCXj4QHjxPmlIU4NK+7MuLp9SD+4k=
 github.com/go-ini/ini v1.66.6/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
 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=
-github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
 github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
 github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
 github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
 github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
 github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
 github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
-github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
 github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
 github.com/go-openapi/spec v0.20.6 h1:ich1RQ3WDbfoeTqTAb+5EIxNmpKVJZWBNah9RAT0jIQ=
 github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
 github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
 github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU=
 github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
 github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
 github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
 github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
@@ -181,30 +112,17 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+
 github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
 github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
 github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
-github.com/go-playground/validator/v10 v10.10.0 h1:I7mrTYv78z8k8VXa/qJlOlEXn/nBh+BF8dHX5nt/dr0=
 github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
 github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw=
 github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
 github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
-github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
 github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/goccy/go-json v0.8.1/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM=
 github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
-github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
 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/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-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/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 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=
@@ -215,210 +133,87 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU
 github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 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/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
-github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/gomodule/redigo v1.8.2/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/btree v1.0.0/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.2/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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 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/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
-github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/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/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
 github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
 github.com/iancoleman/strcase v0.1.1/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
-github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
-github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
-github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
-github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA=
-github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE=
-github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s=
-github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk=
-github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
-github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
-github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o=
-github.com/jackc/pgconn v1.8.1/go.mod h1:JV6m6b6jhjdmzchES0drzCcYcAHS1OPD5xu3OZ/lE2g=
-github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY=
-github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8=
-github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE=
-github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c=
-github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
-github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78=
-github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA=
-github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg=
-github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM=
-github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM=
-github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
-github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
-github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
-github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
-github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
-github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg=
-github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc=
-github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw=
-github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0=
-github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po=
-github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ=
-github.com/jackc/pgtype v1.7.0/go.mod h1:ZnHF+rMePVqDKaOfJVI4Q8IVvAQMryDlDkZnKOI75BE=
-github.com/jackc/pgtype v1.8.0/go.mod h1:PqDKcEBtllAtk/2p6z6SHdXW5UB+MhE75tUol2OKexE=
-github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y=
-github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM=
-github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc=
-github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA=
-github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o=
-github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg=
-github.com/jackc/pgx/v4 v4.11.0/go.mod h1:i62xJgdrtVDsnL3U8ekyrQXEwGNTRoG7/8r+CIdYfcc=
-github.com/jackc/pgx/v4 v4.12.0/go.mod h1:fE547h6VulLPA3kySjfnSG/e2D861g/50JlVUa/ub60=
-github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 github.com/jacobsa/go-serial v0.0.0-20180131005756-15cf729a72d4 h1:G2ztCwXov8mRvP0ZfjE6nAlaCX2XbykaeHdbT6KwDz0=
 github.com/jacobsa/go-serial v0.0.0-20180131005756-15cf729a72d4/go.mod h1:2RvX5ZjVtsznNZPEt4xwJXNJrM3VTZoQf7V6gk0ysvs=
-github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o=
-github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
-github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
 github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
 github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
 github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
-github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible h1:jdpOPRN1zP63Td1hDQbZW73xKmzDvZHzVdNYxhnTMDA=
 github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 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/k0kubun/pp/v3 v3.1.0 h1:ifxtqJkRZhw3h554/z/8zm6AAbyO4LLKDlA5eV+9O8Q=
 github.com/k0kubun/pp/v3 v3.1.0/go.mod h1:vIrP5CF0n78pKHm2Ku6GVerpZBJvscg48WepUYEk2gw=
 github.com/kardianos/service v1.2.1 h1:AYndMsehS+ywIS6RB9KOlcXzteWUzxgMgBymJD7+BYk=
 github.com/kardianos/service v1.2.1/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.2/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/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
 github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
 github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
 github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
 github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
 github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
-github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
 github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
 github.com/mattn/go-sqlite3 v1.6.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
-github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
-github.com/mattn/go-sqlite3 v1.14.9/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/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
 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=
@@ -430,91 +225,48 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9
 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
-github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
-github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
-github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
-github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
 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/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
 github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
 github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
-github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
-github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
-github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
 github.com/otiai10/copy v1.7.0/go.mod h1:rmRl6QPdJj6EiUqXQ/4Nn2lLXoNQjFCQbbNrxgc/t3U=
 github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
 github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=
 github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
 github.com/otiai10/mint v1.3.3/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
-github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
 github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU=
 github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
 github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw=
 github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI=
-github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
 github.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
-github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
-github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
 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 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
+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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
 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=
 github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
-github.com/prometheus/client_golang v1.7.0 h1:wCi7urQOGBsYcQROHqpUUX4ct84xp40t9R9JX0FuA/U=
 github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
 github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
-github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-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/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
 github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
 github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
@@ -524,50 +276,31 @@ github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
 github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E=
 github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
 github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
-github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
-github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
-github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
-github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-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/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik=
 github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
-github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
-github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
 github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 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/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
 github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 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/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=
-github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
 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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@@ -578,28 +311,20 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
+github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w=
 github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe h1:K8pHPVoTgxFJt1lXuIzzOX7zZhZFldJQK/CgKx9BFIc=
 github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w=
-github.com/swaggo/gin-swagger v1.4.3 h1:mHJz+yzJne0udgYnC5qlDf4e7KuxUbVNX2dhD/cw2rU=
-github.com/swaggo/gin-swagger v1.4.3/go.mod h1:hBg6tGeKJsUu/P79BH+WGUR8nq2LuGE0O160+s4iefo=
 github.com/swaggo/gin-swagger v1.5.0 h1:hlLbxPj6qvbtX2wpbsZuOIlcnPRCUDGccA0zMKVNpME=
 github.com/swaggo/gin-swagger v1.5.0/go.mod h1:3mKpZClKx7mnUGsiwJeEkNhnr1VHMkMaTAXIoFYUXrA=
 github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ=
-github.com/swaggo/swag v1.8.2 h1:D4aBiVS2a65zhyk3WFqOUz7Rz0sOaUcgeErcid5uGL4=
-github.com/swaggo/swag v1.8.2/go.mod h1:jMLeXOOmYyjk8PvHTsXBdrubsNd9gUJTTCzL5iBnseg=
 github.com/swaggo/swag v1.8.3 h1:3pZSSCQ//gAH88lfmxM3Cd1+JCsxV8Md6f36b9hrZ5s=
 github.com/swaggo/swag v1.8.3/go.mod h1:jMLeXOOmYyjk8PvHTsXBdrubsNd9gUJTTCzL5iBnseg=
 github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
-github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c h1:3eGShk3EQf5gJCYW+WzA0TEJQd37HLOmlYF7N0YJwv0=
 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/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
 github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
 github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
 github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo=
@@ -609,16 +334,11 @@ github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0
 github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
 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/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
 github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
 github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
 github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
 github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xormplus/builder v0.0.0-20200331055651-240ff40009be h1:HTSana2sMSKVze3XXYrF89w2tw835Fh+7xX5KPvAkuo=
-github.com/xormplus/builder v0.0.0-20200331055651-240ff40009be/go.mod h1:PgBA7NoHtnttVkWModa/qpvIWkX6MpOKgyRCWsSKSB0=
 github.com/xormplus/xorm v0.0.0-20210822100304-4e1d4fcc1e67 h1:POBVR/O5wPVI0u7ZZGqu+HFPVTYpZlSL3Uo/9g+he/w=
 github.com/xormplus/xorm v0.0.0-20210822100304-4e1d4fcc1e67/go.mod h1:+v6b10b4x5IcQmp1/Cbo9IqaknxVeuhQng+fhya6bdI=
 github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 h1:6932x8ltq1w4utjmfMPVj09jdMlkY0aiA6+Skbtl3/c=
@@ -628,155 +348,77 @@ github.com/xuri/excelize/v2 v2.6.1/go.mod h1:tL+0m6DNwSXj/sILHbQTYsLi9IF4TW59H2E
 github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M=
 github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
-github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
-github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
 go.mongodb.org/mongo-driver v1.9.0/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY=
-go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
-golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 h1:GIAS/yBem/gq2MUqgNIzUHW7cJMmx3TGZOrnyYaNQ6c=
 golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 h1:LRtI4W37N+KFebI/qV0OFiLUv4GLOWeEW5hn/KEJvxE=
 golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
-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/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-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=
-golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 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/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
 golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA=
 golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.0.0-20220617184016-355a448f1bc9 h1:Yqz/iviulwKwAREEeUd3nbBFn0XuyJqkoft2IlrvOhc=
-golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.0.0-20220812174116-3211cb980234 h1:RDqmgfe7SvlMWoqC3xwQ2blLO3fcWcxMa3eBLRdRW7E=
 golang.org/x/net v0.0.0-20220812174116-3211cb980234/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
-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/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-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=
-golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 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-20191220142924-d4481acd189f/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-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 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-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c h1:aFV+BgZ4svzjfabn8ERpuB4JI4N6/rdy1iusx77G3oU=
-golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -786,61 +428,23 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-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-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
-golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
 golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
 golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY=
 golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
-golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 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.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -856,21 +460,14 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
 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/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4 h1:eyQQg/uGuZ3ndaBhqteakHpVW+dSOPalilfC9RpM2TA=
-gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4/go.mod h1:bJkYqV5pg6+Z7MsSu/hSb1zsPT955hBW2QHLE1jm4wA=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
-gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
 gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
 gopkg.in/redis.v4 v4.2.4/go.mod h1:8KREHdypkCEojGKQcjMqAODMICIVwZAONWq8RowTITA=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
 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=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -884,117 +481,9 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gorm.io/driver/mysql v1.3.5 h1:iWBTVW/8Ij5AG4e0G/zqzaJblYkBI1VIL1LG2HUGsvY=
 gorm.io/driver/mysql v1.3.5/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c=
 gorm.io/gorm v1.23.8 h1:h8sGJ+biDgBA1AD1Ha9gFCx7h8npU7AsLdlkX0n2TpE=
 gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
-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-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
-modernc.org/cc/v3 v3.33.6/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.33.9/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.33.11/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.34.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.4/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.5/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.7/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.8/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.10/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.15/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.16/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.17/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/cc/v3 v3.35.18/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
-modernc.org/ccgo/v3 v3.9.5/go.mod h1:umuo2EP2oDSBnD3ckjaVUXMrmeAw8C8OSICVa0iFf60=
-modernc.org/ccgo/v3 v3.10.0/go.mod h1:c0yBmkRFi7uW4J7fwx/JiijwOjeAeR2NoSaRVFPmjMw=
-modernc.org/ccgo/v3 v3.11.0/go.mod h1:dGNposbDp9TOZ/1KBxghxtUp/bzErD0/0QW4hhSaBMI=
-modernc.org/ccgo/v3 v3.11.1/go.mod h1:lWHxfsn13L3f7hgGsGlU28D9eUOf6y3ZYHKoPaKU0ag=
-modernc.org/ccgo/v3 v3.11.3/go.mod h1:0oHunRBMBiXOKdaglfMlRPBALQqsfrCKXgw9okQ3GEw=
-modernc.org/ccgo/v3 v3.12.4/go.mod h1:Bk+m6m2tsooJchP/Yk5ji56cClmN6R1cqc9o/YtbgBQ=
-modernc.org/ccgo/v3 v3.12.6/go.mod h1:0Ji3ruvpFPpz+yu+1m0wk68pdr/LENABhTrDkMDWH6c=
-modernc.org/ccgo/v3 v3.12.8/go.mod h1:Hq9keM4ZfjCDuDXxaHptpv9N24JhgBZmUG5q60iLgUo=
-modernc.org/ccgo/v3 v3.12.11/go.mod h1:0jVcmyDwDKDGWbcrzQ+xwJjbhZruHtouiBEvDfoIsdg=
-modernc.org/ccgo/v3 v3.12.14/go.mod h1:GhTu1k0YCpJSuWwtRAEHAol5W7g1/RRfS4/9hc9vF5I=
-modernc.org/ccgo/v3 v3.12.18/go.mod h1:jvg/xVdWWmZACSgOiAhpWpwHWylbJaSzayCqNOJKIhs=
-modernc.org/ccgo/v3 v3.12.20/go.mod h1:aKEdssiu7gVgSy/jjMastnv/q6wWGRbszbheXgWRHc8=
-modernc.org/ccgo/v3 v3.12.21/go.mod h1:ydgg2tEprnyMn159ZO/N4pLBqpL7NOkJ88GT5zNU2dE=
-modernc.org/ccgo/v3 v3.12.22/go.mod h1:nyDVFMmMWhMsgQw+5JH6B6o4MnZ+UQNw1pp52XYFPRk=
-modernc.org/ccgo/v3 v3.12.25/go.mod h1:UaLyWI26TwyIT4+ZFNjkyTbsPsY3plAEB6E7L/vZV3w=
-modernc.org/ccgo/v3 v3.12.29/go.mod h1:FXVjG7YLf9FetsS2OOYcwNhcdOLGt8S9bQ48+OP75cE=
-modernc.org/ccgo/v3 v3.12.36/go.mod h1:uP3/Fiezp/Ga8onfvMLpREq+KUjUmYMxXPO8tETHtA8=
-modernc.org/ccgo/v3 v3.12.38/go.mod h1:93O0G7baRST1vNj4wnZ49b1kLxt0xCW5Hsa2qRaZPqc=
-modernc.org/ccgo/v3 v3.12.43/go.mod h1:k+DqGXd3o7W+inNujK15S5ZYuPoWYLpF5PYougCmthU=
-modernc.org/ccgo/v3 v3.12.46/go.mod h1:UZe6EvMSqOxaJ4sznY7b23/k13R8XNlyWsO5bAmSgOE=
-modernc.org/ccgo/v3 v3.12.47/go.mod h1:m8d6p0zNps187fhBwzY/ii6gxfjob1VxWb919Nk1HUk=
-modernc.org/ccgo/v3 v3.12.50/go.mod h1:bu9YIwtg+HXQxBhsRDE+cJjQRuINuT9PUK4orOco/JI=
-modernc.org/ccgo/v3 v3.12.51/go.mod h1:gaIIlx4YpmGO2bLye04/yeblmvWEmE4BBBls4aJXFiE=
-modernc.org/ccgo/v3 v3.12.53/go.mod h1:8xWGGTFkdFEWBEsUmi+DBjwu/WLy3SSOrqEmKUjMeEg=
-modernc.org/ccgo/v3 v3.12.54/go.mod h1:yANKFTm9llTFVX1FqNKHE0aMcQb1fuPJx6p8AcUx+74=
-modernc.org/ccgo/v3 v3.12.55/go.mod h1:rsXiIyJi9psOwiBkplOaHye5L4MOOaCjHg1Fxkj7IeU=
-modernc.org/ccgo/v3 v3.12.56/go.mod h1:ljeFks3faDseCkr60JMpeDb2GSO3TKAmrzm7q9YOcMU=
-modernc.org/ccgo/v3 v3.12.57/go.mod h1:hNSF4DNVgBl8wYHpMvPqQWDQx8luqxDnNGCMM4NFNMc=
-modernc.org/ccgo/v3 v3.12.60/go.mod h1:k/Nn0zdO1xHVWjPYVshDeWKqbRWIfif5dtsIOCUVMqM=
-modernc.org/ccgo/v3 v3.12.65/go.mod h1:D6hQtKxPNZiY6wDBtehSGKFKmyXn53F8nGTpH+POmS4=
-modernc.org/ccgo/v3 v3.12.66/go.mod h1:jUuxlCFZTUZLMV08s7B1ekHX5+LIAurKTTaugUr/EhQ=
-modernc.org/ccgo/v3 v3.12.67/go.mod h1:Bll3KwKvGROizP2Xj17GEGOTrlvB1XcVaBrC90ORO84=
-modernc.org/ccgo/v3 v3.12.73/go.mod h1:hngkB+nUUqzOf3iqsM48Gf1FZhY599qzVg1iX+BT3cQ=
-modernc.org/ccgo/v3 v3.12.81/go.mod h1:p2A1duHoBBg1mFtYvnhAnQyI6vL0uw5PGYLSIgF6rYY=
-modernc.org/ccgo/v3 v3.12.82/go.mod h1:ApbflUfa5BKadjHynCficldU1ghjen84tuM5jRynB7w=
-modernc.org/ccorpus v1.11.1/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
-modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
-modernc.org/libc v1.9.8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
-modernc.org/libc v1.9.11/go.mod h1:NyF3tsA5ArIjJ83XB0JlqhjTabTCHm9aX4XMPHyQn0Q=
-modernc.org/libc v1.11.0/go.mod h1:2lOfPmj7cz+g1MrPNmX65QCzVxgNq2C5o0jdLY2gAYg=
-modernc.org/libc v1.11.2/go.mod h1:ioIyrl3ETkugDO3SGZ+6EOKvlP3zSOycUETe4XM4n8M=
-modernc.org/libc v1.11.5/go.mod h1:k3HDCP95A6U111Q5TmG3nAyUcp3kR5YFZTeDS9v8vSU=
-modernc.org/libc v1.11.6/go.mod h1:ddqmzR6p5i4jIGK1d/EiSw97LBcE3dK24QEwCFvgNgE=
-modernc.org/libc v1.11.11/go.mod h1:lXEp9QOOk4qAYOtL3BmMve99S5Owz7Qyowzvg6LiZso=
-modernc.org/libc v1.11.13/go.mod h1:ZYawJWlXIzXy2Pzghaf7YfM8OKacP3eZQI81PDLFdY8=
-modernc.org/libc v1.11.16/go.mod h1:+DJquzYi+DMRUtWI1YNxrlQO6TcA5+dRRiq8HWBWRC8=
-modernc.org/libc v1.11.19/go.mod h1:e0dgEame6mkydy19KKaVPBeEnyJB4LGNb0bBH1EtQ3I=
-modernc.org/libc v1.11.24/go.mod h1:FOSzE0UwookyT1TtCJrRkvsOrX2k38HoInhw+cSCUGk=
-modernc.org/libc v1.11.26/go.mod h1:SFjnYi9OSd2W7f4ct622o/PAYqk7KHv6GS8NZULIjKY=
-modernc.org/libc v1.11.27/go.mod h1:zmWm6kcFXt/jpzeCgfvUNswM0qke8qVwxqZrnddlDiE=
-modernc.org/libc v1.11.28/go.mod h1:Ii4V0fTFcbq3qrv3CNn+OGHAvzqMBvC7dBNyC4vHZlg=
-modernc.org/libc v1.11.31/go.mod h1:FpBncUkEAtopRNJj8aRo29qUiyx5AvAlAxzlx9GNaVM=
-modernc.org/libc v1.11.34/go.mod h1:+Tzc4hnb1iaX/SKAutJmfzES6awxfU1BPvrrJO0pYLg=
-modernc.org/libc v1.11.37/go.mod h1:dCQebOwoO1046yTrfUE5nX1f3YpGZQKNcITUYWlrAWo=
-modernc.org/libc v1.11.39/go.mod h1:mV8lJMo2S5A31uD0k1cMu7vrJbSA3J3waQJxpV4iqx8=
-modernc.org/libc v1.11.42/go.mod h1:yzrLDU+sSjLE+D4bIhS7q1L5UwXDOw99PLSX0BlZvSQ=
-modernc.org/libc v1.11.44/go.mod h1:KFq33jsma7F5WXiYelU8quMJasCCTnHK0mkri4yPHgA=
-modernc.org/libc v1.11.45/go.mod h1:Y192orvfVQQYFzCNsn+Xt0Hxt4DiO4USpLNXBlXg/tM=
-modernc.org/libc v1.11.47/go.mod h1:tPkE4PzCTW27E6AIKIR5IwHAQKCAtudEIeAV1/SiyBg=
-modernc.org/libc v1.11.49/go.mod h1:9JrJuK5WTtoTWIFQ7QjX2Mb/bagYdZdscI3xrvHbXjE=
-modernc.org/libc v1.11.51/go.mod h1:R9I8u9TS+meaWLdbfQhq2kFknTW0O3aw3kEMqDDxMaM=
-modernc.org/libc v1.11.53/go.mod h1:5ip5vWYPAoMulkQ5XlSJTy12Sz5U6blOQiYasilVPsU=
-modernc.org/libc v1.11.54/go.mod h1:S/FVnskbzVUrjfBqlGFIPA5m7UwB3n9fojHhCNfSsnw=
-modernc.org/libc v1.11.55/go.mod h1:j2A5YBRm6HjNkoSs/fzZrSxCuwWqcMYTDPLNx0URn3M=
-modernc.org/libc v1.11.56/go.mod h1:pakHkg5JdMLt2OgRadpPOTnyRXm/uzu+Yyg/LSLdi18=
-modernc.org/libc v1.11.58/go.mod h1:ns94Rxv0OWyoQrDqMFfWwka2BcaF6/61CqJRK9LP7S8=
-modernc.org/libc v1.11.70/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw=
-modernc.org/libc v1.11.71/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw=
-modernc.org/libc v1.11.75/go.mod h1:dGRVugT6edz361wmD9gk6ax1AbDSe0x5vji0dGJiPT0=
-modernc.org/libc v1.11.82/go.mod h1:NF+Ek1BOl2jeC7lw3a7Jj5PWyHPwWD4aq3wVKxqV1fI=
-modernc.org/libc v1.11.86/go.mod h1:ePuYgoQLmvxdNT06RpGnaDKJmDNEkV7ZPKI2jnsvZoE=
-modernc.org/libc v1.11.87/go.mod h1:Qvd5iXTeLhI5PS0XSyqMY99282y+3euapQFxM7jYnpY=
-modernc.org/mathutil v1.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/mathutil v1.4.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/memory v1.0.4/go.mod h1:nV2OApxradM3/OVbs2/0OsP6nPfakXpi50C7dcoHXlc=
-modernc.org/memory v1.0.5/go.mod h1:B7OYswTRnfGg+4tDH1t1OeUNnsy2viGTdME4tzd+IjM=
-modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
-modernc.org/sqlite v1.14.2/go.mod h1:yqfn85u8wVOE6ub5UT8VI9JjhrwBUUCNyTACN0h6Sx8=
-modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
-modernc.org/tcl v1.8.13/go.mod h1:V+q/Ef0IJaNUSECieLU4o+8IScapxnMyFV6i/7uQlAY=
-modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
-modernc.org/z v1.2.19/go.mod h1:+ZpP0pc4zz97eukOzW3xagV/lS82IpPN9NGG5pNF9vY=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
-xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 h1:bvLlAPW1ZMTWA32LuZMBEGHAUOcATZjzHcotf3SWweM=
-xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
-xorm.io/xorm v1.3.2 h1:uTRRKF2jYzbZ5nsofXVUx6ncMaek+SHjWYtCXyZo1oM=
-xorm.io/xorm v1.3.2/go.mod h1:9NbjqdnjX6eyjRRhh01GHm64r6N9shTb/8Ak3YRt8Nw=

+ 1 - 0
test/sap.go

@@ -10,6 +10,7 @@ import (
 	"kpt.xdmy/apiserver/service"
 )
 
+
 func TestSap() {
 	// sapMaterial()
 	sapSupplier()

+ 5 - 2
test/test.go

@@ -19,7 +19,8 @@ import (
 var s *service.Service
 
 func Test() {
-	TestSap()
+	TestJob()
+	// TestSap()
 	// logInit()
 	// EasBatch()
 
@@ -28,7 +29,9 @@ func Test() {
 	// Sqlx()
 	// Xorm()
 }
-
+func TestJob() {
+	service.SapJobInit()
+}
 func Init() {
 	var path string
 	path = "/Users/desire/kptdev/xdmy_mod/cmd/"