| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <?php
- namespace addons\QiJuhe\common\models;
- use Yii;
- use yii\db\ActiveRecord;
- use yii\helpers\Json;
- /**
- * This is the model class for table "qimall_addon_juhe_shop_notice".
- *
- * @property int $id
- * @property int|null $mall_id
- * @property string|null $notice_id 通知id
- * @property string|null $type 类型
- * @property string|null $push_time 推送时间
- * @property string|null $data 数据
- * @property int|null $created_at
- * @property int|null $updated_at
- * @property string|null $response 响应
- * @property int|null $response_time 响应时间
- */
- class NoticeModel extends ActiveRecord
- {
- const GOODS_UNDERCARRIAGE = 'GOODS_UNDERCARRIAGE';
- const GOODS_ON_SALE = 'GOODS_ON_SALE';
- const GOODS_ALTER= 'GOODS_ALTER';
- const GOODS_PRICE_ALTER = 'GOODS_PRICE_ALTER';
- const GOODS_STORAGE_ADD = 'GOODS_STORAGE_ADD';
- const GOODS_STORAGE_DELETE = 'GOODS_STORAGE_DELETE';
- const GOODS_STORAGE_REMOVE = 'GOODS_STORAGE_REMOVE';
- const ORDER_SUCCESS = 'ORDER_SUCCESS';
- const ORDER_DELIVERED = 'ORDER_DELIVERED';
- const ORDER_DELIVERY = 'ORDER_DELIVERY';
- const ORDER_CANCEL = 'ORDER_CANCEL';
- const AFTERSALE_AGREE = 'AFTERSALE_AGREE';
- const AFTERSALE_REFUSE = 'AFTERSALE_REFUSE';
- const AFTERSALE_SUCCESS = 'AFTERSALE_SUCCESS';
- const HANDLER_ORDER = 'order';
- const HANDLER_GOODS = 'goods';
- const HANDLER_AFTERSALE = 'aftersale';
- public static $type_text = [
- 'goods.undercarriage' => '商品下架',
- 'goods.on.sale' => '商品上架',
- 'goods.alter' => '商品修改',
- 'goods.price.alter' => '商品价格变更',
- 'goods.storage.add' => '商品库添加',
- 'goods.storage.delete' => '商品库删除',
- 'goods.storage.remove' => '移除商品库商品',
- 'order.success' => '订单交易成功',
- 'order.delivered' => '商品已收货',
- 'order.delivery' => '商家已发货',
- 'order.cancel' => '订单取消',
- 'aftersale.agree' => '售后同意',
- 'aftersale.refuse' => '拒绝',
- 'aftersale.success' => '退款到账',
- ];
- public static $event_name = [
- self::GOODS_UNDERCARRIAGE => '商品下架',
- self::GOODS_ON_SALE => '商品上架',
- self::GOODS_ALTER=> '商品修改',
- self::GOODS_PRICE_ALTER => '商品价格变更',
- self::GOODS_STORAGE_ADD => '商品库添加',
- self::GOODS_STORAGE_DELETE => '商品库删除',
- self::GOODS_STORAGE_REMOVE => '移除商品库商品',
- self::ORDER_SUCCESS => '订单交易成功',
- self::ORDER_DELIVERED => '商品已收货',
- self::ORDER_DELIVERY => '商家已发货',
- self::ORDER_CANCEL => '订单取消',
- self::AFTERSALE_AGREE => '售后',
- self::AFTERSALE_REFUSE => '拒绝',
- self::AFTERSALE_SUCCESS => '退款到账',
- ];
- public static $handler_type = [
- self::HANDLER_GOODS => [
- self::GOODS_UNDERCARRIAGE,
- self::GOODS_ON_SALE,
- self::GOODS_ALTER,
- self::GOODS_PRICE_ALTER ,
- self::GOODS_STORAGE_ADD ,
- self::GOODS_STORAGE_DELETE ,
- self::GOODS_STORAGE_REMOVE ,
- ],
- self::HANDLER_ORDER => [
- self::ORDER_SUCCESS,
- self::ORDER_DELIVERED,
- self::ORDER_DELIVERY,
- self::ORDER_CANCEL,
- ],
- self::HANDLER_AFTERSALE => [
- self::AFTERSALE_AGREE,
- self::AFTERSALE_REFUSE,
- self::AFTERSALE_SUCCESS,
- ]
- ];
- /**
- * @var array
- */
- public static $handler_class = [
- self::HANDLER_GOODS => [
- 'key' => 'juhe_goods_id',
- 'field' => 'goodsIds',
- 'class' => GoodsSkuModel::class,
- ],
- self::HANDLER_ORDER => [
- 'key' => 'order_no',
- 'field' => 'orderSn',
- 'class' => MallOrderModel::class,
- ],
- self::HANDLER_AFTERSALE => [
- 'key' => 'order_no',
- 'field' => 'orderSn',
- 'class' => MallOrderModel::class,
- ],
- ];
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_qijuhe_notice}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'created_at', 'updated_at', 'response_time', 'supply_id'], 'integer'],
- [['data', 'response'], 'string'],
- [['type', 'push_time'], 'string', 'max' => 64],
- [['notice_id'], 'string', 'max' => 225],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'supply_id' => 'Supply id',
- 'notice_id' => 'Notice ID',
- 'type' => 'Type',
- 'push_time' => 'Push Time',
- 'data' => 'Data',
- 'created_at' => 'Created At',
- 'updated_at' => 'Updated At',
- 'response' => 'Response',
- 'response_time' => 'Response Time',
- ];
- }
-
- /**
- * 获取Handler
- *
- * @param string $type
- * @return string
- */
- public function getHandler($type)
- {
- foreach (self::$handler_type as $handler => $handler_type) {
- if (in_array($type, $handler_type)) {
- return $handler;
- }
- }
- return false;
- }
- /**
- * 获取推送相关的mall_ids
- *
- * @param string $handler
- * @param array $data
- * @return array
- */
- public function getMallIds($handler, $data)
- {
- $handler = $this->getHandler($handler);
- $class = self::$handler_class[$handler];
- switch ($handler) {
- // 订单
- case self::HANDLER_GOODS:
- $ids = GoodsSkuModel::find()
- ->alias('sku')
- ->leftJoin(['goods' => GoodsModel::tableName()], 'goods.id = sku.juhe_goods_id')
- ->andWhere(['goods.juhe_goods_id' => $data[$class['field']]])
- ->select('sku.mall_id')
- ->groupBy('sku.mall_id')
- ->all();
- break;
-
- default:
- $ids = $class['class']::find()
- ->select('mall_id')
- ->where([$class['key'] => $data[$class['field']]])
- ->groupBy('mall_id')
- ->select('mall_id')
- ->all();
- break;
- }
- $mall_ids = [];
- foreach ($ids as $v) {
- $mall_ids[] = $v['mall_id'];
- }
- return $mall_ids;
- }
- /**
- * 添加日志
- *
- * @param array $data
- * @return integer
- */
- public static function addLog($type,$data)
- {
- $model = new self();
- // $data['response'] = Json::encode($data['response']);
- $log = $data;
- unset($log['message_id'],$log['notice_id']);
- $data['data'] = Json::encode($log);
- $data['type'] = $type;
- $data['created_at'] = $data['updated_at'] = time();
- $model->load($data, '');
- $model->save(false);
- return $model->id;
- }
- }
|