MessageService.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace addons\StarChain\common\services;
  3. use addons\StarChain\common\enums\StarChainMessageEnum;
  4. use addons\StarChain\common\models\Message;
  5. use Exception;
  6. use Yii;
  7. use yii\data\Pagination;
  8. use yii\helpers\Json;
  9. /**
  10. * 商品库服务
  11. */
  12. class MessageService extends BaseService
  13. {
  14. /**
  15. * 获取SkuList
  16. *
  17. * @param array $params
  18. * @return array
  19. */
  20. public function getMessageList($params = [])
  21. {
  22. $limit = $params['limit'] ?? 10;
  23. $model = Message::find();
  24. $model->where(['mall_id' => $this->mall_id]);
  25. // 查询
  26. if (isset($params['enum_num']) && $enum_num = $params['enum_num']) {
  27. $model->andWhere(['enum_num' => $enum_num]);
  28. }
  29. $pagination = new Pagination(['totalCount' => $model->count(), 'pageSize' => $limit]);
  30. $model->limit($pagination->limit)->offset($pagination->offset);
  31. $list = $model->orderBy('id desc')
  32. ->asArray()
  33. ->all();
  34. foreach ($list as $k => $v) {
  35. $list[$k]['enum_num_text'] = StarChainMessageEnum::getValue($v['enum_num']);
  36. $content = json_decode($v['content'], true);
  37. $list[$k]['content'] = static::toStr($content);
  38. }
  39. $data['enums'] = StarChainMessageEnum::getMap();
  40. $data['list'] = $list;
  41. $data['page_count'] = $pagination->pageCount;
  42. return $data;
  43. }
  44. protected static function toStr($arr)
  45. {
  46. foreach ($arr as $k => $v) {
  47. if (is_numeric($v)) {
  48. $arr[$k] = (string) $v;
  49. }
  50. }
  51. return $arr;
  52. }
  53. }