index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. const cloud = require("wx-server-sdk");
  2. cloud.init({
  3. env: cloud.DYNAMIC_CURRENT_ENV,
  4. });
  5. const db = cloud.database();
  6. // 获取openid
  7. const getOpenId = async () => {
  8. // 获取基础信息
  9. const wxContext = cloud.getWXContext();
  10. return {
  11. openid: wxContext.OPENID,
  12. appid: wxContext.APPID,
  13. unionid: wxContext.UNIONID,
  14. };
  15. };
  16. // 获取小程序二维码
  17. const getMiniProgramCode = async () => {
  18. // 获取小程序二维码的buffer
  19. const resp = await cloud.openapi.wxacode.get({
  20. path: "pages/index/index",
  21. });
  22. const { buffer } = resp;
  23. // 将图片上传云存储空间
  24. const upload = await cloud.uploadFile({
  25. cloudPath: "code.png",
  26. fileContent: buffer,
  27. });
  28. return upload.fileID;
  29. };
  30. // 创建集合
  31. const createCollection = async () => {
  32. try {
  33. // 创建集合
  34. await db.createCollection("sales");
  35. await db.collection("sales").add({
  36. // data 字段表示需新增的 JSON 数据
  37. data: {
  38. region: "华东",
  39. city: "上海",
  40. sales: 11,
  41. },
  42. });
  43. await db.collection("sales").add({
  44. // data 字段表示需新增的 JSON 数据
  45. data: {
  46. region: "华东",
  47. city: "南京",
  48. sales: 11,
  49. },
  50. });
  51. await db.collection("sales").add({
  52. // data 字段表示需新增的 JSON 数据
  53. data: {
  54. region: "华南",
  55. city: "广州",
  56. sales: 22,
  57. },
  58. });
  59. await db.collection("sales").add({
  60. // data 字段表示需新增的 JSON 数据
  61. data: {
  62. region: "华南",
  63. city: "深圳",
  64. sales: 22,
  65. },
  66. });
  67. return {
  68. success: true,
  69. };
  70. } catch (e) {
  71. // 这里catch到的是该collection已经存在,从业务逻辑上来说是运行成功的,所以catch返回success给前端,避免工具在前端抛出异常
  72. return {
  73. success: true,
  74. data: "create collection success",
  75. };
  76. }
  77. };
  78. // 查询数据
  79. const selectRecord = async () => {
  80. // 返回数据库查询结果
  81. return await db.collection("sales").get();
  82. };
  83. // 更新数据
  84. const updateRecord = async (event) => {
  85. try {
  86. // 遍历修改数据库信息
  87. for (let i = 0; i < event.data.length; i++) {
  88. await db
  89. .collection("sales")
  90. .where({
  91. _id: event.data[i]._id,
  92. })
  93. .update({
  94. data: {
  95. sales: event.data[i].sales,
  96. },
  97. });
  98. }
  99. return {
  100. success: true,
  101. data: event.data,
  102. };
  103. } catch (e) {
  104. return {
  105. success: false,
  106. errMsg: e,
  107. };
  108. }
  109. };
  110. // 新增数据
  111. const insertRecord = async (event) => {
  112. try {
  113. const insertRecord = event.data;
  114. // 插入数据
  115. await db.collection("sales").add({
  116. data: {
  117. region: insertRecord.region,
  118. city: insertRecord.city,
  119. sales: Number(insertRecord.sales),
  120. },
  121. });
  122. return {
  123. success: true,
  124. data: event.data,
  125. };
  126. } catch (e) {
  127. return {
  128. success: false,
  129. errMsg: e,
  130. };
  131. }
  132. };
  133. // 删除数据
  134. const deleteRecord = async (event) => {
  135. try {
  136. await db
  137. .collection("sales")
  138. .where({
  139. _id: event.data._id,
  140. })
  141. .remove();
  142. return {
  143. success: true,
  144. };
  145. } catch (e) {
  146. return {
  147. success: false,
  148. errMsg: e,
  149. };
  150. }
  151. };
  152. // const getOpenId = require('./getOpenId/index');
  153. // const getMiniProgramCode = require('./getMiniProgramCode/index');
  154. // const createCollection = require('./createCollection/index');
  155. // const selectRecord = require('./selectRecord/index');
  156. // const updateRecord = require('./updateRecord/index');
  157. // const sumRecord = require('./sumRecord/index');
  158. // const fetchGoodsList = require('./fetchGoodsList/index');
  159. // const genMpQrcode = require('./genMpQrcode/index');
  160. // 云函数入口函数
  161. exports.main = async (event, context) => {
  162. switch (event.type) {
  163. case "getOpenId":
  164. return await getOpenId();
  165. case "getMiniProgramCode":
  166. return await getMiniProgramCode();
  167. case "createCollection":
  168. return await createCollection();
  169. case "selectRecord":
  170. return await selectRecord();
  171. case "updateRecord":
  172. return await updateRecord(event);
  173. case "insertRecord":
  174. return await insertRecord(event);
  175. case "deleteRecord":
  176. return await deleteRecord(event);
  177. }
  178. };