| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace addons\CloudStock\common\services;
- use addons\CloudStock\common\models\CloudStockStatistic;
- use common\models\common\CapitalLog;
- class CloudStockStatisticService extends BaseService
- {
- public function fix($capitalType)
- {
- CapitalLog::$capitalType = $capitalType;
- $where = [
- 'mall_id' => $this->mall_id,
- 'from_type' => 'CloudStock',
- 'capital_type' => ['equal', 'price_difference_equal']
- ];
- if ($capitalType == 'commission_frozen') {
- $where['status'] = 0;
- $settlement_status = 0;
- } else {
- $settlement_status = 1;
- }
- $list = CapitalLog::find()->where($where)->select('capital_type,sum(change_num) as change_num')
- ->groupBy('capital_type')->all();
- foreach ($list as $item) {
- $obj = CloudStockStatistic::findOne(['mall_id' => $this->mall_id, 'capital_type' => $item['capital_type'], 'settlement_status' => $settlement_status]);
- if (empty($obj)) {
- $obj = new CloudStockStatistic();
- $obj->loadDefaultValues();
- $obj->mall_id = $this->mall_id;
- }
- $obj->capital_type = $item['capital_type'];
- $obj->settlement_status = $settlement_status;
- $obj->money = $item['change_num'];
- $obj->save();
- }
- }
- }
|