MemberService.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace app\admin\service\member;
  3. use app\model\Member;
  4. use app\model\MemberCert;
  5. use app\model\MemberInfo;
  6. use app\model\SysSerial;
  7. use support\Db;
  8. class MemberService
  9. {
  10. public static function list($page, $pageSize, $keywords)
  11. {
  12. $rows = Member::when($keywords != '', function ($query) use ($keywords) {
  13. $query->where('member_mobile', 'like', '%' . $keywords . '%');
  14. });
  15. // 总条数
  16. $total = $rows->count('member_id');
  17. $rows = $rows->with([
  18. 'info' => function ($query) {
  19. $query->select('join_info_member_id', 'member_info_nickname', 'member_info_headimg');
  20. }
  21. ])->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from')
  22. ->orderBy('member_addtimes', 'DESC')
  23. ->forPage($page, $pageSize)
  24. ->get()
  25. ->toArray();
  26. foreach ($rows as &$row){
  27. $row['info']['member_info_headimg'] = getenv('STORAGE_DOMAIN').$row['info']['member_info_headimg'];
  28. }
  29. return json_success('', compact('rows', 'page', 'pageSize', 'total'));
  30. }
  31. /**
  32. * @Desc 添加会员
  33. * @Author Gorden
  34. * @Date 2024/3/25 13:40
  35. *
  36. * @param $params
  37. * @return \support\Response
  38. */
  39. public static function add($params)
  40. {
  41. Db::beginTransaction();
  42. try {
  43. $memberId = self::generateMemberId();
  44. // 先写主表,要ID
  45. $memberData = [
  46. 'member_id' => $memberId,
  47. 'member_is_owner' => $params['is_owner'],
  48. 'member_classify' => $params['classify'],
  49. 'member_status' => $params['status'],
  50. 'member_mobile' => $params['mobile'],
  51. 'member_from' => $params['source'],
  52. 'member_addtimes' => time(),
  53. ];
  54. Member::insert($memberData);
  55. // member cert
  56. $certData = [
  57. 'join_cert_member_id' => $memberId,
  58. 'member_cert_name' => $params['cert_name'],
  59. 'member_cert_nbr' => $params['cert_nbr'],
  60. 'member_cert_birth' => $params['birth'],
  61. 'member_cert_gender' => $params['gender'],
  62. 'member_cert_addr' => $params['addr'],
  63. 'member_cert_face' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_face']),
  64. 'member_cert_photo' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_photo']),
  65. ];
  66. MemberCert::insert($certData);
  67. // member info
  68. $infoData = [
  69. 'join_info_member_id' => $memberId,
  70. 'member_info_nickname' => $params['account_name'],
  71. 'member_info_headimg' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['avatar'])
  72. ];
  73. MemberInfo::insert($infoData);
  74. Db::commit();
  75. } catch (\Exception $e) {
  76. Db::rollBack();
  77. dump($e->getMessage() . ';line:' . $e->getLine());
  78. return json_fail("数据添加失败");
  79. }
  80. return json_success('数据添加成功');
  81. }
  82. private static function generateMemberId()
  83. {
  84. $id = SysSerial::getSerial();
  85. return "ME" . str_pad($id, 16, "0", STR_PAD_LEFT) . random_string(8);
  86. }
  87. }