从用户注册接口开始。源码:http://www.ib911.com/555/limingios/wxProgram.git 中的wx-springboot

工具类

  • 返回统一工具类JSONResult 放入common工程中

package?com.idig8.utils;

/**
?*?@Description:?自定义响应数据结构
?*??????????????这个类是提供给门户,ios,安卓,微信商城用的
?*??????????????门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式(类,或者list)
?*??????????????其他自行处理
?*??????????????200:表示成功
?*??????????????500:表示错误,错误信息在msg字段中
?*??????????????501:bean验证错误,不管多少个错误都以map形式返回
?*??????????????502:拦截器拦截到用户token出错
?*??????????????555:异常抛出信息
?*/
public?class?JSONResult?{

????//?响应业务状态
????private?Integer?status;

????//?响应消息
????private?String?msg;

????//?响应中的数据
????private?Object?data;

????private?String?ok;??//?不使用

????public?static?JSONResult?build(Integer?status,?String?msg,?Object?data)?{
????????return?new?JSONResult(status,?msg,?data);
????}

????public?static?JSONResult?ok(Object?data)?{
????????return?new?JSONResult(data);
????}

????public?static?JSONResult?ok()?{
????????return?new?JSONResult(null);
????}

????public?static?JSONResult?errorMsg(String?msg)?{
????????return?new?JSONResult(500,?msg,?null);
????}

????public?static?JSONResult?errorMap(Object?data)?{
????????return?new?JSONResult(501,?"error",?data);
????}

????public?static?JSONResult?errorTokenMsg(String?msg)?{
????????return?new?JSONResult(502,?msg,?null);
????}

????public?static?JSONResult?errorException(String?msg)?{
????????return?new?JSONResult(555,?msg,?null);
????}

????public?JSONResult()?{

????}

????public?JSONResult(Integer?status,?String?msg,?Object?data)?{
????????this.status?=?status;
????????this.msg?=?msg;
????????this.data?=?data;
????}

????public?JSONResult(Object?data)?{
????????this.status?=?200;
????????this.msg?=?"OK";
????????this.data?=?data;
????}

????public?Boolean?isOK()?{
????????return?this.status?==?200;
????}

????public?Integer?getStatus()?{
????????return?status;
????}

????public?void?setStatus(Integer?status)?{
????????this.status?=?status;
????}

????public?String?getMsg()?{
????????return?msg;
????}

????public?void?setMsg(String?msg)?{
????????this.msg?=?msg;
????}

????public?Object?getData()?{
????????return?data;
????}

????public?void?setData(Object?data)?{
????????this.data?=?data;
????}

????public?String?getOk()?{
????????return?ok;
????}

????public?void?setOk(String?ok)?{
????????this.ok?=?ok;
????}

}

````

*?加密类MD5Utils放入common工程中
```?java
package?com.idig8.utils;

import?java.security.MessageDigest;

import?org.apache.commons.codec.binary.Base64;

public?class?MD5Utils?{

????/**
?????*?@Description:?对字符串进行md5加密
?????*/
????public?static?String?getMD5Str(String?strValue)?throws?Exception?{
????????MessageDigest?md5?=?MessageDigest.getInstance("MD5");
????????String?newstr?=?Base64.encodeBase64String(md5.digest(strValue.getBytes()));
????????return?newstr;
????}

????public?static?void?main(String[]?args)?{
????????try?{
????????????String?md5?=?getMD5Str("idig8");
????????????System.out.println(md5);
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????}
}
  • org包下面的放入common工程中,主要里面有个Sid的自动生成Id的工具

service里面增加service

UserService.java

package?com.idig8.service;

import?com.idig8.pojo.Users;

public?interface?UserService?{

????/**
?????*?判断用户名是否存在
?????*?@param?username
?????*?@return
?????*/
????public?boolean?queryUsernameIsExist(String?username);

????/**
?????*?保存用户
?????*?@param?user
?????*?@return
?????*/
????public?void?saveUser(Users?user);

}

UserServiceImpl.java

package?com.idig8.service;

import?org.n3r.idworker.Sid;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.transaction.annotation.Propagation;
import?org.springframework.transaction.annotation.Transactional;

import?com.idig8.mapper.UsersMapper;
import?com.idig8.pojo.Users;

public?class?UserServiceImpl?implements?UserService?{

????@Autowired
????private?UsersMapper?usersMapper;

????@Autowired
????private?Sid?sid;

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?boolean?queryUsernameIsExist(String?username)?{
????????Users?user?=?new?Users();
????????user.setUsername(username);
????????Users?result?=?usersMapper.selectOne(user);
????????return?result==null??false:true;
????}

????@Transactional(propagation?=Propagation.REQUIRED)
????@Override
????public?void?saveUser(Users?user)?{
????????String?userId?=sid.nextShort();
????????user.setId(userId);
????????usersMapper.insert(user);
????}

}

api里面增加controller

RegistLoginController

package?com.idig8.controller;

import?org.apache.commons.lang3.StringUtils;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.web.bind.annotation.PostMapping;
import?org.springframework.web.bind.annotation.RequestBody;
import?org.springframework.web.bind.annotation.RestController;

import?com.github.pagehelper.util.StringUtil;
import?com.idig8.pojo.Users;
import?com.idig8.service.UserService;
import?com.idig8.utils.JSONResult;
import?com.idig8.utils.MD5Utils;

@RestController
public?class?RegistLoginController?{

????@Autowired
????private?UserService?userService;

????@PostMapping("/regist")
????public?JSONResult?regist(@RequestBody?Users?user)?{
????????//1.判断用户名和密码不能为空
????????if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword()))?{
????????????return?JSONResult.errorMsg("用户名或密码不能为空");
????????}

????????//2.判断用户名是否存在
????????boolean?usernameIsExist?=?userService.queryUsernameIsExist(user.getUsername());
????????if(!usernameIsExist)?{
????????????user.setNickname(user.getUsername());
????????????try?{
????????????????user.setPassword(MD5Utils.getMD5Str(user.getPassword()));
????????????}?catch?(Exception?e)?{

????????????????return?JSONResult.errorMsg(e.getMessage());
????????????}
????????????user.setFollowCounts(0);
????????????user.setReceiveLikeCounts(0);
????????????user.setFansCounts(0);
????????????userService.saveUser(user);
????????}else?{
????????????return?JSONResult.errorMsg("用户名或已经存在,请更换在试试!");
????????}



????????return?JSONResult.ok();
????}
}

PS:基本的流程就是先确定业务逻辑,开发service类,开发controller类,common里面都是一些工具。下次说说swagger的使用。