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;
 | ||
|         }
 | ||
|     }
 | ||
| } |