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");
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
微信小程序源码-校园二手物品交易系统的微信小程序毕业设计(源码+说明+数据库+录像).zip 【项目技术】 微信小程序开发工具+mysql+java+b/s 【实现功能】 服务端: 后台首页:可以直接跳转到后台首页。 用户信息管理:管理所有申请通过的用户。 商品信息管理:管理校园二手物品中所有的商品信息,非常详细。 违规投诉管理:对一些违规的投诉进行管理。 订单管理:对于平台上的订单进行管理。 个人信息管理管理:个人中心中主要是针对自己的信息资料进行查询管理,主要内容那肯定就会有对于个人资料的修改操作还有我们管理人员经常把修改密码和我的收藏放在一起的功能操作了。 前端: 首页:首页可以看到所有类别的二手物品。 全部:可以看到不同类别,比如电子产品、服装等商品信息 发布:可以发布自己的二手物品 我的:个人中心中主要是针对自己的信息资料进行查询管理,主要内容那肯定就会有对于个人资料的修改操作还有我们管理人员经常把修改密码和我的收藏放在一起的功能操作了。
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序源码-校园二手物品交易系统的微信小程序毕业设计(源码+说明+数据库+录像).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
资源评论
岛上程序猿
- 粉丝: 2035
- 资源: 3506
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功