| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- /****************************************************************
- * Author: libaojia
- * Date: 2017/7/11 下午9:25
- * Email: livsyitian@163.com
- * QQ: 995265288
- * User: 芸众商城 www.yunzshop.com
- ****************************************************************/
- namespace app\backend\modules\finance\controllers;
- use app\backend\modules\finance\models\Balance;
- use app\common\components\BaseController;
- use app\common\facades\Setting;
- use app\common\helpers\PaginationHelper;
- use app\common\services\credit\ConstService;
- use app\common\services\ExportService;
- use app\common\services\member\group\GroupService;
- use app\common\services\member\level\LevelService;
- class BalanceRecordsController extends BaseController
- {
- const PAGE_SIZE = 20;
- public function index()
- {
- $source_name = $this->getServiceType();
- $source_name_show = [];
- foreach ($source_name as $key => $item) {
- array_push($source_name_show, [
- 'id' => $key,
- 'value' => $item,
- ]);
- }
- return view('finance.balance.balanceRecords', [
- 'head_img' => yz_tomedia($this->getShopSet()['headimg']),
- 'source_name' => json_encode($source_name_show),
- 'member_levels' => json_encode($this->getMemberList()),
- 'member_groups' => json_encode($this->getMemberGroup()),
- ])->render();
- }
- public function search()
- {
- $records = Balance::records()->where('change_money', '!=', 0);
- $search = $this->getPostSearch();
- if (request()->ajax()) {
- $records = $records->search($search);
- if ($search['member']||$search['member_level']||$search['member_group']) {
- $records = $records->searchMember($search);
- }
- }
- $amount = $records->sum('change_money');
- $pageList = $records->orderBy('yz_balance.id', 'desc')->paginate(static::PAGE_SIZE);
- return $this->successJson('ok', [
- 'list' => $pageList,
- 'amount' => $amount,
- ]);
- }
- public function export()
- {
- $file_name = date('Ymdhis', time()) . '余额明细导出';
- $search = $this->getPostSearch();
- $list = Balance::records()->search($search)->searchMember($search);
- $export_page = request()->export_page ? request()->export_page : 1;
- $export_model = new ExportService($list, $export_page);
- $export_data[0] = ['时间', '会员ID', '会员姓名', '会员手机号', '会员等级', '会员分组', '订单号', '业务类型', '收入/支出', '变动前余额', '变动余额', '变动后余额', '备注'];
- $shopSet = $this->getShopSet();
- $list = $list->get();
- foreach ($list as $key => $item) {
- if ($item->member) {
- $member_id = $item->member->uid;
- $member_name = $item->member->realname ?: $item->member->nickname;
- $member_mobile = $item->member->mobile;
- $member_level = $shopSet['level_name'];
- $member_group = '无分组';
- if ($item->member->yzMember->group) {
- $member_group = $item->member->yzMember->group->group_name ?: '无分组';
- }
- if ($item->member->yzMember->level) {
- $member_level = $item->member->yzMember->level->level_name ?: $shopSet['level_name'];
- }
- } else {
- $member_id = '';
- $member_name = '';
- $member_mobile = '';
- $member_level = $shopSet['level_name'];
- $member_group = '无分组';
- }
- $export_data[$key + 1] = [
- $item->created_at,
- $member_id,
- $member_name,
- $member_mobile,
- $member_level,
- $member_group,
- $item->serial_number,
- $item->service_type_name,
- $item->type_name,
- $item->old_money,
- $item->change_money,
- $item->new_money,
- $item->remark
- ];
- }
- $export_model->export($file_name, $export_data, 'finance.balance-records.export');
- // 商城更新,无法使用
- // \Excel::create($file_name, function ($excel) use ($export_data) {
- // // Set the title
- // $excel->setTitle('Office 2005 XLSX Document');
- //
- // // Chain the setters
- // $excel->setCreator('芸众商城')
- // ->setLastModifiedBy("芸众商城")
- // ->setSubject("Office 2005 XLSX Test Document")
- // ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.")
- // ->setKeywords("office 2005 openxml php")
- // ->setCategory("report file");
- //
- // $excel->sheet('info', function ($sheet) use ($export_data) {
- // $sheet->rows($export_data);
- // });
- //
- //
- // })->export('xls');
- }
- private function getPostSearch()
- {
- return \YunShop::request()->search;
- }
- private function getShopSet()
- {
- return Setting::get('shop.member');
- }
- private function getServiceType()
- {
- return (new ConstService(''))->sourceComment();
- }
- private function getMemberList()
- {
- return LevelService::getMemberLevelList();
- }
- private function getMemberGroup()
- {
- return GroupService::getMemberGroupList();
- }
- }
|