sku.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { model, getAll } from '../_utils/model';
  2. import { DATA_MODEL_KEY } from '../../config/model';
  3. import { cloudbaseTemplateConfig } from '../../config/index';
  4. import { SKU, SPU, ATTR_VALUE } from '../cloudbaseMock/index';
  5. const SKU_MODEL_KEY = DATA_MODEL_KEY.SKU;
  6. /**
  7. *
  8. * @param {String} skuId
  9. */
  10. export async function getSkuDetail(skuId) {
  11. if (cloudbaseTemplateConfig.useMock) {
  12. const sku = SKU.find((x) => x._id === skuId);
  13. sku.attr_value = ATTR_VALUE.filter((x) => x.sku.find((x) => x._id === skuId));
  14. sku.spu = SPU.find((spu) => spu._id === sku.spu._id);
  15. return sku;
  16. }
  17. const { data } = await model()[SKU_MODEL_KEY].get({
  18. filter: {
  19. where: {
  20. _id: { $eq: skuId },
  21. },
  22. },
  23. select: {
  24. _id: true,
  25. count: true,
  26. price: true,
  27. image: true,
  28. attr_value: {
  29. value: true,
  30. _id: true,
  31. },
  32. spu: {
  33. name: true,
  34. },
  35. },
  36. });
  37. return data;
  38. }
  39. export async function updateSku({ skuId, data }) {
  40. if (cloudbaseTemplateConfig.useMock) {
  41. SKU.find((x) => x._id === skuId).count = data.count;
  42. return;
  43. }
  44. return wx.cloud.callFunction({
  45. // 云函数名称
  46. name: 'shop_update_sku',
  47. // 传给云函数的参数
  48. data: {
  49. skuId,
  50. data,
  51. },
  52. });
  53. }
  54. export async function getAllSku(spuId) {
  55. if (cloudbaseTemplateConfig.useMock) {
  56. return SKU.filter((x) => x.spu._id === spuId);
  57. }
  58. return getAll({
  59. name: SKU_MODEL_KEY,
  60. filter: {
  61. where: {
  62. spu: {
  63. $eq: spuId,
  64. },
  65. },
  66. },
  67. });
  68. }