From 7ebf766e3a037d10d30c569437288c230e83d9a8 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 26 Sep 2021 14:44:14 +0800
Subject: [PATCH] 20210926

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java  |   49 +++++++++
 src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml                      |    4 
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java              |    3 
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java |   23 ++++
 src/main/resources/templates/febs/views/modules/product/categoryAdd.html           |   89 +++++++++++------
 src/main/resources/templates/febs/views/modules/product/categoryUpdate.html        |   80 ++++++++++------
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java          |   20 ++++
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java      |    5 +
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCategoryTreeVo.java             |   13 ++
 9 files changed, 222 insertions(+), 64 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
index 62faa84..6c52ae7 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
@@ -6,6 +6,8 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService;
+import cc.mrbird.febs.mall.vo.AdminAddAddressTreeVo;
+import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -15,6 +17,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -44,11 +47,29 @@
     }
 
     /**
+     * 商品分类-选择
+     */
+    @GetMapping("categorys/tree")
+    @ControllerEndpoint(exceptionMessage = "获取分类失败")
+    public List<AdminMallGoodsCategoryTreeVo> getParentCategorys(){
+        return goodsCategoryService.getParentCategorys();
+    }
+
+    /**
      * 商品分类-新增
      */
     @PostMapping("addCategory")
-    @ControllerEndpoint(operation = " 商品分类-新增", exceptionMessage = "新增失败")
+    @ControllerEndpoint(operation = " 商品分类-新增", exceptionMessage = "操作失败")
     public FebsResponse addCategory(@Valid MallGoodsCategory mallGoodsCategory) {
         return goodsCategoryService.addCategory(mallGoodsCategory);
     }
+
+    /**
+     * 商品分类-编辑
+     */
+    @PostMapping("updateCategory")
+    @ControllerEndpoint(operation = " 商品分类-编辑", exceptionMessage = "操作失败")
+    public FebsResponse updateCategory(@Valid MallGoodsCategory mallGoodsCategory) {
+        return goodsCategoryService.updateCategory(mallGoodsCategory);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
index 116636a..1e2da56 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.mapper;
 
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -25,4 +26,6 @@
     List<MallGoodsCategory> selectRecommendCategoryList();
 
     AdminMallGoodsCategoryVo getMallGoodsCategoryInfoById(@Param("id")long id);
+
+    List<AdminMallGoodsCategoryTreeVo> getParentCategorys();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
index c0deb97..eb4fefe 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cc.mrbird.febs.system.entity.Role;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -19,4 +20,8 @@
     List<MallGoodsCategory> getCategorys(MallGoodsCategory mallGoodsCategory);
 
     AdminMallGoodsCategoryVo getMallGoodsCategoryInfoById(long id);
+
+    List<AdminMallGoodsCategoryTreeVo> getParentCategorys();
+
+    FebsResponse updateCategory(MallGoodsCategory mallGoodsCategory);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
index 2b4b187..0ebe802 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
@@ -5,6 +5,7 @@
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
 import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService;
+import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -42,10 +43,14 @@
         if(CollUtil.isNotEmpty(categorys)){
             return new FebsResponse().fail().message("分类名称不能重复");
         }
+        Long parentIdParam = mallGoodsCategory.getParentId() == null ? 0L:mallGoodsCategory.getParentId();
+        Integer isRecommendParam = mallGoodsCategory.getIsRecommend();
+        if(parentIdParam > 0 && isRecommendParam == 1){
+            return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】");
+        }
 
         MallGoodsCategory goodsCategory = new MallGoodsCategory();
         goodsCategory.setName(name);
-        goodsCategory.setIsRecommend(mallGoodsCategory.getIsRecommend());
         if(ObjectUtil.isNotEmpty(mallGoodsCategory.getParentId())){
             Long parentId = mallGoodsCategory.getParentId();
             MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId);
@@ -55,8 +60,10 @@
             }else{
                 goodsCategory.setParentIds(mallGoodsCategory.getParentId()+",");
             }
+            goodsCategory.setIsRecommend(0);
         }else{
             goodsCategory.setParentId(0L);
+            goodsCategory.setIsRecommend(mallGoodsCategory.getIsRecommend());
         }
         mallGoodsCategoryMapper.insert(goodsCategory);
         return new FebsResponse().success();
@@ -73,4 +80,44 @@
         return mallGoodsCategoryMapper.getMallGoodsCategoryInfoById(id);
     }
 
+    @Override
+    public List<AdminMallGoodsCategoryTreeVo> getParentCategorys() {
+        List<AdminMallGoodsCategoryTreeVo> adminMallGoodsCategoryTreeVos = mallGoodsCategoryMapper.getParentCategorys();
+        return adminMallGoodsCategoryTreeVos;
+    }
+
+    @Override
+    public FebsResponse updateCategory(MallGoodsCategory mallGoodsCategoryParam) {
+        String name = mallGoodsCategoryParam.getName();
+        if(StrUtil.isEmpty(name)){
+            return new FebsResponse().fail().message("名称不能为空");
+        }
+        Long parentIdParam = mallGoodsCategoryParam.getParentId() == null ? 0L:mallGoodsCategoryParam.getParentId();
+        Integer isRecommendParam = mallGoodsCategoryParam.getIsRecommend();
+        if(parentIdParam > 0 && isRecommendParam == 1){
+            return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】");
+        }
+
+        Long id = mallGoodsCategoryParam.getId();
+        MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id);
+        mallGoodsCategory.setName(mallGoodsCategoryParam.getName());
+        if(ObjectUtil.isNotEmpty(mallGoodsCategoryParam.getParentId())){
+            Long parentId = mallGoodsCategoryParam.getParentId();
+            MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId);
+            mallGoodsCategory.setParentId(mallGoodsCategoryParam.getParentId());
+            if(StrUtil.isNotEmpty(mallGoodsCategoryParent.getParentIds())){
+                mallGoodsCategory.setParentIds(mallGoodsCategoryParent.getParentIds()+","+mallGoodsCategory.getParentId()+",");
+            }else{
+                mallGoodsCategory.setParentIds(mallGoodsCategory.getParentId()+",");
+            }
+            mallGoodsCategory.setIsRecommend(0);
+        }else{
+            mallGoodsCategory.setParentId(0L);
+            mallGoodsCategory.setIsRecommend(mallGoodsCategoryParam.getIsRecommend());
+        }
+        mallGoodsCategoryMapper.updateById(mallGoodsCategory);
+
+        return new FebsResponse().success();
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 9a9e5d8..8d8e930 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -127,6 +127,10 @@
         if(ObjectUtil.isEmpty(mallOrderRefund)){
             return new FebsResponse().fail().message("系统繁忙,请刷新重试");
         }
+        Integer status = mallOrderRefund.getStatus();
+        if(status != 1){
+            return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+        }
         mallOrderRefund.setStatus(2);
         mallOrderRefundMapper.updateById(mallOrderRefund);
 
@@ -145,6 +149,10 @@
         if(ObjectUtil.isEmpty(mallOrderRefund)){
             return new FebsResponse().fail().message("系统繁忙,请刷新重试");
         }
+        Integer status = mallOrderRefund.getStatus();
+        if(status != 1){
+            return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+        }
         mallOrderRefund.setStatus(3);
         mallOrderRefundMapper.updateById(mallOrderRefund);
 
@@ -153,6 +161,10 @@
         mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
         mallOrderRefundOperation.setContent("不同意退款申请");
         mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+        //恢复订单状态
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId());
+        mallOrderInfo.setStatus(mallOrderRefund.getBeforeStatus());
+        mallOrderInfoMapper.updateById(mallOrderInfo);
 
         return new FebsResponse().success();
     }
@@ -162,6 +174,10 @@
         MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
         if(ObjectUtil.isEmpty(mallOrderRefund)){
             return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        Integer status = mallOrderRefund.getStatus();
+        if(status != 4){
+            return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
         }
         mallOrderRefund.setStatus(5);
         mallOrderRefundMapper.updateById(mallOrderRefund);
@@ -248,6 +264,10 @@
         if(ObjectUtil.isEmpty(mallOrderRefund)){
             return new FebsResponse().fail().message("系统繁忙,请刷新重试");
         }
+        Integer status = mallOrderRefund.getStatus();
+        if(status != 4){
+            return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面");
+        }
         mallOrderRefund.setStatus(2);
         mallOrderRefund.setName(mallOrderRefundAddress.getName());
         mallOrderRefund.setPhone(mallOrderRefundAddress.getPhone());
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCategoryTreeVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCategoryTreeVo.java
new file mode 100644
index 0000000..192c95d
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCategoryTreeVo.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminMallGoodsCategoryTreeVo", description = "信息返回类")
+public class AdminMallGoodsCategoryTreeVo {
+
+    private Long parentId;
+
+    private String name;
+}
diff --git a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
index f5909b1..c4045b6 100644
--- a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
@@ -62,4 +62,8 @@
         select * from mall_goods_category
         where id=#{id}
     </select>
+
+    <select id="getParentCategorys" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo">
+        SELECT m.id parentId,m.name name  FROM mall_goods_category m where m.parent_id = 0
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/product/categoryAdd.html b/src/main/resources/templates/febs/views/modules/product/categoryAdd.html
index a9e9d66..e1b4237 100644
--- a/src/main/resources/templates/febs/views/modules/product/categoryAdd.html
+++ b/src/main/resources/templates/febs/views/modules/product/categoryAdd.html
@@ -26,17 +26,26 @@
                        lay-verify="name" autocomplete="off" class="layui-input" >
             </div>
         </div>
+
         <div class="layui-form-item">
-            <label class="layui-form-label ">父类:</label>
-            <div class="layui-input-block">
-                <select name="parentId"
-                        xm-select-direction="down"
-                        xm-select="user-update-category"
-                        xm-select-skin="default">
-                </select>
-            </div>
+                <label class="layui-form-label">父类:</label>
+                <div class="layui-input-inline">
+                    <select name="parentId" class="categary-add-category">
+                        <option value="">请选择</option>
+                    </select>
+                </div>
         </div>
-        <div class="layui-form-item">
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label ">父类:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <select name="parentId"-->
+<!--                        xm-select-direction="down"-->
+<!--                        xm-select="user-update-category"-->
+<!--                        xm-select-skin="default">-->
+<!--                </select>-->
+<!--            </div>-->
+<!--        </div>-->
+        <div class="layui-form-item sftj">
             <label class="layui-form-label febs-form-item-require">是否推荐:</label>
             <div class="layui-input-block">
                 <input type="radio" name="isRecommend" value="1" title="是" >
@@ -70,32 +79,48 @@
 
         formSelects.render();
 
-        formSelects.config('user-update-category', {
-            searchUrl: ctx + 'admin/goodsCategory/categorys',
-            response: {
-                statusCode: 200
-            },
-            beforeSuccess: function (id, url, searchVal, result) {
-                var data = result.data;
-                var tranData = [];
-                for (var i = 0; i < data.length; i++) {
-                    tranData.push({
-                        name: data[i].name,
-                        value: data[i].id
-                    })
-                }
-                result.data = tranData;
-                return result;
-            },
-            success: function () {
-                formSelects.value('user-update-category', member.id.split(','));
-            },
-            error: function (id, url, searchVal, err) {
-                console.error(err);
-                febs.alert.error('获取分类列表失败');
+        //(下拉框)
+        $.get(ctx + 'admin/goodsCategory/categorys/tree', function (data) {
+            for (var k in data)
+            {
+                $(".categary-add-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
             }
+            layui.use('form', function () {
+                var form = layui.form;
+                form.render();
+            });
         });
 
+        // $(".categary-add-category").on('click', function (){
+        //     console.log(1);
+        // })
+
+        // formSelects.config('user-update-category', {
+        //     searchUrl: ctx + 'admin/goodsCategory/categorys',
+        //     response: {
+        //         statusCode: 200
+        //     },
+        //     beforeSuccess: function (id, url, searchVal, result) {
+        //         var data = result.data;
+        //         var tranData = [];
+        //         for (var i = 0; i < data.length; i++) {
+        //             tranData.push({
+        //                 name: data[i].name,
+        //                 value: data[i].id
+        //             })
+        //         }
+        //         result.data = tranData;
+        //         return result;
+        //     },
+        //     success: function () {
+        //         formSelects.value('user-update-category', member.id.split(','));
+        //     },
+        //     error: function (id, url, searchVal, err) {
+        //         console.error(err);
+        //         febs.alert.error('获取分类列表失败');
+        //     }
+        // });
+
         form.on('submit(categary-add-form-submit)', function (data) {
             febs.post(ctx + 'admin/goodsCategory/addCategory', data.field, function () {
                 layer.closeAll();
diff --git a/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html b/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html
index 95564fc..fba11ee 100644
--- a/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html
@@ -32,16 +32,25 @@
                        lay-verify="name" autocomplete="off" class="layui-input" >
             </div>
         </div>
+
         <div class="layui-form-item">
-            <label class="layui-form-label ">父类:</label>
-            <div class="layui-input-block">
-                <select name="parentId"
-                        xm-select-direction="down"
-                        xm-select="user-update-category"
-                        xm-select-skin="default">
+            <label class="layui-form-label">父类:</label>
+            <div class="layui-input-inline">
+                <select name="parentId" class="categary-update-category">
+                    <option value="'+[[${member}]].parentId+'">请选择</option>
                 </select>
             </div>
         </div>
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label ">父类:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <select name="parentId"-->
+<!--                        xm-select-direction="down"-->
+<!--                        xm-select="user-update-category"-->
+<!--                        xm-select-skin="default">-->
+<!--                </select>-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-form-item">
             <label class="layui-form-label febs-form-item-require">是否推荐:</label>
             <div class="layui-input-block">
@@ -76,31 +85,42 @@
 
         formSelects.render();
 
-        formSelects.config('user-update-category', {
-            searchUrl: ctx + 'admin/goodsCategory/categorys',
-            response: {
-                statusCode: 200
-            },
-            beforeSuccess: function (id, url, searchVal, result) {
-                var data = result.data;
-                var tranData = [];
-                for (var i = 0; i < data.length; i++) {
-                    tranData.push({
-                        name: data[i].name,
-                        value: data[i].id
-                    })
-                }
-                result.data = tranData;
-                return result;
-            },
-            success: function () {
-                formSelects.value('user-update-category', member.parentId);
-            },
-            error: function (id, url, searchVal, err) {
-                console.error(err);
-                febs.alert.error('获取分类列表失败');
+        //(下拉框)
+        $.get(ctx + 'admin/goodsCategory/categorys/tree', function (data) {
+            for (var k in data)
+            {
+                $(".categary-update-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
             }
+            layui.use('form', function () {
+                var form = layui.form;
+                form.render();
+            });
         });
+        // formSelects.config('user-update-category', {
+        //     searchUrl: ctx + 'admin/goodsCategory/categorys',
+        //     response: {
+        //         statusCode: 200
+        //     },
+        //     beforeSuccess: function (id, url, searchVal, result) {
+        //         var data = result.data;
+        //         var tranData = [];
+        //         for (var i = 0; i < data.length; i++) {
+        //             tranData.push({
+        //                 name: data[i].name,
+        //                 value: data[i].id
+        //             })
+        //         }
+        //         result.data = tranData;
+        //         return result;
+        //     },
+        //     success: function () {
+        //         formSelects.value('user-update-category', member.parentId);
+        //     },
+        //     error: function (id, url, searchVal, err) {
+        //         console.error(err);
+        //         febs.alert.error('获取分类列表失败');
+        //     }
+        // });
         initUserValue();
 
         function initUserValue() {
@@ -113,7 +133,7 @@
         }
 
         form.on('submit(categary-update-form-submit)', function (data) {
-            febs.post(ctx + 'admin/goodsCategory/addCategory', data.field, function () {
+            febs.post(ctx + 'admin/goodsCategory/updateCategory', data.field, function () {
                 layer.closeAll();
                 febs.alert.success('新增成功');
                 $('#febs-user').find('#reset').click();

--
Gitblit v1.9.1