ソースを参照

文章信息中心整合

chao 4 年 前
コミット
dd22dfa054
34 ファイル変更440 行追加53 行削除
  1. 1 1
      src/main/java/com/caimei/www/controller/BaseController.java
  2. 1 1
      src/main/java/com/caimei/www/controller/authorized/AccountController.java
  3. 1 1
      src/main/java/com/caimei/www/controller/authorized/ShoppingController.java
  4. 11 1
      src/main/java/com/caimei/www/controller/unlimited/ArticleController.java
  5. 1 1
      src/main/java/com/caimei/www/controller/unlimited/EquipmentController.java
  6. 1 2
      src/main/java/com/caimei/www/controller/unlimited/HelpPageController.java
  7. 1 2
      src/main/java/com/caimei/www/controller/unlimited/HomeController.java
  8. 1 4
      src/main/java/com/caimei/www/controller/unlimited/ProductController.java
  9. 1 1
      src/main/java/com/caimei/www/controller/unlimited/SinglePageController.java
  10. 1 1
      src/main/java/com/caimei/www/controller/unlimited/SupplierController.java
  11. 6 0
      src/main/java/com/caimei/www/mapper/ArticleDao.java
  12. 1 1
      src/main/java/com/caimei/www/service/page/AccountService.java
  13. 9 1
      src/main/java/com/caimei/www/service/page/ArticleService.java
  14. 1 1
      src/main/java/com/caimei/www/service/page/BaseService.java
  15. 1 1
      src/main/java/com/caimei/www/service/page/EquipmentService.java
  16. 1 1
      src/main/java/com/caimei/www/service/page/HelpService.java
  17. 1 1
      src/main/java/com/caimei/www/service/page/HomeService.java
  18. 1 1
      src/main/java/com/caimei/www/service/page/ProductService.java
  19. 1 1
      src/main/java/com/caimei/www/service/page/ShoppingService.java
  20. 1 1
      src/main/java/com/caimei/www/service/page/SinglePageService.java
  21. 1 1
      src/main/java/com/caimei/www/service/page/SupplierService.java
  22. 2 2
      src/main/java/com/caimei/www/service/page/impl/AccountServiceImpl.java
  23. 32 2
      src/main/java/com/caimei/www/service/page/impl/ArticleServiceImpl.java
  24. 2 2
      src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java
  25. 2 2
      src/main/java/com/caimei/www/service/page/impl/EquipmentServiceImpl.java
  26. 2 2
      src/main/java/com/caimei/www/service/page/impl/HelpServiceImpl.java
  27. 2 4
      src/main/java/com/caimei/www/service/page/impl/HomeServiceImpl.java
  28. 2 2
      src/main/java/com/caimei/www/service/page/impl/ProductServiceImpl.java
  29. 2 2
      src/main/java/com/caimei/www/service/page/impl/ShoppingServiceImpl.java
  30. 2 2
      src/main/java/com/caimei/www/service/page/impl/SinglePageServiceImpl.java
  31. 2 7
      src/main/java/com/caimei/www/service/page/impl/SupplierServiceImpl.java
  32. 164 0
      src/main/java/com/caimei/www/service/redis/RedisService.java
  33. 176 0
      src/main/java/com/caimei/www/service/redis/impl/RedisServiceImpl.java
  34. 6 1
      src/main/resources/mapper/ArticleMapper.xml

+ 1 - 1
src/main/java/com/caimei/www/controller/BaseController.java

@@ -2,7 +2,7 @@ package com.caimei.www.controller;
 
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.TopMenu;
-import com.caimei.www.service.BaseService;
+import com.caimei.www.service.page.BaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.server.reactive.ServerHttpRequest;

+ 1 - 1
src/main/java/com/caimei/www/controller/authorized/AccountController.java

@@ -1,7 +1,7 @@
 package com.caimei.www.controller.authorized;
 
 import com.caimei.www.controller.BaseController;
-import com.caimei.www.service.AccountService;
+import com.caimei.www.service.page.AccountService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;

+ 1 - 1
src/main/java/com/caimei/www/controller/authorized/ShoppingController.java

@@ -3,7 +3,7 @@ package com.caimei.www.controller.authorized;
 import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.order.CartItem;
-import com.caimei.www.service.ShoppingService;
+import com.caimei.www.service.page.ShoppingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;

+ 11 - 1
src/main/java/com/caimei/www/controller/unlimited/ArticleController.java

@@ -5,7 +5,7 @@ import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.Article;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
-import com.caimei.www.service.ArticleService;
+import com.caimei.www.service.page.ArticleService;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.server.ServerWebExchange;
 
 import java.util.List;
 
@@ -144,4 +145,13 @@ public class ArticleController extends BaseController {
         return articleService.clickArticleAd(id);
     }
 
+    /**
+     * 文章点赞
+     */
+    @GetMapping("/article/like")
+    @ResponseBody
+    public JsonModel articleLike(Integer id, ServerWebExchange serverWebExchange) {
+        return articleService.articleLike(id, serverWebExchange);
+    }
+
 }

+ 1 - 1
src/main/java/com/caimei/www/controller/unlimited/EquipmentController.java

@@ -4,7 +4,7 @@ import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
-import com.caimei.www.service.EquipmentService;
+import com.caimei.www.service.page.EquipmentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;

+ 1 - 2
src/main/java/com/caimei/www/controller/unlimited/HelpPageController.java

@@ -1,8 +1,7 @@
 package com.caimei.www.controller.unlimited;
 
 import com.caimei.www.controller.BaseController;
-import com.caimei.www.pojo.page.PageContent;
-import com.caimei.www.service.HelpService;
+import com.caimei.www.service.page.HelpService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;

+ 1 - 2
src/main/java/com/caimei/www/controller/unlimited/HomeController.java

@@ -5,7 +5,7 @@ import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.PageFloor;
 import com.caimei.www.pojo.page.ProductList;
-import com.caimei.www.service.HomeService;
+import com.caimei.www.service.page.HomeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * Description

+ 1 - 4
src/main/java/com/caimei/www/controller/unlimited/ProductController.java

@@ -2,16 +2,13 @@ package com.caimei.www.controller.unlimited;
 
 import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.page.ProductDetail;
-import com.caimei.www.service.ProductService;
+import com.caimei.www.service.page.ProductService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 
-
-import java.util.List;
-
 /**
  * 商品(product)
  *

+ 1 - 1
src/main/java/com/caimei/www/controller/unlimited/SinglePageController.java

@@ -5,7 +5,7 @@ import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
-import com.caimei.www.service.SinglePageService;
+import com.caimei.www.service.page.SinglePageService;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.server.reactive.ServerHttpResponse;

+ 1 - 1
src/main/java/com/caimei/www/controller/unlimited/SupplierController.java

@@ -2,7 +2,7 @@ package com.caimei.www.controller.unlimited;
 
 import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.page.SupplierDetail;
-import com.caimei.www.service.SupplierService;
+import com.caimei.www.service.page.SupplierService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;

+ 6 - 0
src/main/java/com/caimei/www/mapper/ArticleDao.java

@@ -78,4 +78,10 @@ public interface ArticleDao {
      * @return
      */
     Article getArticleInfo(Integer id);
+
+    /**
+     * 文章点赞
+     * @param infoId
+     */
+    void articleLike(Integer infoId);
 }

+ 1 - 1
src/main/java/com/caimei/www/service/AccountService.java → src/main/java/com/caimei/www/service/page/AccountService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 /**
  * Description

+ 9 - 1
src/main/java/com/caimei/www/service/ArticleService.java → src/main/java/com/caimei/www/service/page/ArticleService.java

@@ -1,10 +1,11 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.Article;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
 import com.github.pagehelper.PageInfo;
+import org.springframework.web.server.ServerWebExchange;
 
 import java.util.List;
 
@@ -57,4 +58,11 @@ public interface ArticleService {
      * @return
      */
     Article getArticleInfo(Integer id);
+
+    /**
+     * 文章点赞
+     * @param id
+     * @return
+     */
+    JsonModel articleLike(Integer id, ServerWebExchange serverWebExchange);
 }

+ 1 - 1
src/main/java/com/caimei/www/service/BaseService.java → src/main/java/com/caimei/www/service/page/BaseService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.TopMenu;

+ 1 - 1
src/main/java/com/caimei/www/service/EquipmentService.java → src/main/java/com/caimei/www/service/page/EquipmentService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.PageContent;

+ 1 - 1
src/main/java/com/caimei/www/service/HelpService.java → src/main/java/com/caimei/www/service/page/HelpService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 /**
  * Description

+ 1 - 1
src/main/java/com/caimei/www/service/HomeService.java → src/main/java/com/caimei/www/service/page/HomeService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.JsonModel;

+ 1 - 1
src/main/java/com/caimei/www/service/ProductService.java → src/main/java/com/caimei/www/service/page/ProductService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.page.ProductDetail;
 

+ 1 - 1
src/main/java/com/caimei/www/service/ShoppingService.java → src/main/java/com/caimei/www/service/page/ShoppingService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.order.CartItem;

+ 1 - 1
src/main/java/com/caimei/www/service/SinglePageService.java → src/main/java/com/caimei/www/service/page/SinglePageService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.ImageLink;

+ 1 - 1
src/main/java/com/caimei/www/service/SupplierService.java → src/main/java/com/caimei/www/service/page/SupplierService.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service;
+package com.caimei.www.service.page;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.ProductList;

+ 2 - 2
src/main/java/com/caimei/www/service/impl/AccountServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/AccountServiceImpl.java

@@ -1,7 +1,7 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.AccountDao;
-import com.caimei.www.service.AccountService;
+import com.caimei.www.service.page.AccountService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 

+ 32 - 2
src/main/java/com/caimei/www/service/impl/ArticleServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/ArticleServiceImpl.java

@@ -1,21 +1,25 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.ArticleDao;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.Article;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
-import com.caimei.www.service.ArticleService;
+import com.caimei.www.service.page.ArticleService;
+import com.caimei.www.service.redis.RedisService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.PriceUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Service;
+import org.springframework.web.server.ServerWebExchange;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Description
@@ -29,6 +33,8 @@ public class ArticleServiceImpl implements ArticleService {
     private String domain;
     @Resource
     private ArticleDao articleDao;
+    @Resource
+    private RedisService redisService;
 
     /**
      * 获取文章类型
@@ -129,5 +135,29 @@ public class ArticleServiceImpl implements ArticleService {
         return articleInfo;
     }
 
+    /**
+     * 文章点赞
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public JsonModel articleLike(Integer id, ServerWebExchange serverWebExchange) {
+        String ip = getIp(serverWebExchange);
+        String key = "ip_" + ip + "_" + id;
+        if(redisService.exists(key)) {
+            return JsonModel.success("您已经给该文章点过赞了");
+        } else {
+            articleDao.articleLike(id);
+            // 限制一个ip24小时内只能点一次赞
+            redisService.set(key, 1, 24 * 60 * 60L);
+            return JsonModel.success();
+        }
+    }
+
+    private String getIp(ServerWebExchange serverWebExchange){
+       ServerHttpRequest request = serverWebExchange.getRequest();
+        return Objects.requireNonNull(request.getRemoteAddress()).getAddress().toString();
+    }
 
 }

+ 2 - 2
src/main/java/com/caimei/www/service/impl/BaseServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java

@@ -1,9 +1,9 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 
 import com.caimei.www.mapper.BaseDao;
 import com.caimei.www.pojo.page.*;
-import com.caimei.www.service.BaseService;
+import com.caimei.www.service.page.BaseService;
 import com.caimei.www.utils.ImageUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;

+ 2 - 2
src/main/java/com/caimei/www/service/impl/EquipmentServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/EquipmentServiceImpl.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.EquipmentDao;
 import com.caimei.www.mapper.SinglePageDao;
@@ -7,7 +7,7 @@ import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
 import com.caimei.www.pojo.page.Parameter;
-import com.caimei.www.service.EquipmentService;
+import com.caimei.www.service.page.EquipmentService;
 import com.caimei.www.utils.ImageUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;

+ 2 - 2
src/main/java/com/caimei/www/service/impl/HelpServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/HelpServiceImpl.java

@@ -1,7 +1,7 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.SinglePageDao;
-import com.caimei.www.service.HelpService;
+import com.caimei.www.service.page.HelpService;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 

+ 2 - 4
src/main/java/com/caimei/www/service/impl/HomeServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/HomeServiceImpl.java

@@ -1,11 +1,11 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.mapper.HomeDao;
 import com.caimei.www.pojo.page.PageFloor;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.ProductList;
-import com.caimei.www.service.HomeService;
+import com.caimei.www.service.page.HomeService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.PriceUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -14,9 +14,7 @@ import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Description

+ 2 - 2
src/main/java/com/caimei/www/service/impl/ProductServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/ProductServiceImpl.java

@@ -1,8 +1,8 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.ProductDao;
 import com.caimei.www.pojo.page.ProductDetail;
-import com.caimei.www.service.ProductService;
+import com.caimei.www.service.page.ProductService;
 import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;

+ 2 - 2
src/main/java/com/caimei/www/service/impl/ShoppingServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/ShoppingServiceImpl.java

@@ -1,4 +1,4 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.ShoppingDao;
 import com.caimei.www.mapper.AccountDao;
@@ -7,7 +7,7 @@ import com.caimei.www.pojo.order.CartItem;
 import com.caimei.www.pojo.order.CartSupplier;
 import com.caimei.www.pojo.account.Account;
 import com.caimei.www.service.CommonServiceUtil;
-import com.caimei.www.service.ShoppingService;
+import com.caimei.www.service.page.ShoppingService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.PriceUtil;
 import lombok.extern.slf4j.Slf4j;

+ 2 - 2
src/main/java/com/caimei/www/service/impl/SinglePageServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/SinglePageServiceImpl.java

@@ -1,11 +1,11 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.SinglePageDao;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
-import com.caimei.www.service.SinglePageService;
+import com.caimei.www.service.page.SinglePageService;
 import com.caimei.www.utils.ImageUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;

+ 2 - 7
src/main/java/com/caimei/www/service/impl/SupplierServiceImpl.java → src/main/java/com/caimei/www/service/page/impl/SupplierServiceImpl.java

@@ -1,18 +1,13 @@
-package com.caimei.www.service.impl;
+package com.caimei.www.service.page.impl;
 
 import com.caimei.www.mapper.SupplierDao;
-import com.caimei.www.pojo.JsonModel;
-import com.caimei.www.pojo.page.ProductList;
 import com.caimei.www.pojo.page.SupplierDetail;
-import com.caimei.www.service.SupplierService;
-import com.caimei.www.utils.ImageUtil;
-import com.caimei.www.utils.PriceUtil;
+import com.caimei.www.service.page.SupplierService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * Description

+ 164 - 0
src/main/java/com/caimei/www/service/redis/RedisService.java

@@ -0,0 +1,164 @@
+/**
+ *
+ */
+package com.caimei.www.service.redis;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 王永煌
+ * @date 2015年6月19日
+ * @time 上午10:09:21
+ * @version 1.0
+ * @company Shenzhen Caimei Information Technology Co., LTD
+ * @license Copyright © 2014 CAIMEI365.com All Rights Reserved.
+ */
+public interface RedisService {
+	/**
+	 * 批量删除对应的value
+	 * @param keys
+	 */
+	public void remove(final String... keys);
+	/**
+	 * 批量删除正则匹配的value
+	 * @param pattern
+	 */
+	public void removePattern(final String pattern);
+	/**
+	 * 删除对应的value
+	 * @param key
+	 */
+	public void remove(final String key);
+	/**
+	 * 判断缓存中是否存在
+	 * @param key
+	 * @return
+	 */
+	public boolean exists(final String key);
+	/**
+	 * 读取缓存
+	 * @param key
+	 * @return
+	 */
+	public Object get(final String key);
+	/**
+	 * 写入缓存
+	 * @param key
+	 * @param value
+	 * @return
+	 */
+	public boolean set(final String key, Object value);
+	/**
+	 * 写入缓存
+	 * @param key
+	 * @param value
+	 * @param expireTime
+	 * @return
+	 */
+	public boolean set(final String key, Object value, Long expireTime);
+
+	///////////////////////////////////////
+	//         针对list操作的方法                                     //
+	///////////////////////////////////////
+	/**
+	 * 在key对应list的尾部添加value
+	 * @param key
+	 * @param value
+	 * @return
+	 */
+	public long rightPushForList(final String key, Object value);
+	/**
+	 * 在key对应list的尾部移除value
+	 * @param key
+	 * @return
+	 */
+	public Object rightPopForList(final String key);
+	/**
+	 * 在key对应list的头部添加value
+	 * @param key
+	 * @param value
+	 * @return
+	 */
+	public long leftPushForList(final String key, Object value);
+	/**
+	 * 在key对应list的头部移除value
+	 * @param key
+	 * @return
+	 */
+	public Object leftPopForList(final String key);
+	/**
+	 * key对应list的长度
+	 * @param key
+	 * @return
+	 */
+	public long listSize(final String key);
+	/**
+	 * 获取list集合
+	 * @param Key
+	 * @param begin
+	 * @param end
+	 * @return
+	 */
+	public List<?> getList(final String Key, int begin, int end);
+	/**
+	 * 移除list的index位置上的值
+	 * @param Key
+	 * @param index
+	 * @param value
+	 */
+	public void removeList(final String Key, long index, Object value);
+	/**
+	 * 重置list的index位置上的值
+	 * @param Key
+	 * @param index
+	 * @param value
+	 */
+	public void setList(final String Key, long index, Object value);
+	/**
+	 * 写入list
+	 * @param key
+	 * @param list
+	 */
+	@SuppressWarnings("rawtypes")
+	public void setList(final String key, List list);
+
+	/**
+	 * 写入map
+	 * @param key
+	 * @param map
+	 */
+	public void setMap(final String key, Map<String, Object> map);
+
+	/**
+	 * 写入map
+	 * @param key
+	 * @param hashKey
+	 * @param hashValue
+	 */
+	public void setMapByKV(final String key, final Object hashKey, Object hashValue);
+
+	/**
+	 * 写入map
+	 * @param key
+	 */
+	public Object get(final String key, final String hashKey);
+
+	/**
+	 * 删除map中的某个key-value
+	 * @param key
+	 * @param hashKey
+	 * @return
+	 */
+	public void removeHash(final String key, final String hashKey);
+
+	public Map<Object, Object> getEntries(final String key);
+
+	 public long increase(String key, long step);
+
+	 /**
+	  * 获取失效时间
+	  */
+	 public long getExpireTime(final String key);
+
+}

+ 176 - 0
src/main/java/com/caimei/www/service/redis/impl/RedisServiceImpl.java

@@ -0,0 +1,176 @@
+package com.caimei.www.service.redis.impl;
+
+
+import com.caimei.www.service.redis.RedisService;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author 王永煌
+ * @date 2015年6月19日
+ * @time 上午10:09:43
+ * @version 1.0
+ * @company Shenzhen Caimei Information Technology Co., LTD
+ * @license Copyright © 2014 CAIMEI365.com All Rights Reserved.
+ */
+@Service
+public class RedisServiceImpl implements RedisService {
+	@Resource
+	private RedisTemplate<Serializable, Object> redisTemplate;
+
+	@Override
+	public void remove(String... keys) {
+		for(String key :keys){
+			remove(key);
+		}
+	}
+
+	@Override
+	public void removePattern(String pattern) {
+		Set<Serializable> keys = redisTemplate.keys(pattern);
+		if (keys.size() > 0){
+			redisTemplate.delete(keys);
+		}
+	}
+
+	@Override
+	public void remove(String key) {
+		if (exists(key)) {
+			redisTemplate.delete(key);
+		}
+	}
+
+	@Override
+	public boolean exists(String key) {
+		return redisTemplate.hasKey(key);
+	}
+
+	@Override
+	public Object get(String key) {
+		Object result = null;
+		ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+		result = operations.get(key);
+		return result;
+	}
+
+	@Override
+	public boolean set(String key, Object value) {
+		boolean result = false;
+		try {
+			ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+			operations.set(key, value);
+			result = true;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return result;
+	}
+
+	@Override
+	public boolean set(String key, Object value, Long expireTime_seconds) {
+		boolean result = false;
+		try {
+			ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+			operations.set(key, value);
+			redisTemplate.expire(key,expireTime_seconds,TimeUnit.SECONDS);
+			result = true;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return result;
+	}
+
+	@Override
+	public long rightPushForList(String key, Object value) {
+		return redisTemplate.opsForList().rightPush(key, value);
+	}
+
+	@Override
+	public long leftPushForList(String key, Object value) {
+		return redisTemplate.opsForList().leftPush(key, value);
+	}
+
+	@Override
+	public long listSize(String key) {
+		return redisTemplate.opsForList().size(key);
+	}
+
+	@Override
+	public List<?> getList(String Key, int begin, int end) {
+		return redisTemplate.opsForList().range(Key, begin, end);
+	}
+
+	@Override
+	public Object rightPopForList(String key) {
+		return redisTemplate.opsForList().rightPop(key);
+	}
+
+	@Override
+	public Object leftPopForList(String key) {
+		return redisTemplate.opsForList().leftPop(key);
+	}
+
+	@Override
+	public void removeList(String Key, long index, Object value) {
+		redisTemplate.opsForList().remove(Key, index, value);
+	}
+
+	@Override
+	public void setList(String Key, long index, Object value) {
+		redisTemplate.opsForList().set(Key, index, value);
+	}
+
+	@SuppressWarnings("rawtypes")
+	@Override
+	public void setList(String key, List list) {
+		if(list!=null&&list.size()>0){
+			for (Object object : list) {
+				rightPushForList(key,object);
+			}
+		}
+	}
+
+	@Override
+	public void setMap(String key, Map<String, Object> map) {
+		redisTemplate.opsForHash().putAll(key, map);
+	}
+
+	@Override
+	public Object get(String key, String mapKey) {
+		return redisTemplate.opsForHash().get(key, mapKey);
+	}
+
+	@Override
+	public void setMapByKV(String key, Object hashKey, Object hashValue) {
+		redisTemplate.opsForHash().put(key, hashKey,hashValue);
+	}
+
+	@Override
+	public void removeHash(String key, String hashKey) {
+		redisTemplate.opsForHash().delete(key, hashKey);
+	}
+
+	@Override
+	public Map<Object, Object> getEntries(String key) {
+		return redisTemplate.opsForHash().entries(key);
+	}
+
+	@Override
+	public long increase(String key, long step) {
+		return redisTemplate.opsForValue().increment(key, step);
+	}
+
+	@Override
+	public long getExpireTime(String key) {
+		return redisTemplate.getExpire(key, TimeUnit.SECONDS);
+	}
+
+}

+ 6 - 1
src/main/resources/mapper/ArticleMapper.xml

@@ -84,8 +84,13 @@
 			updateDate = NOW()
 		where id = #{id}
 	</update>
+    <update id="articleLike">
+		UPDATE info_praise
+		SET num = num+1
+		WHERE infoId = #{infoId}
+	</update>
 
-	<select id="getArticleInfo" resultType="com.caimei.www.pojo.page.Article">
+    <select id="getArticleInfo" resultType="com.caimei.www.pojo.page.Article">
 		SELECT
 		  a.id AS id,
 		  a.title AS title,