Commit 449947fd authored by liqin's avatar liqin 💬

bug fixed

parent e48b9566
......@@ -54,6 +54,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- 配置项直接生成对象依赖 -->
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>-->
<!-- MyBatis Starter -->
<dependency>
......@@ -146,14 +152,8 @@
<artifactId>java-jwt</artifactId>
<version>3.14.0</version>
</dependency>
<!-- Shiro-Redis Cache Plugin -->
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis-spring-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<!-- Shiro Authentication And Authorization -->
<!--<dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.7.1</version>
......@@ -174,14 +174,13 @@
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>-->
<!-- shiro dependency-->
</dependency>
<!-- Shiro-Redis Cache Plugin -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-web-starter</artifactId>
<version>1.6.0</version>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>2.4.2.1-RELEASE</version>
</dependency>
<!-- Chinese ideograph To PinYin -->
<dependency>
<groupId>com.github.stuxuhai</groupId>
......
......@@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
//@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class Application {
......
......@@ -13,9 +13,11 @@ import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSource
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.crazycake.shiro.RedisCacheManager;
import org.crazycake.shiro.RedisManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
......@@ -36,8 +38,17 @@ public class ShiroConfig {
@Resource
private PermissionInitService permissionInitService;
@Resource
private RedisCacheManager redisCacheManager;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.timeout}")
private int timeout;
@Value("${spring.redis.password}")
private String password;
/**
* ShiroFilterFactoryBean 处理拦截资源文件问题。
......@@ -90,7 +101,7 @@ public class ShiroConfig {
// 设置realm
securityManager.setRealm(myShiroRealm());
// 自定义缓存实现 使用redis
securityManager.setCacheManager(redisCacheManager);
securityManager.setCacheManager(redisCacheManager());
// 关闭shiro自带的session
DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
......@@ -115,7 +126,7 @@ public class ShiroConfig {
* 主要是AuthorizingRealm类的子类,以及EhCacheManager类。 Shiro生命周期处理器
*/
@Bean
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
public static LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
logger.info("ShiroConfiguration.getLifecycleBeanPostProcessor()");
return new LifecycleBeanPostProcessor();
}
......@@ -146,4 +157,32 @@ public class ShiroConfig {
return authorizationAttributeSourceAdvisor;
}
/**
* 配置shiro redisManager
* <p>
* 使用的是shiro-redis开源插件
*
* @return
*/
public RedisManager redisManager() {
RedisManager redisManager = new RedisManager();
redisManager.setHost(host);
redisManager.setPort(port);
redisManager.setExpire(14400);// 配置缓存过期时间
redisManager.setTimeout(timeout);
redisManager.setPassword(password);
return redisManager;
}
/**
* 用户授权信息Cache, 采用Redis
*
* @return
*/
public RedisCacheManager redisCacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager();
redisCacheManager.setRedisManager(redisManager());
return redisCacheManager;
}
}
package cn.wisenergy.chnmuseum.party.service;
import cn.wisenergy.chnmuseum.party.common.util.DateUtil80;
import cn.wisenergy.chnmuseum.party.model.HttpResult;
import cn.wisenergy.chnmuseum.party.model.PageViewRecord;
import cn.wisenergy.chnmuseum.party.model.PageViews;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Service
public class PublicService {
@Resource
private RestTemplate restTemplate;
@Value("${GET_ACCESSTOKEN}")
private String GET_ACCESSTOKEN;
@Value("${CLIENT_ID}")
private String CLIENT_ID;
@Value("${CLIENT_SECRET}")
private String CLIENT_SECRET;
@Resource
private StringRedisTemplate hashRedisTemplate;
@Resource
private RedisTemplate redisTemplate;
......@@ -49,81 +24,6 @@ public class PublicService {
@Resource
private IPageViewsService pageViewsService;
/**
* 获取access_token
*/
public HttpResult getAccessToken() {
StringBuilder url = new StringBuilder(GET_ACCESSTOKEN);
url.append("OAuth/token");
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("grant_type", "client_credentials");
requestEntity.add("client_id", CLIENT_ID);
requestEntity.add("client_secret", CLIENT_SECRET);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
System.out.println(url.toString());
return restTemplate.postForObject(url.toString(), requestEntity, HttpResult.class);
}
/**
*刷新access_token,暂时注释,目前不需要用到
*//*
public HttpResult refreshAccessToken(String refreshToken){
StringBuilder url = new StringBuilder(GET_ACCESSTOKEN);
url.append("OAuth/token");
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("grant_type","refresh_token");
requestEntity.add("refresh_token", refreshToken);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
System.out.println(url.toString());
return restTemplate.postForObject(url.toString(), requestEntity, HttpResult.class);
}*/
/**
* 发送消息对接招呼
*/
@PostMapping(value = "/sendMessage")
public void sendMessage(String zhCnt, String recUsrNbr) {
String key = "CMB_ACCESS_TOKEN";
HttpResult token;
//调用接口凭证
String access_token = "";
if (hashRedisTemplate.hasKey(key)) {
access_token = hashRedisTemplate.opsForValue().get(key);
} else {
token = this.getAccessToken();
access_token = token.getAccess_token();
String expires_in = token.getExpires_in();
Long expire = Long.valueOf(expires_in) - 360L;
hashRedisTemplate.opsForValue().set(key, access_token);
hashRedisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
//发送人CIP号,8位,如01014760
String sedUsrNbr = "01146666";
//发送人姓名
String sedUsrNam = "于思倢";
//不必传 设定发送时间(14位数字)
// Date sedExpTim = new Date(System.currentTimeMillis());
//根据URL传递内容
StringBuilder url = new StringBuilder(GET_ACCESSTOKEN);
url.append("api/Servers/SendZhMessageText?access_token=");
url.append(access_token);
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("recUsrNbr", recUsrNbr);
requestEntity.add("sedUsrNbr", sedUsrNbr);
requestEntity.add("sedUsrNam", sedUsrNam);
requestEntity.add("zhCnt", zhCnt);
// requestEntity.add("sedExpTim", sedExpTim);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
System.out.println(url.toString());
restTemplate.postForObject(url.toString(), requestEntity, HttpResult.class);
}
/**
* 缓存页面访问量数据,超过5分钟或者数据量超过10条时直接插入数据库
*
......
......@@ -2,7 +2,6 @@ package cn.wisenergy.chnmuseum.party.web.controller;
import cn.wisenergy.chnmuseum.party.model.DemandInfo;
import cn.wisenergy.chnmuseum.party.model.Employee;
import cn.wisenergy.chnmuseum.party.service.PublicService;
import cn.wisenergy.chnmuseum.party.service.impl.DemandInfoServiceImpl;
import cn.wisenergy.chnmuseum.party.service.impl.EmployeeServiceImpl;
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
......@@ -17,7 +16,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
......@@ -47,12 +45,6 @@ public class DemandInfoController extends BaseController {
@Resource
private DemandInfoServiceImpl demandInfoService;
@Value("${CMB_FEEDBACK_URL}")
private String CMB_FEEDBACK_URL;
@Resource
private PublicService publicService;
@Resource
private EmployeeServiceImpl employeeService;
......@@ -188,7 +180,7 @@ public class DemandInfoController extends BaseController {
//吐槽建议
zhCnt = "客户" + demandInfo.getLineNumber() + "号("
+ demandInfo.getPhoneNumber() + ")有吐槽建议,请及时反馈改进,"
+ "并点击链接" + CMB_FEEDBACK_URL + demandInfo.getId() + "&personId=" + personId + "及时回复客户。";
+ "并点击链接" + demandInfo.getId() + "&personId=" + personId + "及时回复客户。";
} else if (demandInfo.getType() == 2) {
//呼叫大堂
zhCnt = "客户" + demandInfo.getLineNumber() + "号("
......@@ -197,8 +189,6 @@ public class DemandInfoController extends BaseController {
}
logger.info(zhCnt);
//发送消息给大堂主管
this.publicService.sendMessage(zhCnt, recUsrNbr);
}
// 201
resultMap.put("status", 201);
......
......@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -17,7 +16,6 @@ import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.servlet.http.HttpServletResponse;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Map;
......@@ -37,22 +35,6 @@ public class PublicController extends BaseController {
private static final Logger logger = LoggerFactory.getLogger(PublicController.class);
@Value("${CMB_HOME_URL}")
private String CMB_HOME_URL;
@Value("${CMB_CORPKEY}")
private String CMB_CORPKEY;
/**
* 返回首页方法
*/
@GetMapping(value = "/backHomepage")
public void backHomepage(HttpServletResponse response, String userId, String bankId, String timeStamp) throws Exception {
logger.info(CMB_HOME_URL + "?userId=" + userId + "&bankId=" + bankId);
response.sendRedirect(CMB_HOME_URL + "?userId=" + userId + "&bankId=" + bankId + "&showtopbar=false");
}
/**
* 解密
*
......
......@@ -9,7 +9,7 @@ cacheManager.principalIdFieldName = id
mybatis-plus.check-config-location=true
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=cn.wisenergy.chnmuseum.party.model.**
mybatis-plus.global-config.db-config.id-type=assign_id
mybatis-plus.global-config.db-config.logic-delete-value=-1
......@@ -70,9 +70,6 @@ spring.mvc.converters.preferred-json-mapper=fastjson
spring.profiles.active=dev
spring.thymeleaf.mode=HTML
spring.thymeleaf.cache=false
shiro-redis.enabled=true
shiro-redis.redis-manager.host=192.168.110.93
shiro-redis.redis-manager.password=147258369
########################################################
###Log
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="BankBranchInfoMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.BankBranchInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="BankBranchInfo">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="BusinessInfoMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.BusinessInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="BusinessInfo">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="DemandInfoMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.DemandInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="DemandInfo">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="EmployeeMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.EmployeeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="Employee">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="EmployeeRoleMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.EmployeeRoleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="EmployeeRole">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="HotProductActivityMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.HotProductActivityMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="HotProductActivity">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="HotSpotMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.HotSpotMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="HotSpot">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="IndexMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.IndexMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="Index">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="MenuMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.MenuMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="Menu">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="PageViewRecordMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.PageViewRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="PageViewRecord">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="PageViewsMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.PageViewsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="PageViews">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="PermissionInitMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.PermissionInitMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="PermissionInit">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="PermissionMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.PermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="Permission">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="ProductAppointmentRecordMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.ProductAppointmentRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="ProductAppointmentRecord">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="RoleMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.RoleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="Role">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="RoleMenuMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.RoleMenuMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="RoleMenu">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="RolePermissionMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.RolePermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="RolePermission">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="SysLogMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.SysLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="SysLog">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="sResponseXmlMapper">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.sResponseXmlMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="sResponseXml">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment