| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <?php
- namespace addons\HandBouns\backend\controllers;
- use addons\HandBouns\common\listeners\BounsListener;
- use addons\HandBouns\common\models\AddonsHandBouns;
- use addons\HandBouns\common\models\AddonsHandBounsLog;
- use common\components\export\CsvTool;
- use common\enums\DownloadEnum;
- use common\enums\RabbitMqEnum;
- use common\enums\StatusEnum;
- use common\helpers\csv\CsvExportHelper;
- use common\helpers\LockHelper;
- use Yii;
- use yii\db\Exception;
- use common\controllers\AddonsController;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\HandBouns\backend\controllers
- */
- class DefaultController extends BaseController
- {
- public $enableCsrfValidation = false;
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $params = Yii::$app->request->post();
- $rules = [
- [['bouns_file'], 'required'],
- [['bouns_file'], 'string'],
- ];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- try {
- // 查询当前用户上一个文件状态是否改变
- $hand_bonus = AddonsHandBouns::find()->where(['mall_id' => $this->mall_id])->orderBy('id desc')->one();
- if ($hand_bonus && $hand_bonus->export_status == 0) {
- return $this->error('上次提交文件还未完全导入,请稍后在试');
- }
- $params['operator_id'] = $this->admin->id;
- $params['operator_name'] = $this->admin->account;
- $params['mall_id'] = $this->mall_id;
- $model = AddonsHandBouns::setData($params);
- if ($model == false) throw new Exception(AddonsHandBouns::getStaticError());
- // 提交到异步处理
- Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, ['id' => $model->id], BounsListener::class, 'async_handle');
- $this->success('提交成功,正在处理异步处理');
- } catch (Exception $e) {
- $this->error('提交失败:' . $e->getMessage());
- }
- }else{
- $params = Yii::$app->request->get();
- $rules = [
- [['export_status'], 'integer'],
- [['start_time','end_time','operator_name'], 'string'],
- ];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // 条件组合
- $where = [['mall_id' => $this->mall_id]];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- isset($params['start_time']) && isset($params['end_time']) && $where[] = ['between', 'created_at', strtotime($params['start_time']), strtotime($params['end_time'])];
- isset($params['operator_name']) && $where[] = ['=', 'operator_name', $params['operator_name']];
- isset($params['export_status']) && $where[] = ['=', 'export_status', $params['export_status']];
- $order = "id desc";
- $list_params = compact('where', 'order');
- $list = AddonsHandBouns::listPage($list_params, false, true);
- if ($list === false) return $this->error(AddonsHandBouns::getStaticError());
- $is_allow_minus = Yii::$app->services->setting->mall->get($this->mall_id, 'hand_bonus.is_allow_minus');
- if (!$is_allow_minus) $is_allow_minus = false;
- return $this->success('操作成功', compact('list', 'is_allow_minus'));
- }
- }
- return $this->render($this->action->id);
- }
- public function actionExportError(){
- if (\Yii::$app->request->isPost) {
- $params = Yii::$app->request->post();
- // 失败订单导出
- if(\Yii::$app->request->post('flag') == 'EXPORT'){
- $rules = [[['export_id'], 'required'], [['export_id'], 'integer']];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $download['mall_id'] = $this->mall_id;
- $download['hand_bouns_id'] = $params['export_id'];
- $download['style'] = 2;
- $filename = '手动分红失败记录-' . date('YmdHis').'_'.rand(10000,99999);
- $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_HAND_BOUNS,AddonsHandBounsLog::class,'exportHandle',$download);
- if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError());
- return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
- }
- }else{
- $params = Yii::$app->request->get();
- $rules = [
- [['export_id'], 'integer'],
- ];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // 条件组合
- $where = [['mall_id' => $this->mall_id]];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'export_status', 2];
- $where[] = ['=','hand_bouns_id',$params['export_id']];
- $order = "id desc";
- $list_params = compact('where', 'order');
- $list = AddonsHandBounsLog::listPage($list_params, false, true);
- if ($list === false) return $this->error(AddonsHandBounsLog::getStaticError());
- return $this->success('操作成功', $list);
- }
- }
- public function actionExportSuccess(){
- if (\Yii::$app->request->isPost) {
- $params = Yii::$app->request->post();
- // 失败订单导出
- if(\Yii::$app->request->post('flag') == 'EXPORT'){
- $rules = [[['export_id'], 'required'], [['export_id'], 'integer']];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $download['mall_id'] = $this->mall_id;
- $download['hand_bouns_id'] = $params['export_id'];
- $download['style'] = 1;
- $filename = '手动分红成功记录-' . date('YmdHis').'_'.rand(10000,99999);
- $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_HAND_BOUNS,AddonsHandBounsLog::class,'exportHandle',$download);
- if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError());
- return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
- }
- }else{
- $params = Yii::$app->request->get();
- $rules = [
- [['export_id'], 'integer'],
- ];
- $res = Yii::$app->services->validate->validate($params, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // 条件组合
- $where = [['mall_id' => $this->mall_id]];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'export_status', 1];
- $where[] = ['=','hand_bouns_id',$params['export_id']];
- $order = "id desc";
- $list_params = compact('where', 'order');
- $list = AddonsHandBounsLog::listPage($list_params, false, true);
- if ($list === false) return $this->error(AddonsHandBounsLog::getStaticError());
- return $this->success('操作成功', $list);
- }
- }
- /**
- * @Author: ltm
- * @DateTime: 2022/3/7 0007 11:42
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $data
- * @return string
- */
- public function actionDownloadHandBounsTemplate()
- {
- $csv = new CsvTool();
- $csv->filename = '手动分红模板';
- $csv->file_dirname = DownloadEnum::getTypeStorageDirMap(DownloadEnum::TYPE_HAND_BOUNS);
- $csv->export_mode = CsvTool::EXPORT_MODE_SYNC;
- $csv->header = ['会员ID', '手机号码', '余额','佣金','积分', '备注'];
- $csv->export(true);
- }
- /**
- * 手动分红导入负数开关
- * @return mixed|null
- */
- public function actionAllowMinus()
- {
- $is_allow_minus = Yii::$app->request->post('is_allow_minus', false);
- $data['hand_bonus']['is_allow_minus']= $is_allow_minus;
- $res = Yii::$app->services->setting->mall->set($this->mall_id, $data);
- if ($res === false) return $this->error(Yii::$app->services->setting->mall->getError());
- return $this->success("更改成功");
- }
- }
|