Ver Fonte

买家、卖家、兽医站缓存

Newspaper há 1 ano atrás
pai
commit
5d4ab7c998

+ 4 - 4
admin/src/main/java/com/huimv/farm/damsubsidy/controller/BaseVeterStationController.java

@@ -38,7 +38,7 @@ public class BaseVeterStationController {
     private RedisTemplate<String, String> redisTemplate;
 
     @PostMapping("/add")
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Result addMenu(@RequestBody BaseVeterStation baseVeterStation , HttpServletRequest request){
         baseVeterStation.setCreateUser(TokenSign.getMemberIdByJwtToken(request));
         baseVeterStation.setCreateTime(DateTime.now());
@@ -48,7 +48,7 @@ public class BaseVeterStationController {
     }
 
     @PostMapping("/edit")
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Result editMenu(@RequestBody BaseVeterStation baseVeterStation, HttpServletRequest httpServletRequest){
         baseVeterStation.setUpdateUser(TokenSign.getUserName(httpServletRequest));
         baseVeterStation.setUpdateTime(DateTime.now());
@@ -58,7 +58,7 @@ public class BaseVeterStationController {
     }
 
     @RequestMapping("/remove")
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Result removeMenu(@RequestParam(name = "id") Integer id){
         baseVeterStationService.removeById(id);
         updateCache();
@@ -66,7 +66,7 @@ public class BaseVeterStationController {
     }
 
     @PostMapping("/list")
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Result list() {
         String veterStation = redisTemplate.opsForValue().get("veterStation");
         List<BaseVeterStation> baseVeterStationList = null;

+ 80 - 5
admin/src/main/java/com/huimv/farm/damsubsidy/service/impl/SysUserServiceImpl.java

@@ -1,6 +1,8 @@
 package com.huimv.farm.damsubsidy.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.servlet.http.HttpServletRequest;
@@ -25,6 +28,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
@@ -221,7 +225,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public Result add(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
 
@@ -343,6 +347,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     sysUser.setFarmName(paramsMap.get("farmName"));
                     sysUser.setAccoutType(1);
                     userMapper.updateById(sysUser);
+                    updateSeller();
+                    updateBuyer();
                     return new Result(ResultCode.SUCCESS, sysUser);
                 }
 
@@ -352,6 +358,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 }
                 user.setIsRealName(1);
                 userMapper.insert(user);
+                updateSeller();
+                updateBuyer();
                 return new Result(ResultCode.SUCCESS, userMapper.selectOne(new QueryWrapper<SysUser>().eq("phone", paramsMap.get("phone"))));
             }
         } else {
@@ -373,6 +381,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 return new Result(10001, "实名手机号与当前手机号不一致", false);
             }
             userMapper.insert(user);
+            updateSeller();
+            updateBuyer();
             return new Result(10004, "待审核", false);
         }
     }
@@ -515,6 +525,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result add(SysUser sysUser, Long userId) {
 
         int account = this.count(new QueryWrapper<SysUser>().eq("account_num", sysUser.getAccountNum()));
@@ -527,6 +538,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUser.setPid(userId);
         sysUser.setPids(byId.getPids() + "," + userId);
         userMapper.insert(sysUser);
+        updateSeller();
+        updateBuyer();
         return new Result(10000, "添加成功", true);
     }
 
@@ -640,15 +653,77 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result listSeller() {
-        List<SysUser> seller = this.list(new QueryWrapper<SysUser>().in("user_type", 2, 3).eq("is_real_name", 1));
-        return new Result(ResultCode.SUCCESS, seller);
+        String seller = redisTemplate.opsForValue().get("subsidy:seller");
+        List<SysUser> sellerList;
+        if (org.apache.commons.lang.StringUtils.isEmpty(seller)){
+            System.out.println("-----------获取卖方数据库数据-----------");
+            sellerList = this.list(new QueryWrapper<SysUser>().in("user_type", 2, 3).eq("is_real_name", 1));
+            String sellers = JSON.toJSON(sellerList).toString();
+            try {
+                redisTemplate.opsForValue().set("subsidy:seller",sellers,2, TimeUnit.HOURS);
+                System.out.println("卖方缓存更新成功");
+            } catch (Exception e) {
+                System.out.println("卖方数据缓存失败");
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                e.printStackTrace();
+            }
+        }else {
+            System.out.println("-----------获取卖方缓存数据-----------");
+            sellerList = JSONObject.parseArray(seller,SysUser.class);
+        }
+        return new Result(ResultCode.SUCCESS, sellerList);
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result listBuyer() {
-        List<SysUser> buyer = this.list(new QueryWrapper<SysUser>().in("user_type", 3).eq("is_real_name", 1));
-        return new Result(ResultCode.SUCCESS, buyer);
+        String buyer = redisTemplate.opsForValue().get("subsidy:buyer");
+        List<SysUser> buyerList;
+        if (org.apache.commons.lang.StringUtils.isEmpty(buyer)){
+            System.out.println("-----------获取买方数据库数据-----------");
+            buyerList = this.list(new QueryWrapper<SysUser>().in("user_type", 3).eq("is_real_name", 1));
+            String buyers = JSON.toJSON(buyerList).toString();
+            try {
+                redisTemplate.opsForValue().set("subsidy:buyer",buyers,2, TimeUnit.HOURS);
+                System.out.println("买方缓存更新成功");
+            } catch (Exception e) {
+                System.out.println("买方数据缓存失败");
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                e.printStackTrace();
+            }
+        }else {
+            System.out.println("-----------获取买方缓存数据-----------");
+            buyerList = JSONObject.parseArray(buyer,SysUser.class);
+        }
+        return new Result(ResultCode.SUCCESS, buyerList);
+    }
+
+    public void updateSeller(){
+        List<SysUser> sellerList = this.list(new QueryWrapper<SysUser>().in("user_type", 3).eq("is_real_name", 1));
+        String sellers = JSON.toJSON(sellerList).toString();
+        try {
+            redisTemplate.opsForValue().set("subsidy:seller",sellers,2, TimeUnit.HOURS);
+            System.out.println("卖方缓存更新成功");
+        } catch (Exception e) {
+            System.out.println("卖方数据缓存失败");
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            e.printStackTrace();
+        }
+    }
+
+    public void updateBuyer(){
+        List<SysUser> buyerList = this.list(new QueryWrapper<SysUser>().in("user_type", 2, 3).eq("is_real_name", 1));
+        String buyers = JSON.toJSON(buyerList).toString();
+        try {
+            redisTemplate.opsForValue().set("subsidy:buyer",buyers,2, TimeUnit.HOURS);
+            System.out.println("买方缓存更新成功");
+        } catch (Exception e) {
+            System.out.println("买方数据缓存失败");
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            e.printStackTrace();
+        }
     }
 
 }