| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- <?php
- namespace addons\Scratch\common\models;
- use addons\Coupon\common\models\AddonsCoupon;
- use addons\Scratch\common\enums\ScratchEnum;
- use common\models\base\BaseActiveRecord;
- use common\models\goods\Goods;
- use common\models\mall\MallAddons;
- use common\models\user\User;
- /**
- * Class ScratchLogModel
- * @property int $id
- * @property int $mall_id
- * @property int $scratch_id
- * @property int $user_id
- * @property int $status 0预领取 1 未领取 2 已领取
- * @property int $type 1.红包2.余额3.优惠卷4.积分5.实物
- * @property int $num 积分数量
- * @property string $detail 详情
- * @property string $coupon_id 优惠券id
- * @property string $goods_id 赠品
- * @property string $attr_id 赠品
- * @property string $price 价格
- * @property int $order_id
- * @property int $raffled_at
- * @property int $created_at
- * @property Goods $goods
- * @package addons\Scratch\common\models
- */
- class ScratchLogModel extends BaseActiveRecord
- {
- const STATUS_PRE = 0;
- const STATUS_NO_RECEIVED = 1;
- const STATUS_RECEIVED = 2;
- const LOG_STATUS_ARR = ['预领取', '未领取', '已领取'];
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_scratch_log}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'scratch_id', 'user_id'], 'required'],
- [['updated_at', 'mall_id', 'scratch_id', 'user_id', 'status', 'type', 'num', 'order_id', 'attr_id', 'goods_id', 'coupon_id'], 'integer'],
- [['price'], 'number'],
- [['raffled_at', 'created_at'], 'safe'],
- [['detail'], 'string'],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'scratch_id' => 'Scratch ID',
- 'user_id' => 'User ID',
- 'status' => ' 0预领取 1 未领取 2 已领取',
- 'type' => '1.红包2.优惠券3.积分4.实物',
- 'num' => '积分数量',
- 'detail' => '详情',
- 'coupon_id' => '优惠券id',
- 'goods_id' => '赠品',
- 'attr_id' => '赠品规格',
- 'price' => '价格',
- 'order_id' => 'Order ID',
- 'raffled_at' => 'Raffled At',
- 'created_at' => 'Created At',
- ];
- }
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getUser()
- {
- return $this->hasOne(User::className(), ['id' => 'user_id'])->alias('u');
- }
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getGoods()
- {
- return $this->hasOne(Goods::className(), ['id' => 'goods_id']);
- }
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getCoupon()
- {
- return $this->hasOne(ScratchCouponModel::className(), ['id' => 'coupon_id']);
- }
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getScratch()
- {
- return $this->hasOne(ScratchModel::className(), ['id' => 'scratch_id']);
- }
- /**
- * 获取数据
- * @param $params
- * @param $fields 字段
- * @return \app\models\BaseActiveQuery|array|\yii\db\ActiveRecord|\yii\db\ActiveRecord[]|null
- */
- public static function getData($params,$fields = []){
- $query = self::find()->where(["is_delete" => self::NO]);
- if(isset($params["id"]) && !empty($params["id"])){
- $params["is_one"] = 1;
- $query->andWhere(["id" => $params["id"]]);
- }
- if(isset($params["mall_id"]) && !empty($params["mall_id"])){
- $query->andWhere(["mall_id" => $params["mall_id"]]);
- }
- if(isset($params["user_id"]) && !empty($params["user_id"])){
- $query->andWhere(["user_id" => $params["user_id"]]);
- }
- if(isset($params["not_user_id"]) && !empty($params["not_user_id"])){
- $query->andWhere(['!=',"user_id" , $params["not_user_id"]]);
- }
- if(isset($params["status"]) && !empty($params["status"])){
- $query->andWhere(["status" => $params["status"]]);
- }
- if(isset($params["type"]) && !empty($params["type"])){
- $query->andWhere(["type" => $params["type"]]);
- }
- if(isset($params["filter_time_start"]) && isset($params["filter_time_end"]) && !empty($params["filter_time_start"]) && !empty($params["filter_time_end"])){
- $query->andFilterWhere(['between','created_at',$params["filter_time_start"], $params["filter_time_end"]]);
- }
- //排序
- $orderByColumn = isset($params["sort_key"]) ? $params["sort_key"] : "id";
- $orderByType = isset($params["sort_val"]) ? $params["sort_val"] : " desc";
- $orderBy = $orderByColumn.$orderByType;
- if(!empty($fields)){
- $query->select($fields);
- }
- if(isset($params["return_count"])){
- return $query->count();
- }
- $pagination = null;
- if(isset($params["limit"]) && isset($params["page"])){
- $query->page($pagination, $params['limit'], $params['page']);
- }
- $query->with(["user"])->asArray()->orderBy($orderBy);
- //查询单条数据
- if(isset($params["is_one"]) && $params["is_one"] == 1){
- $list = $query->one();
- $returnData = $list;
- }else{
- $list = $query->all();
- if(isset($params["limit"]) && isset($params["page"])) {
- $returnData["list"] = $list;
- $returnData["pagination"] = $pagination;
- }else{
- $returnData = $list;
- }
- }
- return $returnData;
- }
- /**
- * 操作数据库
- * @param $data
- * @return bool
- */
- public static function operateData($data){
- $scratchModel = new ScratchLog();
- if(isset($data["id"]) && !empty($data["id"])){
- $scratchModel = self::findOne($data["id"]);
- if(empty($scratchModel)){
- return false;
- }
- if($scratchModel->is_delete == self::YES){
- return false;
- }
- $data["user_id"] = $scratchModel->user_id;
- $data["mall_id"] = $scratchModel->mall_id;
- }
- $scratchModel->user_id = $data["user_id"];
- $scratchModel->mall_id = $data["mall_id"];
- if(isset($data["status"])){
- $scratchModel->status = $data["mall_id"];
- }
- if(isset($data["type"])){
- $scratchModel->type = $data["type"];
- }
- if(isset($data["num"])){
- $scratchModel->num = $data["num"];
- }
- if(isset($data["detail"])){
- $scratchModel->detail = $data["detail"];
- }
- if(isset($data["price"])){
- $scratchModel->price = $data["price"];
- }
- if(isset($data["order_id"])){
- $scratchModel->order_id = $data["order_id"];
- }
- if(isset($data["goods_id"])){
- $scratchModel->goods_id = $data["goods_id"];
- }
- if(isset($data["raffled_at"])){
- $scratchModel->raffled_at = $data["raffled_at"];
- }
- if(isset($data["is_delete"])){
- $scratchModel->is_delete = $data["is_delete"];
- }
- if(!$scratchModel->save()){
- return false;
- }
- return $scratchModel->id;
- }
- /**
- * @param $mallId
- * @param $params
- * @return ScratchLogModel
- * @throws \Exception
- */
- public static function setData($mallId, $params)
- {
- try {
- $id = $params['id'] ?? 0;
- $data = self::findOne([
- 'id' => $id,
- 'status' => ScratchEnum::ENABLED,
- ]);
- if (!empty($data)) {
- return $data;
- }
- $model = new self();
- $model->mall_id = $mallId;
- $model->name = $params['name'] ?? '';
- $model->pic = $params['pic'] ?? '';
- $model->type = $params['type'] ?? '';
- $model->goods_id = $params['goods_id'] ?? 0;
- $model->num = $params['num'] ?? 0;
- $model->price = $params['price'] ?? 0;
- $model->coupon_id = $params['coupon_id'] ?? 0;
- $model->stock = $params['stock'] ?? 0;
- $model->balance = $params['balance'] ?? 0;
- $model->status = $params['status'] ?? 1;
- return $model;
- } catch (\Exception $exception) {
- throw new \Exception($exception->getMessage());
- }
- }
- }
|