优化了代码逻辑,增加了余额明细功能,并修改了搜索条件设置方式。

This commit is contained in:
mkm 2024-05-27 18:21:47 +08:00
parent 5550cc8c94
commit e9df9d9041
4 changed files with 66 additions and 42 deletions

View File

@ -148,7 +148,7 @@ class OpurchaseclassController extends BaseAdminController
$arr=Opurchaseclass::where('id','in',explode(',',$order_arr))->where('is_mer',1)->value('order_arr'); $arr=Opurchaseclass::where('id','in',explode(',',$order_arr))->where('is_mer',1)->value('order_arr');
if($arr){ if($arr){
$this->request->__set('class_value',['id'=>explode(',',$arr)]); $this->request->__set('class_value',['id'=>explode(',',$arr)]);
$this->request->__set('class_key',['in'=>'id']); $this->request->__set('class_key',['in'=>['id']]);
} }
return $this->dataLists(new CashierclassStreamLists()); return $this->dataLists(new CashierclassStreamLists());
} }

View File

@ -54,7 +54,27 @@ class FinancialRecordController extends BaseApiController
*/ */
public function api_lists() public function api_lists()
{ {
$mer_id=$this->request->userInfo['merchant']['mer_id']??0;
if($mer_id!=0){
$this->request->__set('is_detail',1); $this->request->__set('is_detail',1);
$this->request->__set('class_value',['mer_id'=>$mer_id,'type'=>1]);
$this->request->__set('class_key',['='=>['mer_id','type']]);
return $this->dataLists((new FinancialRecordLists)); return $this->dataLists((new FinancialRecordLists));
} }
return $this->success();
}
/**
* 余额明细
*/
public function supplier_list(){
$id=$this->request->userInfo['supplier']['id']??0;
if($id!=0){
$this->request->__set('is_detail',1);
$this->request->__set('class_value',['mer_id'=>$id,'type'=>3]);
$this->request->__set('class_key',['='=>['mer_id','type']]);
return $this->dataLists((new FinancialRecordLists));
}
return $this->success();
}
} }

View File

@ -44,43 +44,45 @@ class FinancialRecordLists extends BaseAdminDataLists implements ListsSearchInte
*/ */
public function lists(): array public function lists(): array
{ {
$mer_id = $this->request->userInfo['merchant']['mer_id'] ?? 0; $class_value = $this->request->__get('class_value');
if ($mer_id <= 0) { if ($class_value) {
return [];
}
$where = [ $where = [
'type' => 1, 'type' => $class_value['type'],
'mer_id' => $mer_id, 'mer_id' => $class_value['mer_id'],
]; ];
}else{
$where=[];
}
$this->where = $where; $this->where = $where;
$searchWhere=$this->searchWhere; $searchWhere = $this->searchWhere;
$is_detail=$this->request->__get('is_detail'); $is_detail = $this->request->__get('is_detail');
if($is_detail==1){ if ($is_detail == 1) {
$list = FinancialRecord::where($this->searchWhere) $list = FinancialRecord::where($this->searchWhere)
->where($where) ->where($where)
->limit($this->limitOffset, $this->limitLength) ->limit($this->limitOffset, $this->limitLength)
->order('create_time','desc') ->order('create_time', 'desc')
->select()->each(function ($item) { ->select()->each(function ($item) {
$item['user_nickname']=''; $item['user_nickname'] = '';
if($item['user_id']!=0){ if ($item['user_id'] != 0) {
$item['user_nickname']=User::where('id',$item['user_id'])->value('nickname'); $item['user_nickname'] = User::where('id', $item['user_id'])->value('nickname');
} }
$item['financial_pm']=$item['financial_pm']==0?"支出":"获得"; $item['financial_pm'] = $item['financial_pm'] == 0 ? "支出" : "获得";
return $item; return $item;
}); });
}else{ } else {
$list = FinancialRecord::where($this->searchWhere) $list = FinancialRecord::where($this->searchWhere)
->where($where) ->where($where)
->limit($this->limitOffset, $this->limitLength) ->limit($this->limitOffset, $this->limitLength)
->field("FROM_UNIXTIME(create_time, '%Y-%m-%d') as record_date, SUM(number) as total_amount") ->field("FROM_UNIXTIME(create_time, '%Y-%m-%d') as record_date, SUM(number) as total_amount")
->group('record_date') ->group('record_date')
->order('record_date') ->order('record_date')
->select()->each(function ($item) use($where,$searchWhere) { ->select()->each(function ($item) use ($where, $searchWhere) {
$cashier_total_amount=FinancialRecord::where($where)->where($searchWhere)->where('financial_type',OrderEnum::CASHIER_ORDER_PAY)->sum('number'); $cashier_total_amount = FinancialRecord::where($where)->where($searchWhere)->where('financial_type', OrderEnum::CASHIER_ORDER_PAY)->sum('number');
$item['cashier_total_amount'] = $cashier_total_amount; $item['cashier_total_amount'] = $cashier_total_amount;
$cashier_cash_total_amount=FinancialRecord::where($where)->where($searchWhere)->where('financial_type',OrderEnum::CASHIER_CASH_ORDER_PAY)->sum('number'); $cashier_cash_total_amount = FinancialRecord::where($where)->where($searchWhere)->where('financial_type', OrderEnum::CASHIER_CASH_ORDER_PAY)->sum('number');
$item['cashier_cash_total_amount'] = $cashier_cash_total_amount; $item['cashier_cash_total_amount'] = $cashier_cash_total_amount;
$platofrm_total_amount=FinancialRecord::where($where)->where($searchWhere)->where('financial_type',OrderEnum::USER_ORDER_PAY)->sum('number'); $platofrm_total_amount = FinancialRecord::where($where)->where($searchWhere)->where('financial_type', OrderEnum::USER_ORDER_PAY)->sum('number');
$item['platofrm_total_amount'] = $platofrm_total_amount; $item['platofrm_total_amount'] = $platofrm_total_amount;
}); });
} }

View File

@ -26,9 +26,11 @@ trait ListsSearchTrait
if($class_key!==null){ if($class_key!==null){
foreach($class_key as $key => $value){ foreach($class_key as $key => $value){
if(isset($search[$key])){ if(isset($search[$key])){
array_push($search[$key], $value); // 添加class_key的搜索条件 foreach($value as $v){ // 遍历class_key的值添加到search数组中
array_push($search[$key], $v); // 添加class_key的搜索条件
}
}else{ }else{
$search[$key] = [$value]; // 创建新的搜索条件 $search[$key] = [$value[0]]; // 创建新的搜索条件
} }
} }
} }