523096025 преди 2 години
родител
ревизия
1a6644cf21

+ 0 - 29
huimv-cattle/src/main/java/com/huimv/cattle/config/CorsConfig.java

@@ -1,29 +0,0 @@
-/*
-package com.huimv.cattle.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.reactive.CorsWebFilter;
-import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
-import org.springframework.web.util.pattern.PathPatternParser;
-
-@Configuration
-public class CorsConfig {
-
-*/
-/*
-    @Bean
-    public CorsWebFilter corsFilter() {
-        CorsConfiguration config = new CorsConfiguration();
-        config.addAllowedMethod("*");
-        config.addAllowedOrigin("*");
-        config.addAllowedHeader("*");
-        config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间内,对于相同的跨域请求不会再预检了
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
-        source.registerCorsConfiguration("/**", config);
-        return new CorsWebFilter(source);
-    }*//*
-
-}
-*/

+ 0 - 34
huimv-cattle/src/main/java/com/huimv/cattle/config/GlobalCorsConfig.java

@@ -1,34 +0,0 @@
-/*
-package com.huimv.cattle.config;
-
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import org.springframework.web.filter.CorsFilter;
-
-@Configuration
-public class GlobalCorsConfig {
- 
-    @Bean
-    public CorsFilter corsFilter() {
-        //1. 添加 CORS配置信息
-        CorsConfiguration config = new CorsConfiguration();
-        //放行哪些原始域
-        config.addAllowedOrigin("*");
-        //是否发送 Cookie
-        config.setAllowCredentials(true);
-        //放行哪些请求方式
-        config.addAllowedMethod("*");
-        //放行哪些原始请求头部信息
-        config.addAllowedHeader("*");
-        //暴露哪些头部信息
-        config.addExposedHeader("*");
-        //2. 添加映射路径
-        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
-        corsConfigurationSource.registerCorsConfiguration("/**",config);
-        //3. 返回新的CorsFilter
-        return new CorsFilter(corsConfigurationSource);
-    }
-}*/

+ 46 - 1
huimv-cattle/src/main/java/com/huimv/cattle/config/GlobalInterceptor.java

@@ -1,7 +1,12 @@
 package com.huimv.cattle.config;
 
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.common.token.TokenConstant;
+import com.huimv.common.token.TokenSign;
+import io.jsonwebtoken.Claims;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -9,6 +14,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @Project : huimv-breed
@@ -33,7 +40,45 @@ public class GlobalInterceptor implements HandlerInterceptor {
 //            writer.write("不能直连服务接口,必须请求gateway网关转发.");
 //            return false;
 //        }
-        return true;
+        //        return true;
+        if (!(obj instanceof HandlerMethod)) {
+            return true;
+        } else {
+            response.setContentType("application/json;charset=utf-8");
+            String token = request.getHeader("accessToken");
+            System.out.println(token);
+            if (StringUtils.isBlank(token) ) {
+                Map<String, Object> map = new HashMap();
+                map.put("data", "token is null");
+                map.put("code", "401");
+                response.setStatus(401);
+                response.getWriter().write(JSONObject.toJSONString(map));
+                return false;
+            } else {
+                Claims claims = TokenSign.getClaims(token);
+                if (claims == null) {
+                    Map<String, Object> map = new HashMap();
+                    map.put("data", "token is overdue");
+                    map.put("code", "403");
+                    response.setStatus(403);
+                    response.getWriter().write(JSONObject.toJSONString(map));
+                    return false;
+                } else {
+                    boolean result = TokenSign.verify(token);
+                    if (result) {
+                        TokenConstant.updateTokenMap(token);
+                        return true;
+                    } else {
+                        Map<String, Object> map = new HashMap();
+                        map.put("data", "token is null");
+                        map.put("code", "401");
+                        response.setStatus(401);
+                        response.getWriter().write(JSONObject.toJSONString(map));
+                        return false;
+                    }
+                }
+            }
+        }
     }
 
     //    @Override

+ 4 - 3
huimv-cattle/src/main/java/com/huimv/cattle/config/WebConfig.java

@@ -24,8 +24,9 @@ public class WebConfig implements WebMvcConfigurer {
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(globalInterceptor())
                 .addPathPatterns("/**")
-                .excludePathPatterns("/admin/v1.0.0/account/login",
-                        "/admin/v1.0.0/account/logout",
-                        "/admin/v1.0.0/account/loginApp");
+                .excludePathPatterns("/v1.0.0/account/login",
+                        "/v1.0.0/account/logout",
+                        "/v1.0.0/account/loginApp",
+                        "/v1.0.0/account/loginScreen");
     }
 }

+ 28 - 4
huimv-cattle/src/main/java/com/huimv/cattle/controller/SalesCattleController.java

@@ -8,12 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.cattle.pojo.DataSource;
 import com.huimv.cattle.pojo.PreventDetection;
 import com.huimv.cattle.pojo.SalesCattle;
+import com.huimv.cattle.pojo.SysFarm;
 import com.huimv.cattle.pojo.vo.SalesCattleVo;
 import com.huimv.cattle.service.DataSourceService;
 import com.huimv.cattle.service.SalesCattleService;
+import com.huimv.cattle.service.SysFarmService;
 import com.huimv.cattle.utils.FarmCodeUtils;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -44,6 +47,8 @@ import java.util.Map;
 public class SalesCattleController {
     @Autowired
     private SalesCattleService salesCattleService;
+    @Autowired
+    private SysFarmService farmService;
     @Resource
     private DataSourceService dataSourceService;
     @Resource
@@ -88,23 +93,42 @@ public class SalesCattleController {
             //view=2,显示镇汇总数据
             if (dataSource.getDsStatus() == 1) {
                 //status=1,显示镇汇总(手填)数据
-                return   salesCattleService.getSalesCattle(farmCode);
+                return   salesCattleService.getAllSaleCattle(farmCode);
             } else {
                 //status=2,显示镇汇总(养殖云)数据
                 System.out.println("status=2,显示镇汇总(养殖云)数据");
-                return getSalesByDivision(farmCode);
+               String farmCodes =   getFarmCodeByAdcode(farmCode);
+               if (StringUtils.isBlank(farmCodes)){
+                   return new Result(ResultCode.SUCCESS,new ArrayList<>());
+               }
+                return getSalesByDivision(farmCodes);
+            }
+        }
+    }
 
+    private String getFarmCodeByAdcode(String farmCode) {
+        String adcode  = "620826";
+        if (!"0".equals(farmCode)){
+            SysFarm list = farmService.getOne(new QueryWrapper<SysFarm>().eq("farm_code", farmCode));
+            if (ObjectUtil.isNotEmpty(list)){
+                String[] split = list.getAdcode().split(",");
+                adcode =  split[split.length-1];
             }
         }
+        String remoteUrl = "http://123.60.134.84:10001/admin/v1.0.0/account/getFarmCodeByAdcode";
+        Map map = new HashMap();
+        map.put("adcode",adcode);
+        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity(remoteUrl, map, String.class);
+        return stringResponseEntity.getBody();
     }
 
-    private Result getSalesByDivision(String  farmCode) {
+    private Result getSalesByDivision(String  farmCodes) {
         HttpHeaders httpHeaders = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
         httpHeaders.setContentType(type);
         HashMap<String, Object> map = new HashMap<>();
         //这里提交的是区县编码或乡镇编码
-        map.put("farmCode", farmCode);
+        map.put("farmCodes", farmCodes);
         HttpEntity<Map<String, Object>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
         //读取真实数据
         String remoteUrl = "http://123.60.134.84:10001/breed/api/v1.0.0/cattle/getSalesByDivision";

+ 0 - 1
huimv-cattle/src/main/java/com/huimv/cattle/controller/StockController.java

@@ -77,7 +77,6 @@ public class StockController {
             System.out.println(body);
             JSONObject dataJo = JSON.parseObject(body).getJSONObject("data");
             System.out.println("dataJo="+dataJo);
-            //, )
             return new Result(ResultCode.SUCCESS,dataJo);
         }else{
             return new Result(ResultCode.FAIL,"调取远程数据出错.");

+ 4 - 0
huimv-cattle/src/main/java/com/huimv/cattle/controller/SysUserAccountController.java

@@ -34,6 +34,10 @@ public class SysUserAccountController {
         return sysUserAccountService.loginApp(request,paramsMap);
     }
 
+    @PostMapping("/loginScreen")
+    public Result loginScreen(HttpServletRequest request, @RequestBody Map<String, String> paramsMap){
+        return sysUserAccountService.loginScreen(request,paramsMap);
+    }
     @PostMapping("/logout")
     public Result logout(HttpServletRequest request, @RequestBody Map<String, String> paramsMap){
 //        return sysUserAccountService.logout(request,paramsMap);

+ 8 - 0
huimv-cattle/src/main/java/com/huimv/cattle/mapper/SalesCattleMapper.java

@@ -1,7 +1,13 @@
 package com.huimv.cattle.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.huimv.cattle.pojo.OutStock;
 import com.huimv.cattle.pojo.SalesCattle;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface SalesCattleMapper extends BaseMapper<SalesCattle> {
 
+    List<SalesCattle> geaAllSaleCattle(@Param(Constants.WRAPPER) QueryWrapper<SalesCattle> wrapper);
+
 }

+ 4 - 0
huimv-cattle/src/main/java/com/huimv/cattle/mapper/xml/SalesCattleMapper.xml

@@ -17,5 +17,9 @@
     <sql id="Base_Column_List">
         id, year, quarter_name, quarter, sales_count, sales_money
     </sql>
+    <select id="geaAllSaleCattle" resultType="com.huimv.cattle.pojo.SalesCattle">
+        SELECT id, `year`,quarter_name ,`quarter` ,SUM(sales_count)  salesCount,SUM(sales_money) salesMoney, farm_code FROM `sales_cattle`
+    ${ew.customSqlSegment}
+    </select>
 
 </mapper>

+ 2 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/SalesCattleService.java

@@ -15,4 +15,6 @@ import com.huimv.common.utils.Result;
 public interface SalesCattleService extends IService<SalesCattle> {
 
     Result getSalesCattle(String farmCode);
+
+    Result getAllSaleCattle(String farmCode);
 }

+ 2 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/SysUserAccountService.java

@@ -37,4 +37,6 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
     Result listPlatformUserAndFarmAdmin(HttpServletRequest request, Map<String, String> paramsMap) throws ParseException;
 
     Result resetMyPassword(HttpServletRequest request, Map<String, String> paramsMap);
+
+    Result loginScreen(HttpServletRequest request, Map<String, String> paramsMap);
 }

+ 10 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/SalesCattleServiceImpl.java

@@ -35,4 +35,14 @@ public class SalesCattleServiceImpl extends ServiceImpl<SalesCattleMapper, Sales
         }
         return new Result(ResultCode.SUCCESS,list);
     }
+
+    @Override
+    public Result getAllSaleCattle(String farmCode) {
+        QueryWrapper<SalesCattle> wrapper = new QueryWrapper<SalesCattle>().orderByDesc("year").orderByDesc("quarter").groupBy("year ").groupBy("quarter");
+        List<SalesCattle> list = salesCattleMapper.geaAllSaleCattle(wrapper);
+        if (ObjectUtil.isEmpty(list)){
+            return new Result(ResultCode.SUCCESS,new ArrayList<>());
+        }
+        return new Result(ResultCode.SUCCESS,list);
+    }
 }

+ 0 - 3
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/SysMenuServiceImpl.java

@@ -171,9 +171,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     @Override
     public List<String>  getMyButton(HttpServletRequest request,Map<String, String> paramMap) {
         Integer userId = TokenSign.getMemberIdByJwtToken(request);
-        if (ObjectUtil.isEmpty(userId)){
-            throw new MiException(ExceptionEnum.TOKEN_NULL);
-        }
         if ( 1 == userId){
             List<SysMenu> menus = sysMenuMapper.selectList(null);
             List<String> list = new ArrayList<>();

+ 61 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/SysUserAccountServiceImpl.java

@@ -471,4 +471,65 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
     }
 
+    @Override
+    public Result loginScreen(HttpServletRequest request, Map<String, String> paramsMap) {
+        String accountName = paramsMap.get("accountName");
+        String password = paramsMap.get("password");
+        String remoteHost = request.getRemoteHost();
+
+        QueryWrapper<SysUserAccount> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account_name", accountName).eq("password", password).eq("account_class",1);
+        SysUserAccount resultSysUserAccount = sysUserAccountMapper.selectOne(queryWrapper);
+        System.out.println("sysUserAccount=" + resultSysUserAccount);
+        if (resultSysUserAccount == null) {
+            //账号、密码错误
+            return new Result(ConstUtil.ERR_NO_EXIST_CODE, ConstUtil.ERR_NO_EXIST_INFO, false);
+        }
+        if (resultSysUserAccount.getLoginStatus() == 0) {
+            //牧场状态不能为中止服务状态(0)
+            return new Result(ConstUtil.ERR_FARM_TIMEOUT_CODE, ConstUtil.ERR_FARM_TIMEOUT_INFO, false);
+        } else if (resultSysUserAccount.getLoginStatus() == 2) {
+            //牧场状态不能为注销状态(2)
+            return new Result(ConstUtil.ERR_FARM_CANCEL_CODE, ConstUtil.ERR_FARM_CANCEL_INFO, false);
+        }
+
+        //判断服务状态
+        Integer accountClass = resultSysUserAccount.getAccountClass();
+        if (accountClass == 2) {
+            Date now = new Date();
+            List<SysFarmService> farmServices = farmServiceMapper.selectList(new QueryWrapper<SysFarmService>().eq("farm_code", resultSysUserAccount.getFarmCode()).ge("end_date", now).le("start_date", now));
+            if (ObjectUtil.isEmpty(farmServices)) {
+                return new Result(ConstUtil.ERR_FARM_OVERDUE_CODE, ConstUtil.ERR_FARM_OVERDUE_INFO, false);
+            }
+        }
+
+        //--更新当前登录状态 --//
+        resultSysUserAccount.setLoginTime(new Date());
+        sysUserAccountMapper.updateById(resultSysUserAccount);
+
+        //将当前账号加入到set集合当中(退出时从该集合删除该账号信息)
+//        _createLoginStatus(accountName);
+
+        //-- 构造token --//
+        AccessToken accessToken = new AccessToken();
+        Long id = resultSysUserAccount.getId();
+        String farmCode = resultSysUserAccount.getFarmCode();
+        accessToken.setAccountName(accountName);
+        accessToken.setCreated(new Date());
+        accessToken.setCode(null);
+        accessToken.setMessage("");
+        accessToken.setFarmId(farmCode);
+        System.out.println("login.farmCode >>>>>>>>>>>>>>>>>>> " + farmCode);
+        //构造token
+        String token = TokenSign.sign(accountName, id, farmCode, "");
+        accessToken.setToken(token);
+        accessToken.setId(id.intValue());
+        accessToken.setLoginIp(remoteHost);
+        accessToken.setUserName(resultSysUserAccount.getUserName());
+        accessToken.setType(null);
+        accessToken.setAccontClass(resultSysUserAccount.getAccountClass());
+        return new Result(ResultCode.SUCCESS, accessToken);
+
+    }
+
 }