Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
9def951db4
@ -4,7 +4,7 @@
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 20,
|
||||
"itemid": 1010,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -13,7 +13,7 @@
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 30,
|
||||
"itemid": 1020,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -22,7 +22,7 @@
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 40,
|
||||
"itemid": 1030,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -31,61 +31,7 @@
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 50,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 60,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"assembleid": 60000010,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 70,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 80,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 90,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 100,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 110,
|
||||
"itemid": 1040,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -94,7 +40,7 @@
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 120,
|
||||
"itemid": 1050,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -103,7 +49,7 @@
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 130,
|
||||
"itemid": 1050,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -112,7 +58,7 @@
|
||||
"assembleid": 60000020,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 140,
|
||||
"itemid": 1060,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -121,115 +67,7 @@
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 150,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 160,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 170,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 180,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 190,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 200,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 210,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 220,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 230,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 240,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 250,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 260,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"assembleid": 60000030,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 270,
|
||||
"itemid": 1070,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -238,7 +76,7 @@
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 280,
|
||||
"itemid": 1080,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -247,88 +85,7 @@
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 290,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 300,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 310,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 320,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 330,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 340,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 350,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 35,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 360,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 36,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 370,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 37,
|
||||
"assembleid": 60000040,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 380,
|
||||
"itemid": 1090,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -337,7 +94,7 @@
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 390,
|
||||
"itemid": 1100,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
@ -346,475 +103,7 @@
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 400,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 40,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 410,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 41,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 420,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 42,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 430,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 43,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 440,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 44,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 450,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 45,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 460,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 470,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 47,
|
||||
"assembleid": 60000050,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 480,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 48,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 490,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 49,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 500,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 50,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 510,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 51,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 520,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 52,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 530,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 53,
|
||||
"assembleid": 60000060,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 540,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 54,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 550,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 55,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 560,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 56,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 570,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 57,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 580,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 58,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 590,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 59,
|
||||
"assembleid": 60000070,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 600,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 60,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 610,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 61,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 620,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 62,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 630,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 63,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 640,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 64,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 650,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 65,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 660,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 66,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 670,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 67,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 680,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 68,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 690,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 69,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 700,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 70,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 710,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 71,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 720,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 72,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 730,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 73,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 740,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 74,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 750,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 75,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 760,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 76,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 770,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 77,
|
||||
"assembleid": 60000080,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 780,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 78,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 790,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 79,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 800,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 80,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 810,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 81,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 820,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 82,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 830,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 83,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 840,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 84,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 850,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 85,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 860,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 86,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 870,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 87,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 880,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 88,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 890,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 89,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 900,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 90,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 910,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
},
|
||||
{
|
||||
"id": 91,
|
||||
"assembleid": 60000090,
|
||||
"lvstart": 1,
|
||||
"lvend": 999,
|
||||
"itemid": 920,
|
||||
"itemid": 1110,
|
||||
"itemwt": 1000,
|
||||
"min": 0
|
||||
}
|
||||
|
@ -1,86 +1,98 @@
|
||||
[
|
||||
{
|
||||
"key": 1,
|
||||
"ExaminationGroup": 1001,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 180,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
},
|
||||
{
|
||||
"key": 2,
|
||||
"ExaminationGroup": 1002,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 180,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
},
|
||||
{
|
||||
"key": 3,
|
||||
"ExaminationGroup": 1003,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 180,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
},
|
||||
{
|
||||
"key": 4,
|
||||
"ExaminationGroup": 1004,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 180,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
},
|
||||
{
|
||||
"key": 5,
|
||||
"ExaminationGroup": 1005,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 180,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
},
|
||||
{
|
||||
"key": 6,
|
||||
"ExaminationGroup": 1006,
|
||||
"examinationnum": 3,
|
||||
"start": 500,
|
||||
"continue": 500,
|
||||
"time": 360,
|
||||
"time": 0,
|
||||
"reward": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
],
|
||||
"restime": 1
|
||||
}
|
||||
]
|
@ -28,7 +28,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -60,7 +60,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -92,7 +92,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -124,7 +124,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -156,7 +156,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -188,7 +188,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -220,7 +220,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -252,7 +252,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -284,7 +284,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -316,7 +316,7 @@
|
||||
"flase": "",
|
||||
"fraction": 1,
|
||||
"plantrue": [
|
||||
"planA"
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -348,8 +348,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -381,8 +381,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -414,8 +414,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -447,8 +447,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -480,8 +480,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -513,8 +513,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -546,8 +546,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -579,8 +579,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -612,8 +612,8 @@
|
||||
"flase": "",
|
||||
"fraction": 3,
|
||||
"plantrue": [
|
||||
"planA",
|
||||
"planB"
|
||||
1,
|
||||
2
|
||||
]
|
||||
}
|
||||
]
|
@ -554,7 +554,7 @@
|
||||
},
|
||||
{
|
||||
"id": 129,
|
||||
"PlayType": 2,
|
||||
"PlayType": 16,
|
||||
"HeroCount": 5,
|
||||
"readyScene": "scenesfight_role_interface_06",
|
||||
"battleScenes": [
|
||||
@ -573,7 +573,7 @@
|
||||
},
|
||||
{
|
||||
"id": 130,
|
||||
"PlayType": 2,
|
||||
"PlayType": 15,
|
||||
"HeroCount": 5,
|
||||
"readyScene": "scenesfight_role_interface_06",
|
||||
"battleScenes": [
|
||||
@ -594,7 +594,7 @@
|
||||
},
|
||||
{
|
||||
"id": 131,
|
||||
"PlayType": 2,
|
||||
"PlayType": 15,
|
||||
"HeroCount": 5,
|
||||
"readyScene": "scenesfight_role_interface_06",
|
||||
"battleScenes": [
|
||||
@ -615,7 +615,7 @@
|
||||
},
|
||||
{
|
||||
"id": 132,
|
||||
"PlayType": 2,
|
||||
"PlayType": 15,
|
||||
"HeroCount": 5,
|
||||
"readyScene": "scenesfight_role_interface_06",
|
||||
"battleScenes": [
|
||||
|
@ -24467,8 +24467,10 @@
|
||||
"n": 1
|
||||
},
|
||||
"NPC": 0,
|
||||
"value": 1000,
|
||||
"filter": [],
|
||||
"value": 10,
|
||||
"filter": [
|
||||
1
|
||||
],
|
||||
"filter2": []
|
||||
},
|
||||
{
|
||||
|
@ -1153,5 +1153,17 @@
|
||||
"id": 202,
|
||||
"insert": 2,
|
||||
"filter": []
|
||||
},
|
||||
{
|
||||
"id": 203,
|
||||
"insert": 1,
|
||||
"filter": [
|
||||
"eq"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 204,
|
||||
"insert": 1,
|
||||
"filter": []
|
||||
}
|
||||
]
|
@ -58,5 +58,15 @@
|
||||
"ips": "10.0.0.208:7891",
|
||||
"debug": true,
|
||||
"sid": "dfjl"
|
||||
},
|
||||
{
|
||||
"index": 170,
|
||||
"name": {
|
||||
"key": "debug_server_05",
|
||||
"text": "版署测试服"
|
||||
},
|
||||
"ips": "101.35.125.220:6088",
|
||||
"debug": true,
|
||||
"sid": "170"
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load Diff
@ -4093,7 +4093,7 @@
|
||||
"Id": 390001451,
|
||||
"Name": {
|
||||
"key": "skill_skill_buff_Name_390001451",
|
||||
"text": "[color=#37d8a9]BOSS专用免疫控制效果[/color] "
|
||||
"text": "[color=#37d8a9]免疫控制[/color] "
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_skill_buff_Desc_390001451",
|
||||
|
@ -60,7 +60,7 @@
|
||||
"id": 40,
|
||||
"name": {
|
||||
"key": "worldtask_world_all_name_4",
|
||||
"text": "章节4:交易所风波"
|
||||
"text": "章节4:交易所风波(上)"
|
||||
},
|
||||
"task_icon": "",
|
||||
"task_txt": {
|
||||
@ -79,7 +79,7 @@
|
||||
"id": 50,
|
||||
"name": {
|
||||
"key": "worldtask_world_all_name_5",
|
||||
"text": "章节5:暂定名字"
|
||||
"text": "章节5:交易所风波(下)"
|
||||
},
|
||||
"task_icon": "",
|
||||
"task_txt": {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -92,6 +92,7 @@ const (
|
||||
ModulePasson core.M_Modules = "passon" //传功房
|
||||
ModuleWarorder core.M_Modules = "warorder" //战令
|
||||
ModuleUnionGve core.M_Modules = "uniongve" //工会boos战
|
||||
ModuleDailytask core.M_Modules = "dailytask" //每日任务
|
||||
)
|
||||
|
||||
// 数据表名定义处
|
||||
@ -305,6 +306,8 @@ const (
|
||||
|
||||
// 世界buff
|
||||
TableWorldBuff = "worldbuff"
|
||||
//世界任务
|
||||
TableDailytask = "dailytask"
|
||||
)
|
||||
|
||||
// RPC服务接口定义处
|
||||
@ -768,6 +771,8 @@ const (
|
||||
Rtype200 TaskType = 200 //在狩猎内战斗X次
|
||||
Rtype201 TaskType = 201 //在维京体系的副本内消耗X体力
|
||||
Rtype202 TaskType = 202 //在狩猎体系的副本内消耗X体力
|
||||
Rtype203 TaskType = 203 //完成指定试卷组
|
||||
Rtype204 TaskType = 204 //完成任意一场考试
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -569,6 +569,10 @@ type (
|
||||
ClearCaravanTask(session IUserSession, task int32)
|
||||
// bingo任务
|
||||
BingoJumpTask(session IUserSession, rtaskId int32) (errdata *pb.ErrorData)
|
||||
//重置日常任务
|
||||
ResetDailytaskTask(session IUserSession, groupId ...int32) (task map[int32][]int32, errdata *pb.ErrorData)
|
||||
//查询任务进度
|
||||
InquireTaskProgress(session IUserSession, tasks ...int32) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData)
|
||||
}
|
||||
//战令
|
||||
IWarorder interface {
|
||||
|
@ -691,7 +691,7 @@ func (this *Buried) updateAndCheckBuried(bconf *cfg.GameBuriedTypeData, bdata *p
|
||||
// 判断埋点数据的有效性
|
||||
func (this *Buried) checkburied(buried *pb.BuriedParam, bconf *cfg.GameBuriedTypeData, conf *cfg.GameBuriedCondiData) (efficient bool) {
|
||||
if !(len(buried.Filter) == len(conf.Filter) && len(bconf.Filter) == len(conf.Filter)) {
|
||||
this.Error("校验埋点错误!", log.Field{Key: "buried", Value: buried}, log.Field{Key: "conf", Value: conf})
|
||||
this.Debug("校验埋点错误!", log.Field{Key: "buried", Value: buried}, log.Field{Key: "conf", Value: conf})
|
||||
return
|
||||
}
|
||||
for i, v := range conf.Filter {
|
||||
|
20
modules/dailytask/api.go
Normal file
20
modules/dailytask/api.go
Normal file
@ -0,0 +1,20 @@
|
||||
package dailytask
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/base"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
|
||||
type apiComp struct {
|
||||
modules.MCompGate
|
||||
service base.IRPCXService
|
||||
module *Dailytask
|
||||
}
|
||||
|
||||
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
_ = this.MCompGate.Init(service, module, comp, options)
|
||||
this.service = service.(base.IRPCXService)
|
||||
this.module = module.(*Dailytask)
|
||||
return
|
||||
}
|
69
modules/dailytask/api_Info.go
Normal file
69
modules/dailytask/api_Info.go
Normal file
@ -0,0 +1,69 @@
|
||||
package dailytask
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
)
|
||||
|
||||
// 参数校验
|
||||
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.DailytaskInfoReq) (errdata *pb.ErrorData) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// /获取自己的排行榜信息
|
||||
func (this *apiComp) Info(session comm.IUserSession, req *pb.DailytaskInfoReq) (errdata *pb.ErrorData) {
|
||||
var (
|
||||
dtask *pb.DBDailytask
|
||||
tasks []int32
|
||||
progress []*pb.DBWTaskItem
|
||||
progressMap map[int32]*pb.DBWTaskItem = make(map[int32]*pb.DBWTaskItem)
|
||||
TaskProgress []*pb.DBDailytaskGroupProgress
|
||||
ok bool
|
||||
err error
|
||||
)
|
||||
if errdata = this.InfoCheck(session, req); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if dtask, err = this.module.modelDailytask.getUserDTasks(session.GetUserId()); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_DBError,
|
||||
Title: pb.ErrorCode_DBError.ToString(),
|
||||
Message: err.Error(),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
for _, v := range dtask.Groups {
|
||||
tasks = append(tasks, v.Tasks...)
|
||||
}
|
||||
|
||||
if progress, errdata = this.module.wtask.InquireTaskProgress(session, tasks...); err != nil {
|
||||
return
|
||||
}
|
||||
for _, v := range progress {
|
||||
progressMap[v.Tid] = v
|
||||
}
|
||||
|
||||
TaskProgress = make([]*pb.DBDailytaskGroupProgress, 0)
|
||||
for _, v := range dtask.Groups {
|
||||
pg := &pb.DBDailytaskGroupProgress{Group: v.Group, Tasks: make([]*pb.DBWTaskItem, 0)}
|
||||
for _, v := range v.Tasks {
|
||||
if _, ok = progressMap[v]; ok {
|
||||
pg.Tasks = append(pg.Tasks, progressMap[v])
|
||||
} else {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_DBError,
|
||||
Title: pb.ErrorCode_DBError.ToString(),
|
||||
Message: fmt.Sprintf("on found task:%d", v),
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
TaskProgress = append(TaskProgress, pg)
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "info", &pb.DailytaskInfoResp{Task: TaskProgress})
|
||||
return
|
||||
}
|
121
modules/dailytask/configure.go
Normal file
121
modules/dailytask/configure.go
Normal file
@ -0,0 +1,121 @@
|
||||
package dailytask
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/sys/configure"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"sync"
|
||||
)
|
||||
|
||||
const (
|
||||
game_annulartaskall = "game_annulartaskall.json"
|
||||
game_annulartask_library = "game_annulartask_library.json"
|
||||
)
|
||||
|
||||
type configureComp struct {
|
||||
modules.MCompConfigure
|
||||
module *Dailytask
|
||||
lock sync.RWMutex
|
||||
groupTasks map[int32][]*cfg.GameAnnulartask_LibraryData //key 条件ID
|
||||
}
|
||||
|
||||
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.MCompConfigure.Init(service, module, comp, options)
|
||||
this.module = module.(*Dailytask)
|
||||
err = this.LoadMultiConfigure(map[string]interface{}{
|
||||
game_annulartaskall: cfg.NewGameAnnulartaskAll,
|
||||
game_annulartask_library: cfg.NewGameAnnulartask_Library,
|
||||
})
|
||||
configure.RegisterConfigure(game_annulartask_library, cfg.NewGameAnnulartask_Library, this.updateconfigure)
|
||||
return
|
||||
}
|
||||
|
||||
// 更新任务配置表
|
||||
func (this *configureComp) updateconfigure() {
|
||||
var (
|
||||
v interface{}
|
||||
conf *cfg.GameAnnulartask_Library
|
||||
ok bool
|
||||
err error
|
||||
)
|
||||
if v, err = this.GetConfigure(game_annulartask_library); err != nil {
|
||||
return
|
||||
}
|
||||
if conf, ok = v.(*cfg.GameAnnulartask_Library); !ok {
|
||||
this.module.Error("日常任务配置异常!")
|
||||
return
|
||||
}
|
||||
groupTasksConf := make(map[int32][]*cfg.GameAnnulartask_LibraryData)
|
||||
|
||||
for _, v := range conf.GetDataList() {
|
||||
|
||||
if _, ok := groupTasksConf[v.Assembleid]; !ok {
|
||||
groupTasksConf[v.Assembleid] = make([]*cfg.GameAnnulartask_LibraryData, 0)
|
||||
}
|
||||
groupTasksConf[v.Assembleid] = append(groupTasksConf[v.Assembleid], v)
|
||||
}
|
||||
|
||||
this.lock.Lock()
|
||||
this.groupTasks = groupTasksConf
|
||||
this.lock.Unlock()
|
||||
}
|
||||
|
||||
// 随机获取任务组
|
||||
func (this *configureComp) getAnnulartaskAll() (results *cfg.GameAnnulartaskAllData, err error) {
|
||||
var (
|
||||
v interface{}
|
||||
conf *cfg.GameAnnulartaskAll
|
||||
weights []int32
|
||||
index int32
|
||||
ok bool
|
||||
)
|
||||
if v, err = this.GetConfigure(game_annulartaskall); err != nil {
|
||||
return
|
||||
} else {
|
||||
if conf, ok = v.(*cfg.GameAnnulartaskAll); !ok {
|
||||
this.module.Errorf("err:%v", err)
|
||||
return
|
||||
}
|
||||
weights = make([]int32, len(conf.GetDataList()))
|
||||
for i, v := range conf.GetDataList() {
|
||||
weights[i] = v.Weight
|
||||
}
|
||||
index = comm.GetRandW(weights)
|
||||
results = conf.GetDataList()[index]
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 随机任务
|
||||
func (this *configureComp) getAnnulartaskLibrary(ulv, group int32) (results *cfg.GameAnnulartask_LibraryData, err error) {
|
||||
var (
|
||||
tasks []*cfg.GameAnnulartask_LibraryData
|
||||
canuse []*cfg.GameAnnulartask_LibraryData
|
||||
weights []int32
|
||||
index int32
|
||||
ok bool
|
||||
)
|
||||
this.lock.RLock()
|
||||
tasks, ok = this.groupTasks[group]
|
||||
this.lock.RUnlock()
|
||||
if !ok {
|
||||
err = fmt.Errorf("no found group:%d", group)
|
||||
return
|
||||
}
|
||||
canuse = make([]*cfg.GameAnnulartask_LibraryData, 0, len(tasks))
|
||||
for _, v := range tasks {
|
||||
if v.Lvstart <= ulv && v.Lvend >= ulv {
|
||||
canuse = append(canuse, v)
|
||||
}
|
||||
}
|
||||
weights = make([]int32, len(canuse))
|
||||
for i, v := range canuse {
|
||||
weights[i] = v.Itemwt
|
||||
}
|
||||
index = comm.GetRandW(weights)
|
||||
results = canuse[index]
|
||||
return
|
||||
}
|
67
modules/dailytask/modelDailytask.go
Normal file
67
modules/dailytask/modelDailytask.go
Normal file
@ -0,0 +1,67 @@
|
||||
package dailytask
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/mgo"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"go.mongodb.org/mongo-driver/x/bsonx"
|
||||
)
|
||||
|
||||
type ModelDailytask struct {
|
||||
modules.MCompModel
|
||||
module *Dailytask
|
||||
}
|
||||
|
||||
func (this *ModelDailytask) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.MCompModel.Init(service, module, comp, options)
|
||||
this.TableName = comm.TableDailytask
|
||||
this.module = module.(*Dailytask)
|
||||
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
|
||||
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户全部的埋点数据
|
||||
func (this *ModelDailytask) getUserDTasks(uid string) (results *pb.DBDailytask, err error) {
|
||||
results = &pb.DBDailytask{}
|
||||
if err = this.Get(uid, results); err != nil && err != mgo.MongodbNil {
|
||||
this.module.Errorln(err)
|
||||
return
|
||||
}
|
||||
if err == mgo.MongodbNil {
|
||||
results = &pb.DBDailytask{
|
||||
Id: primitive.NewObjectID().Hex(),
|
||||
Uid: uid,
|
||||
Groups: make([]*pb.DBDailytaskGroup, 0),
|
||||
Rtime: 0,
|
||||
}
|
||||
err = this.Add(uid, results)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 重置任务
|
||||
func (this *ModelDailytask) resetUserDTasks(ulv int32) (group []int32, err error) {
|
||||
var (
|
||||
conf *cfg.GameAnnulartaskAllData
|
||||
task *cfg.GameAnnulartask_LibraryData
|
||||
)
|
||||
if conf, err = this.module.configure.getAnnulartaskAll(); err != nil {
|
||||
return
|
||||
}
|
||||
group = make([]int32, 0)
|
||||
for _, v := range conf.Taskdetail {
|
||||
if task, err = this.module.configure.getAnnulartaskLibrary(ulv, v); err != nil {
|
||||
return
|
||||
}
|
||||
group = append(group, task.Itemid)
|
||||
}
|
||||
return
|
||||
}
|
107
modules/dailytask/module.go
Normal file
107
modules/dailytask/module.go
Normal file
@ -0,0 +1,107 @@
|
||||
package dailytask
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/event"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/sys/configure"
|
||||
"go_dreamfactory/sys/db"
|
||||
"go_dreamfactory/utils"
|
||||
)
|
||||
|
||||
type Dailytask struct {
|
||||
modules.ModuleBase
|
||||
service core.IService
|
||||
wtask comm.IWtask
|
||||
api *apiComp
|
||||
configure *configureComp
|
||||
modelDailytask *ModelDailytask
|
||||
}
|
||||
|
||||
func NewModule() core.IModule {
|
||||
return &Dailytask{}
|
||||
}
|
||||
|
||||
func (this *Dailytask) GetType() core.M_Modules {
|
||||
return comm.ModuleDailytask
|
||||
}
|
||||
|
||||
func (this *Dailytask) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||
err = this.ModuleBase.Init(service, module, options)
|
||||
this.service = service
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Dailytask) Start() (err error) {
|
||||
err = this.ModuleBase.Start()
|
||||
var module core.IModule
|
||||
if module, err = this.service.GetModule(comm.ModuleWtask); err != nil {
|
||||
return
|
||||
}
|
||||
this.wtask = module.(comm.IWtask)
|
||||
event.RegisterGO(comm.EventUserLogin, this.EventUserLogin)
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Dailytask) OnInstallComp() {
|
||||
this.ModuleBase.OnInstallComp()
|
||||
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
||||
this.modelDailytask = this.RegisterComp(new(ModelDailytask)).(*ModelDailytask)
|
||||
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
||||
|
||||
}
|
||||
|
||||
// 用户登录
|
||||
func (this *Dailytask) EventUserLogin(session comm.IUserSession) {
|
||||
var (
|
||||
dtask *pb.DBDailytask
|
||||
user *pb.DBUser
|
||||
errdata *pb.ErrorData
|
||||
group []int32
|
||||
tasks map[int32][]int32
|
||||
err error
|
||||
)
|
||||
|
||||
if db.IsCross() { //跨服不支持
|
||||
return
|
||||
}
|
||||
|
||||
if dtask, err = this.modelDailytask.getUserDTasks(session.GetUserId()); err != nil {
|
||||
this.Errorln(err)
|
||||
return
|
||||
}
|
||||
|
||||
if !utils.IsToday(dtask.Rtime) { //不是同一天 重置
|
||||
if user = this.ModuleUser.GetUser(session.GetUserId()); user == nil {
|
||||
this.Error("no found user", log.Field{Key: "uid", Value: session.GetUserId()})
|
||||
return
|
||||
}
|
||||
if group, err = this.modelDailytask.resetUserDTasks(user.Lv); err != nil {
|
||||
this.Errorln(err)
|
||||
return
|
||||
}
|
||||
if tasks, errdata = this.wtask.ResetDailytaskTask(session.Clone(), group...); errdata != nil {
|
||||
this.Errorln(errdata)
|
||||
return
|
||||
}
|
||||
dtask.Groups = make([]*pb.DBDailytaskGroup, 0)
|
||||
for k, v := range tasks {
|
||||
dtask.Groups = append(dtask.Groups, &pb.DBDailytaskGroup{
|
||||
Group: k,
|
||||
Tasks: v,
|
||||
})
|
||||
}
|
||||
dtask.Rtime = configure.Now().Unix()
|
||||
if err = this.modelDailytask.Change(session.GetUserId(), map[string]interface{}{
|
||||
"groups": dtask.Groups,
|
||||
"rtime": dtask.Rtime,
|
||||
}); err != nil {
|
||||
this.Errorln(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
}
|
20
modules/questionnaire/api.go
Normal file
20
modules/questionnaire/api.go
Normal file
@ -0,0 +1,20 @@
|
||||
package questionnaire
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/base"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
|
||||
type apiComp struct {
|
||||
modules.MCompGate
|
||||
service base.IRPCXService
|
||||
module *Questionnaire
|
||||
}
|
||||
|
||||
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
_ = this.MCompGate.Init(service, module, comp, options)
|
||||
this.service = service.(base.IRPCXService)
|
||||
this.module = module.(*Questionnaire)
|
||||
return
|
||||
}
|
33
modules/questionnaire/configure.go
Normal file
33
modules/questionnaire/configure.go
Normal file
@ -0,0 +1,33 @@
|
||||
package questionnaire
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
)
|
||||
|
||||
const (
|
||||
gameWorldTask = "game_worldtask.json"
|
||||
gameWorldtaskBattle = "game_worldbattle.json"
|
||||
gameWorldAll = "game_worldall.json"
|
||||
gameburiedCond = "game_buriedcondi.json"
|
||||
gamerdtasknpc = "game_rdtasknpc.json"
|
||||
)
|
||||
|
||||
type configureComp struct {
|
||||
modules.MCompConfigure
|
||||
module *Questionnaire
|
||||
}
|
||||
|
||||
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.MCompConfigure.Init(service, module, comp, options)
|
||||
this.module = module.(*Questionnaire)
|
||||
err = this.LoadMultiConfigure(map[string]interface{}{
|
||||
gameWorldTask: cfg.NewGameWorldTask,
|
||||
gameWorldtaskBattle: cfg.NewGameWorldBattle,
|
||||
gameWorldAll: cfg.NewGameWorldAll,
|
||||
gameburiedCond: cfg.NewGameBuriedCondi,
|
||||
gamerdtasknpc: cfg.NewGameRdtaskNpc,
|
||||
})
|
||||
return
|
||||
}
|
66
modules/questionnaire/modelDailytask.go
Normal file
66
modules/questionnaire/modelDailytask.go
Normal file
@ -0,0 +1,66 @@
|
||||
package questionnaire
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/lego/sys/mgo"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"go.mongodb.org/mongo-driver/x/bsonx"
|
||||
)
|
||||
|
||||
type ModelDailytask struct {
|
||||
modules.MCompModel
|
||||
module *Questionnaire
|
||||
}
|
||||
|
||||
func (this *ModelDailytask) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.MCompModel.Init(service, module, comp, options)
|
||||
this.TableName = comm.TableWtask
|
||||
this.module = module.(*Questionnaire)
|
||||
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
|
||||
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户全部的埋点数据
|
||||
func (this *ModelDailytask) getUserWTasks(uid string) (results *pb.DBWTask, err error) {
|
||||
results = &pb.DBWTask{}
|
||||
if err = this.Get(uid, results); err != nil && err != mgo.MongodbNil {
|
||||
this.module.Errorln(err)
|
||||
return
|
||||
}
|
||||
if err == mgo.MongodbNil {
|
||||
err = nil
|
||||
results = &pb.DBWTask{
|
||||
Id: primitive.NewObjectID().Hex(),
|
||||
Uid: uid,
|
||||
Currchapter: 0,
|
||||
Activations: make([]int32, 0),
|
||||
Accepts: make([]int32, 0),
|
||||
Completes: make([]int32, 0),
|
||||
Groups: make(map[int32]int32),
|
||||
}
|
||||
err = this.Add(uid, results)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelDailytask) updateUserWTasks(uid string, data *pb.DBWTask) (err error) {
|
||||
if err = this.Change(uid, map[string]interface{}{
|
||||
"currchapter": data.Currchapter,
|
||||
"activations": data.Activations,
|
||||
"accepts": data.Accepts,
|
||||
"completes": data.Completes,
|
||||
"groups": data.Groups,
|
||||
}); err != nil {
|
||||
this.module.Error("更新用户任务数据 错误!", log.Field{Key: "err", Value: err.Error()})
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
58
modules/questionnaire/module.go
Normal file
58
modules/questionnaire/module.go
Normal file
@ -0,0 +1,58 @@
|
||||
package questionnaire
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/modules"
|
||||
)
|
||||
|
||||
type Questionnaire struct {
|
||||
modules.ModuleBase
|
||||
service core.IService
|
||||
caravan comm.ICaravan
|
||||
battle comm.IBattle
|
||||
sys comm.ISys
|
||||
api *apiComp
|
||||
configure *configureComp
|
||||
modelDailytask *ModelDailytask
|
||||
}
|
||||
|
||||
func NewModule() core.IModule {
|
||||
return &Questionnaire{}
|
||||
}
|
||||
|
||||
func (this *Questionnaire) GetType() core.M_Modules {
|
||||
return comm.ModuleDailytask
|
||||
}
|
||||
|
||||
func (this *Questionnaire) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||
err = this.ModuleBase.Init(service, module, options)
|
||||
this.service = service
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Questionnaire) Start() (err error) {
|
||||
err = this.ModuleBase.Start()
|
||||
var module core.IModule
|
||||
if module, err = this.service.GetModule(comm.ModuleBattle); err != nil {
|
||||
return
|
||||
}
|
||||
this.battle = module.(comm.IBattle)
|
||||
if module, err = this.service.GetModule(comm.ModuleSys); err != nil {
|
||||
return
|
||||
}
|
||||
this.sys = module.(comm.ISys)
|
||||
if module, err = this.service.GetModule(comm.ModuleCaravan); err != nil {
|
||||
return
|
||||
}
|
||||
this.caravan = module.(comm.ICaravan)
|
||||
return
|
||||
}
|
||||
|
||||
func (this *Questionnaire) OnInstallComp() {
|
||||
this.ModuleBase.OnInstallComp()
|
||||
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
||||
this.modelDailytask = this.RegisterComp(new(ModelDailytask)).(*ModelDailytask)
|
||||
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
||||
|
||||
}
|
@ -178,7 +178,6 @@ func (this *Sociaty) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (
|
||||
reddot = make(map[comm.ReddotType]*pb.ReddotItem)
|
||||
sociaty := this.modelSociaty.getUserSociaty(session.GetUserId())
|
||||
if sociaty == nil || sociaty.Id == "" {
|
||||
log.Warn("公会红点未获得公会信息", log.Field{Key: "uid", Value: session.GetUserId()})
|
||||
for _, v := range rid {
|
||||
reddot[v] = &pb.ReddotItem{
|
||||
Rid: int32(v),
|
||||
|
@ -2,6 +2,7 @@ package user
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/sys/event"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/sys/configure"
|
||||
@ -173,5 +174,6 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (err
|
||||
rsp.Data = user
|
||||
rsp.TimeNow = configure.Now().Unix() // 设置服务器时间
|
||||
session.SendMsg(string(this.module.GetType()), UserSubTypeLogin, rsp)
|
||||
event.TriggerEvent(comm.EventUserLogin, session.Clone())
|
||||
return
|
||||
}
|
||||
|
@ -252,6 +252,152 @@ func (this *WTask) AcceptCaravanTask(session comm.IUserSession, groupId int32) (
|
||||
return
|
||||
}
|
||||
|
||||
// 重置日常任务
|
||||
func (this *WTask) ResetDailytaskTask(session comm.IUserSession, groupId ...int32) (results map[int32][]int32, errdata *pb.ErrorData) {
|
||||
var (
|
||||
alltasks map[int32]*cfg.GameWorldTaskData = make(map[int32]*cfg.GameWorldTaskData)
|
||||
groupTasks map[int32][]*cfg.GameWorldTaskData
|
||||
tasks []*cfg.GameWorldTaskData
|
||||
wtask *pb.DBWTask
|
||||
activations []int32 = make([]int32, 0)
|
||||
accepts []int32 = make([]int32, 0)
|
||||
completes []int32 = make([]int32, 0)
|
||||
err error
|
||||
ok bool
|
||||
)
|
||||
results = make(map[int32][]int32)
|
||||
for _, v := range this.configure.getdesTask(1) {
|
||||
alltasks[v.Key] = v
|
||||
}
|
||||
|
||||
if wtask, err = this.modelwtask.getUserWTasks(session.GetUserId()); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_DBError,
|
||||
Title: pb.ErrorCode_DBError.ToString(),
|
||||
Message: err.Error(),
|
||||
}
|
||||
return
|
||||
}
|
||||
//移除之前的日常任务
|
||||
for _, v := range wtask.Activations {
|
||||
if _, ok = alltasks[v]; !ok {
|
||||
activations = append(activations, v)
|
||||
}
|
||||
}
|
||||
for _, v := range wtask.Accepts {
|
||||
if _, ok = alltasks[v]; !ok {
|
||||
accepts = append(accepts, v)
|
||||
}
|
||||
}
|
||||
for _, v := range wtask.Completes {
|
||||
if _, ok = alltasks[v]; !ok {
|
||||
completes = append(completes, v)
|
||||
}
|
||||
}
|
||||
|
||||
//添加新的日常任务
|
||||
groupTasks = this.configure.getgroupTask()
|
||||
for _, v := range groupId {
|
||||
if tasks, ok = groupTasks[v]; !ok {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.String(),
|
||||
Message: fmt.Sprintf("no found group:%d", v),
|
||||
}
|
||||
return
|
||||
}
|
||||
for _, task := range tasks {
|
||||
if task.Ontxe == 0 {
|
||||
accepts = append(accepts, task.Key)
|
||||
if _, ok = results[v]; !ok {
|
||||
results[v] = make([]int32, 0)
|
||||
}
|
||||
results[v] = append(results[v], task.Key)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
wtask.Activations = activations
|
||||
wtask.Accepts = accepts
|
||||
wtask.Completes = completes
|
||||
//有新任务接取
|
||||
this.pushtaskprogress(session, wtask, true)
|
||||
if err = this.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_DBError,
|
||||
Title: pb.ErrorCode_DBError.ToString(),
|
||||
Message: err.Error(),
|
||||
}
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 查询日常任务进度
|
||||
func (this *WTask) InquireTaskProgress(session comm.IUserSession, tasks ...int32) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) {
|
||||
var (
|
||||
checkcondlsMap map[int32]struct{} = make(map[int32]struct{})
|
||||
checkcondls []int32 = make([]int32, 0)
|
||||
conf *cfg.GameWorldTaskData
|
||||
condis []*pb.ConIProgress = make([]*pb.ConIProgress, 0)
|
||||
condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress)
|
||||
err error
|
||||
ok bool
|
||||
)
|
||||
|
||||
for _, v := range tasks {
|
||||
if conf, err = this.configure.gettaskconfconfigure(v); err != nil {
|
||||
this.Errorln(err)
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: err.Error(),
|
||||
}
|
||||
return
|
||||
}
|
||||
for _, v := range conf.Completetask {
|
||||
if _, ok = checkcondlsMap[v]; !ok {
|
||||
checkcondlsMap[v] = struct{}{}
|
||||
checkcondls = append(checkcondls, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(checkcondls) > 0 {
|
||||
if condis, err = this.ModuleBuried.CheckCondition(session.GetUserId(), checkcondls...); err != nil {
|
||||
this.Error("校验玩家子任务进度数据 失败", log.Field{Key: "err", Value: err.Error()})
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ExternalModule,
|
||||
Title: pb.ErrorCode_ExternalModule.ToString(),
|
||||
Message: fmt.Sprintf("ModuleBuried.CheckCondition Error:%s", err.Error()),
|
||||
}
|
||||
return
|
||||
}
|
||||
for _, v := range condis {
|
||||
condisMap[v.Conid] = v
|
||||
}
|
||||
}
|
||||
|
||||
for _, v := range tasks {
|
||||
if conf, err = this.configure.gettaskconfconfigure(v); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: err.Error(),
|
||||
}
|
||||
return
|
||||
}
|
||||
task := &pb.DBWTaskItem{
|
||||
Tid: v,
|
||||
Conlds: make([]*pb.ConIProgress, len(conf.Completetask)),
|
||||
}
|
||||
for i, v := range conf.Completetask {
|
||||
task.Conlds[i] = condisMap[v]
|
||||
}
|
||||
progress = append(progress, task)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 清除商队任务
|
||||
func (this *WTask) ClearCaravanTask(session comm.IUserSession, task int32) {
|
||||
var (
|
||||
|
322
pb/dailytask_db.pb.go
Normal file
322
pb/dailytask_db.pb.go
Normal file
@ -0,0 +1,322 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.0
|
||||
// protoc v3.20.0
|
||||
// source: dailytask/dailytask_db.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
//日常任务
|
||||
type DBDailytask struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
|
||||
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
|
||||
Groups []*DBDailytaskGroup `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups"`
|
||||
Rtime int64 `protobuf:"varint,4,opt,name=rtime,proto3" json:"rtime"`
|
||||
}
|
||||
|
||||
func (x *DBDailytask) Reset() {
|
||||
*x = DBDailytask{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DBDailytask) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DBDailytask) ProtoMessage() {}
|
||||
|
||||
func (x *DBDailytask) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DBDailytask.ProtoReflect.Descriptor instead.
|
||||
func (*DBDailytask) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_db_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *DBDailytask) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *DBDailytask) GetUid() string {
|
||||
if x != nil {
|
||||
return x.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *DBDailytask) GetGroups() []*DBDailytaskGroup {
|
||||
if x != nil {
|
||||
return x.Groups
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *DBDailytask) GetRtime() int64 {
|
||||
if x != nil {
|
||||
return x.Rtime
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type DBDailytaskGroup struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Group int32 `protobuf:"varint,3,opt,name=group,proto3" json:"group"`
|
||||
Tasks []int32 `protobuf:"varint,2,rep,packed,name=tasks,proto3" json:"tasks"`
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroup) Reset() {
|
||||
*x = DBDailytaskGroup{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroup) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DBDailytaskGroup) ProtoMessage() {}
|
||||
|
||||
func (x *DBDailytaskGroup) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DBDailytaskGroup.ProtoReflect.Descriptor instead.
|
||||
func (*DBDailytaskGroup) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_db_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroup) GetGroup() int32 {
|
||||
if x != nil {
|
||||
return x.Group
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroup) GetTasks() []int32 {
|
||||
if x != nil {
|
||||
return x.Tasks
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type DBDailytaskGroupProgress struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Group int32 `protobuf:"varint,3,opt,name=group,proto3" json:"group"`
|
||||
Tasks []*DBWTaskItem `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks"`
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroupProgress) Reset() {
|
||||
*x = DBDailytaskGroupProgress{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroupProgress) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DBDailytaskGroupProgress) ProtoMessage() {}
|
||||
|
||||
func (x *DBDailytaskGroupProgress) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_db_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DBDailytaskGroupProgress.ProtoReflect.Descriptor instead.
|
||||
func (*DBDailytaskGroupProgress) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_db_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroupProgress) GetGroup() int32 {
|
||||
if x != nil {
|
||||
return x.Group
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DBDailytaskGroupProgress) GetTasks() []*DBWTaskItem {
|
||||
if x != nil {
|
||||
return x.Tasks
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_dailytask_dailytask_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_dailytask_dailytask_db_proto_rawDesc = []byte{
|
||||
0x0a, 0x1c, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x64, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14,
|
||||
0x77, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x70, 0x0a, 0x0b, 0x44, 0x42, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74,
|
||||
0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18,
|
||||
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74,
|
||||
0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x10, 0x44, 0x42, 0x44, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52,
|
||||
0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x42, 0x44, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
|
||||
0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b,
|
||||
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x42, 0x57, 0x54, 0x61, 0x73,
|
||||
0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x42, 0x06, 0x5a, 0x04,
|
||||
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_dailytask_dailytask_db_proto_rawDescOnce sync.Once
|
||||
file_dailytask_dailytask_db_proto_rawDescData = file_dailytask_dailytask_db_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_dailytask_dailytask_db_proto_rawDescGZIP() []byte {
|
||||
file_dailytask_dailytask_db_proto_rawDescOnce.Do(func() {
|
||||
file_dailytask_dailytask_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_dailytask_dailytask_db_proto_rawDescData)
|
||||
})
|
||||
return file_dailytask_dailytask_db_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_dailytask_dailytask_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_dailytask_dailytask_db_proto_goTypes = []interface{}{
|
||||
(*DBDailytask)(nil), // 0: DBDailytask
|
||||
(*DBDailytaskGroup)(nil), // 1: DBDailytaskGroup
|
||||
(*DBDailytaskGroupProgress)(nil), // 2: DBDailytaskGroupProgress
|
||||
(*DBWTaskItem)(nil), // 3: DBWTaskItem
|
||||
}
|
||||
var file_dailytask_dailytask_db_proto_depIdxs = []int32{
|
||||
1, // 0: DBDailytask.groups:type_name -> DBDailytaskGroup
|
||||
3, // 1: DBDailytaskGroupProgress.tasks:type_name -> DBWTaskItem
|
||||
2, // [2:2] is the sub-list for method output_type
|
||||
2, // [2:2] is the sub-list for method input_type
|
||||
2, // [2:2] is the sub-list for extension type_name
|
||||
2, // [2:2] is the sub-list for extension extendee
|
||||
0, // [0:2] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_dailytask_dailytask_db_proto_init() }
|
||||
func file_dailytask_dailytask_db_proto_init() {
|
||||
if File_dailytask_dailytask_db_proto != nil {
|
||||
return
|
||||
}
|
||||
file_wtask_wtask_db_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_dailytask_dailytask_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DBDailytask); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dailytask_dailytask_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DBDailytaskGroup); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dailytask_dailytask_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DBDailytaskGroupProgress); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_dailytask_dailytask_db_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 3,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_dailytask_dailytask_db_proto_goTypes,
|
||||
DependencyIndexes: file_dailytask_dailytask_db_proto_depIdxs,
|
||||
MessageInfos: file_dailytask_dailytask_db_proto_msgTypes,
|
||||
}.Build()
|
||||
File_dailytask_dailytask_db_proto = out.File
|
||||
file_dailytask_dailytask_db_proto_rawDesc = nil
|
||||
file_dailytask_dailytask_db_proto_goTypes = nil
|
||||
file_dailytask_dailytask_db_proto_depIdxs = nil
|
||||
}
|
310
pb/dailytask_msg.pb.go
Normal file
310
pb/dailytask_msg.pb.go
Normal file
@ -0,0 +1,310 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.0
|
||||
// protoc v3.20.0
|
||||
// source: dailytask/dailytask_msg.proto
|
||||
|
||||
package pb
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
//日常任务信息获取
|
||||
type DailytaskInfoReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *DailytaskInfoReq) Reset() {
|
||||
*x = DailytaskInfoReq{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DailytaskInfoReq) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DailytaskInfoReq) ProtoMessage() {}
|
||||
|
||||
func (x *DailytaskInfoReq) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DailytaskInfoReq.ProtoReflect.Descriptor instead.
|
||||
func (*DailytaskInfoReq) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_msg_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
//日常任务信息获取 回应
|
||||
type DailytaskInfoResp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Task []*DBDailytaskGroupProgress `protobuf:"bytes,1,rep,name=task,proto3" json:"task"`
|
||||
}
|
||||
|
||||
func (x *DailytaskInfoResp) Reset() {
|
||||
*x = DailytaskInfoResp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DailytaskInfoResp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DailytaskInfoResp) ProtoMessage() {}
|
||||
|
||||
func (x *DailytaskInfoResp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DailytaskInfoResp.ProtoReflect.Descriptor instead.
|
||||
func (*DailytaskInfoResp) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_msg_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *DailytaskInfoResp) GetTask() []*DBDailytaskGroupProgress {
|
||||
if x != nil {
|
||||
return x.Task
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//日常任务 领奖请求
|
||||
type DailytaskReceiveReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *DailytaskReceiveReq) Reset() {
|
||||
*x = DailytaskReceiveReq{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DailytaskReceiveReq) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DailytaskReceiveReq) ProtoMessage() {}
|
||||
|
||||
func (x *DailytaskReceiveReq) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DailytaskReceiveReq.ProtoReflect.Descriptor instead.
|
||||
func (*DailytaskReceiveReq) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_msg_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
//日常任务 领奖请求 回应
|
||||
type DailytaskReceiveResp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *DailytaskReceiveResp) Reset() {
|
||||
*x = DailytaskReceiveResp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DailytaskReceiveResp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DailytaskReceiveResp) ProtoMessage() {}
|
||||
|
||||
func (x *DailytaskReceiveResp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dailytask_dailytask_msg_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DailytaskReceiveResp.ProtoReflect.Descriptor instead.
|
||||
func (*DailytaskReceiveResp) Descriptor() ([]byte, []int) {
|
||||
return file_dailytask_dailytask_msg_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
var File_dailytask_dailytask_msg_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_dailytask_dailytask_msg_proto_rawDesc = []byte{
|
||||
0x0a, 0x1d, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x64, 0x61, 0x69, 0x6c,
|
||||
0x79, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
|
||||
0x1c, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79,
|
||||
0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x12, 0x0a,
|
||||
0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
|
||||
0x71, 0x22, 0x42, 0x0a, 0x11, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61,
|
||||
0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52,
|
||||
0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61,
|
||||
0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x22, 0x16, 0x0a, 0x14,
|
||||
0x44, 0x61, 0x69, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
|
||||
0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_dailytask_dailytask_msg_proto_rawDescOnce sync.Once
|
||||
file_dailytask_dailytask_msg_proto_rawDescData = file_dailytask_dailytask_msg_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_dailytask_dailytask_msg_proto_rawDescGZIP() []byte {
|
||||
file_dailytask_dailytask_msg_proto_rawDescOnce.Do(func() {
|
||||
file_dailytask_dailytask_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_dailytask_dailytask_msg_proto_rawDescData)
|
||||
})
|
||||
return file_dailytask_dailytask_msg_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_dailytask_dailytask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_dailytask_dailytask_msg_proto_goTypes = []interface{}{
|
||||
(*DailytaskInfoReq)(nil), // 0: DailytaskInfoReq
|
||||
(*DailytaskInfoResp)(nil), // 1: DailytaskInfoResp
|
||||
(*DailytaskReceiveReq)(nil), // 2: DailytaskReceiveReq
|
||||
(*DailytaskReceiveResp)(nil), // 3: DailytaskReceiveResp
|
||||
(*DBDailytaskGroupProgress)(nil), // 4: DBDailytaskGroupProgress
|
||||
}
|
||||
var file_dailytask_dailytask_msg_proto_depIdxs = []int32{
|
||||
4, // 0: DailytaskInfoResp.task:type_name -> DBDailytaskGroupProgress
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_dailytask_dailytask_msg_proto_init() }
|
||||
func file_dailytask_dailytask_msg_proto_init() {
|
||||
if File_dailytask_dailytask_msg_proto != nil {
|
||||
return
|
||||
}
|
||||
file_dailytask_dailytask_db_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_dailytask_dailytask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DailytaskInfoReq); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dailytask_dailytask_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DailytaskInfoResp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dailytask_dailytask_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DailytaskReceiveReq); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dailytask_dailytask_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DailytaskReceiveResp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_dailytask_dailytask_msg_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 4,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_dailytask_dailytask_msg_proto_goTypes,
|
||||
DependencyIndexes: file_dailytask_dailytask_msg_proto_depIdxs,
|
||||
MessageInfos: file_dailytask_dailytask_msg_proto_msgTypes,
|
||||
}.Build()
|
||||
File_dailytask_dailytask_msg_proto = out.File
|
||||
file_dailytask_dailytask_msg_proto_rawDesc = nil
|
||||
file_dailytask_dailytask_msg_proto_goTypes = nil
|
||||
file_dailytask_dailytask_msg_proto_depIdxs = nil
|
||||
}
|
@ -188,23 +188,16 @@ func (this *SCompGateRoute) NoticeUserLogin(ctx context.Context, args *pb.Notice
|
||||
return err
|
||||
}
|
||||
model := db.NewDBModel(comm.TableSession, 0, conn)
|
||||
// model.AddList(comm.RDS_EMPTY, args.UserId, map[string]interface{}{
|
||||
// "uid": args.UserId,
|
||||
// "sessionId": args.UserSessionId,
|
||||
// "serviceTag": args.ServiceTag,
|
||||
// "gatewayServiceId": args.GatewayServiceId,
|
||||
// "ip": args.Ip,
|
||||
// }, db.SetDBMgoLog(false))
|
||||
model.AddList(comm.RDS_EMPTY, args.UserId, &pb.CacheUser{
|
||||
user := &pb.CacheUser{
|
||||
Uid: args.UserId,
|
||||
SessionId: args.UserSessionId,
|
||||
ServiceTag: args.ServiceTag,
|
||||
GatewayServiceId: args.GatewayServiceId,
|
||||
Ip: args.Ip,
|
||||
}, db.SetDBMgoLog(false))
|
||||
// session := this.pools.Get().(comm.IUserSession)
|
||||
// session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId)
|
||||
event.TriggerEvent(comm.EventUserLogin, args.UserId)
|
||||
}
|
||||
model.AddList(comm.RDS_EMPTY, args.UserId, user, db.SetDBMgoLog(false))
|
||||
session := this.GetUserSession(user)
|
||||
event.TriggerEvent(comm.EventUserLogin, session)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"go_dreamfactory/modules/caravan"
|
||||
"go_dreamfactory/modules/chat"
|
||||
"go_dreamfactory/modules/combat"
|
||||
"go_dreamfactory/modules/dailytask"
|
||||
"go_dreamfactory/modules/dispatch"
|
||||
"go_dreamfactory/modules/enchant"
|
||||
"go_dreamfactory/modules/equipment"
|
||||
@ -134,6 +135,7 @@ func main() {
|
||||
passon.NewModule(),
|
||||
warorder.NewModule(),
|
||||
uniongve.NewModule(),
|
||||
dailytask.NewModule(),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ func NewGameAskAll(_buf []map[string]interface{}) (*GameAskAll, error) {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.ExaminationGroup] = _v
|
||||
dataMap[_v.Key] = _v
|
||||
}
|
||||
}
|
||||
return &GameAskAll{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
|
@ -11,12 +11,14 @@ package cfg
|
||||
import "errors"
|
||||
|
||||
type GameAskAllData struct {
|
||||
Key int32
|
||||
ExaminationGroup int32
|
||||
Examinationnum int32
|
||||
Start int32
|
||||
Continue int32
|
||||
Time int32
|
||||
Reward []*Gameatn
|
||||
Restime int32
|
||||
}
|
||||
|
||||
const TypeId_GameAskAllData = 305140654
|
||||
@ -26,6 +28,7 @@ func (*GameAskAllData) GetTypeId() int32 {
|
||||
}
|
||||
|
||||
func (_v *GameAskAllData)Deserialize(_buf map[string]interface{}) (err error) {
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ExaminationGroup"].(float64); !_ok_ { err = errors.New("ExaminationGroup error"); return }; _v.ExaminationGroup = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["examinationnum"].(float64); !_ok_ { err = errors.New("examinationnum error"); return }; _v.Examinationnum = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["start"].(float64); !_ok_ { err = errors.New("start error"); return }; _v.Start = int32(_tempNum_) }
|
||||
@ -45,6 +48,7 @@ func (_v *GameAskAllData)Deserialize(_buf map[string]interface{}) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["restime"].(float64); !_ok_ { err = errors.New("restime error"); return }; _v.Restime = int32(_tempNum_) }
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ type GameAskLibraryData struct {
|
||||
True string
|
||||
Flase string
|
||||
Fraction int32
|
||||
Plantrue []string
|
||||
Plantrue []int32
|
||||
}
|
||||
|
||||
const TypeId_GameAskLibraryData = -162756536
|
||||
@ -50,11 +50,11 @@ func (_v *GameAskLibraryData)Deserialize(_buf map[string]interface{}) (err error
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["plantrue"].([]interface{}); !_ok_ { err = errors.New("plantrue error"); return }
|
||||
|
||||
_v.Plantrue = make([]string, 0, len(_arr_))
|
||||
_v.Plantrue = make([]int32, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
var _list_v_ string
|
||||
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
|
||||
var _list_v_ int32
|
||||
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
|
||||
_v.Plantrue = append(_v.Plantrue, _list_v_)
|
||||
}
|
||||
}
|
||||
|
@ -14,11 +14,23 @@ import "bright/serialization"
|
||||
type GameMainStageData struct {
|
||||
Id int32
|
||||
Chapterid int32
|
||||
Taskid int32
|
||||
Unlockid int32
|
||||
Previoustage int32
|
||||
Episodetype int32
|
||||
Openlevel int32
|
||||
Episodelocation serialization.Vector3
|
||||
EditorStage int32
|
||||
Venturepos serialization.Vector3
|
||||
Venturemodel string
|
||||
Ventureavatar []string
|
||||
Heroimg string
|
||||
Bubbletext string
|
||||
Animation string
|
||||
Challenge int32
|
||||
Hide int32
|
||||
Destroy int32
|
||||
Progress int32
|
||||
Detailwindow string
|
||||
Frontstoryid int32
|
||||
Afterstoryid int32
|
||||
@ -49,6 +61,8 @@ func (*GameMainStageData) GetTypeId() int32 {
|
||||
func (_v *GameMainStageData)Deserialize(_buf map[string]interface{}) (err error) {
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapterid"].(float64); !_ok_ { err = errors.New("chapterid error"); return }; _v.Chapterid = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskid"].(float64); !_ok_ { err = errors.New("taskid error"); return }; _v.Taskid = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["unlockid"].(float64); !_ok_ { err = errors.New("unlockid error"); return }; _v.Unlockid = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["previoustage"].(float64); !_ok_ { err = errors.New("previoustage error"); return }; _v.Previoustage = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Episodetype"].(float64); !_ok_ { err = errors.New("Episodetype error"); return }; _v.Episodetype = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["openlevel"].(float64); !_ok_ { err = errors.New("openlevel error"); return }; _v.Openlevel = int32(_tempNum_) }
|
||||
@ -61,6 +75,36 @@ func (_v *GameMainStageData)Deserialize(_buf map[string]interface{}) (err error)
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["EditorStage"].(float64); !_ok_ { err = errors.New("EditorStage error"); return }; _v.EditorStage = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["venturepos"].(map[string]interface{}); !_ok_ { err = errors.New("venturepos error"); return }
|
||||
var _x_, _y_, _z_ float32;
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) }
|
||||
_v.Venturepos = serialization.NewVector3(_x_, _y_, _z_)
|
||||
}
|
||||
|
||||
{ var _ok_ bool; if _v.Venturemodel, _ok_ = _buf["venturemodel"].(string); !_ok_ { err = errors.New("venturemodel error"); return } }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["ventureavatar"].([]interface{}); !_ok_ { err = errors.New("ventureavatar error"); return }
|
||||
|
||||
_v.Ventureavatar = make([]string, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
var _list_v_ string
|
||||
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
|
||||
_v.Ventureavatar = append(_v.Ventureavatar, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
{ var _ok_ bool; if _v.Heroimg, _ok_ = _buf["heroimg"].(string); !_ok_ { err = errors.New("heroimg error"); return } }
|
||||
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["bubbletext"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Bubbletext error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Bubbletext, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
||||
{ var _ok_ bool; if _v.Animation, _ok_ = _buf["animation"].(string); !_ok_ { err = errors.New("animation error"); return } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["challenge"].(float64); !_ok_ { err = errors.New("challenge error"); return }; _v.Challenge = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hide"].(float64); !_ok_ { err = errors.New("hide error"); return }; _v.Hide = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["destroy"].(float64); !_ok_ { err = errors.New("destroy error"); return }; _v.Destroy = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["progress"].(float64); !_ok_ { err = errors.New("progress error"); return }; _v.Progress = int32(_tempNum_) }
|
||||
{ var _ok_ bool; if _v.Detailwindow, _ok_ = _buf["detailwindow"].(string); !_ok_ { err = errors.New("detailwindow error"); return } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["frontstoryid"].(float64); !_ok_ { err = errors.New("frontstoryid error"); return }; _v.Frontstoryid = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["afterstoryid"].(float64); !_ok_ { err = errors.New("afterstoryid error"); return }; _v.Afterstoryid = int32(_tempNum_) }
|
||||
|
@ -18,6 +18,7 @@ type GameWorldTaskData struct {
|
||||
Ontxe int32
|
||||
IdAfter int32
|
||||
Group int32
|
||||
Exgroup int32
|
||||
Des int32
|
||||
Icon string
|
||||
TaskName string
|
||||
@ -47,6 +48,7 @@ func (_v *GameWorldTaskData)Deserialize(_buf map[string]interface{}) (err error)
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ontxe"].(float64); !_ok_ { err = errors.New("ontxe error"); return }; _v.Ontxe = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id_after"].(float64); !_ok_ { err = errors.New("id_after error"); return }; _v.IdAfter = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exgroup"].(float64); !_ok_ { err = errors.New("exgroup error"); return }; _v.Exgroup = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["des"].(float64); !_ok_ { err = errors.New("des error"); return }; _v.Des = int32(_tempNum_) }
|
||||
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
|
||||
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
||||
|
Loading…
Reference in New Issue
Block a user