BalanceChangeNotice.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2020/6/14
  6. * Time: 10:37
  7. */
  8. namespace app\common\services\notice\official;
  9. use app\common\services\notice\BaseMessageBody;
  10. use app\common\services\credit\ConstService;
  11. use app\common\services\notice\share\OfficialNoticeTemplate;
  12. class BalanceChangeNotice extends BaseMessageBody
  13. {
  14. use OfficialNoticeTemplate;
  15. public $member;
  16. public $new;
  17. public $change;
  18. public $type;
  19. public function __construct($member,$new,$change,$type)
  20. {
  21. $this->member = $member;
  22. $this->new = $new;
  23. $this->change = $change;
  24. $this->type = $type;
  25. }
  26. public function organizeData()
  27. {
  28. // TODO: Implement organizeData() method.
  29. $this->data = [
  30. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  31. ['name' => '昵称', 'value' => $this->member->nickname],
  32. ['name' => '时间', 'value' => date('Y-m-d H:i', time())],
  33. ['name' => '余额变动金额', 'value' => $this->change],
  34. ['name' => '余额变动类型', 'value' => $this->getType()],
  35. ['name' => '变动后余额数值', 'value' => $this->new]
  36. ];
  37. }
  38. public function sendMessage()
  39. {
  40. // TODO: Implement sendMessage() method.
  41. $this->getTemplate('balance_change');
  42. $this->organizeData();
  43. \Log::debug("新版公众号消息-余额1",$this->template_id);
  44. \Log::debug("新版公众号消息-余额2",$this->member->hasOneFans->openid);
  45. \Log::debug("新版公众号消息-余额3",$this->data);
  46. $this->url = $this->url ? : yzAppFullUrl('/member/detailed');
  47. $result = (new OfficialMessageNotice($this->temp_id,$this->member->hasOneFans->openid,$this->data,[],1,$this->url))->sendMessage();
  48. if (app('plugins')->isEnabled('instation-message')) {
  49. //开启了站内消息插件
  50. event(new \Yunshop\InstationMessage\event\BalanceChangeEvent([
  51. 'changeTime'=>date('Y-m-d H:i:s', time()),
  52. 'changeType'=>$this->getType(),
  53. 'changeNum'=>$this->change,
  54. 'afterChange'=>$this->new,
  55. 'member_id'=>$this->member->uid,
  56. 'uniacid'=>\YunShop::app()->uniacid
  57. ]));
  58. }
  59. if ($result['status'] == 0) {
  60. \Log::debug($result['message']);
  61. }
  62. }
  63. private function getType()
  64. {
  65. return (new ConstService(''))->sourceComment()[$this->type];
  66. }
  67. }