提交 901372ef 编写于 作者: minghao.wu's avatar minghao.wu

feature: redis集群切换,支持传入活动id

上级 a5b1f5ef
流水线 #3061 已通过 于阶段
in 8 second
package com.pica.cloud.online.exam.analysis.common; package com.pica.cloud.online.exam.analysis.common;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.pica.cloud.foundation.redis.RedisClient;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -25,14 +24,4 @@ public class CommonUtils { ...@@ -25,14 +24,4 @@ public class CommonUtils {
} }
return JSON.parseObject(JSON.toJSONString(map), PicaUser.class); return JSON.parseObject(JSON.toJSONString(map), PicaUser.class);
} }
public static PicaUser getUserByToken(RedisClient client, String token) {
PicaUser picaUser = null;
try {
picaUser = CommonUtils.getUser(client.getToken(token));
} catch (Exception e) {
logger.error("根据token获取user失败:" + token);
}
return picaUser;
}
} }
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<dependency> <dependency>
<groupId>com.pica.cloud.foundation</groupId> <groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-utils</artifactId> <artifactId>pica-cloud-utils</artifactId>
<version>1.0.7-SNAPSHOT</version> <version>2.0.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -101,17 +101,15 @@ ...@@ -101,17 +101,15 @@
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version> <version>2.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pica.cloud.foundation</groupId> <groupId>redis.clients</groupId>
<artifactId>pica-cloud-redis</artifactId> <artifactId>jedis</artifactId>
<version>1.1.2</version> <version>2.9.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pica.cloud.foundation</groupId> <groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-utils</artifactId> <artifactId>pica-cloud-redis</artifactId>
<version>1.0.7-SNAPSHOT</version> <version>1.2.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
...@@ -138,10 +136,6 @@ ...@@ -138,10 +136,6 @@
<version>5.1.39</version> <version>5.1.39</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
...@@ -154,11 +148,6 @@ ...@@ -154,11 +148,6 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-utils</artifactId>
<version>1.0.7-SNAPSHOT</version>
</dependency>
<dependency> <dependency>
<groupId>com.dianping.cat</groupId> <groupId>com.dianping.cat</groupId>
<artifactId>cat-core</artifactId> <artifactId>cat-core</artifactId>
......
...@@ -9,10 +9,10 @@ import org.springframework.cloud.netflix.feign.EnableFeignClients; ...@@ -9,10 +9,10 @@ import org.springframework.cloud.netflix.feign.EnableFeignClients;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableCircuitBreaker @EnableCircuitBreaker
@SpringBootApplication @SpringBootApplication(scanBasePackages = "com.pica.cloud")
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableSwagger2 @EnableSwagger2
@EnableFeignClients @EnableFeignClients(basePackages = "com.pica.cloud")
@MapperScan("com.pica.cloud.online.exam.analysis.server.mapper") @MapperScan("com.pica.cloud.online.exam.analysis.server.mapper")
public class App { public class App {
public static void main( String[] args ) public static void main( String[] args )
......
package com.pica.cloud.online.exam.analysis.server.configuration; package com.pica.cloud.online.exam.analysis.server.configuration;
import com.pica.cloud.foundation.redis.CacheMigrateClient;
import com.pica.cloud.foundation.redis.ICacheClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.pica.cloud.foundation.redis.RedisClient;
@Configuration @Configuration
@RefreshScope @RefreshScope
public class BeanConfiguration { public class BeanConfiguration {
@Autowired
private SpringContextAware springContextAware;
@Value("${spring.redis.config}") @Value("${spring.redis.config}")
private String configStr; private String configStr;
@Bean @Bean
public RedisClient redisClient() { @ConditionalOnMissingBean
System.out.println(configStr); public ICacheClient cacheClient() {
return new CacheMigrateClient(springContextAware.getActiveProfile());
return new RedisClient(configStr);
} }
} }
package com.pica.cloud.online.exam.analysis.server.configuration;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @author wuminghao
* @date 2018/12/27 14:11
*/
@Component
public class SpringContextAware implements ApplicationContextAware {
private ApplicationContext context = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.context = applicationContext;
}
public String getActiveProfile() {
return context.getEnvironment().getActiveProfiles()[0];
}
}
...@@ -5,13 +5,12 @@ import com.dianping.cat.Cat; ...@@ -5,13 +5,12 @@ import com.dianping.cat.Cat;
import com.dianping.cat.message.Transaction; import com.dianping.cat.message.Transaction;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.redis.RedisClient; import com.pica.cloud.foundation.utils.annotation.LoginPermission;
import com.pica.cloud.foundation.utils.controller.BaseController;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.online.exam.analysis.common.CommonUtils;
import com.pica.cloud.online.exam.analysis.common.constants.CommonConstants; import com.pica.cloud.online.exam.analysis.common.constants.CommonConstants;
import com.pica.cloud.online.exam.analysis.common.dto.*; import com.pica.cloud.online.exam.analysis.common.dto.*;
import com.pica.cloud.online.exam.analysis.common.util.ReturnUtil; import com.pica.cloud.online.exam.analysis.common.util.ReturnUtil;
import com.pica.cloud.online.exam.analysis.server.client.IConfigServiceClient;
import com.pica.cloud.online.exam.analysis.server.configuration.PropertiesConfiguration; import com.pica.cloud.online.exam.analysis.server.configuration.PropertiesConfiguration;
import com.pica.cloud.online.exam.analysis.server.entity.*; import com.pica.cloud.online.exam.analysis.server.entity.*;
import com.pica.cloud.online.exam.analysis.server.service.AntiSpamService; import com.pica.cloud.online.exam.analysis.server.service.AntiSpamService;
...@@ -19,16 +18,16 @@ import com.pica.cloud.online.exam.analysis.server.service.CHCAnalysisService; ...@@ -19,16 +18,16 @@ import com.pica.cloud.online.exam.analysis.server.service.CHCAnalysisService;
import com.pica.cloud.online.exam.analysis.server.service.CHCRankingListService; import com.pica.cloud.online.exam.analysis.server.service.CHCRankingListService;
import com.pica.cloud.online.exam.analysis.server.service.DoctorService; import com.pica.cloud.online.exam.analysis.server.service.DoctorService;
import com.pica.cloud.online.exam.analysis.server.utils.DateUtils; import com.pica.cloud.online.exam.analysis.server.utils.DateUtils;
import com.pica.cloud.foundation.redis.ICacheClient;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import javassist.bytecode.ExceptionsAttribute;
import org.omg.CORBA.INTERNAL;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.ws.rs.Path;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -40,31 +39,21 @@ import java.util.List; ...@@ -40,31 +39,21 @@ import java.util.List;
*/ */
@RestController @RestController
@RequestMapping("/") @RequestMapping("/")
@Api(value = "题目分析接口", description = "查看活动及详情,用户点赞、医生回复") public class AnalysisController extends BaseController {
public class AnalysisController {
private static Logger logger = LoggerFactory.getLogger(AnalysisController.class); private static Logger logger = LoggerFactory.getLogger(AnalysisController.class);
@Qualifier("cacheMigrateClient")
@Autowired @Autowired
private RedisClient redisClient; private ICacheClient redisClient;
@Autowired
private LoadBalancerClient slb;
@Autowired
private IConfigServiceClient client;
@Autowired @Autowired
private CHCAnalysisService analysisService; private CHCAnalysisService analysisService;
@Autowired @Autowired
private DoctorService doctorService; private DoctorService doctorService;
@Autowired @Autowired
private AntiSpamService antiSpamService; private AntiSpamService antiSpamService;
@Autowired @Autowired
private CHCRankingListService rankingListService; private CHCRankingListService rankingListService;
@Autowired @Autowired
private PropertiesConfiguration propertiesConfiguration; private PropertiesConfiguration propertiesConfiguration;
...@@ -81,59 +70,17 @@ public class AnalysisController { ...@@ -81,59 +70,17 @@ public class AnalysisController {
} }
@ApiOperation(value = "获取活动详情", response = PicaResponse.class) @ApiOperation(value = "获取活动详情", response = PicaResponse.class)
@RequestMapping(value = "/activityDetail", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @RequestMapping(value = {"/activityDetail", "/activityDetail/{id}"}, method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public PicaResponse<CHCAnalysisDto> getActivityDetail(@RequestParam(required = false) Integer id, public PicaResponse<CHCAnalysisDto> getActivityDetail(@PathVariable(required = false) Integer id,
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/activityDetail");
PicaResponse.Builder<CHCAnalysisDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<CHCAnalysisDto> builder = new PicaResponse.Builder<>();
/** PicaUser user = null;
* 如果不传活动id进来,活动id就用1
*/
id = (id == null ? CHC_ANALYSIS_ID : id);
try { try {
CHCAnalysisDto analysisDto = analysisService.getCHCAnalysisDtoById(id); user = fetchPicaUser();
PicaUser user = null;
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
if (rankingListService.isRankingInTop200(user != null ? user.getId() : 0)) {
analysisDto.setIsJoinIn(1);
} else {
analysisDto.setIsJoinIn(0);
}
List<AnalysisRoundDto> roundList = analysisService.getRoundListByAnalysisId(id);
/**
* chc活动固定返回两轮, 将第一轮设置为所有
*/
if (roundList.size() > 0) {
roundList.get(0).setRoundId(-1);
}
/**
* 如果是最后一起, 补上最后一期 和前端约定为-2
*/
if (roundList.size() == 1) {
AnalysisRoundDto analysisRoundDto = new AnalysisRoundDto();
analysisRoundDto.setRoundId(-2);
roundList.add(analysisRoundDto);
}
analysisDto.setRoundList(roundList);
builder.setData(analysisDto);
t.setStatus(Transaction.SUCCESS);
} catch (Exception e) { } catch (Exception e) {
logger.error("getActivityDetail", e);
t.setStatus(e);
Cat.logError(e);
} }
t.complete(); builder.setData(analysisService.getActivityDetail(id == null ? CHC_ANALYSIS_ID : id, user));
return builder.build(); return builder.build();
} }
...@@ -197,10 +144,7 @@ public class AnalysisController { ...@@ -197,10 +144,7 @@ public class AnalysisController {
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/replyList"); Transaction t = Cat.newTransaction("Link", "/replyList");
PicaUser user = null; PicaUser user = fetchPicaUser();
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
PicaResponse.Builder<ExamTitleReplyDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<ExamTitleReplyDto> builder = new PicaResponse.Builder<>();
...@@ -264,10 +208,7 @@ public class AnalysisController { ...@@ -264,10 +208,7 @@ public class AnalysisController {
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/replyDetail"); Transaction t = Cat.newTransaction("Link", "/replyDetail");
PicaUser user = null; PicaUser user = fetchPicaUser();
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>();
...@@ -326,11 +267,7 @@ public class AnalysisController { ...@@ -326,11 +267,7 @@ public class AnalysisController {
Transaction t = Cat.newTransaction("Link", "/replyDetailByExamTitleId"); Transaction t = Cat.newTransaction("Link", "/replyDetailByExamTitleId");
logger.info("replyDetailByExamTitleId: examTitleId == " + examTitleId.toString() + ", token=" + token); logger.info("replyDetailByExamTitleId: examTitleId == " + examTitleId.toString() + ", token=" + token);
PicaUser user = null; PicaUser user = fetchPicaUser();
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>();
...@@ -385,16 +322,14 @@ public class AnalysisController { ...@@ -385,16 +322,14 @@ public class AnalysisController {
return builder.build(); return builder.build();
} }
@LoginPermission
@ApiOperation(value = "点赞", response = PicaResponse.class) @ApiOperation(value = "点赞", response = PicaResponse.class)
@RequestMapping(value = "/starReply/{replyId}/analysis/{analysisId}/round/{roundId}/examTitle/{examTitleId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @RequestMapping(value = "/starReply/{replyId}/analysis/{analysisId}/round/{roundId}/examTitle/{examTitleId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public PicaResponse starReply(@PathVariable("analysisId") Integer analysisId, @PathVariable("roundId") Integer roundId, public PicaResponse starReply(@PathVariable("analysisId") Integer analysisId, @PathVariable("roundId") Integer roundId,
@PathVariable("examTitleId") Integer examTitleId, @PathVariable("replyId") Integer replyId, @PathVariable("examTitleId") Integer examTitleId, @PathVariable("replyId") Integer replyId,
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
if (token == null) {
return ReturnUtil.getPicaResponse(PicaResultCode.SYSTEM_NO_TOKEN);
}
PicaUser user = CommonUtils.getUserByToken(redisClient, token); PicaUser user = fetchPicaUser();
if (user == null || user.getId().intValue() == 0) { if (user == null || user.getId().intValue() == 0) {
logger.info("starrecord: user == null, token=" + token); logger.info("starrecord: user == null, token=" + token);
...@@ -433,21 +368,12 @@ public class AnalysisController { ...@@ -433,21 +368,12 @@ public class AnalysisController {
return ReturnUtil.getPicaResponse(PicaResultCode.SUCCESS); return ReturnUtil.getPicaResponse(PicaResultCode.SUCCESS);
} }
@LoginPermission
@ApiOperation(value = "取消点赞", response = PicaResponse.class) @ApiOperation(value = "取消点赞", response = PicaResponse.class)
@RequestMapping(value = "/cancelStar/{replyId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @RequestMapping(value = "/cancelStar/{replyId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public PicaResponse cancelStar( @PathVariable("replyId") Integer replyId, public PicaResponse cancelStar( @PathVariable("replyId") Integer replyId,
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
if (token == null) { PicaUser user = fetchPicaUser();
return ReturnUtil.getPicaResponse(PicaResultCode.SYSTEM_NO_TOKEN);
}
PicaUser user = CommonUtils.getUserByToken(redisClient, token);
if (user == null || user.getId().intValue() == 0) {
logger.info("cancelStar: user == null, token=" + token);
return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
}
logger.info("cancelStar: replyid=" + replyId.toString() + " token=" + token); logger.info("cancelStar: replyid=" + replyId.toString() + " token=" + token);
if (0 != analysisService.removeStarRecord(replyId, user.getId())) { if (0 != analysisService.removeStarRecord(replyId, user.getId())) {
...@@ -461,15 +387,9 @@ public class AnalysisController { ...@@ -461,15 +387,9 @@ public class AnalysisController {
@RequestMapping(value = "/nextExamTitle/{examTitleId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @RequestMapping(value = "/nextExamTitle/{examTitleId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public PicaResponse<ExamTitleReplyDto> nextReplyList(@PathVariable("examTitleId") Integer examTitleId, public PicaResponse<ExamTitleReplyDto> nextReplyList(@PathVariable("examTitleId") Integer examTitleId,
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/nextExamTitle"); Transaction t = Cat.newTransaction("Link", "/nextExamTitle");
PicaUser user = null; PicaUser user = fetchPicaUser();
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
PicaResponse.Builder<ExamTitleReplyDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<ExamTitleReplyDto> builder = new PicaResponse.Builder<>();
try { try {
...@@ -522,13 +442,7 @@ public class AnalysisController { ...@@ -522,13 +442,7 @@ public class AnalysisController {
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/nextReply"); Transaction t = Cat.newTransaction("Link", "/nextReply");
PicaUser user = fetchPicaUser();
PicaUser user = null;
if (token != null) {
user = CommonUtils.getUserByToken(redisClient, token);
}
PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>(); PicaResponse.Builder<ExamTitleReplyDetailDto> builder = new PicaResponse.Builder<>();
try { try {
...@@ -578,6 +492,7 @@ public class AnalysisController { ...@@ -578,6 +492,7 @@ public class AnalysisController {
return builder.build(); return builder.build();
} }
@LoginPermission
@ApiOperation(value = "回复", response = PicaResponse.class) @ApiOperation(value = "回复", response = PicaResponse.class)
@RequestMapping(value = "/reply/{examTitleId}", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @RequestMapping(value = "/reply/{examTitleId}", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public PicaResponse reply( @PathVariable("examTitleId") Integer examTitleId, public PicaResponse reply( @PathVariable("examTitleId") Integer examTitleId,
...@@ -591,14 +506,7 @@ public class AnalysisController { ...@@ -591,14 +506,7 @@ public class AnalysisController {
return picaResponse; return picaResponse;
} }
PicaUser user = CommonUtils.getUserByToken(redisClient, token); PicaUser user = fetchPicaUser();
if (user == null || user.getId().intValue() == 0) {
logger.info("reply: user == null, token=" + token);
PicaResponse picaResponse = ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
picaResponse.setData("");
return picaResponse;
}
try { try {
JSONObject jsonObject = JSONObject.parseObject(content); JSONObject jsonObject = JSONObject.parseObject(content);
...@@ -742,21 +650,14 @@ public class AnalysisController { ...@@ -742,21 +650,14 @@ public class AnalysisController {
return builder.build(); return builder.build();
} }
@LoginPermission
@ApiOperation(value = "我的赞", response = PicaResponse.class) @ApiOperation(value = "我的赞", response = PicaResponse.class)
@RequestMapping(value = {"/myStar/{roundId}","/myStar/"}, method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @RequestMapping(value = {"/myStar/{roundId}","/myStar/"}, method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public PicaResponse<MyStarDto> myStar( @PathVariable(value = "roundId", required = false) Integer roundId, public PicaResponse<MyStarDto> myStar( @PathVariable(value = "roundId", required = false) Integer roundId,
@RequestHeader(required = false) String token) { @RequestHeader(required = false) String token) {
Transaction t = Cat.newTransaction("Link", "/roundDetail/v2/"); Transaction t = Cat.newTransaction("Link", "/roundDetail/v2/");
if (token == null) { PicaUser user = fetchPicaUser();
return ReturnUtil.getPicaResponse(PicaResultCode.SYSTEM_NO_TOKEN);
}
PicaUser user = CommonUtils.getUserByToken(redisClient, token);
if (user == null || user.getId().intValue() == 0) {
logger.info("myStar: user == null, token=" + token);
return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
}
if (roundId != null) { if (roundId != null) {
logger.info("myStar: roundId=" + roundId.toString() + " token=" + token); logger.info("myStar: roundId=" + roundId.toString() + " token=" + token);
} }
......
...@@ -3,17 +3,16 @@ package com.pica.cloud.online.exam.analysis.server.controller; ...@@ -3,17 +3,16 @@ package com.pica.cloud.online.exam.analysis.server.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.redis.RedisClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.annotation.LoginPermission; import com.pica.cloud.foundation.utils.annotation.LoginPermission;
import com.pica.cloud.foundation.utils.controller.BaseController;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.online.exam.analysis.common.CommonUtils;
import com.pica.cloud.online.exam.analysis.common.util.ReturnUtil; import com.pica.cloud.online.exam.analysis.common.util.ReturnUtil;
import com.pica.cloud.online.exam.analysis.server.service.AntiSpamService; import com.pica.cloud.online.exam.analysis.server.service.AntiSpamService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/** /**
...@@ -22,10 +21,10 @@ import org.springframework.web.bind.annotation.*; ...@@ -22,10 +21,10 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@RequestMapping("/antispam") @RequestMapping("/antispam")
@Api(value = "内容甄别解析", description = "检测文本、图片内容") public class AntiSpamController extends BaseController {
public class AntiSpamController { @Qualifier("cacheMigrateClient")
@Autowired @Autowired
private RedisClient redisClient; private ICacheClient redisClient;
@Autowired @Autowired
AntiSpamService antiSpamService; AntiSpamService antiSpamService;
...@@ -36,8 +35,7 @@ public class AntiSpamController { ...@@ -36,8 +35,7 @@ public class AntiSpamController {
public PicaResponse processText(@RequestBody String content, public PicaResponse processText(@RequestBody String content,
@RequestHeader String sysCode, @RequestHeader String sysCode,
@RequestHeader String token) { @RequestHeader String token) {
PicaUser user = CommonUtils.getUserByToken(redisClient, token); PicaUser user = fetchPicaUser();
if (user == null || user.getId().intValue() == 0) { if (user == null || user.getId().intValue() == 0) {
return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE); return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
} }
...@@ -76,8 +74,7 @@ public class AntiSpamController { ...@@ -76,8 +74,7 @@ public class AntiSpamController {
public PicaResponse processTextV2(@RequestBody String content, public PicaResponse processTextV2(@RequestBody String content,
@RequestHeader String sysCode, @RequestHeader String sysCode,
@RequestHeader String token) { @RequestHeader String token) {
PicaUser user = CommonUtils.getUserByToken(redisClient, token); PicaUser user = fetchPicaUser();
if (user == null || user.getId().intValue() == 0) { if (user == null || user.getId().intValue() == 0) {
return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE); return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
} }
...@@ -103,6 +100,7 @@ public class AntiSpamController { ...@@ -103,6 +100,7 @@ public class AntiSpamController {
); );
} }
@LoginPermission
@ApiOperation(value = "图片检测", response = PicaResponse.class) @ApiOperation(value = "图片检测", response = PicaResponse.class)
@RequestMapping(value = "/image", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @RequestMapping(value = "/image", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public PicaResponse processImage(@RequestBody String content, public PicaResponse processImage(@RequestBody String content,
...@@ -111,9 +109,7 @@ public class AntiSpamController { ...@@ -111,9 +109,7 @@ public class AntiSpamController {
if (token == null) { if (token == null) {
return ReturnUtil.getPicaResponse(PicaResultCode.SYSTEM_NO_TOKEN); return ReturnUtil.getPicaResponse(PicaResultCode.SYSTEM_NO_TOKEN);
} }
PicaUser user = fetchPicaUser();
PicaUser user = CommonUtils.getUserByToken(redisClient, token);
if (user == null || user.getId().intValue() == 0) { if (user == null || user.getId().intValue() == 0) {
return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE); return ReturnUtil.getPicaResponse(PicaResultCode.LOGIN_FAILE);
} }
......
package com.pica.cloud.online.exam.analysis.server.monitor;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.dianping.cat.servlet.CatFilter;
@Configuration
public class CatFilterConfigure {
@Bean
public FilterRegistrationBean catFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
CatFilter filter = new CatFilter();
registration.setFilter(filter);
registration.addUrlPatterns("/*");
registration.setName("cat-filter");
registration.setOrder(1);
return registration;
}
}
\ No newline at end of file
package com.pica.cloud.online.exam.analysis.server.service; package com.pica.cloud.online.exam.analysis.server.service;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.online.exam.analysis.common.dto.*; import com.pica.cloud.online.exam.analysis.common.dto.*;
import com.pica.cloud.online.exam.analysis.server.entity.AnalysisRound; import com.pica.cloud.online.exam.analysis.server.entity.AnalysisRound;
import com.pica.cloud.online.exam.analysis.server.entity.AnalysisRoundExamTitle; import com.pica.cloud.online.exam.analysis.server.entity.AnalysisRoundExamTitle;
...@@ -14,6 +15,14 @@ import java.util.List; ...@@ -14,6 +15,14 @@ import java.util.List;
* @date 2018/8/17 9:40 * @date 2018/8/17 9:40
*/ */
public interface CHCAnalysisService { public interface CHCAnalysisService {
/**
* 获取消息详情
* @param analysisId
* @return
*/
CHCAnalysisDto getActivityDetail(Integer analysisId, PicaUser user);
/** /**
* 根据活动id获取活动详情 * 根据活动id获取活动详情
* @param analysisId * @param analysisId
...@@ -168,7 +177,7 @@ public interface CHCAnalysisService { ...@@ -168,7 +177,7 @@ public interface CHCAnalysisService {
/** /**
* 获取所有的历史轮详情 * 获取所有的历史轮详情
* @param ananlysisId * @param analysisId
* @return * @return
*/ */
List<AnalysisRoundDto> getCHCHistoryRound(Integer analysisId); List<AnalysisRoundDto> getCHCHistoryRound(Integer analysisId);
......
package com.pica.cloud.online.exam.analysis.server.service.impl; package com.pica.cloud.online.exam.analysis.server.service.impl;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.online.exam.analysis.common.dto.*; import com.pica.cloud.online.exam.analysis.common.dto.*;
import com.pica.cloud.online.exam.analysis.server.configuration.PropertiesConfiguration; import com.pica.cloud.online.exam.analysis.server.configuration.PropertiesConfiguration;
import com.pica.cloud.online.exam.analysis.server.entity.*; import com.pica.cloud.online.exam.analysis.server.entity.*;
import com.pica.cloud.online.exam.analysis.server.mapper.*; import com.pica.cloud.online.exam.analysis.server.mapper.*;
import com.pica.cloud.online.exam.analysis.server.service.CHCAnalysisService; import com.pica.cloud.online.exam.analysis.server.service.CHCAnalysisService;
import com.pica.cloud.online.exam.analysis.server.service.CHCRankingListService;
import com.pica.cloud.online.exam.analysis.server.utils.DateUtils; import com.pica.cloud.online.exam.analysis.server.utils.DateUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -42,9 +44,51 @@ public class CHCAnalysisServiceImpl implements CHCAnalysisService { ...@@ -42,9 +44,51 @@ public class CHCAnalysisServiceImpl implements CHCAnalysisService {
@Autowired @Autowired
DoctorMapper doctorMapper; DoctorMapper doctorMapper;
@Autowired
CHCRankingListMapper rankingListMapper;
@Autowired @Autowired
private PropertiesConfiguration properties; private PropertiesConfiguration properties;
@Autowired
private CHCRankingListService chcRankingListService;
/**
* chc 活动详情
* @param analysisId
* @param user
* @return
*/
@Override
public CHCAnalysisDto getActivityDetail(Integer analysisId, PicaUser user) {
CHCAnalysisDto analysisDto = this.getCHCAnalysisDtoById(analysisId);
if (chcRankingListService.isRankingInTop200(user != null ? user.getId() : 0)) {
analysisDto.setIsJoinIn(1);
} else {
analysisDto.setIsJoinIn(0);
}
List<AnalysisRoundDto> roundList = this.getRoundListByAnalysisId(analysisId);
/**
* chc活动固定返回两轮, 将第一轮设置为所有
*/
if (roundList.size() > 0) {
roundList.get(0).setRoundId(-1);
}
/**
* 如果是最后一起, 补上最后一期 和前端约定为-2
*/
if (roundList.size() == 1) {
AnalysisRoundDto analysisRoundDto = new AnalysisRoundDto();
analysisRoundDto.setRoundId(-2);
roundList.add(analysisRoundDto);
}
analysisDto.setRoundList(roundList);
return analysisDto;
}
@Override @Override
public CHCAnalysis getAnalysisById(Integer analysisId) { public CHCAnalysis getAnalysisById(Integer analysisId) {
return analysisMapper.selectByPrimaryKey(analysisId); return analysisMapper.selectByPrimaryKey(analysisId);
...@@ -103,15 +147,14 @@ public class CHCAnalysisServiceImpl implements CHCAnalysisService { ...@@ -103,15 +147,14 @@ public class CHCAnalysisServiceImpl implements CHCAnalysisService {
@Override @Override
public List<AnalysisRoundDto> getRoundListByAnalysisId(Integer analysisId) { public List<AnalysisRoundDto> getRoundListByAnalysisId(Integer analysisId) {
List<AnalysisRound> roundList = new ArrayList<AnalysisRound>();
List<AnalysisRound> roundList = new ArrayList<>();
CHCAnalysis analysis = analysisMapper.selectByPrimaryKey(analysisId); CHCAnalysis analysis = analysisMapper.selectByPrimaryKey(analysisId);
if (analysis.getType() == 1) if (analysis.getType() == 1) {
roundList = analysisRoundMapper.selectRoundListById(analysisId); roundList = analysisRoundMapper.selectRoundListById(analysisId);
else } else {
roundList = analysisRoundMapper.selectPSARoundListById(analysisId); roundList = analysisRoundMapper.selectPSARoundListById(analysisId);
}
if (null == roundList){ if (null == roundList){
return null; return null;
} }
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
seq_no from p_analysis_round seq_no from p_analysis_round
where is_published = 1 where is_published = 1
and is_deleted = 0 and is_deleted = 0
and analysis_id = #{id,jdbcType=INTEGER}
order by seq_no desc order by seq_no desc
limit 1) limit 1)
order by seq_no order by seq_no
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册