Browse Source

auto update content when editing product

fengchang 1 year ago
parent
commit
89ccd88cde

+ 10 - 0
hichina-admin-backend/src/main/java/com/hichina/admin/hichinaadminbackend/controller/ProductSkuController.java

@@ -262,6 +262,16 @@ public class ProductSkuController {
         return ret;
     }
 
+    @PutMapping("/contentonly/{skuId}")
+    public HichinaResponse updateContentOnly(@PathVariable("skuId") String skuId ,@RequestBody ProductSkuContentUpdateRequest request){
+        HichinaResponse ret = new HichinaResponse();
+        productSkuService.updateProductContentOnly(skuId, request.getContent());
+        ret.setOk(true);
+        ret.setData(skuId);
+        ret.setMessage("成功更新skuId:"+skuId+"的产品(仅主体内容)");
+        return ret;
+    }
+
     @DeleteMapping("/batch")
     public HichinaResponse deleteProductSkus(@RequestBody ProductSkuBatchDeleteRequest req){
         List<String> affectedSkuGroupIds = productSkuGroupMapper.findSkuGroupIdsBySkuIds(req.getToDelete());

+ 10 - 0
hichina-admin-backend/src/main/java/com/hichina/admin/hichinaadminbackend/model/DTO/ProductSkuContentUpdateRequest.java

@@ -0,0 +1,10 @@
+package com.hichina.admin.hichinaadminbackend.model.DTO;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class ProductSkuContentUpdateRequest {
+    private String content;
+}

+ 12 - 0
hichina-admin-backend/src/main/java/com/hichina/admin/hichinaadminbackend/service/ProductSkuService.java

@@ -58,6 +58,18 @@ public class ProductSkuService {
         hichinaProductMapper.batchDelete(skuIds);
     }
 
+    @Transactional
+    public void updateProductContentOnly(String skuId, String content){
+        HichinaProduct ret = new HichinaProduct();
+        List<HichinaProduct> hichinaProducts = hichinaProductMapper.findRawBySkuId(skuId);
+        if(hichinaProducts.isEmpty()){
+            throw new RuntimeException("Nothing to update");
+        }
+        HichinaProduct toUpdate = hichinaProducts.get(0);
+        toUpdate.setProductContent(content);
+        hichinaProductMapper.updateBySkuId(toUpdate);
+    }
+
     @Transactional
     public HichinaProduct updateProducts(String skuId , ProductSkuUpdateDTO request){
         List<HichinaProduct> hichinaProducts = hichinaProductMapper.findRawBySkuId(skuId);

+ 21 - 0
hichina-admin-front/src/components/ProductEditorDialog.vue

@@ -131,6 +131,7 @@
             <div row justify-center>
               <QuillEditor
                 theme="snow"
+                @update:content="editing"
                 v-model:content="editSkuDialogDescription"
                 contentType="html"
                 toolbar="full"
@@ -384,6 +385,7 @@
 
 <script>
 import { api } from "boot/axios";
+import { debounce } from "lodash";
 import { useQuasar } from "quasar";
 import UploadImage from "v-upload-image";
 import myUpload from "vue-image-crop-upload";
@@ -502,8 +504,27 @@ export default {
   mounted() {
     this.getRestBase();
     this.loadAllProductTypes();
+    this.editing = debounce(this.editing, 500);
   },
   methods: {
+    updateContentOnly() {
+      console.log("updateContentOnly...");
+      var params = {};
+      params.content = this.editSkuDialogDescription;
+      api
+        .put("/api/v1/productsku/contentonly/" + this.currentSkuId, params)
+        .then((response) => {
+          this.showNotifyMessageSucceed(response.data.message);
+        })
+        .catch((e) => {
+          this.showNotifyMessageFail(e.toString());
+        });
+    },
+    editing() {
+      if (this.mode === "edit") {
+        this.updateContentOnly();
+      }
+    },
     clearDate(obj, key, key2) {
       obj[key] = null;
       this.dateLabel[key2] = "";