Explorar el Código

增加资源组、权限组,及相应的创建、搜素等接口

yaobo hace 7 años
padre
commit
c5a90c58b1

+ 6 - 4
src/main/java/cn/efunbox/audio/controller/AudioController.java

@@ -52,20 +52,22 @@ public class AudioController {
             list = audioService.SearchByName(name);
         else
             list = audioService.SearchByAlbum(album);
-        list = audioService.SearchByAlbum(album);
 
         if(list==null || list.size()<1){
             HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
             return;
         }
+        Random random = new Random();
+        int r = Math.abs(random.nextInt())%list.size();
+        Audio audio = list.get(r);
+
         Device device = deviceService.GetOne(Long.valueOf(id));
         if(device==null){
             HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
             return;
         }
-        Random random = new Random();
-        int r = Math.abs(random.nextInt())%list.size();
-        Audio audio = list.get(r);
+        //判断设备所属渠道是否有该资源所属组的权限
+
 
         Record record = new Record();
         record.setIdDevice(device.getId());

+ 5 - 1
src/main/java/cn/efunbox/audio/controller/ChannelController.java

@@ -48,17 +48,20 @@ public class ChannelController {
             return;
         }
 
-        HttpUtil.responseOkData(request, response, list.get(0));
+        HttpUtil.responseOkData(request, response, list);
         return;
     }
 
     @RequestMapping(value = "/insert", method = RequestMethod.POST)
     public void Insert(HttpServletRequest request, HttpServletResponse response){
         String name = request.getParameter("name");
+        String idFather = request.getParameter("idFather");
         if(name==null){
             HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
             return;
         }
+        if(idFather==null || idFather.length()==0)
+            idFather = "0";
 
         List<Channel> list = channelService.SearchByName(name);
         if(list!=null && list.size()>0){
@@ -67,6 +70,7 @@ public class ChannelController {
         }
         Channel channel = new Channel();
         channel.setName(name);
+        channel.setIdFather(Long.valueOf(idFather));
         channel = channelService.Insert(channel);
         HttpUtil.responseOutWithJson(request, response, channel);
         return;

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

@@ -0,0 +1,80 @@
+package cn.efunbox.audio.controller;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Grouping;
+import cn.efunbox.audio.service.ChannelService;
+import cn.efunbox.audio.service.GroupingService;
+import cn.efunbox.audio.util.ApiCode;
+import cn.efunbox.audio.util.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@RestController
+@Slf4j
+@RequestMapping(value = "/grouping")
+public class GroupingController {
+
+    @Autowired
+    GroupingService groupingService;
+
+    @RequestMapping(value = "/search" ,method = RequestMethod.POST)
+    public void Search(HttpServletRequest request, HttpServletResponse response){
+        String name = request.getParameter("name");
+        String id = request.getParameter("gid");
+        String idFather = request.getParameter("idFather");
+        if(name==null && id==null && idFather==null){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+        List<Grouping> list = null;
+        if(id!=null && id.length()>0)
+            list = groupingService.SearchById(Long.valueOf(id));
+        else if(name!=null && name.length()>0)
+            list = groupingService.SearchByName(name);
+        else if(idFather!=null && idFather.length()>0)
+            list = groupingService.SearchByIdFather(Long.valueOf(idFather));
+
+        if(list==null || list.size()<1){
+            HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
+            return;
+        }
+
+        HttpUtil.responseOkData(request, response, list);
+        return;
+    }
+
+    @RequestMapping(value = "/insert", method = RequestMethod.POST)
+    public void Insert(HttpServletRequest request, HttpServletResponse response){
+        String name = request.getParameter("name");
+        String idFather = request.getParameter("idFather");
+        if(name==null){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+        if(idFather==null || idFather.length()==0)
+            idFather = "0";
+
+        List<Grouping> list = groupingService.SearchByName(name);
+        if(list!=null && list.size()>0){
+            HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
+            return;
+        }
+        Grouping grouping = new Grouping();
+        grouping.setName(name);
+        grouping.setIdFather(Long.valueOf(idFather));
+        grouping = groupingService.Insert(grouping);
+        HttpUtil.responseOutWithJson(request, response, grouping);
+        return;
+    }
+
+}

+ 97 - 0
src/main/java/cn/efunbox/audio/controller/RightsController.java

@@ -0,0 +1,97 @@
+package cn.efunbox.audio.controller;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Grouping;
+import cn.efunbox.audio.entity.Rights;
+import cn.efunbox.audio.service.ChannelService;
+import cn.efunbox.audio.service.GroupingService;
+import cn.efunbox.audio.service.RightsService;
+import cn.efunbox.audio.util.ApiCode;
+import cn.efunbox.audio.util.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@RestController
+@Slf4j
+@RequestMapping(value = "/rights")
+public class RightsController {
+
+    @Autowired
+    RightsService rightsService;
+
+    @Autowired
+    ChannelService channelService;
+
+    @Autowired
+    GroupingService groupingService;
+
+    @RequestMapping(value = "/search" ,method = RequestMethod.POST)
+    public void Search(HttpServletRequest request, HttpServletResponse response){
+        String id = request.getParameter("rid");
+        String idChannel = request.getParameter("idChannel");
+        String idGroup = request.getParameter("idGroup");
+        if(id==null && idChannel==null && idGroup==null){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+        List<Rights> list = null;
+        if(id!=null && id.length()>0)
+            list = rightsService.SearchById(Long.valueOf(id));
+        else if(idChannel!=null && idGroup!=null)
+            list = rightsService.SearchByIdChannelAndIdGroup(Long.valueOf(idChannel), Long.valueOf(idGroup));
+        else if(idChannel!=null && idChannel.length()>0)
+            list = rightsService.SearchByIdChannel(Long.valueOf(idChannel));
+        else if(idGroup!=null && idGroup.length()>0)
+            list = rightsService.SearchByIdGroup(Long.valueOf(idGroup));
+
+        if(list==null || list.size()<1){
+            HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
+            return;
+        }
+
+        HttpUtil.responseOkData(request, response, list);
+        return;
+    }
+
+    @RequestMapping(value = "/insert", method = RequestMethod.POST)
+    public void Insert(HttpServletRequest request, HttpServletResponse response){
+        String idChannel = request.getParameter("idChannel");
+        String idGroup = request.getParameter("idGroup");
+        if(idChannel==null || idGroup==null){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+
+        List<Rights> list = rightsService.SearchByIdChannelAndIdGroup(Long.valueOf(idChannel), Long.valueOf(idGroup));
+        if(list!=null && list.size()>0){
+            HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
+            return;
+        }
+        List<Channel> cList = channelService.SearchById(Long.valueOf(idChannel));
+        List<Grouping> gList = groupingService.SearchById(Long.valueOf(idGroup));
+        if(cList==null || cList.size()<1 || gList==null || gList.size()<1){
+            HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
+            return;
+        }
+        Rights rights = new Rights();
+        rights.setIdChannel(cList.get(0).getId());
+        rights.setNameChannel(cList.get(0).getName());
+        rights.setIdGroup(gList.get(0).getId());
+        rights.setNameGroup(gList.get(0).getName());
+        rights = rightsService.Insert(rights);
+
+        HttpUtil.responseOutWithJson(request, response, rights);
+        return;
+    }
+
+}

+ 20 - 0
src/main/java/cn/efunbox/audio/entity/Audio.java

@@ -28,6 +28,10 @@ public class Audio implements Serializable, Cloneable {
     @GeneratedValue
     private Long id;
 
+    //资源组编号
+    @Column
+    private Long idGroup;
+
     //专辑名,如儿歌
     @Column
     private String album;
@@ -36,10 +40,26 @@ public class Audio implements Serializable, Cloneable {
     @Column
     private int lesson;
 
+    //所属年级
+    @Column
+    private String grade;
+
+    //适用最小年龄
+    @Column
+    private int ageMin;
+
+    //适用最大年龄
+    @Column
+    private int ageMax;
+
     //音频名称,如两只老虎
     @Column
     private String name;
 
+    //关键词,如老虎
+    @Column
+    private String keyword;
+
     //来自资源平台的id
     @Column
     private String idResource;

+ 4 - 0
src/main/java/cn/efunbox/audio/entity/Channel.java

@@ -28,6 +28,10 @@ public class Channel implements Serializable, Cloneable {
     @GeneratedValue
     private Long id;
 
+    //上级渠道编号
+    @Column
+    private Long idFather = 0L;
+
     //合作商家,如小七
     @Column
     private String name;

+ 51 - 0
src/main/java/cn/efunbox/audio/entity/Grouping.java

@@ -0,0 +1,51 @@
+package cn.efunbox.audio.entity;
+
+
+import cn.efunbox.audio.enums.Status;
+import lombok.Data;
+import lombok.ToString;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 资源分组
+ * Created by yao on 17-9-26.
+ */
+
+
+@Data
+@ToString
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class Grouping implements Serializable, Cloneable {
+
+    @Id
+    @GeneratedValue
+    private Long id;
+
+    //上级组编号
+    @Column
+    private Long idFather = 0L;
+
+    //组名称,如唐诗、宋词
+    @Column
+    private String name;
+
+    @Column
+    private int status= Status.ONLINE.getCode();
+
+    @Column
+    @Temporal(TemporalType.TIMESTAMP)
+    private Date created;
+
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }
+
+
+}

+ 59 - 0
src/main/java/cn/efunbox/audio/entity/Rights.java

@@ -0,0 +1,59 @@
+package cn.efunbox.audio.entity;
+
+
+import cn.efunbox.audio.enums.Status;
+import lombok.Data;
+import lombok.ToString;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 渠道对资源组的权限
+ * Created by yao on 17-9-26.
+ */
+
+
+@Data
+@ToString
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class Rights implements Serializable, Cloneable {
+
+    @Id
+    @GeneratedValue
+    private Long id;
+
+    //渠道编号
+    @Column
+    private Long idChannel;
+
+    //渠道名称
+    @Column
+    private String nameChannel;
+
+    //资源组编号
+    @Column
+    private Long idGroup;
+
+    //资源组名称
+    @Column
+    private String nameGroup;
+
+    @Column
+    private int status= Status.ONLINE.getCode();
+
+    @Column
+    @Temporal(TemporalType.TIMESTAMP)
+    private Date created;
+
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }
+
+
+}

+ 6 - 0
src/main/java/cn/efunbox/audio/impl/ChannelServiceImpl.java

@@ -27,6 +27,12 @@ public class ChannelServiceImpl implements ChannelService {
     }
 
     @Override
+    public List<Channel> SearchByIdFather(Long idFather){
+        List<Channel> list = channelRepo.findByIdFather(idFather);
+        return list;
+    }
+
+    @Override
     public List<Channel> SearchByName(String name){
         if(name==null || name.isEmpty())
             return null;

+ 52 - 0
src/main/java/cn/efunbox/audio/impl/GroupingServiceImpl.java

@@ -0,0 +1,52 @@
+package cn.efunbox.audio.impl;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Grouping;
+import cn.efunbox.audio.repository.ChannelRepo;
+import cn.efunbox.audio.repository.GroupingRepo;
+import cn.efunbox.audio.service.ChannelService;
+import cn.efunbox.audio.service.GroupingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@Service
+public class GroupingServiceImpl implements GroupingService {
+
+    @Autowired
+    GroupingRepo groupingRepo;
+
+    @Override
+    public List<Grouping> SearchById(Long id){
+        List<Grouping> list = groupingRepo.findById(id);
+        return list;
+    }
+
+    @Override
+    public List<Grouping> SearchByIdFather(Long idFather){
+        List<Grouping> list = groupingRepo.findByIdFather(idFather);
+        return list;
+    }
+
+    @Override
+    public List<Grouping> SearchByName(String name){
+        if(name==null || name.isEmpty())
+            return null;
+        List<Grouping> list = groupingRepo.findByName(name);
+        if(list==null)
+            list = groupingRepo.findByNameLike(name);
+        return list;
+    }
+
+    @Override
+    public Grouping Insert(Grouping grouping){
+        Grouping c = groupingRepo.save(grouping);
+        return c;
+    }
+
+
+}

+ 70 - 0
src/main/java/cn/efunbox/audio/impl/RightsServiceImpl.java

@@ -0,0 +1,70 @@
+package cn.efunbox.audio.impl;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Rights;
+import cn.efunbox.audio.repository.ChannelRepo;
+import cn.efunbox.audio.repository.RightsRepo;
+import cn.efunbox.audio.service.ChannelService;
+import cn.efunbox.audio.service.RightsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@Service
+public class RightsServiceImpl implements RightsService {
+
+    @Autowired
+    RightsRepo rightsRepo;
+
+    @Override
+    public List<Rights> SearchById(Long id){
+        List<Rights> list = rightsRepo.findById(id);
+        return list;
+    }
+
+    @Override
+    public List<Rights> SearchByIdChannel(Long id){
+        List<Rights> list = rightsRepo.findByIdChannel(id);
+        return list;
+    }
+
+    @Override
+    public List<Rights> SearchByIdGroup(Long id){
+        List<Rights> list = rightsRepo.findByIdGroup(id);
+        return list;
+    }
+
+    @Override
+    public List<Rights> SearchByIdChannelAndIdGroup(Long idChannel, Long idGroup){
+        List<Rights> list = rightsRepo.findByIdChannelAndIdGroup(idChannel, idGroup);
+        return list;
+    }
+
+    @Override
+    public List<Rights> SearchByNameChannel(String name){
+        if(name==null || name.isEmpty())
+            return null;
+        List<Rights> list = rightsRepo.findByNameChannel(name);
+        return list;
+    }
+
+    @Override
+    public List<Rights> SearchByNameGroup(String name){
+        if(name==null || name.isEmpty())
+            return null;
+        List<Rights> list = rightsRepo.findByNameGroup(name);
+        return list;
+    }
+
+    @Override
+    public Rights Insert(Rights rights){
+        Rights r = rightsRepo.save(rights);
+        return r;
+    }
+
+
+}

+ 1 - 3
src/main/java/cn/efunbox/audio/repository/ChannelRepo.java

@@ -1,10 +1,7 @@
 package cn.efunbox.audio.repository;
 
-import cn.efunbox.audio.entity.Audio;
 import cn.efunbox.audio.entity.Channel;
 import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -16,6 +13,7 @@ import java.util.List;
 public interface ChannelRepo extends JpaRepository<Channel, Long> {
 
     public List<Channel> findById(Long id);
+    public List<Channel> findByIdFather(Long idFather);
     public List<Channel> findByName(String name);
     public List<Channel> findByNameLike(String name);
 

+ 21 - 0
src/main/java/cn/efunbox/audio/repository/GroupingRepo.java

@@ -0,0 +1,21 @@
+package cn.efunbox.audio.repository;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Grouping;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@Repository
+public interface GroupingRepo extends JpaRepository<Grouping, Long> {
+
+    public List<Grouping> findById(Long id);
+    public List<Grouping> findByIdFather(Long idFather);
+    public List<Grouping> findByName(String name);
+    public List<Grouping> findByNameLike(String name);
+
+}

+ 23 - 0
src/main/java/cn/efunbox/audio/repository/RightsRepo.java

@@ -0,0 +1,23 @@
+package cn.efunbox.audio.repository;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Rights;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+@Repository
+public interface RightsRepo extends JpaRepository<Rights, Long> {
+
+    public List<Rights> findById(Long id);
+    public List<Rights> findByIdChannel(Long idChannel);
+    public List<Rights> findByIdGroup(Long idGroup);
+    public List<Rights> findByIdChannelAndIdGroup(Long idChannel, Long idGroup);
+    public List<Rights> findByNameChannel(String nameChannel);
+    public List<Rights> findByNameGroup(String nameGroup);
+
+}

+ 2 - 0
src/main/java/cn/efunbox/audio/service/ChannelService.java

@@ -12,6 +12,8 @@ public interface ChannelService {
 
     public List<Channel> SearchById(Long id);
 
+    public List<Channel> SearchByIdFather(Long idFather);
+
     public List<Channel> SearchByName(String name);
 
     public Channel Insert(Channel channel);

+ 20 - 0
src/main/java/cn/efunbox/audio/service/GroupingService.java

@@ -0,0 +1,20 @@
+package cn.efunbox.audio.service;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Grouping;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+public interface GroupingService {
+
+    public List<Grouping> SearchById(Long id);
+
+    public List<Grouping> SearchByIdFather(Long idFather);
+
+    public List<Grouping> SearchByName(String name);
+
+    public Grouping Insert(Grouping grouping);
+}

+ 26 - 0
src/main/java/cn/efunbox/audio/service/RightsService.java

@@ -0,0 +1,26 @@
+package cn.efunbox.audio.service;
+
+import cn.efunbox.audio.entity.Channel;
+import cn.efunbox.audio.entity.Rights;
+
+import java.util.List;
+
+/**
+ * Created by yao on 17-9-26.
+ */
+public interface RightsService {
+
+    public List<Rights> SearchById(Long id);
+
+    public List<Rights> SearchByIdChannel(Long id);
+
+    public List<Rights> SearchByIdGroup(Long id);
+
+    public List<Rights> SearchByIdChannelAndIdGroup(Long idChannel, Long idGroup);
+
+    public List<Rights> SearchByNameChannel(String name);
+
+    public List<Rights> SearchByNameGroup(String name);
+
+    public Rights Insert(Rights rights);
+}