This commit is contained in:
高久奇 2021-11-23 02:11:47 +08:00
parent f87e887680
commit bbe4c2852e
11 changed files with 161 additions and 95 deletions

View File

@ -1,18 +0,0 @@
package com.szxgl.pars2021.config;
//@Configuration
//public class InterceptorConfig implements WebMvcConfigurer {
//
//// @Bean
// NorsInterceptor getNorsInterceptor() {
// return new NorsInterceptor();
// }
//
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
//
// // 跨域拦截器放在最上面
// registry.addInterceptor(getNorsInterceptor())
// .addPathPatterns("/**");
// }
//}

View File

@ -1,24 +0,0 @@
package com.szxgl.pars2021.config;
/**
* 跨域拦截器的配置
*/
//@Slf4j
//public class NorsInterceptor implements HandlerInterceptor {
// @Override
// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// response.setHeader("Access-Control-Allow-Origin", request.getHeader("Referer"));
// response.setHeader("Access-Control-Allow-Credentials", "true");
// response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS");
// response.setHeader("Access-Control-Max-Age", "86400");
// response.setHeader("Access-Control-Allow-Headers", "*");
//
// // 如果是OPTIONS则结束请求
// if (HttpMethod.OPTIONS.toString().equals(request.getMethod())) {
// response.setStatus(HttpStatus.NO_CONTENT.value());
// return false;
// }
//
// return true;
// }
//}

View File

@ -41,12 +41,12 @@ public class PraiseController {
* @return
*/
@PostMapping("/savePraise")
public R savePraise(HttpServletRequest request,Integer worksId,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R savePraise(HttpServletRequest request,Integer worksId){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
if(worksId == null){
log.error("作品id不能为空!");
return R.error("作品id不能为空!");

View File

@ -63,12 +63,12 @@ public class RankingController {
* @return
*/
@GetMapping("/getWorksPraiseNo")
public R getWorksPraiseNo(HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getWorksPraiseNo(HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
List<UserDO> userDOS = userService.getUserList();
@ -133,10 +133,50 @@ public class RankingController {
}
//list按分数升序
list.sort(Comparator.comparing(UserWorks::getRank));
//返回排行榜滚动信息
List<UserWorks> list2 = new ArrayList<>();
//获取所有排行榜用户信息
set = redisUtil.rangeWithScores(RANKING, 0, -1);
for (ZSetOperations.TypedTuple<Object> objectTypedTuple : set) {
Long aLong = redisUtil.reverseRank(RANKING, objectTypedTuple.getValue());
//判断redis中是否有用户信息
if(redisUtil.hasKey(USERINFO+objectTypedTuple.getValue())){
//redis获取用户信息
UserWorks userWorks = (UserWorks)redisUtil.get(USERINFO + objectTypedTuple.getValue());
userWorks.setRank(aLong+1);
list2.add(userWorks);
}
}
List<Object> newList = new ArrayList<>();
Map<Integer,String> hashMap = new HashMap<>();
int size = 0;
//用户数量大于8 随机返回的排行榜用户名称不包括前8名
if(list2.size() > 8 ){
size = list2.subList(8, list2.size()).size();
size = size < 8 ? size : 8;
list2.sort(Comparator.comparing(UserWorks::getRank));
while (hashMap.size() < size) {
//筛选用户信息 排除前8位
List<UserWorks> list1 = list2.subList(8, list2.size());
int random = (int)(Math.random() * list1.size());
if (!hashMap.containsKey(random)) {
hashMap.put(random, "");
newList.add(list1.get(random).getNickname());
}
}
}else if(list2.size() > 1){
//用户数量小于8 第1名不显示其他正常显示
List<UserWorks> nickname = list2.subList(1, list2.size());
for (UserWorks userWorks : nickname) {
newList.add(userWorks.getNickname());
}
}
HashMap<String, Object> map = new HashMap<>();
map.put("data",list);
map.put("Total",list.size());
map.put("userWork",userWork);
map.put("newList",newList);
return R.ok(map);
}
@ -146,12 +186,12 @@ public class RankingController {
* @return
*/
@GetMapping("/getUserRank")
public R getUserRank(HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getUserRank(HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
HashMap<String, Object> map = new HashMap<>();
UserWorks userWorks = userService.getUserWorks(openid);
if(userWorks!=null){
@ -174,12 +214,12 @@ public class RankingController {
* @return
*/
@GetMapping("/getUserRanking")
public R getUserRanking(HttpServletRequest request,Integer worksId,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getUserRanking(HttpServletRequest request,Integer worksId){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
//根据作品获取用户openid
String openid2 = userService.getWorksUser(worksId);
//获取用户作品信息
@ -216,19 +256,19 @@ public class RankingController {
* @return
*/
@GetMapping("/getRandom")
public R getRandom(HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getRandom(HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
//获取作品id
UserWorks userWorks = (UserWorks) redisUtil.get(USERINFO + openid);
if(userWorks == null){
userWorks = userService.getUserWorks(openid);
}
int max=98;
int min=94;
int min=90;
int i = new SecureRandom().nextInt(max) % (max - min + 1) + min;
HashMap<String, Object> map = new HashMap<>();
if(userWorks!=null){

View File

@ -33,11 +33,11 @@ public class VerificationCodeController {
* @desc 图形验证码生成
*/
@RequestMapping("/createImg")
public void createImg(HttpServletRequest request, HttpServletResponse response,String openid) throws Exception {
/*String openid = getValue(request.getCookies(), "openid");
public void createImg(HttpServletRequest request, HttpServletResponse response) throws Exception {
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
}*/
}
try {
response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片
response.setHeader("Pragma", "No-cache");//设置响应头信息告诉浏览器不要缓存此内容

View File

@ -117,15 +117,15 @@ public class WechatController {
* @return
*/
@GetMapping("/getUserInfo")
public R getUserInfo(HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getUserInfo(HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
UserDO userDO = userService.getUserInfo(openid);
Map<String,Object> map = new HashMap<>();
if(!StringUtils.isNoneBlank(userDO.getRealname()) || !StringUtils.isNoneBlank(userDO.getPhone())) {
if(userDO == null || !StringUtils.isNoneBlank(userDO.getRealname()) || !StringUtils.isNoneBlank(userDO.getPhone())) {
//用户未绑定手机号和填写真实姓名
map.put("result",false);
}else {
@ -143,12 +143,12 @@ public class WechatController {
* @return
*/
@PostMapping("/saveUserInfo")
public R saveUserInfo(HttpServletRequest request,UserDO userDO,String code,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R saveUserInfo(HttpServletRequest request,UserDO userDO,String code){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
if(!StringUtils.isNoneBlank(userDO.getRealname()) || !StringUtils.isNoneBlank(userDO.getPhone())){
log.error("真实姓名和手机号的参数不能为空!");
return R.error("真实姓名和手机号的参数不能为空!");

View File

@ -61,19 +61,29 @@ public class WorksController {
* @return
*/
@PostMapping("/saveWorks")
public R saveWorks(MultipartFile file, HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R saveWorks(MultipartFile file, HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
UserDO userDO = userService.get(openid);
if(!StringUtils.isNoneBlank(userDO.getRealname()) || !StringUtils.isNoneBlank(userDO.getPhone())){
if(userDO == null || !StringUtils.isNoneBlank(userDO.getRealname()) || !StringUtils.isNoneBlank(userDO.getPhone())){
log.error("请先填写真实姓名和手机号!");
return R.error("请先填写真实姓名和手机号!");
}
if(!StringUtils.isNoneBlank(file.getOriginalFilename())){
log.error("上传文件不能为空!");
return R.error("上传文件不能为空!");
}
if(!"image/jpg".contains(file.getContentType()) && !"image/png".contains(file.getContentType()) && !"image/jpeg".contains(file.getContentType())){
System.out.println(file.getContentType());
log.error("文件格式不正确!");
return R.error("文件格式不正确!");
}
//查询用户是否已拥有作品
WorksDao work = worksService.getWorks(openid);
if( work != null ){
@ -81,11 +91,11 @@ public class WorksController {
return R.error("您已经上传过作品,请勿重复上传!");
}
try {
//上传文件到oss上
R r = UploadFileToOssUtil.uploadFileToOss(file.getInputStream(), Objects.requireNonNull(file.getOriginalFilename()));
String contentType = file.getContentType();
String fileUrl = Objects.requireNonNull(file.getOriginalFilename())+"."+contentType.substring(contentType.lastIndexOf("/")+1);
R r = UploadFileToOssUtil.uploadFileToOss(file.getInputStream(), fileUrl);
if("-1".equals(r.get("ret"))){
log.error("文件上传失败!");
return R.error("文件上传失败!");
@ -117,12 +127,12 @@ public class WorksController {
* @return
*/
@GetMapping("/getUploadFile")
public R getUploadFile(HttpServletRequest request,String openid){
/*String openid = getValue(request.getCookies(), "openid");
public R getUploadFile(HttpServletRequest request){
String openid = getValue(request.getCookies(), "openid");
if("prod".equals(activeProfiles) && StringUtils.isBlank(openid)){
log.error("openid为空,请求参数");
return R.error("openid不能为空");
}*/
}
WorksDao works = worksService.getWorks(openid);
HashMap<String, Object> map = new HashMap<>();
if(works == null){

View File

@ -1,29 +1,49 @@
package com.szxgl.pars2021.filter;
import com.alibaba.fastjson.JSONObject;
import com.szxgl.pars2021.entity.WxMpUser;
import com.szxgl.pars2021.service.UserService;
import com.szxgl.pars2021.utils.URIUtil;
import com.szxgl.pars2021.utils.Utility;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* 授权测试
* @author leiyun
* @datetime 2017年4月27日 下午4:05:24
*/
/*@WebFilter("*.html")
@Component
@WebFilter("*.html")
@Slf4j
public class WebAuthFilter implements Filter {
@Value("${wx.appid}")
private String default_appid;
//@Value("${wx.appid}")
private String default_appid = "wx35766a64d73d08a9";
@Value("${wx.auth-code}")
private String key;
//@Value("${wx.auth-code}")
private String key = "1a9caed163104e2e9056c58b989347b9";
@Value("${wx.project-id}")
private String projectId;
//@Value("${wx.project-id}")
private String projectId = "20202000200020002";
@Value("${wx.auth-scope}")
private String default_scope;
//@Value("${wx.auth-scope}")
private String default_scope = "snsapi_userinfo";
@Value("${wx.api-domain}")
private String api_domain;
//@Value("${wx.api-domain}")
private String api_domain = "https://wx.xfhd.net/thirdparty";
// private static String default_appid = "wx35766a64d73d08a9";
// private static String key = "adsagdagefghfhgffsghdfsgd";
@ -50,6 +70,12 @@ public class WebAuthFilter implements Filter {
return;
}
log.info("default_appid:"+default_appid);
log.info("key:"+key);
log.info("projectId:"+projectId);
log.info("default_scope:"+default_scope);
log.info("api_domain:"+api_domain);
// Mozilla/5.0 (Linux; Android 4.4.4; iToolsVM Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 MicroMessenger/6.3.31.940 NetType/WIFI Language/zh_CN
// 每次授权成功后发现会有重复的请求进来IP为微信上海服务器的IPuseragent包含iToolsVM暂不明原因所以直接过滤掉
@ -154,4 +180,4 @@ public class WebAuthFilter implements Filter {
return jsonObject;
}
}*/
}

View File

@ -39,6 +39,7 @@ public class UserServiceImpl implements UserService {
userDO1.setNickname(wxMpUser.getNickname());
userDO1.setHeadimgurl(wxMpUser.getHeadimgurl());
userDO1.setCreateTime(new Date());
userDO1.setUpdateTime(new Date());
userMapper.insert(userDO1);
}
}

View File

@ -4,12 +4,13 @@ import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.comm.ResponseMessage;
import com.aliyun.oss.model.PutObjectResult;
import lombok.extern.slf4j.Slf4j;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.*;
@Slf4j
public class UploadFileToOssUtil {
/**
@ -42,7 +43,6 @@ public class UploadFileToOssUtil {
*/
public static R uploadFileToOss(InputStream inputStream, String originalName) {
// 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
@ -63,7 +63,7 @@ public class UploadFileToOssUtil {
//使用目录文件主体名称文件扩展名称拼接得到对象名称 普通输入路径
String objectName = "h5-upload/"+folderName + "/" + fileMainName + extensionName;
log.info("输入路径:"+objectName);
System.out.println(objectName);
try {
@ -121,4 +121,33 @@ public class UploadFileToOssUtil {
String msg = r.get("msg").toString();
}*/
public static void main(String[] args) {
/* List list = new ArrayList();
List<Integer> news = new ArrayList();
Map<Integer,String> hashMap = new HashMap();
for (int i = 0; i < 20; i++) {
list.add(i);
}
System.out.println(list);
int size = 0;
if(list.size() > 8 ){
size = list.subList(8, list.size()).size();
while (hashMap.size() < size) {
List<Integer> list1 = list.subList(8, list.size());
int random = (int)(Math.random() * list1.size());
if (!hashMap.containsKey(random)) {
hashMap.put(random, "");
news.add(list1.get(random));
}
}
}else if(list.size() > 1){
List nickname = list.subList(1, list.size());
news.addAll(nickname);
}
System.out.println(news);*/
String name = "image/jpeg";
System.out.println(name.substring(name.lastIndexOf("/")+1));
}
}

View File

@ -2,6 +2,7 @@ server:
port: 8616
servlet:
context-path: /pars-h5-2021
max-http-header-size: 65546
spring:
# # 允许预检请求
# mvc:
@ -20,6 +21,7 @@ spring:
#mybatis
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml