wh的合并web项目

GYZ_branch
JoeyG 3 years ago
parent eae6bd4aaf
commit 7c3facd75b

@ -22,6 +22,7 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
@ -80,7 +81,7 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
<version>3.4.2</version>
</dependency>
<!--springdoc 官方Starter-->
<dependency>
@ -107,6 +108,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.22</version>
</dependency>
</dependencies>

@ -7,7 +7,7 @@ import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.demo.controller" ,"com.example.demo.config"})
@ComponentScan(basePackages = {"com.example.demo.controller", "com.example.demo.config", "com.example.demo.service.impl"})
@MapperScan("com.example.demo.mapper")
public class DemoApplication {

@ -2,9 +2,9 @@ package com.example.demo.common;
/**
* @Description:
* ios
* 使list
*
*
*
*
* 200
* 500msg
* 501beanmap

@ -10,10 +10,10 @@ import java.util.Map;
public class HttpGetUtil {
public static String httpRequestToString(String url,
Map params) {
Map params, String type) {
String result = null;
try {
InputStream is = httpRequestToStream(url, params);
InputStream is = httpRequestToStream(url, params, type);
BufferedReader in = new BufferedReader(new InputStreamReader(is,
"UTF-8"));
StringBuffer buffer = new StringBuffer();
@ -31,17 +31,17 @@ public class HttpGetUtil {
}
private static InputStream httpRequestToStream(String url,
Map params) {
Map params, String type) {
InputStream is = null;
try {
String parameters = "";
boolean hasParams = false;
for(Object key : params.keySet()){
for (Object key : params.keySet()) {
String value = URLEncoder.encode((String) params.get(key), "UTF-8");
parameters += key +"="+ value +"&";
parameters += key + "=" + value + "&";
hasParams = true;
}
if(hasParams){
if (hasParams) {
parameters = parameters.substring(0, parameters.length()-1);
}
@ -57,7 +57,7 @@ public class HttpGetUtil {
conn.setReadTimeout(50000);
conn.setDoInput(true);
//设置请求方式默认为GET
conn.setRequestMethod("GET");
conn.setRequestMethod(type);
is = conn.getInputStream();
} catch (UnsupportedEncodingException e) {

@ -0,0 +1,47 @@
package com.example.demo.common.util;
public class FormatResponseUtil {
/**
*
*/
public static ResponseResult formatResponse() {
ResponseResult result = null;
return formatResponse(result);
}
private static ResponseResult formatResponse(ResponseResult result) {
if (result == null) {
result = new ResponseResult(true, "请求成功", null);
}
return result;
}
/**
* ,
*/
public static ResponseResult formatResponse(Object object) {
return new ResponseResult(true, "请求成功", object);
}
/**
*
*/
public static ResponseResult formatResponse(String msg, Object object) {
return new ResponseResult(true, msg, object);
}
/**
*
*/
public static ResponseResult error(Exception e) {
return new ResponseResult(false, e.getMessage());
}
/**
*
*/
public static ResponseResult error(String exception) {
return new ResponseResult(false, exception);
}
}

@ -0,0 +1,34 @@
package com.example.demo.common.util;
import lombok.Data;
@Data
public class ResponseResult {
/**
*
*/
private boolean success;
/**
*
*/
private String msg;
/**
*
*/
private Object data;
public ResponseResult(boolean success, String msg, Object data) {
this.success = success;
this.msg = msg;
this.data = data;
}
public ResponseResult(boolean code, String msg) {
this.success = success;
this.msg = msg;
}
public ResponseResult(boolean success) {
this.success = success;
}
}

@ -0,0 +1,33 @@
package com.example.demo.config.config;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.example.demo.domain.Task;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
public class BaseEntityMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 创建时间自动填充
if (metaObject.hasSetter(Task.CREATE_TIME) && ObjectUtil.isNull(getFieldValByName(Task.CREATE_TIME, metaObject))) {
this.strictInsertFill(metaObject, Task.CREATE_TIME, LocalDateTime.class, LocalDateTime.now());
}
}
@Override
public void updateFill(MetaObject metaObject) {
//修改时间自动填充
if (metaObject.hasSetter(Task.MODIFIED_TIME) && ObjectUtil.isNull(getFieldValByName(Task.MODIFIED_TIME, metaObject))) {
this.strictUpdateFill(metaObject, Task.MODIFIED_TIME, LocalDateTime.class, LocalDateTime.now());
}
}
}

@ -0,0 +1,27 @@
package com.example.demo.config.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* MybatisPlus
*
* @author huang
* @since 2022-03-18
*/
@Configuration
public class MybatisPlusConfig {
/**
*
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}

@ -0,0 +1,19 @@
package com.example.demo.config.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* Web
*
* @author huang
* @since 2022-03-18
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login/login");
}
}

@ -1,67 +0,0 @@
package com.example.demo.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.tags.Tags;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@SpringBootApplication
@Tag(name ="你的接口",description = "test")
public class ControllerText {
@Operation(summary = "获取用户列表",description = "test")
@RequestMapping("getUser")
public Map<String, Object> getUser(){
System.out.println("微信小程序正在调用。。。");
Map<String, Object> map = new HashMap<String, Object>();
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
list.add("wanger");
list.add("mazi");
map.put("list",list);
System.out.println("微信小程序调用完成。。。");
return map;
}
@Operation(summary = "获取用户表",description = "test")
@RequestMapping("getWord")
public Map<String, Object> getText(String word){
Map<String, Object> map = new HashMap<String, Object>();
String message = "我能力有限,不要为难我";
if ("后来".equals(word)) {
message="正在热映的后来的我们是刘若英的处女作。";
}else if("微信小程序".equals(word)){
message= "想获取更多微信小程序相关知识,请更多的阅读微信官方文档,还有其他更多微信开发相关的内容,学无止境。";
}else if("cauc".equals(word)){
message="yes";
}
map.put("message", message);
return map;
}
@Autowired
JdbcTemplate jct;
@Operation(summary = "取用户列表",description = "test")
@GetMapping("userslist")
public List<Map<String, Object>> userlist(){
String sql = "select * from user";
List<Map<String, Object>> map = jct.queryForList(sql);
System.out.println("调用sql");
return map;
}
}

@ -1,107 +0,0 @@
package com.example.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.common.HttpGetUtil;
import com.example.demo.domain.User;
import com.example.demo.mapper.UserMapper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.management.Query;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.*;
@Tag(name = "真·用户接口",description = "用户登录,")
@RestController
public class Demmo {
@RequestMapping("/index")
public String first(){
return "index";
}
@Autowired
private UserMapper userMapper;
@GetMapping("atlogin")
@Operation(summary = "真·微信登录接口")
public Map getOpenId( HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "code", required = false) String code) throws UnsupportedEncodingException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Map params = new HashMap();
params.put("appid", "wx954296403ec15396");
params.put("secret", "3317b29d14270cebb8f4e3521506f285");
params.put("js_code", code);
params.put("grant_type", "authorization_code");
System.out.println(params);
String result = HttpGetUtil.httpRequestToString(
"https://api.weixin.qq.com/sns/jscode2session", params);
JSONObject jsonObject = JSONObject.parseObject(result);
String openid = jsonObject.get("openid").toString();
System.out.println("得到的openid为:"+openid);
String sessionKey=jsonObject.get("session_key").toString();
User user = this.userMapper.selectById(openid);
// uuid生成唯一key用于维护微信小程序用户与服务端的会话
String skey = UUID.randomUUID().toString();
if (user == null) {
// 用户信息入库
// String nickName = rawDataJson.getString("nickName");
// String avatarUrl = rawDataJson.getString("avatarUrl");
// String gender = rawDataJson.getString("gender");
// String city = rawDataJson.getString("city");
// String country = rawDataJson.getString("country");
// String province = rawDataJson.getString("province");
user = new User();
user.setOpenId(openid);
user.setSkey(skey);
user.setCreateTime(new Date());
user.setLastVisitTime(new Date());
user.setSessionKey(sessionKey);
// user.setCity(city);
// user.setProvince(province);
// user.setCountry(country);
// user.setAvatarUrl(avatarUrl);
// user.setGender(Integer.parseInt(gender));
// user.setNickName(nickName);
this.userMapper.insert(user);
} else {
// 已存在,更新用户登录时间
user.setLastVisitTime(new Date());
// 重新设置会话skey
user.setSkey(skey);
this.userMapper.updateById(user);
}
Map<String, Object> skeymap = new HashMap<String, Object>();
skeymap.put("skey",skey);
return skeymap;
}
@RequestMapping("/atbind")
@Operation(summary = "用户绑定接口")
public void atbind(@RequestParam(value = "studentnumber",required = true) String studentnumber,
@RequestParam(value = "name",required = true) String name,
@RequestParam(value = "skey",required = true) String skey)
{
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("skey", skey);
User user = this.userMapper.selectOne(queryWrapper);
user.setStudentNumber(studentnumber);
user.setName(name);
this.userMapper.updateById(user);
System.out.println(user);
}
}

@ -33,7 +33,8 @@ public class TaskuploadController {
@RequestMapping(value = "/taskupload", method = RequestMethod.POST)
@Operation(summary = "任务上传接口")
public String taskupload(HttpServletRequest request,
@RequestParam(name = "skey", required = true) String skey) {
@RequestParam(name = "skey", required = true) String skey,
@RequestParam(name = "Task_id", required = true) Integer Taskid) {
//skey 查表
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
@ -42,11 +43,11 @@ public class TaskuploadController {
System.out.println(user);
QueryWrapper<Taskson> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.like("studentnumber", user.getStudentNumber());
queryWrapper1.like("Task_id", 1); //任务表(需修改)
queryWrapper1.like("Task_id", Taskid); //任务表(需修改)
Taskson taskson = this.tasksonMapper.selectOne(queryWrapper1);
if (taskson == null) {
taskson = new Taskson();
taskson.setTaskid(1);//任务id需修改
taskson.setTaskid(Taskid);//任务id需修改
taskson.setStudentnumber(user.getStudentNumber());
this.tasksonMapper.insert(taskson);
}

@ -1,84 +1,77 @@
package com.example.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.common.HttpGetUtil;
import com.example.demo.domain.Rcode;
import com.example.demo.domain.User;
import com.example.demo.common.GlobalResult;
import com.example.demo.mapper.RcodeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.common.WechatUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
*
*/
@Tag(name = "用户接口",description = "用户登录,")
@Controller
@Tag(name = "真·用户接口", description = "用户登录,")
@RestController
public class UserController {
@RequestMapping("/index")
public String first() {
return "index";
}
@Autowired
private UserMapper userMapper;
/**
*
*
*
* @param request
* @param response
* @param code
* @return
* @throws UnsupportedEncodingException
* @auth:kirito
*/
@PostMapping("wx/login")
@Operation(summary = "微信登录接口")
@ResponseBody
public GlobalResult user_login(@RequestParam(value = "code", required = false) String code,
@RequestParam(value = "rawData", required = false) String rawData,
@RequestParam(value = "signature", required = false) String signature,
@RequestParam(value = "encrypteData", required = false) String encrypteData,
@RequestParam(value = "iv", required = false) String iv) {
// 用户非敏感信息rawData
// 签名signature
JSONObject rawDataJson = JSON.parseObject(rawData);
// 1.接收小程序发送的code
// 2.开发者服务器 登录凭证校验接口 appi + appsecret + code
JSONObject SessionKeyOpenId = WechatUtil.getSessionKeyOrOpenId(code);
// 3.接收微信接口服务 获取返回的参数
String openid = SessionKeyOpenId.getString("openid");
String sessionKey = SessionKeyOpenId.getString("session_key");
@GetMapping("atlogin")
@Operation(summary = "真·微信登录接口")
public Map getOpenId(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "code", required = false) String code) throws UnsupportedEncodingException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Map params = new HashMap();
params.put("appid", "wx954296403ec15396");
params.put("secret", "3317b29d14270cebb8f4e3521506f285");
params.put("js_code", code);
params.put("grant_type", "authorization_code");
System.out.println(params);
String result = HttpGetUtil.httpRequestToString(
"https://api.weixin.qq.com/sns/jscode2session", params, "GET");
JSONObject jsonObject = JSONObject.parseObject(result);
// 4.校验签名 小程序发送的签名signature与服务器端生成的签名signature2 = sha1(rawData + sessionKey)
String signature2 = DigestUtils.sha1Hex(rawData + sessionKey);
// if (!signature.equals(signature2)) {
// return GlobalResult.build(500, "签名校验失败", null);
// }
// 5.根据返回的User实体类判断用户是否是新用户是的话将用户信息存到数据库不是的话更新最新登录时间
String openid = jsonObject.get("openid").toString();
System.out.println("得到的openid为:" + openid);
String sessionKey = jsonObject.get("session_key").toString();
User user = this.userMapper.selectById(openid);
// uuid生成唯一key用于维护微信小程序用户与服务端的会话
String skey = UUID.randomUUID().toString();
if (user == null) {
// 用户信息入库
// String nickName = rawDataJson.getString("nickName");
// String avatarUrl = rawDataJson.getString("avatarUrl");
// String gender = rawDataJson.getString("gender");
// String city = rawDataJson.getString("city");
// String country = rawDataJson.getString("country");
// String province = rawDataJson.getString("province");
user = new User();
user.setOpenId(openid);
user.setSkey(skey);
user.setCreateTime(new Date());
user.setLastVisitTime(new Date());
user.setSessionKey(sessionKey);
// user.setCity(city);
// user.setProvince(province);
// user.setCountry(country);
// user.setAvatarUrl(avatarUrl);
// user.setGender(Integer.parseInt(gender));
// user.setNickName(nickName);
this.userMapper.insert(user);
} else {
@ -88,11 +81,80 @@ public class UserController {
user.setSkey(skey);
this.userMapper.updateById(user);
}
//encrypteData比rowData多了appid和openid
//JSONObject userInfo = WechatUtil.getUserInfo(encrypteData, sessionKey, iv);
//6. 把新的skey返回给小程序
GlobalResult result = GlobalResult.build(200, null, skey);
return result;
User user2 = this.userMapper.selectById(openid);
Map<String, Object> skeymap = new HashMap<String, Object>();
skeymap.put("skey", skey);
skeymap.put("power", user2.getPower());
return skeymap;
}
/**
*
*
* @param studentnumber
* @param name
* @param skey
* @authkirito
* @date2022/10/20
*/
@RequestMapping("/atbind")
@Operation(summary = "用户绑定接口")
public void atbind(@RequestParam(value = "studentnumber", required = true) String studentnumber,
@RequestParam(value = "name", required = true) String name,
@RequestParam(value = "skey", required = true) String skey) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("skey", skey);
User user = this.userMapper.selectOne(queryWrapper);
user.setStudentNumber(studentnumber);
user.setName(name);
this.userMapper.updateById(user);
System.out.println(user);
}
@Autowired
RcodeMapper rcodeMapper;
/**
*
*
* @param skey
* @return code
* @auth:kirito
* @date:2022/11/12
*/
@RequestMapping("/getrcode")
@Operation(summary = "获取验证码")
public String getrcode(@RequestParam(value = "skey", required = true) String skey) {
Rcode rcode = this.rcodeMapper.selectById(skey);
String code = "";
if (rcode == null) {
rcode = new Rcode();
rcode.setSkey(skey);
code = rcode.createCode();
this.rcodeMapper.insert(rcode);
} else {
code = rcode.createCode();
rcode.setCode(code);
this.rcodeMapper.updateById(rcode);
}
return code;
}
/**
* 使
*
*
* @auth:kirito
*/
@RequestMapping("/webblogin")
@Operation(summary = "登录")
public void weblogin(@RequestParam(value = "code") String code) {
QueryWrapper<Rcode> queryWrapper = new QueryWrapper<>();
queryWrapper.like("code", code);
Rcode authrcode = this.rcodeMapper.selectOne(queryWrapper);
String skey = authrcode.getSkey();
System.out.println(skey);
}
}

@ -1,25 +1,167 @@
package com.example.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.common.HttpGetUtil;
import com.example.demo.domain.Rcode;
import com.example.demo.domain.User;
import com.example.demo.mapper.RcodeMapper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.codec.binary.Base64;
import org.apache.tomcat.util.http.ResponseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.nio.Buffer;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Controller
@RequestMapping("/web")
@Tag(name = "web端")
public class Webcontroller {
@RequestMapping("/dashboard.html")
public String login(){
@RequestMapping("/dashboard")
public String login() {
return "dashboard";
}
@RequestMapping("/list")
public String numer(){
return "list";
public String numer() {
return "list";
}
/**
* qrcode
* issue: 线使
* ,线
*
* @return
*/
@RequestMapping("/getqrcode")
public Object getqrcode() {
RestTemplate restTemplate = new RestTemplate();
//首先获取ACCESS_TOKEN
String getAccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx08c675f6ba5b2cdc&secret=0c28388c09ff373d391fe66d085dd39d";
JSONObject tokenResult = restTemplate.getForObject(getAccessTokenUrl, JSONObject.class);
assert tokenResult != null;
String accessToken = tokenResult.getString("access_token");
//System.out.println(accessToken);
//然后调用微信官方api生成二维码
String createQrCodeUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
//此处我是使用的阿里巴巴的fastJson
JSONObject createQrParam = new JSONObject();
//createQrParam.put("scene", scene);
//createQrParam.put("page", page);
PrintWriter out = null;
InputStream in = null;
try {
URL realUrl = new URL(createQrCodeUrl);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数,利用connection的输出流去写数据到connection中我的参数数据流出我的电脑内存到connection中让connection把参数帮我传到URL中去请求。
out.print(createQrParam);
// flush输出流的缓冲
out.flush();
//获取URL的connection中的输入流这个输入流就是我请求的url返回的数据,返回的数据在这个输入流中,流入我内存,我将从此流中读取数据。
in = conn.getInputStream();
//定义个空字节数组
byte[] data = null;
// 读取图片字节数组
try {
//创建字节数组输出流作为中转仓库,等待被写入数据
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = in.read(buff, 0, 100)) > 0) {
//向中转的输出流循环写出输入流中的数据
swapStream.write(buff, 0, rc);
}
//此时connection的输入流返回给我们的请求结果数据已经被完全地写入了我们定义的中转输出流swapStream中
data = swapStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
String base64Code = new String(Objects.requireNonNull(Base64.encodeBase64(data)));
//Base64转byte[]数组
System.out.println(base64Code);
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return null;
}
/**
* 使
*
*
* @auth:kirito
*/
@Autowired
User user;
/*public String list(Model model){
user.
return
}*/
RcodeMapper rcodeMapper;
@RequestMapping("/login")
@Operation(summary = "登录")
public void weblogin(@RequestParam(value = "code") String code) {
QueryWrapper<Rcode> queryWrapper = new QueryWrapper<>();
queryWrapper.like("code", code);
Rcode authrcode = this.rcodeMapper.selectOne(queryWrapper);
String skey = authrcode.getSkey();
}
}

@ -0,0 +1,47 @@
package com.example.demo.controller;
import com.example.demo.domain.Task;
import com.example.demo.service.impl.TaskServiceImpl;
import com.example.demo.common.util.FormatResponseUtil;
import com.example.demo.common.util.ResponseResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@Tag(name = "WXL")
@RequestMapping("/task")
public class taskController {
@Autowired
public TaskServiceImpl taskService;
@Operation(summary = "获取任务信息")
@GetMapping("/taskList")
public ResponseResult queryAll() {
return FormatResponseUtil.formatResponse(taskService.queryAll());
}
@PostMapping("/addTask")
public ResponseResult addTask(@RequestBody Task task) {
return FormatResponseUtil.formatResponse(taskService.save(task));
}
@DeleteMapping("/delete")//这里执行的是物理删除
public ResponseResult delTaskById(Integer id){
return FormatResponseUtil.formatResponse(taskService.delTaskById(id));
}
@GetMapping("/one")
public ResponseResult queryById(int id){
return FormatResponseUtil.formatResponse(taskService.queryTaskById(id));
}
@PostMapping("/taskInfo")
public ResponseResult updateArea(@RequestBody Task task){
return FormatResponseUtil.formatResponse(taskService.updateById(task));
}
}

@ -0,0 +1,61 @@
package com.example.demo.domain;
import java.util.Random;
public class Rcode {
private String code;
private String skey;
public Rcode() {
}
public Rcode(String code, String skey) {
this.code = code;
this.skey = skey;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getSkey() {
return skey;
}
public void setSkey(String skey) {
this.skey = skey;
}
public String createCode() {
//定义字符串记录
String code = "";
Random r = new Random();
//for 循环5次依次生成随机字符
for (int i = 0; i < 5; i++) {
int type = r.nextInt(3);//0 1 2
switch (type) {
case 0:
//大写字符A 65-Z 65+25
char ch = (char) (r.nextInt(26) + 65);
code += ch;
break;
case 1:
//小写字符a 97-z 97+25
char ch1 = (char) (r.nextInt(26) + 97);
code += ch1;
break;
case 2:
//数字字符
code += r.nextInt(10);//0-9
break;
}
}
this.code = code;
return code;
}
}

@ -0,0 +1,118 @@
package com.example.demo.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
@TableName("task")
public class Task {
private static final long serialVersionUID = 1L;
public static final String CREATE_TIME = "createTime";
public static final String MODIFIED_TIME = "lastTime";
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
/*
*
* */
private String property;
//任务关联学号
private String stuid;
//任务截止时间
private String deadtime;
//任务状态默认0未完成
private Integer status;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime lastTime;
public String getDeadtime() {
return deadtime;
}
public void setDeadtime(String deadtime) {
this.deadtime = deadtime;
}
public String getStuid() {
return stuid;
}
public void setStuid(String stuid) {
this.stuid = stuid;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getLastTime() {
return lastTime;
}
public void setLastTime(LocalDateTime lastEditTime) {
this.lastTime = lastEditTime;
}
@Override
public String toString() {
return "Task{" +
"id=" + id +
", name=" + name +
", priority=" + property +
", createTime=" + createTime +
", lastEditTime=" + lastTime +
"}";
}
}

@ -72,6 +72,11 @@ public class Taskson extends Wrapper<Taskson> {
return null;
}
@Override
public void clear() {
}
/**
* SQL
*/

@ -12,19 +12,17 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
*
*
*/
@Data
@TableName("user")
public class User extends Wrapper<User> {
public class User extends Wrapper<User> {
private static final long serialVersionUID = 1L;
/**
* open_id
*/
@TableId(value = "open_id",type = IdType.INPUT)
@TableId(value = "open_id", type = IdType.INPUT)
private String openId;
/**
* skey
@ -108,6 +106,11 @@ public class User extends Wrapper<User> {
return null;
}
@Override
public void clear() {
}
@Override
public String getSqlSegment() {
return null;

@ -0,0 +1,10 @@
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.Rcode;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RcodeMapper extends BaseMapper<Rcode> {
}

@ -0,0 +1,18 @@
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.Task;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper
* </p>
*
* @author huang
* @since 2022-03-27
*/
@Mapper
public interface TaskMapper extends BaseMapper<Task> {
}

@ -0,0 +1,5 @@
<?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="com.example.demo.mapper.TaskMapper">
</mapper>

@ -0,0 +1,29 @@
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.domain.Task;
import java.util.List;
/**
* <p>
*
* </p>
*/
public interface ITaskService extends IService<Task> {
/**
* Area
*/
List<Task> queryAll();
/**
* IdTask
*/
Task queryTaskById(int id);
/**
* IdTask
*/
boolean delTaskById(int id);
}

@ -0,0 +1,56 @@
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.domain.Task;
import com.example.demo.mapper.TaskMapper;
import com.example.demo.service.ITaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
*/
@Service
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements ITaskService {
@Autowired(required = false)
TaskMapper taskMapper;
@Override
public List<Task> queryAll() {
LambdaQueryWrapper<Task> wrapper = Wrappers.lambdaQuery();
wrapper.orderByAsc(Task::getId);
List<Task> taskList = taskMapper.selectList(wrapper);
return taskList;
}
@Override
public Task queryTaskById(int id) {
Task task = taskMapper.selectById(id);
return task;
}
@Override
public boolean delTaskById(int id) {
boolean ans;
int i = taskMapper.deleteById(id);
return ans = i>0 ? true:false;
}
}

@ -9,7 +9,7 @@ spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306
url: jdbc:mysql://127.0.0.1:3306/wxlogin?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
username: root
password: Dq20020808
thymeleaf:

@ -0,0 +1,14 @@
/**
* 网页登录二维码生成
* auther:wangh
* 2022.11.6
*/
createCode()
{
let codeNumber = '';
for (var i = 0; i < 0; i++) {
codeNumber += Math.floor(Math.random() * 10);
}
this.codeNumber = codeNumber;
this.qrCode = ''
}

@ -52,7 +52,6 @@
</ul>
</nav>
<!--侧边栏-->
<div class="container-fluid">
<div class="row">
<nav class="col-md-2 d-none d-md-block bg-light sidebar" th:fragment="sidebar">

@ -57,7 +57,7 @@
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md -9 ml-sm-auto col-lg-10 pt-3 px-4">
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>Section title</h2>
<div class="table-responsive">
<table class="table table-striped table-sm">

Loading…
Cancel
Save