getFromType(); $this->assign('from_type', $from_type['point']); $total_usable_point = (new MemberModel())->getMemberSum([ ['site_id', '=', $this->site_id], ['is_delete', '=', 0] ], 'point')['data']; $this->assign('total_usable_point', round($total_usable_point)); $grant_point = $member_account_model->getMemberAccountSum([ ['site_id', '=', $this->site_id], ['account_type', '=', 'point'], ['account_data', '>', 0] ], 'account_data')['data']; $this->assign('grant_point', round($grant_point)); $consume_point = $member_account_model->getMemberAccountSum([ ['site_id', '=', $this->site_id], ['account_type', '=', 'point'], ['account_data', '<', 0] ], 'account_data')['data']; $this->assign('consume_point', abs(round($consume_point))); return $this->fetch('account/point'); } /** * 积分规则 * @return mixed */ public function pointConfig() { //账户类型和来源类型 $member_account_model = new MemberAccountModel(); $total_usable_point = (new MemberModel())->getMemberSum([ ['site_id', '=', $this->site_id], ['is_delete', '=', 0] ], 'point')['data']; $this->assign('total_usable_point', round($total_usable_point)); $grant_point = $member_account_model->getMemberAccountSum([ ['site_id', '=', $this->site_id], ['account_type', '=', 'point'], ['account_data', '>', 0] ], 'account_data')['data']; $this->assign('grant_point', round($grant_point)); $consume_point = $member_account_model->getMemberAccountSum([ ['site_id', '=', $this->site_id], ['account_type', '=', 'point'], ['account_data', '<', 0] ], 'account_data')['data']; $this->assign('consume_point', abs(round($consume_point))); $rule = event('PointRule', ['site_id' => $this->site_id]); $this->assign('rule', $rule); return $this->fetch('account/point_config'); } /** * 会员余额 */ public function balance() { $member_account_model = new MemberAccountModel(); $from_type = $member_account_model->getFromType(); $this->assign('from_type', array_merge($from_type['balance'], $from_type['balance_money'])); $member_model = new MemberModel(); $total_balance = $member_model->getMemberSum([ ['site_id', '=', $this->site_id], ['is_delete', '=', 0] ], 'balance')['data']; $this->assign('total_balance', sprintf("%.2f", $total_balance)); $total_balance_money = $member_model->getMemberSum([ ['site_id', '=', $this->site_id], ['is_delete', '=', 0] ], 'balance_money')['data']; $this->assign('total_balance_money', sprintf("%.2f", $total_balance_money)); $total_consume_money = $member_account_model->getMemberAccountSum([ ['site_id', '=', $this->site_id], ['account_type', 'in', ['balance', 'balance_money'] ], ['account_data', '<', 0], ['from_type', '<>', 'adjust'] ], 'account_data')['data']; $this->assign('total_consume_money', sprintf("%.2f", abs($total_consume_money))); return $this->fetch('account/balance'); } /** * 会员成长值 */ public function growth() { $member_account_model = new MemberAccountModel(); $from_type = $member_account_model->getFromType(); $this->assign('from_type', $from_type['growth']); return $this->fetch('account/growth'); } /** * 会员优惠券 */ public function coupon() { $model = new Coupon(); if (request()->isAjax()) { $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $start_date = input('start_time', ''); $end_date = input('end_time', ''); $search_text = input('search_text', ''); $get_type = input('get_type', ''); $state = input('state', ''); $condition[] = [ 'c.site_id', '=', $this->site_id ]; if ($start_date != '' && $end_date != '') { $condition[] = [ 'c.fetch_time', 'between', [ strtotime($start_date), strtotime($end_date) ] ]; } else if ($start_date != '' && $end_date == '') { $condition[] = [ 'c.fetch_time', '>=', strtotime($start_date) ]; } else if ($start_date == '' && $end_date != '') { $condition[] = [ 'c.fetch_time', '<=', strtotime($end_date) ]; } if ($search_text) { $condition[] = [ 'm.nickname|m.mobile', 'like', '%'.$search_text.'%' ]; } if ($get_type) { $condition[] = [ 'get_type', '=', $get_type ]; } if ($state) { $condition[] = [ 'state', '=', $state ]; } $join = [ ['member m', 'm.member_id = c.member_id', 'inner'] ]; $field = 'c.*,m.nickname,m.headimg,m.mobile'; return $model->getCouponPageList($condition, $page, $page_size, 'c.fetch_time desc', $field, 'c', $join); } $this->forthMenu(); $total_count = $model->getMemberCouponCount([ ['site_id', '=', $this->site_id] ])['data']; $this->assign('total_count', $total_count); $used_count = $model->getMemberCouponCount([ ['site_id', '=', $this->site_id], ['state', '=', 2] ])['data']; $this->assign('used_count', $used_count); $not_used_count = $model->getMemberCouponCount([ ['site_id', '=', $this->site_id], ['state', '=', 1] ])['data']; $this->assign('not_used_count', $not_used_count); $this->assign('get_type', $model->getCouponGetType()); return $this->fetch('account/coupon'); } /** * 账户详情 */ public function accountDetail() { if (request()->isAjax()) { $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $account_type = input('account_type', ''); $from_type = input('from_type', ''); $start_date = input('start_time', ''); $end_date = input('end_time', ''); $search_text = input('search_text', ''); $condition[] = [ 'ma.site_id', '=', $this->site_id ]; //账户类型 if ($account_type != '') { $condition[] = [ 'ma.account_type', 'in', explode(',', $account_type) ]; } //来源类型 if ($from_type != '') { $condition[] = [ 'from_type', '=', $from_type ]; } //发生时间 if ($start_date != '' && $end_date != '') { $condition[] = [ 'ma.create_time', 'between', [ strtotime($start_date), strtotime($end_date) ] ]; } else if ($start_date != '' && $end_date == '') { $condition[] = [ 'ma.create_time', '>=', strtotime($start_date) ]; } else if ($start_date == '' && $end_date != '') { $condition[] = [ 'ma.create_time', '<=', strtotime($end_date) ]; } if ($search_text) { $condition[] = [ 'm.nickname|m.mobile', 'like', '%'.$search_text.'%' ]; } $field = 'ma.*,m.nickname,m.headimg,m.mobile'; $join = [ ['member m', 'm.member_id = ma.member_id', 'left'] ]; $member_account_model = new MemberAccountModel(); $res = $member_account_model->getMemberAccountPageList($condition, $page, $page_size, 'ma.create_time desc', $field, 'ma', $join); return $res; } } /** * 积分清零 */ public function pointClear(){ $point_model = new Point(); $result = $point_model->pointClear(['site_id' => $this->site_id, 'remark' => input('remark', '')]); return $result; } /** * 积分重置 */ public function pointReset(){ $point_model = new Point(); $result = $point_model->pointReset(['site_id' => $this->site_id]); return $result; } }