| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <?php
- namespace addons\RandomRedPacket\common\models;
- use Yii;
- use yii\db\Exception;
- use yii\helpers\Json;
- /**
- * This is the model class for table "qimall_addons_random_red_packet".
- *
- * @property int $id
- * @property int $mall_id 商城id
- * @property string $activities_name 活动名称
- * @property string $activities_number 活动编号
- * @property int $start_at 活动开始时间
- * @property int $end_at 活动结束时间
- * @property int $reward_type 活动类型 1 激活积分 2 贡献值 3 红包 4 余额
- * @property string $min_value 最小发放值
- * @property string $max_value 最大发放值
- * @property int $sum_total 发放总数
- * @property int $surplus_num 剩余个数
- * @property int get_number 领取人数
- * @property int $detail_show 商品详情页是否展示标识 1是 0否
- * @property int $index_show 首页是否展示标识 1是 0否
- * @property int $status 状态[-1:删除;0:禁用;1启用]
- * @property int $created_at 创建时间
- * @property int $updated_at 修改时间
- */
- class RandomRedPacket extends \common\models\base\BaseActiveRecord
- {
- const INTEGRAL = 1; //激活积分
- const CONTRIBUTION = 2; //贡献值
- const RED_PACKET = 3; //红包
- const BALANCE = 4; //余额
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return 'qimall_addons_random_red_packet';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'activities_name', 'start_at', 'end_at', 'reward_type', 'min_value', 'max_value', 'sum_total', 'surplus_num'], 'required'],
- [['mall_id', 'start_at', 'end_at', 'reward_type', 'sum_total', 'get_number', 'surplus_num', 'detail_show', 'index_show', 'status', 'created_at', 'updated_at'], 'integer'],
- [['activities_name'], 'string', 'max' => 121],
- [['activities_number'], 'string', 'max' => 11],
- [['min_value', 'max_value'], 'string', 'max' => 191],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => '商户id',
- 'activities_name' => '活动名称',
- 'activities_number' => '活动编号',
- 'start_at' => '活动开始时间',
- 'end_at' => '活动结束时间',
- 'reward_type' => '奖品类型',
- 'min_value' => '数额最小值',
- 'max_value' => '数额最大值',
- 'sum_total' => '发放总数',
- 'get_number' => '领取人数',
- 'surplus_num' => '剩余个数',
- 'detail_show' => '商品详情页',
- 'index_show' => '首页的商品列表',
- 'created_at' => 'Created At',
- 'updated_at' => 'Updated At',
- ];
- }
- public static function labelText($type = '')
- {
- $text = '';
- if(!empty($type)){
- switch ($type) {
- case self::INTEGRAL:
- $text = '激活积分';
- break;
- case self::CONTRIBUTION:
- $text = '贡献值';
- break;
- case self::RED_PACKET:
- $text = '红包';
- break;
- case self::BALANCE:
- $text = '余额';
- break;
- }
- }
- return $text;
- }
- public static function setData($mall_id, array $params)
- {
- try {
- if(empty($params['id'])){//新增
- $model = new self();
- $model->load($params, '');
- $model->surplus_num = $model->sum_total;
- $model->mall_id = $mall_id;
- $goods_ids_arr = array_column($params['goods'],'id');
- if(!$model->save()){
- throw new Exception($model->getErrorMessage());
- }
- $model->activities_number = rand(1000,1999).$model->id;
- if(!$model->save()){
- throw new Exception($model->getErrorMessage());
- }
- //保存到关系表
- foreach ($goods_ids_arr as $v){
- $relationModel = new RandomRedPacketRelation();
- $relationModel->mall_id = $mall_id;
- $relationModel->goods_id = $v;
- $relationModel->packet_id = $model->id;
- if(!$relationModel->save()){
- throw new Exception($relationModel->getErrorMessage());
- }
- }
- return $model;
- }else{
- $model = self::findOne(['id'=>$params['id']]);
- $model->load($params, '');
- //根据修改后的红包总数 - 领取人数 = 剩余个数
- $surplus_num = $model->sum_total - $model->get_number;
- if($surplus_num < 0){
- $surplus_num = 0;
- }
- $model->surplus_num = $surplus_num;
- if(!$model->save()){
- throw new Exception($model->getErrorMessage());
- }
- if(!empty($params['goods'])){
- $goods_ids_arr = array_column($params['goods'],'id');
- //删除
- $delRelation = RandomRedPacketRelation::deleteAll(['packet_id'=>$model->id]);
- if(!$delRelation){
- throw new Exception("修改失败");
- }
- //保存到关系表
- foreach ($goods_ids_arr as $v){
- $relationModel = new RandomRedPacketRelation();
- $relationModel->mall_id = $mall_id;
- $relationModel->goods_id = $v;
- $relationModel->packet_id = $model->id;
- if(!$relationModel->save()){
- throw new Exception($relationModel->getErrorMessage());
- }
- }
- }
- return $model;
- }
- }catch (\Exception $e){
- self::setStaticError($e->getMessage());
- return false;
- }
- }
- }
|