|
|
@@ -19,6 +19,7 @@ use common\helpers\user\Status;
|
|
|
use common\libs\api\sms\SmsApi;
|
|
|
use common\libs\swoole\Process;
|
|
|
use common\models\DealType;
|
|
|
+use common\models\FlowRemainPv;
|
|
|
use common\models\PerfPeriod;
|
|
|
use common\models\DecOrder;
|
|
|
use common\models\EmployLevel;
|
|
|
@@ -32,6 +33,9 @@ use common\models\UserPerf;
|
|
|
use common\models\UserPerfUpdate;
|
|
|
use common\models\UserTeamwork;
|
|
|
use common\models\YearHighestEmpLv;
|
|
|
+use common\models\Order;
|
|
|
+use common\models\RemainPv;
|
|
|
+use common\models\forms\OrderForm;
|
|
|
use yii\base\BaseObject;
|
|
|
use yii\base\StaticInstanceTrait;
|
|
|
use common\helpers\Cache;
|
|
|
@@ -120,6 +124,66 @@ class BonusSend extends BaseObject {
|
|
|
return $this->_errors;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 挂网时处理虚假订单
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function putFakeOrder() {
|
|
|
+ echo('开始处理假订单' . PHP_EOL);
|
|
|
+ $fakeOrder= Order::find()->where(['PERIOD_NUM'=>$this->_periodNum, 'ORDER_TYPE'=>'FO'])->asArray()->all();
|
|
|
+ foreach($fakeOrder as $fOrder){
|
|
|
+ $oRemainPv=RemainPv::findOne(["USER_ID"=>$fOrder['USER_ID']]);
|
|
|
+ $transactionRemain = \Yii::$app->db->beginTransaction();
|
|
|
+ try{
|
|
|
+ $flowRemainPvModel = new FlowRemainPv();
|
|
|
+ $flowRemainPvModel->ID = $this->_generateSn();
|
|
|
+ $flowRemainPvModel->USER_ID = $fOrder['USER_ID'];
|
|
|
+ $flowRemainPvModel->REMAIN_PV_FLOW = -30;
|
|
|
+ $flowRemainPvModel->REMAIN_PV_TOTAL = $oRemainPv->REMAIN_PV - 30;
|
|
|
+ $flowRemainPvModel->PERIOD_NUM = $this->_periodNum;
|
|
|
+ $flowRemainPvModel->UPDATED_AT = Date::nowTime();
|
|
|
+ $flowRemainPvModel->ORDER_SN = $fOrder['SN'];
|
|
|
+ if(!$flowRemainPvModel->save()){
|
|
|
+ $this->addErrors($flowRemainPvModel->getErrors());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $oRemainPv->updateCounters(['REMAIN_PV'=>-30]);
|
|
|
+ $transactionRemain->commit();
|
|
|
+ } catch (Exception $e) {
|
|
|
+ $transactionRemain->rollBack();
|
|
|
+ $this->addError('add', $e->getMessage());
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ echo('假订单处理完' . PHP_EOL);
|
|
|
+ return $flowRemainPvModel;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 生成流水号
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ private function _generateSn() {
|
|
|
+ return Date::today('Ymd') . $this->_random(10, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成随机数
|
|
|
+ * @param $length
|
|
|
+ * @param int $numeric
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ private function _random($length, $numeric = 0) {
|
|
|
+ $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
|
|
|
+ $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));
|
|
|
+ $hash = '';
|
|
|
+ $max = strlen($seed) - 1;
|
|
|
+ for ($i = 0; $i < $length; $i++) {
|
|
|
+ $hash .= $seed[mt_rand(0, $max)];
|
|
|
+ }
|
|
|
+ return $hash;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 进行奖金发放步骤
|
|
|
* @return bool
|
|
|
@@ -129,6 +193,8 @@ class BonusSend extends BaseObject {
|
|
|
$t1 = microtime(true);
|
|
|
// 初始化
|
|
|
$this->initTask();
|
|
|
+ echo('挂网开始');
|
|
|
+ $this->putFakeOrder();
|
|
|
$t2 = microtime(true);
|
|
|
echo('初始化完成,当前期数【' . $this->_periodNum . '】,耗时:' . round($t2 - $t1, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
|
|
|
// 改变状态
|