message.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. import request from '../utils/request';
  2. import { UPLOAD_URL } from '../utils/request';
  3. /**
  4. * 获取消息列表 (系统通知/投递进度等)
  5. * @param {Object} params - { type, pageNum, pageSize }
  6. */
  7. export function getMessageList(params) {
  8. return request({
  9. url: '/miniapp/message/list',
  10. method: 'GET',
  11. params: params
  12. });
  13. }
  14. /**
  15. * 标记全部消息为已读
  16. */
  17. export function readAllMessages() {
  18. return request({
  19. url: '/miniapp/message/read-all',
  20. method: 'POST'
  21. });
  22. }
  23. /**
  24. * 标记单条消息为已读
  25. */
  26. export function readMessage(id) {
  27. return request({
  28. url: `/miniapp/message/read/${id}`,
  29. method: 'PUT'
  30. });
  31. }
  32. /**
  33. * 获取未读消息数量
  34. */
  35. export function getUnreadCount() {
  36. return request({
  37. url: '/miniapp/message/unread-count',
  38. method: 'GET'
  39. });
  40. }
  41. /**
  42. * 创建或获取会话
  43. * @param {Object} data - { sessionType, fromUserId, fromUserName, fromUserAvatar }
  44. */
  45. export function createOrGetSession(data) {
  46. return request({
  47. url: '/main/session/create',
  48. method: 'POST',
  49. data: data
  50. });
  51. }
  52. /**
  53. * 获取聊天历史记录
  54. * @param {Object} params - { sessionId, beforeMsgId, pageNum, pageSize }
  55. */
  56. export function getChatHistory(params) {
  57. return request({
  58. url: '/main/message/history',
  59. method: 'GET',
  60. params: params
  61. });
  62. }
  63. /**
  64. * 发送文本消息
  65. * @param {Object} data - { sessionId, content, type }
  66. */
  67. export function sendTextMessage(data) {
  68. return request({
  69. url: '/main/message/send/text',
  70. method: 'POST',
  71. data: data
  72. });
  73. }
  74. /**
  75. * 标记聊天消息已读
  76. * @param {Object} data - { sessionId, lastReadMsgId }
  77. */
  78. export function markChatRead(data) {
  79. return request({
  80. url: '/main/message/read',
  81. method: 'PUT',
  82. data: data
  83. });
  84. }
  85. /**
  86. * 支付结算单(已废弃,使用 createOrderByOrderCard + 微信支付)
  87. * @param {Long} orderCardId
  88. * @param {Long} userId
  89. */
  90. export function payOrderCard(orderCardId, userId) {
  91. return request({
  92. url: `/main/order-card/${orderCardId}/pay`,
  93. method: 'POST',
  94. params: { userId }
  95. });
  96. }
  97. /**
  98. * 测评咨询时自动创建结算单
  99. * @param {Object} data - { sessionId, studentId, orderName, orderPrice, orderType }
  100. */
  101. export function autoCreateOrderCard(data) {
  102. return request({
  103. url: '/main/order-card/auto-create',
  104. method: 'POST',
  105. params: data
  106. });
  107. }
  108. /**
  109. * 发起微信支付
  110. * @param {Object} data - { orderCardId, userId }
  111. */
  112. export function createWxPayOrder(orderCardId, userId) {
  113. return request({
  114. url: `/main/order-card/${orderCardId}/create-order`,
  115. method: 'POST',
  116. params: { userId }
  117. });
  118. }
  119. /**
  120. * 根据结算单创建正式订单
  121. * @param {Long} orderCardId
  122. * @param {Long} userId
  123. */
  124. export function createOrderByOrderCard(orderCardId, userId) {
  125. return request({
  126. url: `/main/order-card/${orderCardId}/create-order`,
  127. method: 'POST',
  128. params: { userId }
  129. });
  130. }
  131. /**
  132. * 查询结算单状态
  133. * @param {Long} orderCardId
  134. */
  135. export function getOrderCardStatus(orderCardId) {
  136. return request({
  137. url: `/main/order-card/${orderCardId}`,
  138. method: 'GET'
  139. });
  140. }
  141. /**
  142. * 上传并发送图片
  143. * @param {Object} data - { sessionId, msgNo, senderId, filePath }
  144. */
  145. export function sendImageMessage(data) {
  146. return new Promise((resolve, reject) => {
  147. const token = uni.getStorageSync('token');
  148. // 与 request.js 保持一致的后端地址
  149. const BASE_URL = UPLOAD_URL;
  150. uni.uploadFile({
  151. url: BASE_URL + '/main/message/send/image',
  152. filePath: data.filePath,
  153. name: 'file',
  154. formData: {
  155. sessionId: data.sessionId,
  156. msgNo: data.msgNo,
  157. senderId: data.senderId
  158. },
  159. header: {
  160. 'Authorization': token ? `Bearer ${token}` : '',
  161. 'clientid': 'e5cd7e4891bf95d1d19206ce24a7b32e'
  162. },
  163. success: (res) => {
  164. const result = JSON.parse(res.data);
  165. if (result.code === 200) {
  166. resolve(result);
  167. } else {
  168. reject(result);
  169. }
  170. },
  171. fail: (err) => reject(err)
  172. });
  173. });
  174. }