package cn.chich.seller.controller;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import cn.chich.seller.bean.User;
import cn.chich.seller.service.UserService;
import cn.chich.seller.util.AesCbcUtil;
import cn.chich.seller.util.HttpRequest;
import net.sf.json.JSONObject;
@RequestMapping("/wx/User")
@Controller
public class UserAPIController {
@Resource
private UserService userService;
String appID="wx3a6b3faec3d05461";
String appSecret="2b9e3da253434bb52297ca8cd3476e6d";
/**
* 处理登录请求
*/
@RequestMapping(value = "/getOpenid")
@ResponseBody
public Map getOpenid(String encryptedData, String iv, String code, String nickName,String gender, String city, String province, String country, String avatarUrl) {
Map map = new HashMap();
//登录凭证不能为空
if (code == null || code.length() == 0) {
map.put("code", 0);
map.put("msg", "code 不能为空");
return map;
}
//小程序唯一标识 (在微信小程序管理后台获取)
String wxspAppid = appID;
//小程序的 app secret (在微信小程序管理后台获取)
String wxspSecret = appSecret;
//授权(必填)
String grant_type = "authorization_code";
String grant_type2 = "client_credential";
//////////////// 1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid ////////////////
//请求参数
String params = "appid=" + wxspAppid + "&secret=" + wxspSecret + "&js_code=" + code + "&grant_type=" + grant_type;
String params2 = "appid=" + wxspAppid + "&secret=" + wxspSecret + "&grant_type=" + grant_type2;
System.out.println("params======"+params+",params2======"+params2);
//发送请求
String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params);
String sr2 = HttpRequest.sendGet("https://api.weixin.qq.com/cgi-bin/token", params2);
System.out.println("sr======"+sr+",sr2======"+sr2);
//解析相应内容(转换成json对象)
JSONObject json = JSONObject.fromObject(sr);
JSONObject json2 = JSONObject.fromObject(sr2);
//获取会话密钥(session_key)
String session_key = json.get("session_key").toString();
String access_token = json2.get("access_token").toString();
System.out.println(access_token);
//用户的唯一标识(openid)
String openid = (String) json.get("openid");
//////////////// 2、对encryptedData加密数据进行AES解密 ////////////////
System.out.println("openid="+openid);
System.out.println("session_key="+session_key);
System.out.println("iv="+iv);
System.out.println("encryptedData="+encryptedData);
try {
if(openid != null && openid != "") {
map.put("code", 1);
map.put("msg", "解密成功");
User user = new User();
user.setNickName(nickName);
user.setHeadimg(avatarUrl);
user.setOpenId((String) openid);
user.setGender(Integer.parseInt(gender));
User user1=userService.selectUserByOpenId(user.getOpenId());
if(user1!=null) {
userService.updateUserInfo(user);
user.setId(user1.getId());
}else {
userService.addWXUserInfo(user);
}
Map userInfo = new HashMap();
userInfo.put("openId", openid);
userInfo.put("nickName", nickName);
userInfo.put("gender", gender);
userInfo.put("city", city);
userInfo.put("province", province);
userInfo.put("country", country);
userInfo.put("avatarUrl", avatarUrl);
userInfo.put("accessToken",access_token);
userInfo.put("id",user.getId());
if(user1!=null) {
userInfo.put("qq",user1.getQq());
userInfo.put("email",user1.getEmail());
userInfo.put("phone",user1.getPhone());
userInfo.put("schoolId",user1.getSchoolId());
userInfo.put("schoolName",user1.getSchoolName());
userInfo.put("deptId",user1.getDeptId());
userInfo.put("deptName",user1.getDeptName());
userInfo.put("majorId",user1.getMajorId());
userInfo.put("majorName",user1.getMajorName());
userInfo.put("addr",user1.getAddr());
userInfo.put("remark",user1.getRemark());
userInfo.put("userName",user1.getUserName());
userInfo.put("idNum,",user1.getIdNum());
userInfo.put("status,",user1.getStatus());
}
map.put("userInfo", userInfo);
return map;
}
} catch (Exception e) {
e.printStackTrace();
}
map.put("code", 0);
map.put("msg", "解密失败");
return map;
}
@RequestMapping("getUserInfoById")
@ResponseBody
public Map getUserInfoById(String id){
Map map = new HashMap();
User user=userService.getUserById(Integer.parseInt(id));
if(user.getFroEndTime()!=null&&System.currentTimeMillis()>user.getFroEndTime().getTime()) {
//更新用户状态为已认证1011,违规次数=0
userService.unFrozenUserById(user.getId(),1011);
}
map.put("data", user);
map.put("code", 1);
return map;
}
@RequestMapping("getReportNum")
@ResponseBody
public Map getReportNum(int id){
Map map = new HashMap();
int reportNum=userService.getReportNum(id);
map.put("reportNum", reportNum);
map.put("code", 1);
return map;
}
@RequestMapping("editWXUser")
@ResponseBody
public Map editWXUser(User user){
Map map = new HashMap();
int i=userService.editWXUserInfo(user);
if(i>0) {
User user1=userService.getUser(user.getId());
map.put("userInfo", user1);
map.put("code", 1);
}else {
map.put("code", 0);
}
return map;
}
@RequestMapping("authCenter")
@ResponseBody
public Map authCenter(User user){
Map map = new HashMap();
int i=userService.authCenter(user);
if(i>0) {
User user1=userService.getUser(user.getId());
map.put("userInfo", user1);
map.put("code", 1);
}else {
map.put("code", 0);
}
return map;
}
//获取当前日期时间的string类型用于文件名防重复
public String dates(){
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String dateString = formatter.format(currentTime);
return dateString;
}
@RequestMapping("uploadUrl")
@ResponseBody
public Map uploadPicture(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map map=new HashMap<String,Object>();
//获取从前台传过来得图片
MultipartHttpServletRequest req =(MultipartHttpServletRequest)request;
MultipartFile multipartFile = req.getFile("file");
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
小程序毕业设计,小程序课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 1. 技术组成 前端: 小程序 后台框架:Java SSM/Java SpringBoot(如果有的话) 开发环境:idea,微信开发者工具 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库可视化工具:使用 Navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序-校园二手物品交易系统(ssm)(包括源码,数据库,教程).zip (942个子文件)
UserAPIController.class 10KB
UserController.class 10KB
UserAPIController.class 9KB
UserController.class 8KB
WantAPIController.class 7KB
User.class 6KB
User.class 6KB
GoodsAPIController.class 6KB
GoodsAPIController.class 6KB
Want.class 5KB
Want.class 5KB
Goods.class 5KB
Goods.class 5KB
LayUploadController.class 5KB
LayUploadController.class 5KB
HttpRequest.class 4KB
HttpRequest.class 4KB
UserServiceImpl.class 4KB
Orders.class 4KB
Orders.class 4KB
UserServiceImpl.class 4KB
OrderAPIController.class 4KB
OrderAPIController.class 4KB
GoodsServiceImpl.class 4KB
Collect.class 4KB
Collect.class 4KB
GoodsServiceImpl.class 3KB
CollectAPIController.class 3KB
Comment.class 3KB
Comment.class 3KB
AesCbcUtil.class 3KB
GoodsController.class 3KB
GoodsController.class 3KB
AesCbcUtil.class 3KB
WantServiceImpl.class 3KB
WantServiceImpl.class 3KB
WantController.class 3KB
WantController.class 3KB
Report.class 3KB
Report.class 3KB
CollectAPIController.class 3KB
LoginHandlerIntercepter.class 2KB
CommentAPIController.class 2KB
CommentAPIController.class 2KB
LoginHandlerIntercepter.class 2KB
ReportController.class 2KB
ReportController.class 2KB
GoodsTypeController.class 2KB
GoodsTypeController.class 2KB
MajorAPIController.class 2KB
MajorAPIController.class 2KB
OrdersServiceImpl.class 2KB
OrdersServiceImpl.class 2KB
GoodsLog.class 2KB
Dept.class 2KB
Dept.class 2KB
GoodsDao.class 2KB
CollectServiceImpl.class 1KB
CollectServiceImpl.class 1KB
GoodsTypeAPIController.class 1KB
GoodsTypeAPIController.class 1KB
GoodsDao.class 1KB
ReportAPIController.class 1KB
ReportAPIController.class 1KB
GoodsService.class 1KB
UserService.class 1KB
BaseCode.class 1KB
BaseCode.class 1KB
School.class 1KB
School.class 1KB
OrderController.class 1KB
OrderController.class 1KB
ReportSericeImpl.class 1KB
ReportSericeImpl.class 1KB
UserDao.class 1KB
GoodsTypeServiceImpl.class 1KB
GoodsTypeServiceImpl.class 1KB
GoodsType.class 1KB
GoodsType.class 1KB
UserService.class 1KB
UserDao.class 1KB
GoodsService.class 1KB
SchoolAPIController.class 1KB
MajorController.class 1KB
DeptController.class 1KB
SchoolController.class 1KB
SchoolAPIController.class 1KB
DeptController.class 1KB
MajorController.class 1KB
SchoolController.class 1KB
BaseCodeController.class 1KB
WantService.class 1KB
BaseCodeController.class 1KB
WantService.class 1KB
DeptServiceImpl.class 1KB
WantDao.class 1KB
WantDao.class 1KB
Major.class 1KB
Major.class 1KB
GoodsLogServiceImpl.class 1KB
共 942 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
IT徐师兄
- 粉丝: 1963
- 资源: 2689
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功