Browse Source

agentManagememt

Unknown 7 years ago
parent
commit
7702b92b3a
2 changed files with 137 additions and 29 deletions
  1. 3 3
      src/api/agnetManagement.js
  2. 134 26
      src/views/agnetManagement/gambleMemberManagement/index.vue

+ 3 - 3
src/api/agnetManagement.js

@@ -27,11 +27,11 @@ export function createAgent(data) {
27 27
 
28 28
 export function fetchMemberList(data, query) {
29 29
   return request({
30
-    url: `/agents/${data.GambleMember.id}/gambleMembers`,
30
+    url: `/agents/${data.GambleMember.id}/gambleMembers/detail`,
31 31
     method: 'get',
32 32
     params: {
33
-      limit: query.limit,
34
-      offset: (query.page - 1) * query.limit
33
+      startAt: query.startAt,
34
+      endAt: query.endAt
35 35
       // name: query.name
36 36
     //   chipsSort: query.chipsSort,
37 37
     //   updatedSort: query.updatedSort

+ 134 - 26
src/views/agnetManagement/gambleMemberManagement/index.vue

@@ -16,29 +16,91 @@
16 16
               <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">搜尋</el-button>
17 17
           </div>
18 18
       </div>
19
-      <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
20
-        <el-table-column label="我的會員" align="center">
19
+      <el-table :data="allCombine" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
20
+          <el-table-column label="代理商名稱" align="center">
21
+            <template slot-scope="scope">
22
+              <span>{{scope.row.name}}</span>
23
+            </template>
24
+          </el-table-column>
25
+          <el-table-column label="總上分額" align="center">
26
+            <template slot-scope="scope">
27
+               <span :style="moneyColor(scope.row.allUp)">{{scope.row.allUp}}</span>
28
+            </template>
29
+          </el-table-column>
30
+          <el-table-column label="總下分額" align="center">
31
+            <template slot-scope="scope">
32
+              <span :style="moneyColor(scope.row.allDown)">{{scope.row.allDown}}</span>
33
+            </template>
34
+          </el-table-column>
35
+          <el-table-column label="所有會員點數" align="center">
36
+            <template slot-scope="scope">
37
+              <span :style="moneyColor(scope.row.allChips)">{{scope.row.allChips}}</span>
38
+            </template>
39
+          </el-table-column>
40
+          <el-table-column label="總投注量" align="center">
41
+            <template slot-scope="scope">
42
+              <span :style="moneyColor(scope.row.allEarned)">{{scope.row.allEarned}}</span>
43
+            </template>
44
+          </el-table-column>
45
+          <el-table-column label="總水量" align="center">
46
+            <template slot-scope="scope">
47
+              <span :style="moneyColor(scope.row.allServiceFees)">{{scope.row.allServiceFees}}</span>
48
+            </template>
49
+          </el-table-column>
50
+          <el-table-column label="上繳工作室金額" align="center">
51
+            <template slot-scope="scope">
52
+              <span :style="moneyColor(all(scope))">{{all(scope)}}</span>
53
+            </template>
54
+          </el-table-column>
55
+      </el-table>
56
+      <el-table :data="combine" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
57
+        <el-table-column :label="`${this.agent.GambleMember.name}的會員`" align="center">
21 58
           <el-table-column label="名稱" align="center">
22 59
             <template slot-scope="scope">
23 60
               <span>{{scope.row.name}}</span>
24 61
             </template>
25 62
           </el-table-column>
26
-          <el-table-column label="分數" align="center">
63
+          <el-table-column label="會員當前分數" align="center">
64
+            <template slot-scope="scope">
65
+              <span>{{scope.row.chips}}</span>
66
+            </template>
67
+          </el-table-column>
68
+          <el-table-column label="總上分額" align="center">
69
+            <template slot-scope="scope">
70
+              <span :style="moneyColor(scope.row.totalUp)">{{scope.row.totalUp}}</span>
71
+            </template>
72
+          </el-table-column>
73
+          <el-table-column label="總下分額" align="center">
74
+            <template slot-scope="scope">
75
+              <span :style="moneyColor(scope.row.totalDown)">{{scope.row.totalDown}}</span>
76
+            </template>
77
+          </el-table-column>
78
+          <el-table-column label="有效投注量(莊家)" align="center">
79
+            <template slot-scope="scope">
80
+              <span :style="moneyColor(scope.row.bookieEarned)">{{scope.row.bookieEarned}}</span>
81
+            </template>
82
+          </el-table-column>
83
+          <el-table-column label="有效投注量(閒家)" align="center">
84
+            <template slot-scope="scope">
85
+              <span :style="moneyColor(scope.row.memberEarned)">{{scope.row.memberEarned}}</span>
86
+            </template>
87
+          </el-table-column>
88
+          <el-table-column label="莊家抽水" align="center">
27 89
             <template slot-scope="scope">
28
-              {{scope.row.chips}}
90
+              <span :style="moneyColor(scope.row.bookieServiceFees)">{{scope.row.bookieServiceFees}}</span>
29 91
             </template>
30 92
           </el-table-column>
31
-          <el-table-column label="投注量" align="center">
93
+          <el-table-column label="閒家抽水" align="center">
32 94
             <template slot-scope="scope">
33
-              <span :style="moneyColor(scope.row.amount)">{{scope.row.amount}}</span>
95
+              <span :style="moneyColor(scope.row.memberServiceFees)">{{scope.row.memberServiceFees}}</span>
34 96
             </template>
35 97
           </el-table-column>
36 98
           <el-table-column label="總退水" align="center">
37 99
             <template slot-scope="scope">
38
-              <span :style="moneyColor(scope.row.wallet)">{{scope.row.wallet}}</span>
100
+              <span :style="moneyColor(scope.row.wallet)">{{scope.row.totalServiceFees}}</span>
39 101
             </template>
40 102
           </el-table-column>
41
-          <el-table-column align="center" label="操作" width="250">
103
+          <el-table-column align="center" label="操作" width="100">
42 104
             <template slot-scope="scope">
43 105
                 <router-link to="/agent/index/gambleMemberManagement/index/gameHistory">
44 106
                     <el-button type="primary" size="mini" icon="el-icon-tickets" @click="handlePersonDetail(scope.row)">紀錄</el-button>  
@@ -48,12 +110,6 @@
48 110
         </el-table-column>      
49 111
       </el-table>
50 112
 
51
-      <div v-show="!listLoading" class="pagination-container">
52
-        <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="listQuery.page"
53
-          :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
54
-        </el-pagination>
55
-      </div>
56
-
57 113
     </div>
58 114
     <router-view :member="member"></router-view>
59 115
   </div>
@@ -81,11 +137,13 @@ export default {
81 137
       dialogList: null,
82 138
       total: null,
83 139
       listLoading: true,
140
+      allCombine: [],
141
+      combine: [],
84 142
       listQuery: {
85
-        page: 1,
86
-        limit: 20,
87
-        startAt: null,
88
-        endAt: null
143
+        // page: 1,
144
+        // limit: 20,
145
+        // startAt: moment().subtract(1, 'weeks').day(7).hour(16).minute(0).second(0),
146
+        // endAt: moment().day(7).hour(11).minute(59).second(59)
89 147
       },
90 148
       pickerOptions: {
91 149
         shortcuts: [{
@@ -125,20 +183,67 @@ export default {
125 183
     ]),
126 184
     getList() {
127 185
       this.listLoading = true
186
+      this.allCombine = []
187
+      this.combine = []
128 188
       fetchMemberList(this.agent, this.listQuery).then(response => {
129
-        this.list = response.data
130
-        console.log(response.data)
189
+        // this.memberRecord = response.data.rows
190
+        response.data.rows.map(member => {
191
+          let row = {
192
+            id: member.id,
193
+            name: member.name,
194
+            chips: member.chips,
195
+            totalUp: 0,
196
+            totalDown: 0,
197
+            bookieEarned: 0,
198
+            memberEarned: 0,
199
+            bookieServiceFees: 0,
200
+            memberServiceFees: 0,
201
+            totalServiceFees: 0,
202
+          }
203
+        
204
+          let bookie = _.groupBy(member['GambleGame-Bucket-MemberRecords'], 'isBookie')
205
+          if (bookie.false) {
206
+            row.memberEarned = _.sumBy(bookie.false, 'earned');
207
+            row.memberServiceFees = _.sumBy(bookie.false, 'serviceFees')*this.agent.feeRatio/100;
208
+          }
209
+          if (bookie.true) {
210
+            row.bookieEarned = _.sumBy(bookie.true, 'earned');
211
+            row.bookieServiceFees = _.sumBy(bookie.true, (item) => { return item.serviceFees-500; })*this.agent.feeRatio/100;
212
+          }
213
+          row.totalServiceFees = row.bookieServiceFees + row.memberServiceFees
214
+
215
+          let chipsLog = _.groupBy(member.GambleMemberChipsLogs, 'type')
216
+          if (chipsLog['0']) {
217
+            row.totalUp = _.sumBy(chipsLog['0'], (item) => { 
218
+              return item.chips > 0 ? item.chips : false
219
+            })
220
+            row.totalDown = _.sumBy(chipsLog['0'], (item) => { 
221
+              return item.chips < 0 ? item.chips : false
222
+            })
223
+          }
224
+          // TODO CHECK 是否需要
225
+          if(chipsLog['1']) {
226
+
227
+          }
228
+          console.log('www',row)
229
+
230
+          this.combine.push(row)
231
+        })
232
+
233
+        this.allCombine.push({
234
+          name: this.agent.GambleMember.name,
235
+          allUp: _.sumBy(this.combine, 'totalUp'),
236
+          allDown: _.sumBy(this.combine, 'totalDown'),
237
+          allChips: _.sumBy(this.combine, 'chips'),
238
+          allEarned: _.sumBy(this.combine, (item) => {return item.bookieEarned + item.memberEarned}),
239
+          allServiceFees: _.sumBy(this.combine, (item) => {return item.bookieServiceFees + item.
240
+          memberServiceFees}),
241
+        })
131 242
         this.listLoading = false
132 243
       })
133 244
       
134 245
     },
135 246
     handlePersonDetail(row) {
136
-    //   this.listLoading = true
137
-    //   this.dialogFormVisible = true
138
-    //   fetchPersonGameDetail(this.member.id, row.id).then(response => {
139
-    //     this.dialogList = response.data.rows
140
-    //     this.listLoading = false
141
-    //   })
142 247
       const temp = Object.assign({}, row) // copy obj
143 248
       this.SetVisible(3)
144 249
       this.member = temp
@@ -186,6 +291,9 @@ export default {
186 291
     // },
187 292
     moneyColor(money) {
188 293
       return money >= 0 ? { color: '#67C23A' } : { color: '#FA5555' }
294
+    },
295
+    all(scope) {
296
+      return scope.row.allUp+scope.row.allDown-scope.row.allChips-scope.row.allServiceFees
189 297
     }
190 298
   },
191 299
   destroyed() {