| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- namespace addons\Store\common\models;
- use common\enums\StatusEnum;
- use common\models\base\BaseActiveRecord;
- use common\models\mall\Mall;
- use common\models\order\OrderRefund;
- use Exception;
- use Yii;
- /**
- * This is the model class for table "qimall_addons_store_census".
- *
- * @property int $id
- * @property int $mall_id
- * @property int $store_id 门店id
- * @property int $add_user_nums 新增会员
- * @property int $order_nums 订单数
- * @property float $settlement_commission 结算佣金
- * @property float $sales_money 门店销售额
- * @property float $cashier_sales_money 收银台销售额
- * @property string $date_time 日期时间
- * @property int $status 状态[0禁用 1启用 -1删除]
- * @property int $created_at 创建时间
- * @property int $updated_at 修改时间
- */
- class StoreCensus extends BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_store_census}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'store_id', 'add_user_nums', 'order_nums', 'status', 'created_at', 'updated_at', 'cashier_order_nums'], 'integer'],
- [['settlement_commission', 'sales_money', 'cashier_sales_money', 'order_refund_money'], 'number'],
- [['date_time'], 'string', 'max' => 50],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'store_id' => '门店id',
- 'add_user_nums' => '新增会员',
- 'order_nums' => '订单数',
- 'settlement_commission' => '结算佣金',
- 'sales_money' => '门店销售额',
- 'cashier_sales_money' => '收银台销售额',
- 'date_time' => '日期时间',
- 'status' => '状态[0禁用 1启用 -1删除]',
- 'created_at' => '创建时间',
- 'updated_at' => '修改时间',
- ];
- }
- public static function setData($params)
- {
- try {
- if (!empty($params['mall_id']) && !empty($params['date_time']) && !empty($params['store_id'])) {
- $store_census = StoreCensus::findOne(['date_time' => $params['date_time'], 'store_id' => $params['store_id'], 'mall_id' => $params['mall_id']]);
- if (empty($store_census)) {
- $store_census = new StoreCensus();
- $store_census->loadDefaultValues();
- $store_census->mall_id = $params['mall_id'];
- $store_census->store_id = $params['store_id'];
- $store_census->date_time = $params['date_time'];
- }
- if (!empty($params['cashier_order_nums'])) $store_census->cashier_order_nums += $params['cashier_order_nums'];
- if (!empty($params['sales_money'])) $store_census->sales_money += $params['sales_money'];
- if (!empty($params['order_nums'])) $store_census->order_nums += $params['order_nums'];
- if (!empty($params['add_user_nums'])) $store_census->add_user_nums += $params['add_user_nums'];
- if (!empty($params['settlement_commission'])) $store_census->settlement_commission += $params['settlement_commission'];
- if (!empty($params['cashier_sales_money'])) $store_census->cashier_sales_money += $params['cashier_sales_money'];
- $res = $store_census->save();
- }
- return true;
- } catch (\Exception $e) {
- self::$static_error = $e->getMessage();
- return false;
- }
- }
- //数据迁移-累计处理历史数据
- public static function historyOrderRefund()
- {
- try {
- //获取商城id
- $mall_list = Mall::getEnableMallList(true);
- if(!empty($mall_list)){
- foreach ($mall_list as $mall){
- // var_dump('商城:'. $mall['id']);
- self::grandHistoryOrderRefund(['mall_id' => $mall['id']]);
- }
- }
- return true;
- } catch (\Exception $e) {
- throw new Exception($e->getMessage());
- }
- }
- public static function grandHistoryOrderRefund($params)
- {
- try {
- //清零商城addons_store_census 订单累计数量和退款金额
- self::updateAll(['order_nums' => 0, 'order_refund_money' => 0], ['mall_id' => $params['mall_id']]);
- //查找商城每日统计数据
- $list = self::lists([
- 'where' => [
- ['mall_id' => $params['mall_id']],
- ['status' => StatusEnum::ENABLED],
- ],
- 'order' => 'id asc',
- ], false);
- foreach ($list as $detail) {
- $order_nums = 0;
- //查找对应日期订单
- $order_nums = StoreOrder::find()->where(['mall_id' => $params['mall_id'], 'store_id' => $detail['store_id'], 'pay_status' => 1])
- ->andWhere(['and', ['>=', 'created_at', strtotime($detail['date_time'])], ['<=', 'created_at', strtotime($detail['date_time']. ' 23:59:59')]])
- ->count();
- $order_refund_money = OrderRefund::find()->where(['mall_id' => $params['mall_id'], 'store_id' => $detail['store_id'], 'is_refund' => 1])
- ->andWhere(['and', ['>=', 'refund_at', strtotime($detail['date_time'])], ['<=', 'refund_at', strtotime($detail['date_time']. ' 23:59:59')]])->sum('reality_refund_price');
- $detail->order_nums = $order_nums ?? 0;
- $detail->order_refund_money = $order_refund_money ?? 0;
- if (!$detail->save()) var_dump('id:'.$detail['id'].'修改数据失败');
- }
- } catch (\Exception $e) {
- throw new Exception($e->getMessage());
- }
- }
- }
|