| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <?php
- namespace addons\Store\client\controllers;
- use addons\Store\common\enums\StoreEnum;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreCashierExtra;
- use addons\Store\common\models\StoreCashierOrder;
- use addons\Store\common\models\StoreGoods;
- use addons\Store\common\models\StoreOrder;
- use addons\Store\common\models\StoreOrderCredit;
- use addons\Store\common\models\StoreOrderDetail;
- use common\enums\StatusEnum;
- use common\models\user\User;
- class CreditController extends BaseController
- {
- //赊账记录
- public function actionIndex()
- {
- if (!\Yii::$app->request->isAjax) return $this->render($this->action->id);
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['store_id' => $this->store_id];
- $where[] = ['>','pay_time' ,0];
- $where[] = ['>','credit_money' ,0];
- if (!empty($params['goods_name'])) {
- $store_order_detail_list = StoreOrderDetail::lists(['where' => [
- ['like', 'goods_name', trim($params['goods_name'])],
- ['mall_id' => $this->mall_id],
- ['store_id' => $this->store_id],
- ], 'select' => 'order_id,goods_name,pic_url']);
- $order_ids = array_column($store_order_detail_list, 'order_id');
- $where[] = ['order_id' => $order_ids];
- }
- if (!empty($params['order_no'])) {
- $store_order_list = StoreOrder::lists(['where' => [
- ['order_no' => trim($params['order_no'])],
- ['mall_id' => $this->mall_id],
- ['store_id' => $this->store_id],
- ], 'select' => 'id,order_no']);
- $order_ids = array_column($store_order_list, 'id');
- $store_cashier_order_list = StoreCashierOrder::lists(['where' => [
- ['order_no' => trim($params['order_no'])],
- ['mall_id' => $this->mall_id],
- ['store_id' => $this->store_id],
- ], 'select' => 'id,order_no']);
- $cashier_order_ids = array_column($store_cashier_order_list, 'id');
- $where[] = ['order_id' => array_merge($order_ids,$cashier_order_ids)];
- }
- if (!empty($params['mobile'])) {
- $user_list = User::lists(['where' => [
- ['like', 'mobile', trim($params['mobile'])],
- ['mall_id' => $this->mall_id],
- ['status' => [StatusEnum::DISABLED, StatusEnum::ENABLED]],
- ], 'select' => 'id']);
- $user_ids = array_column($user_list, 'id');
- $where[] = ['user_id' => $user_ids];
- }
- if (isset($params['is_repayment'])) {
- $where[] = ['is_repayment' => $params['is_repayment']];
- }
- if (!empty($params['user_id'])) $where[] = ['user_id' => $params['user_id']];
- if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])];
- if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])];
- $params['select'] = 'id,order_id,user_id,credit_money,is_repayment,created_at,type';
- $params['where'] = $where;
- $params['order'] = 'id desc';
- $page_data = StoreOrderCredit::listPage($params);
- if (!empty($page_data['list'])) {
- $order_ids = [];
- $cashier_order_ids = [];
- foreach ($page_data['list'] as $val){
- if($val['type']==1){
- $order_ids[] =$val['order_id'];
- }else{
- $cashier_order_ids[] =$val['order_id'];
- }
- }
- $user_ids = array_column($page_data['list'], 'user_id');
- if (empty($store_order_detail_list)) {
- $store_order_detail_list = StoreOrderDetail::lists(['where' => [['order_id' => $order_ids]], 'select' => 'order_id,goods_name,pic_url']);
- }
- $store_order_detail_arr = [];
- foreach ($store_order_detail_list as $val) {
- $store_order_detail_arr[$val['order_id']][] = $val;
- }
- $store_order_list = StoreOrder::lists(['where' => [['id' => $order_ids]], 'select' => 'id,order_no,pay_money', 'index' => 'id']);
- $cashier_store_order_list = StoreCashierOrder::lists(['where' => [['id' => $cashier_order_ids]], 'select' => 'id,order_no,pay_money', 'index' => 'id']);
- if (empty($user_list)) {
- $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,mobile,nickname', 'index' => 'id']);
- }
- foreach ($page_data['list'] as &$item) {
- $item['mobile'] = '';
- $item['nickname'] = '';
- $item['order_no'] = '';
- $item['pay_money'] = 0;
- $item['detail'] = [];
- $item['is_repayment_text'] = $item['is_repayment'] == 1 ? '已还款' : '未还款';
- $item['order_type_text'] = $item['type'] == 1 ? '门店商品订单' : '收银台订单';
- if($item['type']==1){
- if (!empty($store_order_list[$item['order_id']])) {
- $item['order_no'] = $store_order_list[$item['order_id']]['order_no'];
- $item['pay_money'] = $store_order_list[$item['order_id']]['pay_money'];
- }
- }else{
- if (!empty($cashier_store_order_list[$item['order_id']])) {
- $item['order_no'] = $cashier_store_order_list[$item['order_id']]['order_no'];
- $item['pay_money'] = $cashier_store_order_list[$item['order_id']]['pay_money'];
- }
- }
- if (!empty($user_list[$item['user_id']])) {
- $item['mobile'] = $user_list[$item['user_id']]['mobile'];
- $item['nickname'] = $user_list[$item['user_id']]['nickname'];
- }
- if (!empty($store_order_detail_arr[$item['order_id']])) {
- $item['detail'] = $store_order_detail_arr[$item['order_id']];
- }
- }
- }
- $page_data['is_repayment_map'] = StoreEnum::getIsRepaymentMap();
- $page_data['order_type_map'] = StoreEnum::getOrderCreditTypeMap();
- return $this->success('操作成功', $page_data);
- }
- }
- //赊账设置页面
- public function actionSettingCredit(){
- if (!\Yii::$app->request->isAjax) return $this->render($this->action->id);
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['store_id' => $this->store_id];
- $where[] = ['>','credit_rate',0];
- $where[] = ['status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]];
- if (!empty($params['goods_name'])) {
- $where[] = ['like', 'goods_name', trim($params['goods_name'])];
- }
- $params['select'] = 'id,store_id,mall_id,goods_name,price,cover_pic,credit_rate,goods_type';
- $params['where'] = $where;
- $page_data = StoreGoods::listPage($params);
- $store = Store::findOne(['id'=>$this->store_id]);
- $page_data['is_open_credit'] = $store['is_open_credit']??0;
- $extra = StoreCashierExtra::findOne(['store_id'=>$this->store_id]);
- $page_data['credit_rate'] = $extra['credit_rate']??0;
- return $this->success('操作成功', $page_data);
- }
- }
- //赊账功能
- public function actionOpenCredit(){
- $params = \Yii::$app->request->post();
- $is_open_credit = $params['is_open_credit']??0;
- $store_id = $this->store_id;
- $mall_id = $this->mall_id;
- $res = Store::updateAll(['is_open_credit'=>$is_open_credit],['id'=>$store_id,'mall_id'=>$mall_id]);
- if($res==false) return $this->error('fail');
- return $this->success('success');
- }
- //收银台赊账设置
- public function actionCashierCredit(){
- $params = \Yii::$app->request->post();
- $credit_rate = $params['credit_rate']??0;
- if($credit_rate>70) return $this->error('比例不能大于70%');
- $store_id = $this->store_id;
- $mall_id = $this->mall_id;
- $params = ['store_id'=>$store_id,'credit_rate'=>$credit_rate,'mall_id'=>$mall_id,'score_give_setting'=>[],'score_deduct_setting'=>[],'currency_deduct_setting'=>[],'member_price_setting'=>[],'member_buy_limit_setting'=>[]];
- $res = StoreCashierExtra::setData($store_id,$params);
- if($res==false) return $this->error('fail');
- return $this->success('success');
- }
- //商品设置赊账比例
- public function actionGoodsCredit(){
- $params = \Yii::$app->request->post();
- $credit_rate = $params['credit_rate']??0;
- if($credit_rate<=0||!is_numeric($credit_rate)) return $this->error('请输入正确的比例');
- if($credit_rate>70) return $this->error('比例不能大于70%');
- $goods_id = $params['goods_id']??0;
- $store_id = $this->store_id;
- $mall_id = $this->mall_id;
- $res = StoreGoods::updateAll(['credit_rate'=>$credit_rate],['id'=>$goods_id,'store_id'=>$store_id,'mall_id'=>$mall_id]);
- if($res==false) return $this->error('fail');
- return $this->success('success');
- }
- public function actionGoodCredit(){
- $params = \Yii::$app->request->post();
- $credit_rate = $params['credit_rate']??0;
- if($credit_rate>70) return $this->error('比例不能大于70%');
- $id = $params['id']??0;
- $store_id = $this->store_id;
- $mall_id = $this->mall_id;
- $res = StoreGoods::updateAll(['credit_rate'=>$credit_rate],['id'=>$id,'store_id'=>$store_id,'mall_id'=>$mall_id]);
- if($res==false) return $this->error('fail');
- return $this->success('success');
- }
- public function actionDelGoodsCredit(){
- $params = \Yii::$app->request->post();
- $id = $params['id']??0;
- $store_id = $this->store_id;
- $mall_id = $this->mall_id;
- $res = StoreGoods::updateAll(['credit_rate'=>0],['id'=>$id,'store_id'=>$store_id,'mall_id'=>$mall_id]);
- if($res==false) return $this->error('fail');
- return $this->success('操作成功');
- }
- //商品下拉,不用验证权限
- public function actionSearchGoods(){
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['store_id' => $this->store_id];
- $where[] = ['status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]];
- if (!empty($params['keyword'])) {
- $where[] = [
- 'or',
- ['id'=> trim($params['keyword'])],
- ['like', 'goods_name', trim($params['keyword'])],
- ];
- }
- $params['select'] = 'id,store_id,mall_id,goods_name,price,cover_pic,cost_price,stock,goods_type';
- $params['where'] = $where;
- $page_data = StoreGoods::listPage($params);
- if(!empty($page_data['list'])){
- foreach ($page_data['list'] as &$item){
- $item['goods_source'] = 'store';
- }
- }
- return $this->success('操作成功', $page_data);
- }
- }
|