Просмотр исходного кода

增加批量关注、批量取消关注接口

dongbw 7 лет назад
Родитель
Сommit
694e934d9d

+ 21 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/controller/KindConcernController.java

@@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * 类目相关接口
  * @author  dongbw
@@ -81,5 +83,24 @@ public class KindConcernController {
         return map;
     }
 
+    /**
+     * PC批量关注接口
+     * @param kinds  类目名称List
+     * @return 处理结果
+     */
+    @RequestMapping(value = "/batch/add", method = RequestMethod.POST)
+    public ModelMap addKindConcernByBatch(@RequestBody List<String> kinds) {
+        return kindConcernService.addKindConcernByBatch(kinds);
+    }
+
+    /**
+     * PC批量取消关注接口
+     * @param ids  需要批量取消的类目id
+     * @return 结果
+     */
+    @RequestMapping(value = "/batch/delete", method = RequestMethod.POST)
+    public ModelMap deleteKindConcernByBatch(@RequestBody List<Long> ids) {
+        return kindConcernService.deleteKindConcernByBatch(ids);
+    }
 }
 

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/dao/KindConcernDao.java

@@ -23,4 +23,12 @@ public interface KindConcernDao extends JpaRepository<KindConcern, Long>, JpaSpe
      */
     @Query("select k.nameCn from KindConcern k where k.enUU = :enUU and k.status = 1")
     List<String> findNameByEnUU(@Param("enUU") Long enUU);
+
+    /**
+     * 根据类目名称和enUU查询关注类目
+     * @param name
+     * @param enUU
+     * @return
+     */
+    KindConcern findByNameCnAndEnUU(String name, Long enUU);
 }

+ 16 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/service/KindConcernService.java

@@ -5,6 +5,8 @@ import com.uas.platform.core.model.PageParams;
 import com.uas.sso.support.Page;
 import org.springframework.ui.ModelMap;
 
+import java.util.List;
+
 /**
  * 类目关注接口
  * @author dongbw
@@ -43,4 +45,18 @@ public interface KindConcernService {
      * @return 类目收藏分页
      */
     Page<KindConcern> getConcernKindByPage(PageParams pageParams, String keyword, Long enUU);
+
+    /**
+     * PC批量关注接口
+     * @param kinds  类目名称List
+     * @return 处理结果
+     */
+    ModelMap addKindConcernByBatch(List<String> kinds);
+
+    /**
+     * PC批量取消关注接口
+     * @param ids  需要批量取消的类目id
+     * @return 结果
+     */
+    ModelMap deleteKindConcernByBatch(List<Long> ids);
 }

+ 96 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/service/impl/KindConcernServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.prod.product.kind.service.impl;
 
+import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.product.kind.dao.KindConcernDao;
 import com.uas.platform.b2c.prod.product.kind.dao.KindDao;
 import com.uas.platform.b2c.prod.product.kind.model.Kind;
@@ -190,4 +191,99 @@ public class KindConcernServiceImpl implements KindConcernService {
         }, pageInfo);
         return new Page<KindConcern>(kindConcernPage.getNumber(), kindConcernPage.getSize(), kindConcernPage.getContent(), (int) kindConcernPage.getTotalElements());
     }
+
+    /**
+     * PC批量关注接口
+     *
+     * @param kinds 类目名称List
+     * @return 处理结果
+     */
+    @Override
+    public ModelMap addKindConcernByBatch(List<String> kinds) {
+        ModelMap map = new ModelMap();
+        try {
+            if (CollectionUtils.isEmpty(kinds)) {
+                map.put("success", false);
+                map.put("message", "传入参数为空");
+                return map;
+            }
+            List<KindConcern> kindConcerns = new ArrayList<>();
+            Date now = new Date();
+            Long enUU = SystemSession.getUser().getEnterprise().getUu();
+            // 成功
+            int count = 0;
+            // 已存在
+            int existed = 0;
+            // 已存在列表
+            List<String> existedList = new ArrayList<>();
+            map.put("all", kinds.size());
+            for (String name : kinds) {
+                KindConcern concern = kindConcernDao.findByNameCnAndEnUU(name, enUU);
+                if (null == concern) {
+                    KindConcern kindConcern = new KindConcern();
+                    kindConcern.setDate(now);
+                    kindConcern.setEnUU(enUU);
+                    kindConcern.setNameCn(name);
+                    kindConcern.setStatus(Constant.YES);
+                    kindConcerns.add(kindConcern);
+                    count += 1;
+                } else {
+                    existed += 1;
+                    existedList.add(name);
+                    concern.setStatus(Constant.YES);
+                    kindConcerns.add(concern);
+                }
+            }
+            map.put("existed", existed);
+            map.put("count", count);
+            map.put("existedList", existedList);
+            kindConcernDao.save(kindConcerns);
+            return map;
+        } catch (Exception e) {
+            e.printStackTrace();
+            map.put("success", false);
+            map.put("message", e.getMessage());
+            return map;
+        }
+    }
+
+    /**
+     * PC批量取消关注接口
+     *
+     * @param ids 需要批量取消的类目id
+     * @return 结果
+     */
+    @Override
+    public ModelMap deleteKindConcernByBatch(List<Long> ids) {
+        ModelMap map = new ModelMap();
+        try {
+            if (CollectionUtils.isEmpty(ids)) {
+                map.put("success", false);
+                map.put("message", "传入参数为空");
+                return map;
+            }
+            Long enUU = SystemSession.getUser().getEnterprise().getUu();
+            List<KindConcern> kindConcerns = kindConcernDao.findAll(ids);
+            if (CollectionUtils.isEmpty(kindConcerns)) {
+                map.put("success", false);
+                map.put("message", "未找到符合对应的类目关注记录");
+                return map;
+            }
+            for (KindConcern kindConcern : kindConcerns) {
+                if (!enUU.equals(kindConcern.getEnUU())) {
+                    map.put("success", false);
+                    map.put("message", "存在不属于当前企业的类目关注记录,无法删除");
+                    return map;
+                }
+            }
+            map.put("count", kindConcerns.size());
+            kindConcernDao.delete(kindConcerns);
+            return map;
+        } catch (Exception e) {
+            e.printStackTrace();
+            map.put("success", false);
+            map.put("message", e.getMessage());
+            return map;
+        }
+    }
 }