123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | |||
|  | // +----------------------------------------------------------------------
 | |||
|  | // | likeshop开源商城系统
 | |||
|  | // +----------------------------------------------------------------------
 | |||
|  | // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
 | |||
|  | // | gitee下载:https://gitee.com/likeshop_gitee
 | |||
|  | // | github下载:https://github.com/likeshop-github
 | |||
|  | // | 访问官网:https://www.likeshop.cn
 | |||
|  | // | 访问社区:https://home.likeshop.cn
 | |||
|  | // | 访问手册:http://doc.likeshop.cn
 | |||
|  | // | 微信公众号:likeshop技术社区
 | |||
|  | // | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
 | |||
|  | // |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
 | |||
|  | // | 禁止对系统程序代码以任何目的,任何形式的再发布
 | |||
|  | // | likeshop团队版权所有并拥有最终解释权
 | |||
|  | // +----------------------------------------------------------------------
 | |||
|  | // | author: likeshop.cn.team
 | |||
|  | // +----------------------------------------------------------------------
 | |||
|  | 
 | |||
|  | namespace app\admin\logic\finance; | |||
|  | 
 | |||
|  | 
 | |||
|  | use app\common\basics\Logic; | |||
|  | use app\common\model\AccountLog; | |||
|  | use app\common\server\ExportExcelServer; | |||
|  | 
 | |||
|  | class IntegralLogic extends Logic | |||
|  | { | |||
|  |     /** | |||
|  |      * @notes 积分明细 | |||
|  |      * @param $get | |||
|  |      * @return array | |||
|  |      * @author ljj | |||
|  |      * @date 2022/2/22 5:59 下午 | |||
|  |      */ | |||
|  |     public static function integral($get, $is_export = false) | |||
|  |     { | |||
|  |         $where[] = ['source_type','in',AccountLog::integral_change]; | |||
|  |         //用户信息
 | |||
|  |         if (isset($get['user_info']) && $get['user_info'] != '') { | |||
|  |             $where[] = ['u.sn|u.nickname', '=', $get['user_info']]; | |||
|  |         } | |||
|  |         //开始时间
 | |||
|  |         if (isset($get['start_time']) && $get['start_time'] != '') { | |||
|  |             $where[] = ['al.create_time', '>=', strtotime($get['start_time'])]; | |||
|  |         } | |||
|  |         //结束时间
 | |||
|  |         if (isset($get['end_time']) && $get['end_time'] != '') { | |||
|  |             $where[] = ['al.create_time', '<=', strtotime($get['end_time'])]; | |||
|  |         } | |||
|  | 
 | |||
|  |         // 导出
 | |||
|  |         if (true === $is_export) { | |||
|  |             return self::export($where); | |||
|  |         } | |||
|  | 
 | |||
|  |         $lists = AccountLog::alias('al') | |||
|  |             ->join('user u', 'al.user_id = u.id') | |||
|  |             ->field('al.id,al.user_id,al.source_type,al.change_amount,al.left_amount,al.remark,al.change_type,al.create_time,u.sn as user_sn,u.nickname') | |||
|  |             ->where($where) | |||
|  |             ->page($get['page'], $get['limit']) | |||
|  |             ->order('id','desc') | |||
|  |             ->select() | |||
|  |             ->toArray(); | |||
|  | 
 | |||
|  |         foreach ($lists as &$list) { | |||
|  |             $list['change_amount'] = $list['change_type'] == 1 ? '+'.$list['change_amount'] : '-'.$list['change_amount']; | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         $count = AccountLog::alias('al') | |||
|  |             ->join('user u', 'al.user_id = u.id') | |||
|  |             ->where($where) | |||
|  |             ->count(); | |||
|  | 
 | |||
|  |         return ['count' => $count, 'lists' => $lists]; | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     /** | |||
|  |      * @notes 导出商家账户明细Excel | |||
|  |      * @param array $where | |||
|  |      * @return array|false | |||
|  |      * @author 段誉 | |||
|  |      * @date 2022/4/24 10:10 | |||
|  |      */ | |||
|  |     public static function export($where) | |||
|  |     { | |||
|  |         try { | |||
|  |             $lists = AccountLog::alias('al') | |||
|  |                 ->join('user u', 'al.user_id = u.id') | |||
|  |                 ->field('al.id,al.user_id,al.source_type,al.change_amount,al.left_amount,al.remark,al.change_type,al.create_time,u.sn as user_sn,u.nickname') | |||
|  |                 ->where($where) | |||
|  |                 ->order('id','desc') | |||
|  |                 ->select() | |||
|  |                 ->toArray(); | |||
|  | 
 | |||
|  |             foreach ($lists as &$list) { | |||
|  |                 $list['change_amount'] = $list['change_type'] == 1 ? '+'.$list['change_amount'] : '-'.$list['change_amount']; | |||
|  |             } | |||
|  | 
 | |||
|  |             $excelFields = [ | |||
|  |                 'user_sn' => '用户编号', | |||
|  |                 'nickname' => '会员信息', | |||
|  |                 'source_type' => '变动类型', | |||
|  |                 'change_amount' => '积分变动', | |||
|  |                 'left_amount' => '剩余积分', | |||
|  |                 'remark' => '备注', | |||
|  |                 'create_time' => '变动时间', | |||
|  |             ]; | |||
|  | 
 | |||
|  |             $export = new ExportExcelServer(); | |||
|  |             $export->setFileName('积分明细'); | |||
|  |             $result = $export->createExcel($excelFields, $lists); | |||
|  | 
 | |||
|  |             return ['url' => $result]; | |||
|  | 
 | |||
|  |         } catch (\Exception $e) { | |||
|  |             self::$error = $e->getMessage(); | |||
|  |             return false; | |||
|  |         } | |||
|  |     } | |||
|  | } |