Unknown %!s(int64=7) %!d(string=před) roky
rodič
revize
0ae6b5dd6e
2 změnil soubory, kde provedl 86 přidání a 5 odebrání
  1. 14 0
      src/api/agnetManagement.js
  2. 72 5
      src/views/agnetManagement/index.vue

+ 14 - 0
src/api/agnetManagement.js

@@ -39,3 +39,17 @@ export function fetchMemberList(data, query) {
39 39
   })
40 40
 }
41 41
 
42
+export function fetchAllMemberList(query) {
43
+  return request({
44
+    url: `/agents/gambleMembers/detail`,
45
+    method: 'get',
46
+    params: {
47
+      startAt: query.startAt,
48
+      endAt: query.endAt
49
+      // name: query.name
50
+    //   chipsSort: query.chipsSort,
51
+    //   updatedSort: query.updatedSort
52
+    }
53
+  })
54
+}
55
+

+ 72 - 5
src/views/agnetManagement/index.vue

@@ -26,7 +26,7 @@
26 26
         </el-table-column>
27 27
           <el-table-column label="上繳工作室金額" align="center">
28 28
             <template slot-scope="scope">
29
-              <span :style="moneyColor(0)">{{0}}</span>
29
+              <span :style="moneyColor(scope.row.all)">{{scope.row.all}}</span>
30 30
             </template>
31 31
         </el-table-column>
32 32
         <el-table-column align="center" label="操作" width="450">
@@ -66,8 +66,11 @@
66 66
 <script>
67 67
 
68 68
 import { mapGetters, mapActions } from 'vuex'
69
-import { fetchList, createAgent } from '@/api/agnetManagement'
69
+import { fetchList, createAgent, fetchMemberList } from '@/api/agnetManagement'
70 70
 import waves from '@/directive/waves' // 水波纹指令
71
+import moment from 'moment-timezone'
72
+import _ from 'lodash'
73
+import { Decimal } from 'decimal.js';
71 74
 
72 75
 export default {
73 76
   directives: {
@@ -75,12 +78,14 @@ export default {
75 78
   },
76 79
   data() {
77 80
     return {
78
-      list: null,
81
+      list: [],
79 82
       total: null,
80 83
       listLoading: true,
81 84
       listQuery: {
82 85
         page: 1,
83 86
         limit: 20,
87
+        startAt: moment().subtract(1, 'weeks').day(7).hour(16).minute(0).second(0),
88
+        endAt: moment().day(7).hour(11).minute(59).second(59)
84 89
       },
85 90
       dialogCreateFormVisible: false,
86 91
       dialogStatus: '',
@@ -113,8 +118,70 @@ export default {
113 118
     getList() {
114 119
       this.listLoading = true
115 120
       fetchList(this.listQuery).then(response => {
116
-        this.list = response.data.rows
117
-        console.log(this.list)
121
+
122
+        response.data.rows.map(agent => {
123
+          let combine = []
124
+          fetchMemberList(agent, this.listQuery).then(response => {
125
+            response.data.rows.map(member => {
126
+              let row = {
127
+                id: member.id,
128
+                name: member.name,
129
+                chips: member.chips,
130
+                totalUp: 0,
131
+                totalDown: 0,
132
+                totalReward: 0,
133
+                totalPunishment: 0,
134
+                bookieEarned: 0,
135
+                memberEarned: 0,
136
+                bookieServiceFees: 0,
137
+                memberServiceFees: 0,
138
+                totalServiceFees: 0,
139
+                memberCheckOut: 0,
140
+              }
141
+            
142
+              let bookie = _.groupBy(member['GambleGame-Bucket-MemberRecords'], 'isBookie')
143
+              if (bookie.false) {
144
+                row.memberEarned = _.sumBy(bookie.false, 'earned');
145
+                row.memberServiceFees = _.sumBy(bookie.false, 'serviceFees')*agent.feeRatio/100;
146
+              }
147
+              if (bookie.true) {
148
+                row.bookieEarned = _.sumBy(bookie.true, 'earned');
149
+                row.bookieServiceFees = _.sumBy(bookie.true, (item) => { return item.serviceFees-500; })*agent.feeRatio/100;
150
+              }
151
+              row.totalServiceFees = new Decimal(row.bookieServiceFees).plus(row.memberServiceFees).valueOf()
152
+
153
+              let chipsLog = _.groupBy(member.GambleMemberChipsLogs, 'type')
154
+              if (chipsLog['0']) {
155
+                row.totalUp = _.sumBy(chipsLog['0'], (item) => { 
156
+                  return item.chips > 0 ? item.chips : 0
157
+                })
158
+                row.totalDown = _.sumBy(chipsLog['0'], (item) => { 
159
+                  return item.chips < 0 ? item.chips : 0
160
+                })
161
+              }
162
+              row.memberCheckOut = row.totalUp + row.totalDown - row.chips
163
+              if(chipsLog['1']) {
164
+                row.totalReward = _.sumBy(chipsLog['1'], (item) => { 
165
+                  return item.chips > 0 ? item.chips : 0
166
+                })
167
+                row.totalPunishment = _.sumBy(chipsLog['1'], (item) => { 
168
+                  return item.chips < 0 ? item.chips : 0
169
+                })
170
+              }
171
+              combine.push(row)
172
+            })
173
+            let allUp = _.sumBy(combine, 'totalUp')
174
+            let allDown = _.sumBy(combine, 'totalDown')
175
+            let allChips = _.sumBy(combine, 'chips')
176
+            let allEarned = _.sumBy(combine, (item) => {return item.bookieEarned + item.memberEarned})
177
+            let allServiceFees = _.sumBy(combine, (item) => {return item.bookieServiceFees + item.
178
+            memberServiceFees})
179
+            agent.all = allUp+allDown-allChips-allServiceFees
180
+            this.list.push(agent)
181
+            
182
+            this.listLoading = false
183
+          })
184
+        })
118 185
         this.total = response.data.count
119 186
         this.listLoading = false
120 187
       })