فهرست منبع

feat: NG-15: 新会员注册时增加国家与语言选项.

zhangl 1 سال پیش
والد
کامیت
0dc60f9b0c
2فایلهای تغییر یافته به همراه109 افزوده شده و 13 حذف شده
  1. 101 0
      common/models/UserPerformance.php
  2. 8 13
      frontendApi/modules/v1/controllers/ShopController.php

+ 101 - 0
common/models/UserPerformance.php

@@ -0,0 +1,101 @@
+<?php
+
+namespace common\models;
+
+use Yii;
+use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
+
+/**
+ * This is the model class for table "{{%USER_WALLET}}".
+ *
+ * @property string $ID
+ * @property string $USER_ID
+ * @property string $CASH
+ * @property integer $UPDATED_AT
+ * @property integer $CLEAR_BY_CLOSED_AT
+ * @property User $user
+ */
+class UserPerformance extends \common\components\ActiveRecord
+{
+    const NEWS = 10;
+    const USING = 20;
+    const FINISHED = 30;
+    const NULLIFY = 40;
+    const EXPIRED = 50;
+
+    public static function getEffective(): array
+    {
+        return [self::NEWS, self::USING];
+    }
+
+    public static function getInvalid(): array
+    {
+        return [self::FINISHED, self::NULLIFY, self::EXPIRED];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return '{{%USER_PERFORMANCE}}';
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function rules()
+    {
+        return [
+            [['USER_ID'], 'required'],
+            [['CASH'], 'number'],
+            [['UPDATED_AT', 'CLEAR_BY_CLOSED_AT'], 'integer'],
+            [['ID','USER_ID'], 'string', 'max' => 32],
+            [['USER_ID'], 'unique'],
+        ];
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function attributeLabels()
+    {
+        return [
+            'ID' => 'ID',
+            'USER_ID' => '用户id',
+            'CASH' => '现金',
+            'UPDATED_AT' => '修改时间',
+            'CLEAR_BY_CLOSED_AT' => '清空关停会员钱包时间',
+        ];
+    }
+
+    /**
+     * 操作日志记录条件
+     * @return array
+     */
+    public function attrLabelsWithLogType(){
+        return [
+            'USER_ID' => '用户id',
+            'CLEAR_BY_CLOSED_AT' => [
+                'label' => '清空关停会员钱包时间',
+                'type' => ValueTypeConfig::DATE_TIME_TYPE,
+            ],
+        ];
+    }
+
+    /**
+     * 获取一名会员的余额
+     * @param $userId
+     * @return array|null
+     */
+    public static function getCashByUserId($userId){
+        $data = UserPerformance::findOneAsArray('USER_ID=:USER_ID', [':USER_ID'=>$userId], 'USER_ID,CASH');
+        if(!$data){
+            $data = [
+                'USER_ID' => $userId,
+                'CASH' => 0,
+            ];
+        }
+        return $data;
+    }
+}

+ 8 - 13
frontendApi/modules/v1/controllers/ShopController.php

@@ -44,6 +44,7 @@ use common\models\ShopGoods;
 use common\models\ShopGoodsNature;
 use common\models\User;
 use common\models\UserBonus;
+use common\models\UserPerformance;
 use common\models\UserWallet;
 use Yii;
 use yii\data\Pagination;
@@ -143,29 +144,23 @@ class ShopController extends BaseController {
             }
         }
         $userBalance = [
-//            'points' => 0,
             'cash' => 0,
-//            'exchange' => 0,
-            'tourism_points' => 0,
-            'garage_points' => 0,
-            'villa_points' => 0,
+            'prp' => 0,
         ];
-        if ($userBonusResult = UserBonus::findOneAsArray(['USER_ID' => $user['ID']])) {
-//            $userBalance['points'] = $userBonusResult['RECONSUME_POINTS'];
-//            $userBalance['exchange'] = $userBonusResult['EXCHANGE_POINTS'];
-            $userBalance['tourism_points'] = $userBonusResult['TOURISM_POINTS'];
-            $userBalance['garage_points'] = $userBonusResult['GARAGE_POINTS'];
-            $userBalance['villa_points'] = $userBonusResult['VILLA_POINTS'];
-        }
+
         if ($userCashResult = UserWallet::findOneAsArray(['USER_ID' => $user['ID']])) {
             $userBalance['cash'] = $userCashResult['CASH'];
         }
 
+        if ($userPerformance = UserPerformance::find()->select('SUM(AMOUNT) AS AMOUNT_SUM')->where('STATUS_ID<(:STATUS_ID)', [':STATUS_ID' => UserPerformance::FINISHED])->asArray()->one()) {
+            $userBalance['prp'] = $userPerformance['AMOUNT_SUM'];
+        }
+
         // 运费模板
         $freeTemplate = FreeTemplate::getByCountryId($user['COUNTRY_ID']);
         // 运费
         $freight = $freeTemplate['freight'] ?? 0;
-        // 普通商品免运费阈值
+        // 免运费阈值
         $freeShipping = $freeTemplate['free_shipping'] ?? 0;
 
         $isDec = User::getEnCodeInfo(\Yii::$app->user->id)['IS_DEC'];