Browse Source

为渠道、资源组增加子节点标记,并在新增、删除时动态修改标记

yaobo 7 năm trước cách đây
mục cha
commit
2298135dfd

+ 21 - 0
src/main/java/cn/efunbox/audio/controller/ChannelController.java

@@ -78,6 +78,11 @@ public class ChannelController {
         }
         channel.setCreated(new Timestamp(new Date().getTime()));
         channel = channelService.Insert(channel);
+        if(channel.getIdFather()>0){
+            Channel c = channelService.GetOne(channel.getIdFather());
+            c.setHasSon(true);
+            channelService.Insert(c);
+        }
         HttpUtil.responseOutWithJson(request, response, channel);
         return;
     }
@@ -98,6 +103,22 @@ public class ChannelController {
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     public void Delete(HttpServletRequest request, HttpServletResponse response){
         String idChannel = request.getParameter("idChannel");
+        Channel channel = channelService.GetOne(Long.valueOf(idChannel));
+        if(channel==null){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+        //判断父节点是否还有子节点
+        if(channel.getIdFather()>0){
+            List<Channel> channelList = channelService.SearchByIdFather(channel.getIdFather());
+            if(channelList==null || channelList.size()==0){
+                Channel c = channelService.GetOne(channel.getIdFather());
+                if(c!=null){
+                    c.setHasSon(false);
+                    channelService.Insert(c);
+                }
+            }
+        }
         channelService.Delete(Long.valueOf(idChannel));
         HttpUtil.responseOk(request, response);
         return;

+ 19 - 0
src/main/java/cn/efunbox/audio/controller/GroupingController.java

@@ -1,5 +1,6 @@
 package cn.efunbox.audio.controller;
 
+import cn.efunbox.audio.entity.Channel;
 import cn.efunbox.audio.entity.Grouping;
 import cn.efunbox.audio.service.GroupingService;
 import cn.efunbox.audio.utils.ApiCode;
@@ -94,6 +95,12 @@ public class GroupingController {
         }
         grouping.setCreated(new Timestamp(new Date().getTime()));
         grouping = groupingService.Insert(grouping);
+        //增加父节点的子节点标记
+        if(grouping.getIdFather()>0){
+            Grouping g = groupingService.GetOne(grouping.getIdFather());
+            g.setHasSon(true);
+            groupingService.Insert(g);
+        }
         HttpUtil.responseOutWithJson(request, response, grouping);
         return;
     }
@@ -114,6 +121,18 @@ public class GroupingController {
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     public void Delete(HttpServletRequest request, HttpServletResponse response){
         String idGroup = request.getParameter("idGroup");
+        Grouping grouping = groupingService.GetOne(Long.valueOf(idGroup));
+        //判断父节点是否还有子节点
+        if(grouping.getIdFather()>0){
+            List<Grouping> list = groupingService.SearchByIdFather(grouping.getIdFather());
+            if(list==null || list.size()==0){
+                Grouping g = groupingService.GetOne(grouping.getIdFather());
+                if(g!=null){
+                    g.setHasSon(false);
+                    groupingService.Insert(g);
+                }
+            }
+        }
         groupingService.Delete(Long.valueOf(idGroup));
         HttpUtil.responseOk(request, response);
         return;

+ 5 - 1
src/main/java/cn/efunbox/audio/entity/Channel.java

@@ -29,10 +29,14 @@ public class Channel implements Serializable, Cloneable {
     @GeneratedValue
     private Long id;
 
-    //上级渠道编号
+    //上级渠道/父节点编号
     @Column
     private Long idFather = 0L;
 
+    //是否还有子节点
+    @Column
+    private boolean hasSon = false;
+
     //合作商家,如小七
     @Column
     private String name;

+ 5 - 1
src/main/java/cn/efunbox/audio/entity/Grouping.java

@@ -29,10 +29,14 @@ public class Grouping implements Serializable, Cloneable {
     @GeneratedValue
     private Long id;
 
-    //上级组编号
+    //上级组/父节点编号
     @Column
     private Long idFather = 0L;
 
+    //是否还有子节点
+    @Column
+    private boolean hasSon = false;
+
     //组名称,如唐诗、宋词
     @Column
     private String name;