Browse Source

消息通知

gorden 7 months ago
parent
commit
8d600b7cc6

+ 4 - 1
app/admin/controller/client/EvaluateController.php

@@ -31,7 +31,10 @@ class EvaluateController extends Curd
             },
             'goods' => function ($query) {
                 $query->select('goods_id', 'goods_name');
-            }
+            },
+            'cert' => function ($query) {
+                $query->select('join_cert_member_id', 'member_cert_name');
+            },
         ]);
         foreach ($where as $column => $value) {
             if (is_array($value)) {

+ 26 - 2
app/admin/controller/client/MessageController.php

@@ -4,6 +4,7 @@ namespace app\admin\controller\client;
 
 use app\controller\Curd;
 use app\model\ClientMessage;
+use app\model\Member;
 use support\exception\BusinessException;
 use support\Request;
 use support\Response;
@@ -26,7 +27,7 @@ class MessageController extends Curd
 
     protected function doSelect(array $where, string $field = null, string $order = 'desc')
     {
-        $model = $this->model->with(['member', 'cert']);
+        $model = $this->model->with(['member', 'cert','info']);
         foreach ($where as $column => $value) {
             if (is_array($value)) {
                 if ($value[0] === 'like' || $value[0] === 'not like') {
@@ -118,6 +119,29 @@ class MessageController extends Curd
         return $data;
     }
 
+    /**
+     * 群发
+     */
+    public function groupInsert(Request $request)
+    {
+        try {
+            $params = $request->post();
+            $memberIds = Member::where('member_status','ACTIVED')->pluck('member_id');
+            foreach ($memberIds as $memberId){
+                $params['join_client_message_send'] = 'SYSTEM';
+                $params['join_client_message_recv_member_id'] = $memberId;
+                $data = $this->insertInput($params);
+                $this->doInsert($data);
+            }
+        } catch (BusinessException $customException) {
+            return json_fail($customException->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getMessage());
+            return json_fail('数据写入失败11');
+        }
+        return json_success('success');
+    }
+
     protected function updateInput(Request $request): array
     {
         $params = $request->post();
@@ -155,7 +179,7 @@ class MessageController extends Curd
     public static $classify = [
         'WARNING' => '预警消息',
         'REMIND' => '提醒消息',
-        'NOTICE' =>'系统临时通知提醒',
+        'NOTICE' =>'系统通知',
         'APPOINTMENT'=>'预约(服务)消息',
         'ORDER'=>'订单消息',
         'CHAT'=>'未读消息'

+ 42 - 0
app/admin/service/member/MemberService.php

@@ -280,6 +280,48 @@ class MemberService
         $member = Member::with('cert','info')
             ->where('member_id', $memberId)
             ->first();
+        if (!$member){
+            return json_fail('查询错误');
+        }
+        $member = $member->toArray();
+        $member['info'] = [
+            'member_info_nickname' => !empty($member['info']) && !empty($member['info']['member_info_nickname']) ? $member['info']['member_info_nickname'] : substr($member['member_mobile'],-4,4).'用户',
+            'member_info_headimg' => !empty($member['info']) && !empty($member['info']['member_info_headimg']) ? $member['info']['member_info_headimg'] : ''
+        ];
+        $member['cert'] = [
+            'member_cert_birth' => $member['cert']['member_cert_birth'] ?? '',
+            'member_cert_gender' => $member['cert']['member_cert_gender'] ?? '',
+            'member_cert_name' => $member['cert']['member_cert_name'] ?? '',
+            'member_cert_nbr' => $member['cert']['member_cert_nbr'] ?? '',
+            'member_cert_province' => !empty($member['cert']) && !empty($member['cert']['member_cert_province']) && is_json($member['cert']['member_cert_province']) ? json_decode($member['cert']['member_cert_province']) : '',
+            'member_cert_addr' => $member['cert']['member_cert_addr'] ?? '',
+            'member_cert_face' => !empty($member['cert']) && !empty($member['cert']['member_cert_face']) ? getenv('STORAGE_DOMAIN') . $member['cert']['member_cert_face'] : '',
+            'member_cert_photo' => !empty($member['cert']) && !empty($member['cert']['member_cert_photo']) ? getenv('STORAGE_DOMAIN') . $member['cert']['member_cert_photo'] : '',
+            'member_cert_nation' => $member['cert']['member_cert_nation'] ?? '',
+        ];
+
+        $member['is_auth'] = "未认证";
+        if (!empty($member['cert']['member_cert_nbr']) && !empty($member['cert']['member_cert_name'])) {
+            $member['is_auth'] = "已认证";
+        }
+
+        $member['source'] = "APP";
+        $member['belong'] = [];
+        if (!empty($member['member_extend_json'])) {
+            $extendJson = json_decode($member['member_extend_json'], true);
+            if (isset($extendJson['come_from'])) {
+                $member['source'] = $extendJson['come_from'] ?? '';
+            }
+            if (isset($extendJson['belong'])){
+                $user = SysUser::where('user_id',$extendJson['belong']['user_id'])->select('user_name','user_mobile')->first();
+                if($user){
+                    $member['belong']['user_id'] = $extendJson['belong']['user_id'];
+                    $member['belong']['username'] = $user->user_name;
+                    $member['belong']['user_mobile'] = $user->user_mobile;
+                }
+                $member['belong']['deptName'] = SysDept::where('dept_id',$extendJson['belong']['premises'])->value('dept_name');
+            }
+        }
 
         return json_success('', $member);
     }

+ 6 - 0
app/model/ClientMessage.php

@@ -33,4 +33,10 @@ class ClientMessage extends Model
         return $this->hasOne(MemberCert::class, 'join_cert_member_id', 'join_client_message_recv_member_id')
             ->select('join_cert_member_id', 'member_cert_name');
     }
+
+    public function info()
+    {
+        return $this->hasOne(MemberInfo::class, 'join_info_member_id', 'join_client_message_recv_member_id')
+            ->select('join_info_member_id', 'member_info_nickname');
+    }
 }

+ 8 - 0
app/model/GoodsEvaluate.php

@@ -34,6 +34,14 @@ class GoodsEvaluate extends Model
         return $this->hasOne(Member::class, 'member_id', 'join_evaluate_member_id');
     }
 
+    /**
+     * 关联Cert
+     */
+    public function cert()
+    {
+        return $this->hasOne(MemberCert::class, 'join_cert_member_id', 'join_evaluate_member_id');
+    }
+
     /**
      * @Desc 关联商品
      * @Author Gorden

+ 1 - 0
route/admin.php

@@ -967,6 +967,7 @@ Route::group('/admin', function () {
             Route::group('', function () {
                 Route::get('/list', [\app\admin\controller\client\MessageController::class, 'select']);
                 Route::post('/add', [\app\admin\controller\client\MessageController::class, 'insert']);
+                Route::post('/groupAdd', [\app\admin\controller\client\MessageController::class, 'groupInsert']);
                 Route::post('/update', [\app\admin\controller\client\MessageController::class, 'update']);
                 Route::delete('/delete', [\app\admin\controller\client\MessageController::class, 'delete']);
             })->middleware([