This commit is contained in:
高久奇 2021-11-23 19:02:47 +08:00
parent bbe4c2852e
commit c1e811f30b
9 changed files with 105 additions and 7 deletions

View File

@ -12,4 +12,5 @@ public class H52021Application {
SpringApplication.run(H52021Application.class, args);
}
}

View File

@ -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);
}
}
}*/

View File

@ -70,7 +70,6 @@ public class RankingController {
return R.error("openid不能为空");
}
List<UserDO> 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);

View File

@ -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 {

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -20,4 +20,25 @@
select openid from works where id = #{worksId}
</select>
<insert id="saveRecord">
insert into record
(
openid,
works_id,
nickname,
create_time
)
values
(
#{openid},
#{worksId},
#{nickname},
now()
)
</insert>
<select id="getRecord" resultType="com.szxgl.pars2021.entity.Record">
select * from record where works_id = #{worksId}
</select>
</mapper>