record.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. import dayjs from "dayjs";
  2. import connection from "./base.js";
  3. export async function record_insert({
  4. book_id = "",
  5. type_id = "",
  6. author_id = "",
  7. total_fee = "",
  8. remark = "",
  9. time = "",
  10. create_time = "",
  11. update_time = "",
  12. }) {
  13. return new Promise(async (resolve, reject) => {
  14. try {
  15. const sql = `
  16. INSERT INTO record (book_id, type_id, author_id, total_fee, remark, create_time, update_time, time)
  17. VALUES (?, ?, ?, ?, ?, ?, ?, ?)
  18. `;
  19. const values = [
  20. book_id,
  21. type_id,
  22. author_id,
  23. total_fee,
  24. remark,
  25. create_time,
  26. update_time,
  27. time,
  28. ];
  29. // 直接接收 execute 返回的内容
  30. connection.execute(sql, values, (result, fields) => {
  31. return resolve(fields.insertId);
  32. });
  33. } catch (err) {
  34. return resolve(false);
  35. }
  36. });
  37. }
  38. export async function record_update( params ) {
  39. const {
  40. id = "", // 要更新的记录的唯一标识符
  41. type_id = "",
  42. author_id = "",
  43. total_fee = "",
  44. remark = "",
  45. time = "",
  46. update_time = "",
  47. } = params
  48. return new Promise(async (resolve, reject) => {
  49. try {
  50. const sql = `
  51. UPDATE record SET type_id = ?, author_id = ?, total_fee = ?, remark = ?, time = ?, update_time = ? WHERE id = ?
  52. `;
  53. const values = [ type_id, author_id, total_fee, remark, time, update_time, id, ];
  54. // 执行更新语句
  55. connection.execute(sql, values, (err, result) => {
  56. if (err) {
  57. // 错误处理
  58. return resolve(false);
  59. }
  60. return resolve(result.changedRows > 0);
  61. });
  62. } catch (err) {
  63. return resolve(false);
  64. }
  65. });
  66. }
  67. // 关联 账单 跟 附件的数据
  68. /*
  69. `file_id` varchar(300) NOT NULL,
  70. `record_id` varchar(300) NOT NULL,
  71. `book_id` varchar(300) NOT NULL,
  72. `user_id` varchar(300) NOT NULL,
  73. */
  74. export function record_and_files({
  75. file_id = "",
  76. record_id = "",
  77. book_id = "",
  78. user_id = "",
  79. create_time = "",
  80. update_time = "",
  81. }) {
  82. return new Promise(async (resolve, reject) => {
  83. try {
  84. const sql = `
  85. INSERT INTO record_files (file_id, record_id, book_id, user_id, create_time, update_time)
  86. VALUES (?, ?, ?, ?, ?, ?)
  87. `;
  88. const values = [
  89. file_id,
  90. record_id,
  91. book_id,
  92. user_id,
  93. create_time,
  94. update_time,
  95. ];
  96. // 直接接收 execute 返回的内容
  97. const result = await connection.execute(sql, values);
  98. return resolve(result);
  99. } catch (err) {
  100. return resolve(false);
  101. }
  102. });
  103. }
  104. export function recordRelation({
  105. name = "",
  106. record_id = "",
  107. book_id = "",
  108. user_id = "",
  109. create_time = "",
  110. update_time = "",
  111. }) {
  112. return new Promise(async (resolve, reject) => {
  113. try {
  114. const sql = `
  115. INSERT INTO record_files (file_id, record_id, book_id, user_id, create_time, update_time)
  116. VALUES (?, ?, ?, ?, ?, ?)
  117. `;
  118. const values = [
  119. file_id,
  120. record_id,
  121. book_id,
  122. user_id,
  123. create_time,
  124. update_time,
  125. ];
  126. // 直接接收 execute 返回的内容
  127. const result = await connection.execute(sql, values);
  128. return resolve(result);
  129. } catch (err) {
  130. return resolve(false);
  131. }
  132. });
  133. }
  134. // 获取用户详情
  135. export function getRecordInfoById(record_id) {
  136. return new Promise((resolve, reject) => {
  137. connection.query(
  138. `SELECT * FROM record WHERE id = ?`,
  139. [record_id],
  140. (err, rows) => {
  141. if (err) {
  142. // reject(err);
  143. resolve(false); // 如果存在记录,则返回 true,否则返回 false
  144. } else {
  145. resolve(rows.length > 0 ? rows[0] : false); // 如果存在记录,则返回 true,否则返回 false
  146. }
  147. }
  148. );
  149. });
  150. }
  151. // 根据日期查询记录
  152. export function getRecordsInfoByTime(time, book_id) {
  153. return new Promise((resolve, reject) => {
  154. connection.query(
  155. `SELECT record.*, types.name AS type
  156. FROM
  157. record
  158. JOIN
  159. types
  160. ON
  161. record.type_id = types.id
  162. WHERE
  163. record.time = ?
  164. AND record.book_id = ?;`,
  165. [`${dayjs(time).format('YYYY-MM-DD')} 00:00:00`, book_id],
  166. (err, rows) => {
  167. if (err) {
  168. // reject(err);
  169. resolve(false); // 如果存在记录,则返回 true,否则返回 false
  170. } else {
  171. resolve(rows); // 如果存在记录,则返回 true,否则返回 false
  172. }
  173. }
  174. );
  175. });
  176. }
  177. // 根据月份查询记录
  178. export function getRecordsInfoByMonth(time, book_id) {
  179. return new Promise((resolve, reject) => {
  180. connection.query(
  181. // `SELECT * FROM record WHERE DATE_FORMAT(time, '%Y-%m') = ? AND book_id = ?`,
  182. `SELECT record.*, types.name AS type
  183. FROM
  184. record
  185. JOIN
  186. types
  187. ON
  188. record.type_id = types.id
  189. WHERE
  190. DATE_FORMAT(record.time, '%Y-%m') = ?
  191. AND record.book_id = ?;`,
  192. [time, book_id],
  193. (err, rows) => {
  194. if (err) {
  195. // reject(err);
  196. resolve(false); // 如果存在记录,则返回 true,否则返回 false
  197. } else {
  198. resolve(rows); // 如果存在记录,则返回 true,否则返回 false
  199. }
  200. }
  201. );
  202. });
  203. }
  204. // 根据id删除数据
  205. export function delByRecordId(record_id, author_id) {
  206. return new Promise((resolve, reject) => {
  207. try {
  208. const sql = `DELETE FROM record WHERE id = ? AND author_id = ?`;
  209. connection.query(sql, [record_id, author_id], (err, result) => {
  210. if (err) {
  211. // 如果执行过程中出现错误,返回 false
  212. return resolve(false);
  213. }
  214. // 删除成功后返回结果
  215. return resolve(result);
  216. });
  217. } catch (err) {
  218. // 捕获异常并返回 false
  219. return resolve(false);
  220. }
  221. });
  222. }