diff --git a/src/main/java/com/szxgl/pars2021/H52021Application.java b/src/main/java/com/szxgl/pars2021/H52021Application.java index e0df09b..9ebe654 100644 --- a/src/main/java/com/szxgl/pars2021/H52021Application.java +++ b/src/main/java/com/szxgl/pars2021/H52021Application.java @@ -12,4 +12,5 @@ public class H52021Application { SpringApplication.run(H52021Application.class, args); } + } diff --git a/src/main/java/com/szxgl/pars2021/config/CorsConfig.java b/src/main/java/com/szxgl/pars2021/config/CorsConfig.java index 87bdcdb..27ddc80 100644 --- a/src/main/java/com/szxgl/pars2021/config/CorsConfig.java +++ b/src/main/java/com/szxgl/pars2021/config/CorsConfig.java @@ -9,7 +9,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.Collections; -@Configuration +/*@Configuration public class CorsConfig implements WebMvcConfigurer { @Bean @@ -28,4 +28,4 @@ public class CorsConfig implements WebMvcConfigurer { source.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(source); } -} +}*/ diff --git a/src/main/java/com/szxgl/pars2021/controller/RankingController.java b/src/main/java/com/szxgl/pars2021/controller/RankingController.java index b42af36..70db3ff 100644 --- a/src/main/java/com/szxgl/pars2021/controller/RankingController.java +++ b/src/main/java/com/szxgl/pars2021/controller/RankingController.java @@ -70,7 +70,6 @@ public class RankingController { return R.error("openid不能为空"); } - List userDOS = userService.getUserList(); for (UserDO userDO : userDOS) { //判断redis中的用户信息是否已过期 @@ -222,6 +221,10 @@ public class RankingController { } //根据作品获取用户openid String openid2 = userService.getWorksUser(worksId); + if(!StringUtils.isNoneBlank(openid2)){ + log.error("用户作品不存在!"); + return R.error("用户作品不存在!"); + } //获取用户作品信息 UserWorks userWorks = userService.getUserWorks(openid2); if(redisUtil.hasKey(RANKING)){ @@ -230,6 +233,10 @@ public class RankingController { userWorks.setRank(aLong+1); int i = redisUtil.score(RANKING, openid2).intValue(); userWorks.setPraiseno(i); + String url = userWorks.getUrl(); + //oss的文件路径 oss服务器默认域名+文件路径 + url = bucketDomain + "/" +url; + userWorks.setUrl(url); } //获取用户当天排行榜的点赞状态 Integer praiseId = praiseService.getPraiseStatus(openid,worksId); diff --git a/src/main/java/com/szxgl/pars2021/filter/WebAuthFilter.java b/src/main/java/com/szxgl/pars2021/filter/WebAuthFilter.java index 78e7bcd..31f3a06 100644 --- a/src/main/java/com/szxgl/pars2021/filter/WebAuthFilter.java +++ b/src/main/java/com/szxgl/pars2021/filter/WebAuthFilter.java @@ -1,14 +1,17 @@ package com.szxgl.pars2021.filter; import com.alibaba.fastjson.JSONObject; +import com.szxgl.pars2021.entity.Record; +import com.szxgl.pars2021.entity.UserDO; import com.szxgl.pars2021.entity.WxMpUser; import com.szxgl.pars2021.service.UserService; +import com.szxgl.pars2021.service.WorksService; 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; @@ -86,10 +89,17 @@ public class WebAuthFilter implements Filter { String appid = request.getParameter("appid"); String scope = request.getParameter("scope"); - if(StringUtils.isBlank(appid))appid=default_appid; + String id = request.getParameter("id"); + if(StringUtils.isBlank(appid))appid=default_appid; if(StringUtils.isBlank(scope))scope=default_scope; + ServletContext context = request.getServletContext(); + ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context); + + log.info("作品id:"+id); String httpRequestFullURL = getHttpRequestFullURL(request); + log.info(httpRequestFullURL); + // String api_domain = request.getScheme()+"://"+request.getServerName()+(request.getServerPort()==80?"":":"+request.getServerPort())+request.getContextPath(); String redirectUrl = api_domain+"/webauth/api/oauth"+"?projectId="+projectId+"&appid="+appid+"&redirect_uri="+ URIUtil.encodeURIComponent(httpRequestFullURL)+"&scope="+ scope; String code = request.getParameter("code"); @@ -106,8 +116,24 @@ public class WebAuthFilter implements Filter { WxMpUser wxMpUser = JSONObject.parseObject(json.getString("data"), WxMpUser.class); System.out.println(json); Utility.addCookie(request, response, "openid", wxMpUser.getOpenid()); - ServletContext context = request.getServletContext(); - ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context); + if(StringUtils.isNoneBlank(id)){ + log.info("进来了!"); + //二维码扫码携带作品id + if(ctx==null){ + log.error("applicationContext空指针"); + }else { + UserService userService = ctx.getBean(UserService.class); + //用户扫码二维码是否已记录 + Record record = userService.getRecord(Integer.parseInt(id)); + if(record == null){ + Record record2 = new Record(); + record2.setNickname(wxMpUser.getNickname()); + record2.setOpenid(wxMpUser.getOpenid()); + record2.setWorksId(Integer.parseInt(id)); + userService.saveRecord(record2); + } + } + } if(ctx==null){ log.error("applicationContext空指针"); }else { diff --git a/src/main/java/com/szxgl/pars2021/mapper/UserMapper2.java b/src/main/java/com/szxgl/pars2021/mapper/UserMapper2.java index 8614517..dfa002d 100644 --- a/src/main/java/com/szxgl/pars2021/mapper/UserMapper2.java +++ b/src/main/java/com/szxgl/pars2021/mapper/UserMapper2.java @@ -1,5 +1,7 @@ package com.szxgl.pars2021.mapper; +import com.szxgl.pars2021.entity.Record; +import com.szxgl.pars2021.entity.UserDO; import com.szxgl.pars2021.entity.UserWorks; import org.apache.ibatis.annotations.Mapper; @@ -10,4 +12,7 @@ public interface UserMapper2 { String getWorksUser(Integer worksId); + void saveRecord(Record record); + + Record getRecord(Integer worksId); } diff --git a/src/main/java/com/szxgl/pars2021/service/UserService.java b/src/main/java/com/szxgl/pars2021/service/UserService.java index 3b8bff7..9d6b750 100644 --- a/src/main/java/com/szxgl/pars2021/service/UserService.java +++ b/src/main/java/com/szxgl/pars2021/service/UserService.java @@ -1,5 +1,6 @@ package com.szxgl.pars2021.service; +import com.szxgl.pars2021.entity.Record; import com.szxgl.pars2021.entity.UserDO; import com.szxgl.pars2021.entity.UserWorks; import com.szxgl.pars2021.entity.WxMpUser; @@ -20,4 +21,8 @@ public interface UserService { UserDO getUserInfo(String openid); String getWorksUser(Integer worksId); + + void saveRecord(Record record); + + Record getRecord(Integer worksId); } diff --git a/src/main/java/com/szxgl/pars2021/service/impl/UserServiceImpl.java b/src/main/java/com/szxgl/pars2021/service/impl/UserServiceImpl.java index 3d53701..5602cd8 100644 --- a/src/main/java/com/szxgl/pars2021/service/impl/UserServiceImpl.java +++ b/src/main/java/com/szxgl/pars2021/service/impl/UserServiceImpl.java @@ -2,6 +2,7 @@ package com.szxgl.pars2021.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.szxgl.pars2021.entity.Record; import com.szxgl.pars2021.entity.UserDO; import com.szxgl.pars2021.entity.UserWorks; import com.szxgl.pars2021.entity.WxMpUser; @@ -102,5 +103,15 @@ public class UserServiceImpl implements UserService { return userMapper2.getWorksUser(worksId); } + @Override + public void saveRecord(Record record) { + userMapper2.saveRecord(record); + } + + @Override + public Record getRecord(Integer worksId) { + return userMapper2.getRecord(worksId); + } + } diff --git a/src/main/java/com/szxgl/pars2021/utils/UploadFileToOssUtil.java b/src/main/java/com/szxgl/pars2021/utils/UploadFileToOssUtil.java index 9c8f254..f4653d4 100644 --- a/src/main/java/com/szxgl/pars2021/utils/UploadFileToOssUtil.java +++ b/src/main/java/com/szxgl/pars2021/utils/UploadFileToOssUtil.java @@ -4,6 +4,7 @@ import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.common.comm.ResponseMessage; import com.aliyun.oss.model.PutObjectResult; +import com.szxgl.pars2021.entity.UserDO; import lombok.extern.slf4j.Slf4j; import java.io.InputStream; @@ -147,7 +148,28 @@ public class UploadFileToOssUtil { System.out.println(news);*/ String name = "image/jpeg"; System.out.println(name.substring(name.lastIndexOf("/")+1)); + UserDO user = new UserDO(); + user.setNickname("张三"); + user.setCreateTime(new Date()); + UserDO user1 = new UserDO(); + user1.setNickname("李四"); + user.setCreateTime(new Date()); + + UserDO user2 = new UserDO(); + user2.setNickname("王五"); + user.setCreateTime(new Date()); + + UserDO user3 = new UserDO(); + user3.setNickname("赵六"); + user3.setCreateTime(new Date()); + List list = new ArrayList(); + list.add(user); + list.add(user1); + list.add(user2); + list.add(user3); + list.sort(Comparator.comparing(UserDO::getNickname)); + System.out.println(list); } } diff --git a/src/main/resources/mapper/UserMapper2.xml b/src/main/resources/mapper/UserMapper2.xml index 1df7c96..94b0888 100644 --- a/src/main/resources/mapper/UserMapper2.xml +++ b/src/main/resources/mapper/UserMapper2.xml @@ -20,4 +20,25 @@ select openid from works where id = #{worksId} + + insert into record + ( + openid, + works_id, + nickname, + create_time + ) + values + ( + #{openid}, + #{worksId}, + #{nickname}, + now() + ) + + + +