| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?php
- namespace addons\Redpack\common\models;
- use common\enums\AddonsEnum;
- use common\enums\StatusEnum;
- use xin\helper\Num;
- use Yii;
- use yii\db\Exception;
- /**
- * This is the model class for table "{{%addons_redpack}}".
- *
- * @property int $id
- * @property int $mall_id 商城ID
- * @property string $title 活动标题
- * @property string $description 活动描述
- * @property string|null $cover 活动封面
- * @property float $award 总奖金
- * @property float $virtual_award 虚拟奖金
- * @property float $day_award 每日总奖金
- * @property int $grab_user_num 已抢红包总人数
- * @property float $grab_money 已抢红包总金额
- * @property float $surplus_money 剩余红包总金额
- * @property int|null $data_at 数据更新时间
- * @property string $time_type 活动时间类型[1:每日红包,2:时间段红包]
- * @property string $start_time 活动开始时间
- * @property string $end_time 活动结束时间
- * @property int $redpack_type 红包活动类型[1:冻结到激活红包,2:冻结红包,3:激活红包]
- * @property string|null $rule_values 规则条件的值集合 [
- * first_money_start:第一次抢红包金额最小值
- * first_money_end:第一次抢红包金额最大值
- * everyday_invitation:每日邀请人数
- * everyday_invitation_start:每日邀请人数可抢红包一次,单次金额在最小值
- * everyday_invitation_end:每日邀请人数可抢红包一次,单次金额在最大值
- * times:每日活动最多抢次数
- * ]
- * @property string $auth 参与权限
- * @property string|null $rule 规则说明
- * @property int|null $status 状态[-1:删除;0:禁用;1启用]
- * @property string|null $limit_user_level 会员限制
- * @property int $created_at
- * @property int $updated_at
- * @property int $is_show_red_envelope_num
- * @property int $is_show_invite_button
- * @property int $is_limit_user_level_num
- * @property int $is_show_reward_amount
- * @property float $reward_parent_rate
- * @property array|null $limit_user_level_num
- */
- class Redpack extends \common\models\base\BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_redpack}}';
- }
- public static function briefTableName()
- {
- return 'addons_redpack';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'grab_user_num', 'data_at', 'redpack_type', 'status', 'created_at', 'updated_at','start_time', 'end_time',
- 'is_show_red_envelope_num', 'is_show_invite_button', 'is_limit_user_level_num', 'is_show_reward_amount'], 'integer'],
- [['award', 'day_award', 'grab_money', 'surplus_money','virtual_award', 'reward_parent_rate'], 'number'],
- [['rule_values', 'rule','limit_user_level'], 'string'],
- [['title'], 'string', 'max' => 100],
- [['description', 'cover', 'auth'], 'string', 'max' => 255],
- [['time_type'], 'string', 'max' => 45],
- [['limit_user_level_num'], 'safe'],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => '商城ID',
- 'title' => '活动标题',
- 'description' => '活动描述',
- 'cover' => '活动封面',
- 'award' => '总奖金',
- 'virtual_award' => '虚拟奖金',
- 'day_award' => '每日奖金池',
- 'grab_user_num' => '已抢红包总人数',
- 'grab_money' => '已抢红包总金额',
- 'surplus_money' => '剩余红包总金额',
- 'data_at' => '数据更新时间',
- 'time_type' => '活动时间类型[1:每日红包,2:时间段红包]',
- 'start_time' => '活动开始时间',
- 'end_time' => '活动结束时间',
- 'redpack_type' => '红包活动类型[1:冻结到激活红包,2:增值冻结红包,3:增值激活红包]',
- 'rule_values' => '规则条件的值集合',
- 'auth' => '参与权限',
- 'rule' => '规则说明',
- 'status' => '状态[-1:删除;0:禁用;1启用]',
- 'limit_user_level' => '会员限制',
- 'created_at' => '创建时间',
- 'updated_at' => '更新时间',
- ];
- }
- /**
- * @Author: ltm
- * @DateTime: 2022/3/18 0018 16:21
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $data
- * @return string
- */
- public static function setData(array $params){
- try{
- if (!empty($params['id'])) {
- $model = self::findOne(['id'=>$params['id'],'mall_id'=>$params['mall_id']]);
- if($params['type'] == StatusEnum::ENABLED && $model->time_type == StatusEnum::ENABLED){ //每日红包活动重新启用的时候更新开始时间和结束时间
- $daytime = strtotime(date("Y-m-d"));
- $params['start_time'] = $daytime + strtotime(date("Y-m-d H:i:s",$model->start_time)) - strtotime(date("Y-m-d",$model->start_time));
- $params['end_time'] = $daytime + strtotime(date("Y-m-d H:i:s",$model->end_time)) - strtotime(date("Y-m-d",$model->end_time));
- }
- if (empty($model)) throw new Exception('记录不存在或已删除');
- }else{
- $model = new self();
- $model->loadDefaultValues();
- }
- $model->mall_id = $params['mall_id'];
- if(!$model->load($params,'') || !$model->save()){
- throw new Exception($model->getErrorMessage());
- }
- return $model;
- }catch(\Exception $e){
- self::$static_error = $e->getMessage();
- return false;
- }
- }
- /**
- * 获取商品的优惠券设置
- * @Author: lun
- * @DateTime: 2022/5/12 0012 14:49
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $params
- * @return bool|string[]
- */
- public static function getGoodSetting($params)
- {
- // 后台页面组件展示
- if ($params['type'] == 'show_component') {
- return [
- 'component' => 'com-redpack',
- 'path' => Yii::$app->basePath . '/../addons/Redpack/backend/views/goods',
- ];
- } else {
- try {
- if (empty($params['setting'][AddonsEnum::ADDONS_NAME_REDPACK])) return true;
- $setting = $params['setting'][AddonsEnum::ADDONS_NAME_REDPACK];
- // 数据保存
- $res = RedpackGoodsSetting::setGoodsSetting($params['mall_id'], $params['goods_id'], $setting);
- if ($res === false) throw new Exception(RedpackGoodsSetting::getStaticError());
- return true;
- } catch (Exception $e) {
- self::setStaticError($e->getMessage());
- return false;
- }
- }
- }
- }
|