Commit a72d87a1 by zhoujinghao

修改包结构

1 parent 28f89388
Showing 40 changed files with 148 additions and 1108 deletions
package org.nafmii.admin.controller; package org.nafmii.admin.user.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.nafmii.admin.user.service.TestService;
import org.nafmii.admin.service.TestService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
package org.nafmii.admin.service.impl; package org.nafmii.admin.user.service.impl;
import org.nafmii.admin.service.TestService; import org.nafmii.admin.user.service.TestService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
......
...@@ -6,10 +6,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -6,10 +6,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages={"org.nafmii","org.nafmii.exception"}) @SpringBootApplication(scanBasePackages={"org.nafmii"})
@EnableEurekaClient @EnableEurekaClient
@EnableFeignClients @EnableFeignClients
@MapperScan("org.nafmii/**/mapper") @MapperScan("org.nafmii.app.user.dao")
public class NafmiiAppApplication { public class NafmiiAppApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package org.nafmii.app.dto.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/26 13:39
* @ClassName:
* @version:
* @remark:
*/
@Data
@ApiModel("app用户注册参数对象")
public class RegisterDto {
@NotNull(message = "手机号或登录账号不能为空")
@ApiModelProperty("手机号/登录账号")
private String phone;
@ApiModelProperty("头像图片地址")
private String headPicture;
@NotNull(message = "验证码不能为空")
@ApiModelProperty("验证码")
private String code;
@NotNull(message = "注册密码不能为空")
@ApiModelProperty("登陆密码")
private String loginPwd;
@NotNull(message = "确认密码不能为空")
@ApiModelProperty("确认密码")
private String confirmPwd;
}
package org.nafmii.app.entity;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class CenterRole implements Serializable {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "角色名称")
private String rName;
@ApiModelProperty(value = "创建时间")
private Date creatTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "启用禁用 0 启用 1禁用")
private String isEnable;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getrName() {
return rName;
}
public void setrName(String rName) {
this.rName = rName;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getIsEnable() {
return isEnable;
}
public void setIsEnable(String isEnable) {
this.isEnable = isEnable;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", rName=").append(rName);
sb.append(", creatTime=").append(creatTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", isEnable=").append(isEnable);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file \ No newline at end of file
package org.nafmii.app.entity.user;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class AppUser implements Serializable {
private Long id;
@ApiModelProperty(value = "昵称")
private String userName;
@ApiModelProperty(value = "登录密码")
private String loginPwd;
@ApiModelProperty(value = "中文姓名")
private String realName;
@ApiModelProperty(value = "手机号/登录账号")
private String phone;
@ApiModelProperty(value = "出生日期")
private String birthday;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "头像图片地址")
private String headPicture;
@ApiModelProperty(value = "国籍")
private String nationality;
@ApiModelProperty(value = "单位全称")
private String unitName;
@ApiModelProperty(value = "微信OPENT_ID")
private String openId;
@ApiModelProperty(value = "是否开启指纹登录 0 未开启 1 已开启")
private String figerprintFalg;
@ApiModelProperty(value = "是否开启人脸识别登录 0 未开启 1 已开启")
private String faceidFalg;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "是否有效标识 0 有效用户 1无效用户")
private String isEnable;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getHeadPicture() {
return headPicture;
}
public void setHeadPicture(String headPicture) {
this.headPicture = headPicture;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getFigerprintFalg() {
return figerprintFalg;
}
public void setFigerprintFalg(String figerprintFalg) {
this.figerprintFalg = figerprintFalg;
}
public String getFaceidFalg() {
return faceidFalg;
}
public void setFaceidFalg(String faceidFalg) {
this.faceidFalg = faceidFalg;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getIsEnable() {
return isEnable;
}
public void setIsEnable(String isEnable) {
this.isEnable = isEnable;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", userName=").append(userName);
sb.append(", loginPwd=").append(loginPwd);
sb.append(", realName=").append(realName);
sb.append(", phone=").append(phone);
sb.append(", birthday=").append(birthday);
sb.append(", email=").append(email);
sb.append(", headPicture=").append(headPicture);
sb.append(", nationality=").append(nationality);
sb.append(", unitName=").append(unitName);
sb.append(", openId=").append(openId);
sb.append(", figerprintFalg=").append(figerprintFalg);
sb.append(", faceidFalg=").append(faceidFalg);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", isEnable=").append(isEnable);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file \ No newline at end of file
package org.nafmii.app.enums;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/26 14:23
* @ClassName:用户枚举
* @version:
* @remark:
*/
public enum UserEnum {
/**
* 是否开启人脸识别登录 0 未开启 1 已开启
*/
FACE("1", "已开启"),
NOTFACE("0", "未开启"),
/**
* 是否开启指纹登录 0 未开启 1 已开启
*/
FINGERPRINT("1","已开启"),
NOTFINGERPRINT("0","未开启"),
/**
* 是否有效标识 0 有效用户 1无效用户
*/
ENABLE("0","有效用户"),
NOTENABLE("1","无效用户"),
LOGINPHONE("1","验证码"),
LOGINPWD("0","密码"),
;
UserEnum(String code, String name){
this.code = code;
this.name = name;
}
private String name;
private String code;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
package org.nafmii.app.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/22 9:04
* @ClassName:
* @version:
* @remark:
*/
@FeignClient(value = "nafmii-admin")
public interface AdminService {
//测试feign
@GetMapping("web/nafmii/test/search")
public String search();
}
package org.nafmii.app.mapper.user;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.nafmii.app.entity.user.AppUser;
import org.nafmii.app.entity.user.AppUserExample;
import org.nafmii.app.dto.user.LoginDto;
import org.nafmii.app.vo.UserVO;
import java.util.List;
@Mapper
public interface AppUserMapper {
long countByExample(AppUserExample example);
int deleteByExample(AppUserExample example);
int deleteByPrimaryKey(Long id);
int insert(AppUser record);
int insertSelective(AppUser record);
List<AppUser> selectByExample(AppUserExample example);
List<UserVO> selectByPassword(LoginDto loginDto);
List<UserVO> selectByPhone(@Param("phone") String phone);
AppUser selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") AppUser record, @Param("example") AppUserExample example);
int updateByExample(@Param("record") AppUser record, @Param("example") AppUserExample example);
int updateByPrimaryKeySelective(AppUser record);
int updateByPrimaryKey(AppUser record);
}
\ No newline at end of file \ No newline at end of file
...@@ -25,7 +25,7 @@ public class SwaggerConfig { ...@@ -25,7 +25,7 @@ public class SwaggerConfig {
// String basePackage = ADMIN_SWAGGER;// 要暴露的API接口的基础包名 // String basePackage = ADMIN_SWAGGER;// 要暴露的API接口的基础包名
return new Docket (DocumentationType.SWAGGER_2) return new Docket (DocumentationType.SWAGGER_2)
.select () .select ()
.apis (RequestHandlerSelectors.basePackage ("org.nafmii")) .apis (RequestHandlerSelectors.basePackage ("org.nafmii.app"))
.paths (PathSelectors.any ()) .paths (PathSelectors.any ())
.build () .build ()
.apiInfo (apiInfo ()) .apiInfo (apiInfo ())
......
package org.nafmii.app.controller; package org.nafmii.app.user.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.nafmii.app.service.AppService; import org.nafmii.app.user.service.AppService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
package org.nafmii.app.controller; package org.nafmii.app.user.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.nafmii.app.service.UserService; import org.nafmii.app.user.dto.LoginDto;
import org.nafmii.app.dto.user.LoginDto; import org.nafmii.app.user.dto.RegisterDto;
import org.nafmii.app.dto.user.RegisterDto; import org.nafmii.app.user.service.UserService;
import org.nafmii.app.user.vo.UserVO;
import org.nafmii.common.response.ApiResponse; import org.nafmii.common.response.ApiResponse;
import org.nafmii.app.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
package org.nafmii.app.user.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.nafmii.app.user.dto.LoginDto;
import org.nafmii.app.user.entity.AppUserPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nafmii.app.user.vo.UserVO;
import java.util.List;
/**
* <p>
* APP用户表 Mapper 接口
* </p>
*
* @author zjh
* @since 2021-04-27
*/
@Mapper
public interface AppUserMapper extends BaseMapper<AppUserPO> {
List<UserVO> selectByPassword(LoginDto loginDto);
List<UserVO> selectByPhone(@Param("phone") String phone);
}
package org.nafmii.app.dto.user; package org.nafmii.app.user.dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package org.nafmii.user.dto.user; package org.nafmii.app.user.dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package org.nafmii.user.vo; package org.nafmii.app.user.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date; import lombok.experimental.Accessors;
/** /**
* @author:zhoujh * <p>
* @Function:TODO * APP用户表
* @date 2021/4/25 10:22 * </p>
* @ClassName: *
* @version: * @author zjh
* @remark: * @since 2021-04-27
*/ */
@Data @Data
@ApiModel("用户返回报文") @EqualsAndHashCode(callSuper = true)
public class UserVO { @Accessors(chain = true)
@TableName("APP_USER")
@ApiModel(value="AppUserPO对象", description="APP用户表")
public class AppUserPO extends Model {
private static final long serialVersionUID=1L;
@TableId("ID")
private Long id; private Long id;
@ApiModelProperty(value = "昵称") @ApiModelProperty(value = "昵称")
@TableField("USER_NAME")
private String userName; private String userName;
@ApiModelProperty(value = "登录密码") @ApiModelProperty(value = "登录密码")
@TableField("LOGIN_PWD")
private String loginPwd; private String loginPwd;
@ApiModelProperty(value = "中文姓名") @ApiModelProperty(value = "中文姓名")
@TableField("REAL_NAME")
private String realName; private String realName;
@ApiModelProperty(value = "手机号/登录账号") @ApiModelProperty(value = "手机号/登录账号")
@TableField("PHONE")
private String phone; private String phone;
@ApiModelProperty(value = "出生日期") @ApiModelProperty(value = "出生日期 示例:2020-10-10")
@TableField("BIRTHDAY")
private String birthday; private String birthday;
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
@TableField("EMAIL")
private String email; private String email;
@ApiModelProperty(value = "头像图片地址") @ApiModelProperty(value = "头像图片地址")
@TableField("HEAD_PICTURE")
private String headPicture; private String headPicture;
@ApiModelProperty(value = "国籍") @ApiModelProperty(value = "国籍")
@TableField("NATIONALITY")
private String nationality; private String nationality;
@ApiModelProperty(value = "单位全称") @ApiModelProperty(value = "单位全称")
@TableField("UNIT_NAME")
private String unitName; private String unitName;
@ApiModelProperty(value = "微信OPENT_ID") @ApiModelProperty(value = "微信OPENT_ID")
@TableField("OPEN_ID")
private String openId; private String openId;
@ApiModelProperty(value = "是否开启指纹登录 0 未开启 1 已开启") @ApiModelProperty(value = "是否开启指纹登录 0 未开启 1 已开启")
@TableField("FIGERPRINT_FALG")
private String figerprintFalg; private String figerprintFalg;
@ApiModelProperty(value = "是否开启人脸识别登录 0 未开启 1 已开启") @ApiModelProperty(value = "是否开启人脸识别登录 0 未开启 1 已开启")
@TableField("FACEID_FALG")
private String faceidFalg; private String faceidFalg;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; @TableField("CREATE_TIME")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private Date updateTime; @TableField("UPDATE_TIME")
private LocalDateTime updateTime;
@ApiModelProperty(value = "是否有效标识 0 有效用户 1无效用户") @ApiModelProperty(value = "是否有效标识 0 有效用户 1无效用户")
@TableField("IS_ENABLE")
private String isEnable; private String isEnable;
@ApiModelProperty(value = "token")
private String token;
} }
package org.nafmii.app.service; package org.nafmii.app.user.service;
/** /**
* @author:zhoujh * @author:zhoujh
......
package org.nafmii.app.service; package org.nafmii.app.user.service;
import org.nafmii.app.dto.user.LoginDto; import org.nafmii.app.user.dto.LoginDto;
import org.nafmii.app.dto.user.RegisterDto; import org.nafmii.app.user.dto.RegisterDto;
import org.nafmii.app.user.vo.UserVO;
import org.nafmii.common.response.ApiResponse; import org.nafmii.common.response.ApiResponse;
import org.nafmii.app.vo.UserVO;
/** /**
* @author:zhoujh * @author:zhoujh
......
package org.nafmii.app.service.impl; package org.nafmii.app.user.service.impl;
import org.nafmii.app.feignservice.AdminService;
import org.nafmii.app.service.AppService; import org.nafmii.app.feign.AdminService;
import org.nafmii.app.user.service.AppService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package org.nafmii.app.service.impl; package org.nafmii.app.user.service.impl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nafmii.app.dto.user.LoginDto; import org.nafmii.app.user.dao.AppUserMapper;
import org.nafmii.app.dto.user.RegisterDto; import org.nafmii.app.user.dto.LoginDto;
import org.nafmii.app.entity.user.AppUser; import org.nafmii.app.user.dto.RegisterDto;
import org.nafmii.app.enums.UserEnum; import org.nafmii.app.user.entity.AppUserPO;
import org.nafmii.app.user.service.UserService;
import org.nafmii.app.user.vo.UserAndRoleVo;
import org.nafmii.app.user.vo.UserVO;
import org.nafmii.common.exception.BusinessException; import org.nafmii.common.exception.BusinessException;
import org.nafmii.app.mapper.user.AppUserMapper;
import org.nafmii.common.response.ApiResponse; import org.nafmii.common.response.ApiResponse;
import org.nafmii.app.service.UserService;
import org.nafmii.common.utils.GuavaUtil; import org.nafmii.common.utils.GuavaUtil;
import org.nafmii.common.utils.JwtUtils; import org.nafmii.common.utils.JwtUtils;
import org.nafmii.common.utils.SnowFlakeUtil; import org.nafmii.common.utils.SnowFlakeUtil;
import org.nafmii.app.vo.UserAndRoleVo; import org.nafmii.enums.UserEnum;
import org.nafmii.app.vo.UserVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -78,7 +78,7 @@ public class UserServiceImpl implements UserService { ...@@ -78,7 +78,7 @@ public class UserServiceImpl implements UserService {
@Override @Override
public ApiResponse register(RegisterDto registerDto) { public ApiResponse register(RegisterDto registerDto) {
//用户实体类 //用户实体类
AppUser appUser = new AppUser(); AppUserPO appUser = new AppUserPO();
appUser.setId(SnowFlakeUtil.nextId()); appUser.setId(SnowFlakeUtil.nextId());
appUser.setFaceidFalg(UserEnum.NOTFACE.getCode()); appUser.setFaceidFalg(UserEnum.NOTFACE.getCode());
appUser.setFigerprintFalg(UserEnum.NOTFINGERPRINT.getCode()); appUser.setFigerprintFalg(UserEnum.NOTFINGERPRINT.getCode());
...@@ -90,8 +90,12 @@ public class UserServiceImpl implements UserService { ...@@ -90,8 +90,12 @@ public class UserServiceImpl implements UserService {
throw new BusinessException("两次密码输入不相同,请再次输入"); throw new BusinessException("两次密码输入不相同,请再次输入");
} }
appUser.setLoginPwd(registerDto.getLoginPwd()); appUser.setLoginPwd(registerDto.getLoginPwd());
appUser.setCreateTime(new Date()); //格式化格式
appUser.setUpdateTime(new Date()); String format = "YYYY-MM-dd hh:mm:ss";
// DateTimeFormatter.ofPattern方法根据指定的格式输出时间
String formatDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
// appUser.setCreateTime(formatDateTime);
// appUser.setUpdateTime(new Date());
log.info("用户注册参数==============>"+registerDto); log.info("用户注册参数==============>"+registerDto);
//将验证码放入到缓存当中(过期时间60s)test //将验证码放入到缓存当中(过期时间60s)test
// GuavaUtil.putTrackGuava(registerDto.getPhone(),registerDto.getCode()); // GuavaUtil.putTrackGuava(registerDto.getPhone(),registerDto.getCode());
...@@ -105,7 +109,7 @@ public class UserServiceImpl implements UserService { ...@@ -105,7 +109,7 @@ public class UserServiceImpl implements UserService {
throw new BusinessException("验证码错误请重新输入"); throw new BusinessException("验证码错误请重新输入");
} }
int i = appUserMapper.insertSelective(appUser); int i = appUserMapper.insert(appUser);
if (i<0){ if (i<0){
return new ApiResponse().fail("新增失败"); return new ApiResponse().fail("新增失败");
} }
......
package org.nafmii.user.service; package org.nafmii.app.user;
/** /**
* @author:zhoujh * @author:zhoujh
* @Function:TODO * @Function:TODO
* @date 2021/4/27 9:50 * @date 2021/4/27 10:54
* @ClassName: * @ClassName:
* @version: * @version:
* @remark: * @remark:
*/ */
public interface AppService { public class test {
//test
String search();
} }
package org.nafmii.app.vo; package org.nafmii.app.user.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
package org.nafmii.app.vo; package org.nafmii.app.user.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author:zhoujh * @author:zhoujh
......
package org.nafmii.user.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nafmii.user.service.AppService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/22 9:08
* @ClassName:
* @version:
* @remark:
*/
@RestController
@RequestMapping("app/nafmii/test/")
@Api(tags = "2.0.0", description = "测试")
public class AppController {
@Autowired
private AppService appService;
@ApiOperation( value = "测试",notes = "测试")
@GetMapping("search")
public String search(){
String test = appService.search();
return test;
}
}
package org.nafmii.user.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nafmii.user.dto.user.LoginDto;
import org.nafmii.user.dto.user.RegisterDto;
import org.nafmii.response.ApiResponse;
import org.nafmii.user.service.UserService;
import org.nafmii.user.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/25 10:10
* @ClassName:
* @version:
* @remark:
*/
@RestController
@RequestMapping("app/nafmii/user")
@Api(tags = "2.0.0", description = "用户登陆注册操作操作【zjh】")
public class UserController {
@Autowired
private UserService userService;
@ApiOperation( value = "模拟用户登陆",notes = "模拟用户登陆")
@PostMapping("/loginTest")
@ResponseBody
public ApiResponse<UserVO> loginTest (){
ApiResponse<UserVO> login = userService.login();
return login;
}
@ApiOperation( value = "app用户注册接口",notes = "app用户注册接口")
@PostMapping("/register")
@ResponseBody
public ApiResponse register (@RequestBody RegisterDto registerDto){
ApiResponse register = userService.register(registerDto);
return register;
}
@ApiOperation( value = "app用户登陆接口(密码加验证码)",notes = "app用户登陆接口(密码加验证码)")
@PostMapping("/userLogin")
@ResponseBody
public ApiResponse<UserVO> login (@RequestBody LoginDto loginDto){
ApiResponse<UserVO> login = userService.userLogin(loginDto);
return login;
}
}
package org.nafmii.user.dto.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/26 16:41
* @ClassName:
* @version:
* @remark:
*/
@Data
@ApiModel("app用户登陆参数对象")
public class LoginDto {
@NotNull(message = "手机号或登录账号不能为空")
@ApiModelProperty("手机号/登录账号")
private String phone;
@NotNull(message = "注册密码不能为空")
@ApiModelProperty("登陆密码")
private String loginPwd;
@NotNull(message = "验证码不能为空")
@ApiModelProperty("验证码")
private String code;
@NotNull(message = "登陆方式不能为空")
@ApiModelProperty("登陆方式0密码1验证码")
private String type;
}
package org.nafmii.user.mapper.user;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.nafmii.user.dto.user.LoginDto;
import org.nafmii.user.po.user.AppUser;
import org.nafmii.user.po.user.AppUserExample;
import org.nafmii.user.vo.UserVO;
import java.util.List;
@Mapper
public interface AppUserMapper {
long countByExample(AppUserExample example);
int deleteByExample(AppUserExample example);
int deleteByPrimaryKey(Long id);
int insert(AppUser record);
int insertSelective(AppUser record);
List<AppUser> selectByExample(AppUserExample example);
UserVO selectByPassword(LoginDto loginDto);
UserVO selectByPhone(@Param("phone") String phone);
AppUser selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") AppUser record, @Param("example") AppUserExample example);
int updateByExample(@Param("record") AppUser record, @Param("example") AppUserExample example);
int updateByPrimaryKeySelective(AppUser record);
int updateByPrimaryKey(AppUser record);
}
\ No newline at end of file \ No newline at end of file
package org.nafmii.user.po.user;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class AppUser implements Serializable {
private Long id;
@ApiModelProperty(value = "昵称")
private String userName;
@ApiModelProperty(value = "登录密码")
private String loginPwd;
@ApiModelProperty(value = "中文姓名")
private String realName;
@ApiModelProperty(value = "手机号/登录账号")
private String phone;
@ApiModelProperty(value = "出生日期")
private String birthday;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "头像图片地址")
private String headPicture;
@ApiModelProperty(value = "国籍")
private String nationality;
@ApiModelProperty(value = "单位全称")
private String unitName;
@ApiModelProperty(value = "微信OPENT_ID")
private String openId;
@ApiModelProperty(value = "是否开启指纹登录 0 未开启 1 已开启")
private String figerprintFalg;
@ApiModelProperty(value = "是否开启人脸识别登录 0 未开启 1 已开启")
private String faceidFalg;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "是否有效标识 0 有效用户 1无效用户")
private String isEnable;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getHeadPicture() {
return headPicture;
}
public void setHeadPicture(String headPicture) {
this.headPicture = headPicture;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getFigerprintFalg() {
return figerprintFalg;
}
public void setFigerprintFalg(String figerprintFalg) {
this.figerprintFalg = figerprintFalg;
}
public String getFaceidFalg() {
return faceidFalg;
}
public void setFaceidFalg(String faceidFalg) {
this.faceidFalg = faceidFalg;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getIsEnable() {
return isEnable;
}
public void setIsEnable(String isEnable) {
this.isEnable = isEnable;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", userName=").append(userName);
sb.append(", loginPwd=").append(loginPwd);
sb.append(", realName=").append(realName);
sb.append(", phone=").append(phone);
sb.append(", birthday=").append(birthday);
sb.append(", email=").append(email);
sb.append(", headPicture=").append(headPicture);
sb.append(", nationality=").append(nationality);
sb.append(", unitName=").append(unitName);
sb.append(", openId=").append(openId);
sb.append(", figerprintFalg=").append(figerprintFalg);
sb.append(", faceidFalg=").append(faceidFalg);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", isEnable=").append(isEnable);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file \ No newline at end of file
package org.nafmii.user.service;
import org.nafmii.response.ApiResponse;
import org.nafmii.user.dto.user.LoginDto;
import org.nafmii.user.dto.user.RegisterDto;
import org.nafmii.user.vo.UserVO;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/27 9:53
* @ClassName:
* @version:
* @remark:
*/
public interface UserService {
//模拟用户登陆接口
ApiResponse<UserVO> login();
//app注册接口
ApiResponse register(RegisterDto registerDto);
//用户登陆接口
ApiResponse<UserVO> userLogin(LoginDto loginDto);
}
package org.nafmii.user.service.impl;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/27 9:51
* @ClassName:
* @version:
* @remark:
*/
import org.nafmii.feign.AdminService;
import org.nafmii.user.service.AppService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/22 9:30
* @ClassName:
* @version:
* @remark:
*/
@Service
public class AppServiceImpl implements AppService {
@Autowired
private AdminService adminService;
@Override
public String search() {
String search = adminService.search();
return search;
}
}
package org.nafmii.user.service.impl;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/27 9:54
* @ClassName:
* @version:
* @remark:
*/
import lombok.extern.slf4j.Slf4j;
import org.nafmii.enums.UserEnum;
import org.nafmii.exception.BusinessException;
import org.nafmii.response.ApiResponse;
import org.nafmii.user.dto.user.LoginDto;
import org.nafmii.user.dto.user.RegisterDto;
import org.nafmii.user.mapper.user.AppUserMapper;
import org.nafmii.user.po.user.AppUser;
import org.nafmii.user.service.UserService;
import org.nafmii.user.vo.UserAndRoleVo;
import org.nafmii.user.vo.UserVO;
import org.nafmii.utils.GuavaUtil;
import org.nafmii.utils.JwtUtils;
import org.nafmii.utils.SnowFlakeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/25 10:20
* @ClassName:app用户实现类
* @version:
* @remark:
*/
@Service
@Slf4j
public class UserServiceImpl implements UserService {
@Resource
private AppUserMapper appUserMapper;
/**
* 模拟用户登陆
* @return
*/
@Override
public ApiResponse<UserVO> login() {
ApiResponse result = new ApiResponse();
//假设验证数据通过
UserVO userVO = new UserVO();
userVO.setLoginPwd("zzz");
userVO.setUserName("zzz");
List<UserAndRoleVo> roleList =new ArrayList<>();
UserAndRoleVo roleVo = new UserAndRoleVo();
UserAndRoleVo roleTwoVo = new UserAndRoleVo();
roleVo.setRole("a");
roleList.add(roleVo);
roleTwoVo.setRole("b");
roleList.add(roleTwoVo);
// userVO.setAuthorities(roleList);
StringBuilder sbf = new StringBuilder();
for (UserAndRoleVo role:roleList
) {
sbf=sbf.append(role.getRole()+",");
}
//处理字符串
String sRole = sbf.toString();
String substring = sRole.substring(0, sRole.lastIndexOf(","));
String token = JwtUtils.createToken(userVO.getUserName(),substring);
// userVO.setToken(token);
result.setData(userVO);
return result;
}
/**
* app用户注册接口
* @param registerDto
* @return
*/
@Override
public ApiResponse register(RegisterDto registerDto) {
//通过手机号查询用户信息
UserVO userVO = appUserMapper.selectByPhone(registerDto.getPhone());
if (null != userVO){
throw new BusinessException("该用户已经注册");
}
//用户实体类
AppUser appUser = new AppUser();
appUser.setId(SnowFlakeUtil.nextId());
appUser.setFaceidFalg(UserEnum.NOTFACE.getCode());
appUser.setFigerprintFalg(UserEnum.NOTFINGERPRINT.getCode());
appUser.setHeadPicture(registerDto.getHeadPicture());
appUser.setIsEnable(UserEnum.ENABLE.getCode());
appUser.setPhone(registerDto.getPhone());
//判断注册密码和再次输入密码
if (!registerDto.getLoginPwd().equals(registerDto.getConfirmPwd())){
throw new BusinessException("两次密码输入不相同,请再次输入");
}
appUser.setLoginPwd(registerDto.getLoginPwd());
appUser.setCreateTime(new Date());
appUser.setUpdateTime(new Date());
log.info("用户注册参数==============>"+registerDto);
//将验证码放入到缓存当中(过期时间60s)test
// GuavaUtil.putTrackGuava(registerDto.getPhone(),registerDto.getCode());
//重缓存中获取(通过手机号获取)
String code = (String) GuavaUtil.getTrackGuava(registerDto.getPhone());
log.info("冲缓存中获取的验证码===============》{}",code);
if (null == code){
throw new BusinessException("验证码已过期");
}
if (!code.equals(registerDto.getCode())){
throw new BusinessException("验证码错误请重新输入");
}
int i = appUserMapper.insertSelective(appUser);
if (i<0){
return new ApiResponse().fail("新增失败");
}
return new ApiResponse();
}
/**
* 用户登陆接口
* @param loginDto
* @return
*/
@Override
public ApiResponse<UserVO> userLogin(LoginDto loginDto) {
UserVO userVo = new UserVO();
//首先判断登陆方式
if (loginDto.getType().equals("0")){
//密码登陆
userVo = appUserMapper.selectByPassword(loginDto);
if (null == userVo){
throw new BusinessException("请先注册");
}
}else{
//验证码登陆
String code = (String) GuavaUtil.getTrackGuava(loginDto.getPhone());
log.info("冲缓存中获取的验证码===============》{}",code);
if (null == code){
throw new BusinessException("验证码已过期");
}
if (!code.equals(loginDto.getCode())){
throw new BusinessException("验证码错误请重新输入");
}
userVo = appUserMapper.selectByPhone(loginDto.getPhone());
if (null == userVo){
throw new BusinessException("请先注册");
}
}
//通过用户id查找相关角色信息
//生成token
// String token = JwtUtils.createToken(loginDto.getPhone(),substring);
// userVo.setToken(token);
ApiResponse apiResponse =new ApiResponse();
apiResponse.setData(userVo);
return apiResponse;
}
}
package org.nafmii.user.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/25 9:06
* @ClassName:
* @version:
* @remark:
*/
@Data
public class UserAndRoleVo {
private Long id;
private String userName;
private String password;
@ApiModelProperty("角色名称")
private String Role;
}
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.2</version> <version>3.0.2</version>
</dependency> </dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<!--swagger 相关依赖--> <!--swagger 相关依赖-->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
......
...@@ -66,7 +66,7 @@ public class GeneratorCodeConfig { ...@@ -66,7 +66,7 @@ public class GeneratorCodeConfig {
GlobalConfig gc = new GlobalConfig(); GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir")+"/"+moduleName; String projectPath = System.getProperty("user.dir")+"/"+moduleName;
gc.setOutputDir(projectPath + "/src/main/java"); gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("lvyp"); gc.setAuthor("zjh");
gc.setOpen(false); gc.setOpen(false);
gc.setBaseResultMap(true); gc.setBaseResultMap(true);
gc.setBaseColumnList(true); gc.setBaseColumnList(true);
......
package org.nafmii.utils; package org.nafmii.common.utils;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!