NoticeController.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. /*
  8. * @Author: your name
  9. * @Date: 2021-04-21 13:51:42
  10. * @LastEditTime: 2021-04-22 15:04:40
  11. * @LastEditors: Please set LastEditors
  12. * @Description: In User Settings Edit
  13. * @FilePath: \admin_php\modules\admin\controllers\NoticeController.php
  14. */
  15. namespace app\modules\admin\controllers;
  16. use app\models\Notice;
  17. use app\utils\Notice\GetTamplate;
  18. use app\utils\Notice\NoticeSetting;
  19. use yii\helpers\Json;
  20. /**
  21. * @description:
  22. * @param {*}
  23. * @return {*}
  24. */
  25. class NoticeController extends BaseController
  26. {
  27. public function actionTest() {
  28. $order_no = 'ML20230731164212235455';
  29. $order = \app\models\Order::findOne(['order_no' => $order_no]);
  30. \app\utils\Notice\NoticeSend::PlaceOrder($order->order_no, 0, $order->store_id, $order);
  31. }
  32. public function actionNotice()
  33. {
  34. $store_id = get_store_id();
  35. $notice = Notice::findOne(['store_id' => $store_id, 'is_delete' => 0]);
  36. if ($notice) {
  37. $notice_arr = $notice->toArray();
  38. $new_notice = [];
  39. $key_notice = NoticeSetting::SEND_TYPE;
  40. $default = NoticeSetting::DEFAULT;
  41. foreach($notice_arr as $key => $val) {
  42. if (in_array($key, $key_notice)) {
  43. if ($val) {
  44. $valArr = Json::decode($val);
  45. $saveArr = \app\utils\ArrayHelper::merge($valArr, $default[$key]);
  46. if (isset($saveArr['wxaapi']['receive_openids'])) {
  47. $saveArr['wxaapi']['receive_openids'] = [];
  48. }
  49. if (isset($saveArr['wxaapi']['kid_list'])) {
  50. $saveArr['wxaapi']['kid_list'] = [];
  51. }
  52. $valArr = \app\utils\ArrayHelper::merge($saveArr, $valArr);
  53. } else {
  54. $valArr = $default[$key];
  55. }
  56. $new_notice[$key] = $valArr;
  57. if (is_array($new_notice[$key]) && is_array($default[$key])) {
  58. foreach ($new_notice[$key] as $k => $v) {
  59. $new_notice[$key][$k]['disable'] = $default[$key][$k]['disable'];
  60. isset($default[$key][$k]['receive_userid']) && $new_notice[$key][$k]['receive_userid'] = $new_notice[$key][$k]['receive_userid'] ?? $default[$key][$k]['receive_userid'];
  61. $new_notice[$key][$k]['receive_username'] = $new_notice[$key][$k]['receive_username'] ?? $default[$key][$k]['receive_username'];
  62. isset($default[$key][$k]['receive_openids']) && $new_notice[$key][$k]['receive_openids'] = $new_notice[$key][$k]['receive_openids'] ?? $default[$key][$k]['receive_openids'];
  63. }
  64. }
  65. }
  66. }
  67. $data = $new_notice;
  68. } else {
  69. $data = NoticeSetting::DEFAULT;
  70. }
  71. $store = \app\models\Store::findOne($store_id);
  72. //平台运营
  73. if($store->business_model == 2){
  74. foreach($data as &$item){
  75. foreach($item as $itemk => &$itemv){
  76. if($itemk != 'sms'){
  77. $itemv['disable'] = 1;
  78. }
  79. }
  80. }
  81. }
  82. return $this->asJson([
  83. 'code' => 0,
  84. 'data' => $data
  85. ]);
  86. }
  87. public function actionNoticeSave()
  88. {
  89. $form = Notice::findOne(['store_id' => get_store_id()]) ?: new Notice();
  90. $form->store_id = get_store_id();
  91. $send_type = input_params('send_type');
  92. $type = input_params('type');
  93. $info = input_params('settingInfo');
  94. if (!in_array($send_type, NoticeSetting::SEND_TYPE) || !in_array($type, ['sms', 'miapp', 'wxaapi', 'kefu']) || empty($info)) {
  95. return $this->asJson([
  96. 'code' => 1,
  97. 'msg' => '请求参数错误'
  98. ]);
  99. }
  100. $form->$send_type = $info;
  101. if ($form->save()) {
  102. return $this->asJson([
  103. 'code' => 0,
  104. 'msg' => '保存成功'
  105. ]);
  106. }else {
  107. return $this->asJson([
  108. 'code' => 1,
  109. 'msg' => '保存失败',
  110. 'err' => $form->getErrors()
  111. ]);
  112. }
  113. }
  114. public function actionGetTamplateId()
  115. {
  116. $template_id = get_params('template_id');
  117. $send_type = get_params('send_type');
  118. $type = get_params('type');
  119. $res = GetTamplate::{$send_type}($type, $template_id);
  120. return $this->asJson($res);
  121. }
  122. }