MessageSystemServices.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types=1);
  12. namespace app\services\message;
  13. use app\dao\system\MessageSystemDao;
  14. use app\services\BaseServices;
  15. use crmeb\exceptions\ApiException;
  16. /**
  17. * 站内信services类
  18. * Class MessageSystemServices
  19. * @package app\services\system
  20. * @method save(array $data) 保存数据
  21. * @method mixed saveAll(array $data) 批量保存数据
  22. * @method update($id, array $data, ?string $key = null) 修改数据
  23. *
  24. */
  25. class MessageSystemServices extends BaseServices
  26. {
  27. /**
  28. * SystemNotificationServices constructor.
  29. * @param MessageSystemDao $dao
  30. */
  31. public function __construct(MessageSystemDao $dao)
  32. {
  33. $this->dao = $dao;
  34. }
  35. /**
  36. * 站内信列表
  37. * @param $uid
  38. * @return array
  39. * @throws \think\db\exception\DataNotFoundException
  40. * @throws \think\db\exception\DbException
  41. * @throws \think\db\exception\ModelNotFoundException
  42. */
  43. public function getMessageSystemList($uid)
  44. {
  45. [$page, $limit] = $this->getPageValue();
  46. $where['is_del'] = 0;
  47. $where['uid'] = $uid;
  48. $list = $this->dao->getMessageList($where, '*', $page, $limit);
  49. $count = $this->dao->getCount($where);
  50. if (!$list) return ['list' => [], 'count' => 0];
  51. foreach ($list as &$item) {
  52. $item['add_time'] = time_tran($item['add_time']);
  53. if ($item['data'] != '' && $this->getMsg($item['mark']) != 000000) {
  54. $item['content'] = getLang($this->getMsg($item['mark']), json_decode($item['data'], true));
  55. }
  56. }
  57. return ['list' => $list, 'count' => $count];
  58. }
  59. /**
  60. * 站内信详情
  61. * @param $where
  62. * @return array
  63. * @throws \think\db\exception\DataNotFoundException
  64. * @throws \think\db\exception\DbException
  65. * @throws \think\db\exception\ModelNotFoundException
  66. */
  67. public function getInfo($where)
  68. {
  69. $info = $this->dao->getOne($where);
  70. if (!$info || $info['is_del'] == 1) {
  71. throw new ApiException('数据不存在');
  72. }
  73. $info = $info->toArray();
  74. if ($info['look'] == 0) {
  75. $this->update($info['id'], ['look' => 1]);
  76. }
  77. if ($info['data'] != '' && $this->getMsg($info['mark']) != 000000) {
  78. $info['content'] = getLang($this->getMsg($info['mark']), json_decode($info['data'], true));
  79. }
  80. $info['add_time'] = time_tran($info['add_time']);
  81. return $info;
  82. }
  83. public function getMsg($mark)
  84. {
  85. switch ($mark) {
  86. case 'admin_pay_success_code':
  87. $code = '您有一笔支付成功的订单待处理,订单号{:order_id}!';
  88. break;
  89. case 'bind_spread_uid':
  90. $code = '恭喜,又一员猛将将永久绑定到您的团队,用户{:nickname}加入您的队伍!';
  91. break;
  92. case 'order_pay_success':
  93. $code = '您购买的商品已支付成功,支付金额{:pay_price}元,订单号{:order_id},感谢您的光临!';
  94. break;
  95. case 'order_take':
  96. $code = '亲,您的订单{:order_id},商品{:store_name}已确认收货,感谢您的光临!';
  97. break;
  98. case 'price_revision':
  99. $code = '您的订单{:order_id},实际支付金额已被修改为{:pay_price}';
  100. break;
  101. case 'order_refund':
  102. $code = '您的订单{:order_id}已同意退款,退款金额{:refund_price}元。';
  103. break;
  104. case 'recharge_success':
  105. $code = '您成功充值¥{:price},现剩余余额¥{:now_money}元';
  106. break;
  107. case 'integral_accout':
  108. $code = '亲,您成功获得积分{:gain_integral},现有积分{:integral}';
  109. break;
  110. case 'order_brokerage':
  111. $code = '亲,恭喜您成功获得佣金{:brokerage_price}元';
  112. break;
  113. case 'bargain_success':
  114. $code = '亲,好腻害!你的朋友们已经帮你砍到底价了,商品名称{:title},底价{:min_price}';
  115. break;
  116. case 'order_user_groups_success':
  117. $code = '亲,您的拼团已经完成了,拼团名称{:title},团长{:nickname}';
  118. break;
  119. case 'send_order_pink_fial':
  120. $code = '亲,您的拼团失败,活动名称{:title}';
  121. break;
  122. case 'can_pink_success':
  123. case 'open_pink_success':
  124. $code = '亲,您已成功参与拼团,活动名称{:title}';
  125. break;
  126. case 'user_extract':
  127. $code = '亲,您成功提现佣金{:extract_number}元';
  128. break;
  129. case 'user_balance_change':
  130. $code = '亲,您发起的提现被驳回,返回佣金{:extract_number}元';
  131. break;
  132. case 'recharge_order_refund_status':
  133. $code = '亲,您充值的金额已退款,本次退款{:refund_price}元';
  134. break;
  135. case 'send_order_refund_no_status':
  136. $code = '您好!您的订单{:order_id}已拒绝退款。';
  137. break;
  138. case 'send_order_apply_refund':
  139. $code = '您有一笔退款订单待处理,订单号{:order_id}!';
  140. break;
  141. case 'order_deliver_success':
  142. case 'order_postage_success':
  143. $code = '亲爱的用户{:nickname}您的商品{:store_name},订单号{:order_id}已发货,请注意查收';
  144. break;
  145. case 'send_order_pink_clone':
  146. $code = '亲,您的拼团取消,活动名称{:title}';
  147. break;
  148. case 'kefu_send_extract_application':
  149. $code = '您有一笔提现申请待处理,提现金额{:money}!';
  150. break;
  151. case 'send_admin_confirm_take_over':
  152. $code = '您有一笔订单已经确认收货,订单号{:order_id}!';
  153. break;
  154. case 'order_pay_false':
  155. $code = '您有未付款订单,订单号为:{:order_id},商品数量有限,请及时付款。';
  156. break;
  157. default:
  158. $code = 000000;
  159. break;
  160. }
  161. return $code;
  162. }
  163. }