pull/2/head
Yin 3 months ago
parent 3650f14bba
commit 9ffd2e8203

@ -36,45 +36,61 @@ import com.alibaba.fastjson.*;
*
*
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/yonghu")
public class YonghuController {
// 创建日志记录器,用于记录该类中的相关操作日志
private static final Logger logger = LoggerFactory.getLogger(YonghuController.class);
// 自动注入用户服务层接口,用于处理与用户相关的业务逻辑,如数据库操作等
@Autowired
private YonghuService yonghuService;
// 自动注入Token服务层接口用于处理与用户Token相关的业务例如生成、验证等操作
@Autowired
private TokenService tokenService;
// 自动注入字典服务层接口,用于处理字典数据相关的转换等操作
@Autowired
private DictionaryService dictionaryService;
//级联表service
// 此处可能用于自动注入级联表相关的服务层接口,当前代码中未完整体现具体使用情况
/**
*
*/
*
*
* @param params Map
* @param request HttpServletRequest
* @return R
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
// 从会话中获取用户角色信息
String role = String.valueOf(request.getSession().getAttribute("role"));
// 此处条件永远为假,实际应该不会进入该分支,可能是预留逻辑待完善
if(false)
return R.error(511,"永不会进入");
// 如果用户角色是"用户"则添加当前用户ID作为查询条件用于筛选当前用户相关的数据
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
params.put("yonghuDeleteStart",1);params.put("yonghuDeleteEnd",1);
// 设置默认的逻辑删除开始和结束标识用于筛选未删除的用户数据这里假设1表示未删除
params.put("yonghuDeleteStart",1);
params.put("yonghuDeleteEnd",1);
// 如果没有指定排序字段,则默认按照"id"字段进行排序
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
// 调用用户服务层的方法查询分页数据
PageUtils page = yonghuService.queryPage(params);
// 获取分页数据中的用户视图列表(可能是用于展示给前端的特定格式数据)
//字典表数据转换
List<YonghuView> list =(List<YonghuView>)page.getList();
// 遍历用户视图列表,对每个用户数据进行字典表数据转换操作
for(YonghuView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
@ -83,16 +99,24 @@ public class YonghuController {
}
/**
*
*/
*
* ID
* @param id ID
* @param request HttpServletRequest
* @return R
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
// 根据ID从数据库中查询用户实体信息
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
//entity转view
// 创建用户视图对象,用于转换和返回给前端展示的数据格式
YonghuView view = new YonghuView();
// 将用户实体中的数据复制到用户视图对象中,实现数据格式转换
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
// 对用户视图对象中的相关字典表字段进行数据转换操作
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
@ -104,15 +128,21 @@ public class YonghuController {
}
/**
*
*/
*
* 使
* @param yonghu YonghuEntity
* @param request HttpServletRequest
* @return R使
*/
@RequestMapping("/save")
public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// 此处条件永远为假,实际应该不会进入该分支,可能是预留逻辑待完善
if(false)
return R.error(511,"永远不会进入");
// 创建查询条件包装器用于构建查询用户名或手机号是否已存在且未被删除的用户的SQL条件
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
@ -123,11 +153,15 @@ public class YonghuController {
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
// 根据构建的查询条件查询是否已存在相同用户名或手机号的用户
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity==null){
yonghu.setYonghuDelete(1);
// 设置用户的逻辑删除标识为未删除这里假设1表示未删除
yonghu.setCreateTime(new Date());
// 设置默认密码(实际应用中可能需要更安全的密码处理方式)
yonghu.setPassword("123456");
// 将新用户信息插入到数据库中
yonghuService.insert(yonghu);
return R.ok();
}else {
@ -136,8 +170,12 @@ public class YonghuController {
}
/**
*
*/
*
* 使
* @param yonghu YonghuEntity
* @param request HttpServletRequest
* @return R使
*/
@RequestMapping("/update")
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
@ -157,12 +195,14 @@ public class YonghuController {
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
// 根据构建的查询条件查询是否已存在符合条件的用户
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
// 如果用户的照片字段为空字符串或"null"则将其设置为null可能是为了符合数据库存储要求
if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){
yonghu.setYonghuPhoto(null);
}
if(yonghuEntity==null){
yonghuService.updateById(yonghu);//根据id更新
yonghuService.updateById(yonghu);// 根据用户ID更新数据库中的用户信息
return R.ok();
}else {
return R.error(511,"账户或者手机号已经被使用");
@ -170,10 +210,12 @@ public class YonghuController {
}
/**
*
*/
*
* 2
* @param ids ID
* @return R
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
@ -193,34 +235,47 @@ public class YonghuController {
/**
*
* Excel.xls
* @param fileName Excel
* @param request HttpServletRequestID
* @return R
*/
@RequestMapping("/batchInsert")
public R save( String fileName, HttpServletRequest request){
logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
// 从会话中获取当前用户ID并转换为整数类型
Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
List<YonghuEntity> yonghuList = new ArrayList<>();//上传的东西
// 用于存储要查询是否重复的字段及对应的值,以字段名为键,值的列表为值
Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
Date date = new Date();
int lastIndexOf = fileName.lastIndexOf(".");
// 如果文件名没有后缀,返回错误信息
if(lastIndexOf == -1){
return R.error(511,"该文件没有后缀");
}else{
String suffix = fileName.substring(lastIndexOf);
// 如果文件后缀不是.xls返回错误信息表明只支持该后缀的Excel文件
if(!".xls".equals(suffix)){
return R.error(511,"只支持后缀为xls的excel文件");
}else{
// 获取指定文件名对应的文件资源路径
URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
File file = new File(resource.getFile());
// 如果文件不存在,返回错误信息,提示联系管理员
if(!file.exists()){
return R.error(511,"找不到上传文件,请联系管理员");
}else{
// 使用工具类读取Excel文件中的数据返回二维列表每一行表示一条数据
List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
// 删除第一行数据,通常第一行是标题行等提示信息,不需要插入数据库
dataList.remove(0);//删除第一行,因为第一行是提示
for(List<String> data:dataList){
//循环
YonghuEntity yonghuEntity = new YonghuEntity();
// 以下是对用户实体各字段的赋值操作目前都被注释掉了可能需要根据实际Excel文件中的列顺序和数据内容进行正确赋值
// yonghuEntity.setUsername(data.get(0)); //账户 要改的
// //yonghuEntity.setPassword("123456");//密码
// yonghuEntity.setYonghuName(data.get(0)); //用户姓名 要改的
@ -234,8 +289,8 @@ public class YonghuController {
yonghuList.add(yonghuEntity);
//把要查询是否重复的字段放入map中
//账户
// 把要查询是否重复的字段用户名和手机号放入seachFields中用于后续重复性检查
// 处理用户名字段
if(seachFields.containsKey("username")){
List<String> username = seachFields.get("username");
username.add(data.get(0));//要改的
@ -244,7 +299,7 @@ public class YonghuController {
username.add(data.get(0));//要改的
seachFields.put("username",username);
}
//手机号
// 处理手机号字段
if(seachFields.containsKey("yonghuPhone")){
List<String> yonghuPhone = seachFields.get("yonghuPhone");
yonghuPhone.add(data.get(0));//要改的
@ -257,93 +312,135 @@ public class YonghuController {
//查询是否重复
//账户
// 根据从Excel文件中读取的数据里的用户名去数据库查询是否存在已逻辑删除这里假设逻辑删除标识为1表示未删除的同名用户
List<YonghuEntity> yonghuEntities_username = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("username", seachFields.get("username")).eq("yonghu_delete", 1));
// 如果查询到的同名用户数量大于0说明存在重复的用户名
if(yonghuEntities_username.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
// 遍历查询到的同名用户列表将他们的用户名添加到repeatFields列表中
for(YonghuEntity s:yonghuEntities_username){
repeatFields.add(s.getUsername());
}
// 返回错误信息,提示数据库中该表的[账户]字段已经存在,并列出重复的用户名数据
return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//手机号
// 根据从Excel文件中读取的数据里的手机号去数据库查询是否存在已逻辑删除这里假设逻辑删除标识为1表示未删除的同手机号用户
List<YonghuEntity> yonghuEntities_yonghuPhone = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_phone", seachFields.get("yonghuPhone")).eq("yonghu_delete", 1));
// 如果查询到的同手机号用户数量大于0说明存在重复的手机号
if(yonghuEntities_yonghuPhone.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuPhone){
repeatFields.add(s.getYonghuPhone());
}
// 返回错误信息,提示数据库中该表的[手机号]字段已经存在,并列出重复的手机号数据
return R.error(511,"数据库的该表中的 [手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
// 经过上述重复性检查后如果没有重复数据则批量将从Excel文件中读取并整理好的用户数据列表插入到数据库中
yonghuService.insertBatch(yonghuList);
return R.ok();
}
}
}
}catch (Exception e){
// 如果在上述批量插入等操作过程中出现异常,打印异常堆栈信息方便排查问题
e.printStackTrace();
// 返回错误信息,提示批量插入数据出现异常,并建议联系管理员处理
return R.error(511,"批量插入数据异常,请联系管理员");
}
}
/**
*
*/
@IgnoreAuth
*
* Token
* @param username
* @param password
* @param captcha
* @param request HttpServletRequest
* @return RTokenID
*/
@IgnoreAuth // 该注解可能表示此登录接口不需要进行权限认证(具体取决于该注解的实际定义和功能)
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
// 根据传入的用户名从数据库中查询对应的用户实体信息
YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("username", username));
if(yonghu==null || !yonghu.getPassword().equals(password))
// 如果查询到的用户为null即用户名不存在或者密码不匹配返回账号或密码不正确的错误信息
if (yonghu == null ||!yonghu.getPassword().equals(password))
return R.error("账号或密码不正确");
else if(yonghu.getYonghuDelete() != 1)
// 如果用户的逻辑删除标识不为1这里假设1表示未删除即账户已被删除返回账户已被删除的错误信息
else if (yonghu.getYonghuDelete()!= 1)
return R.error("账户已被删除");
// // 获取监听器中的字典表
// 以下几行代码被注释掉了,可能原本是用于获取字典表相关数据进行后续处理的逻辑,目前未生效
// 获取当前Web应用上下文的ServletContext对象用于获取应用范围内共享的数据比如字典表数据等
// ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext();
// Map<String, Map<Integer, String>> dictionaryMap= (Map<String, Map<Integer, String>>) servletContext.getAttribute("dictionaryMap");
// 从ServletContext中获取名为"dictionaryMap"的属性该属性可能是一个嵌套的Map结构外层键是字典类型内层键值对是字典代码和对应的名称等信息
// Map<String, Map<Integer, String>> dictionaryMap = (Map<String, Map<Integer, String>>) servletContext.getAttribute("dictionaryMap");
// 从字典表数据中获取名为"role_types"的字典类型对应的内层Map可能是用于获取角色相关的字典信息如角色代码和角色名称的对应关系等
// Map<Integer, String> role_types = dictionaryMap.get("role_types");
// role_types.get(.getRoleTypes());
String token = tokenService.generateToken(yonghu.getId(),username, "yonghu", "用户");
// 根据用户ID、用户名、用户类型等信息生成用户登录的Token具体生成逻辑在TokenService中实现
String token = tokenService.generateToken(yonghu.getId(), username, "yonghu", "用户");
R r = R.ok();
// 将生成的Token放入返回结果对象中
r.put("token", token);
r.put("role","用户");
r.put("username",yonghu.getYonghuName());
r.put("tableName","yonghu");
r.put("userId",yonghu.getId());
// 将用户角色放入返回结果对象中,这里固定为"用户"
r.put("role", "用户");
// 将用户的真实姓名假设YonghuEntity中的YonghuName字段表示真实姓名放入返回结果对象中
r.put("username", yonghu.getYonghuName());
// 将用户所属表名放入返回结果对象中,这里固定为"yonghu"
r.put("tableName", "yonghu");
// 将用户ID放入返回结果对象中
r.put("userId", yonghu.getId());
return r;
}
/**
*
*/
@IgnoreAuth
*
* 使使
* @param yonghu YonghuEntity
* @return R使
*/
@IgnoreAuth // 该注解可能表示此注册接口不需要进行权限认证(具体取决于该注解的实际定义和功能)
@PostMapping(value = "/register")
public R register(@RequestBody YonghuEntity yonghu){
// ValidatorUtils.validateEntity(user);
public R register(@RequestBody YonghuEntity yonghu) {
// 以下这行代码被注释掉了,可能原本是用于对传入的用户实体进行数据合法性验证的逻辑,目前未生效
// ValidatorUtils.validateEntity(user);
// 创建查询条件包装器用于构建查询用户名或手机号是否已存在且未被删除的用户的SQL条件
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.andNew()
.eq("yonghu_delete", 1)
;
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.andNew()
.eq("yonghu_delete", 1);
// 根据构建的查询条件查询是否已存在相同用户名或手机号的用户
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity != null)
// 如果已存在相同用户名或手机号的用户,返回账户或者手机号已经被使用的错误信息
if (yonghuEntity!= null)
return R.error("账户或者手机号已经被使用");
// 设置新用户的初始余额为0.0(可能根据业务需求设定的初始值)
yonghu.setNewMoney(0.0);
// 设置新用户的逻辑删除标识为未删除这里假设1表示未删除
yonghu.setYonghuDelete(1);
// 设置新用户的创建时间为当前时间
yonghu.setCreateTime(new Date());
// 将新用户信息插入到数据库中
yonghuService.insert(yonghu);
return R.ok();
}
/**
*
* ID"123456"
* @param id ID
* @return R
*/
@GetMapping(value = "/resetPassword")
public R resetPassword(Integer id){
public R resetPassword(Integer id) {
YonghuEntity yonghu = new YonghuEntity();
// 设置要重置的密码为"123456"
yonghu.setPassword("123456");
// 设置要重置密码的用户ID
yonghu.setId(id);
// 根据用户ID更新数据库中对应的用户密码信息
yonghuService.updateById(yonghu);
return R.ok();
}
@ -351,124 +448,171 @@ public class YonghuController {
/**
*
* 123456
* @param username
* @param request HttpServletRequest使
* @return R
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request) {
// 根据传入的用户名从数据库中查询对应的用户实体信息
YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("username", username));
if(yonghu!=null){
// 如果查询到对应的用户实体信息不为null说明该用户存在
if (yonghu!= null) {
// 将用户的密码设置为固定值“123456”实际中这样直接设置密码不太安全可后续优化为更安全的重置逻辑
yonghu.setPassword("123456");
// 通过用户服务层的方法根据用户实体中的ID已设置好更新数据库中该用户的密码信息并获取更新操作的结果true表示更新成功false表示更新失败
boolean b = yonghuService.updateById(yonghu);
if(!b){
return R.error();
// 如果更新操作失败即b为false返回相应的错误信息
if (!b) {
return R.error();
}
}else{
return R.error("账号不存在");
} else {
// 如果根据用户名未查询到对应的用户,返回账号不存在的错误信息
return R.error("账号不存在");
}
// 如果密码重置并更新数据库操作都成功,返回操作成功的结果信息
return R.ok();
}
/**
* session
*/
* session
* SessionIDID
* @param request HttpServletRequestID
* @return R
*/
@RequestMapping("/session")
public R getCurrYonghu(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
public R getCurrYonghu(HttpServletRequest request) {
// 从当前请求的会话中获取名为“userId”的属性值并转换为整数类型该值作为用户的唯一标识用于后续查询用户信息
Integer id = (Integer) request.getSession().getAttribute("userId");
// 根据获取到的用户ID从数据库中查询对应的用户实体信息
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
//entity转view
// 如果查询到的用户实体信息不为null说明找到了对应的用户
if (yonghu!= null) {
// 创建一个用户视图对象,用于转换和返回适合前端展示的数据格式
YonghuView view = new YonghuView();
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
// 使用Spring提供的BeanUtils工具类将用户实体中的数据复制到用户视图对象中实现数据格式的转换
BeanUtils.copyProperties(yonghu, view);
//修改对应字典表字段
// 调用字典服务层的方法对用户视图对象中的相关字典表字段进行数据转换操作,使数据格式更符合前端展示需求
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
} else {
// 如果根据用户ID未查询到对应的用户返回查不到数据的错误信息错误码为511具体含义由业务定义
return R.error(511, "查不到数据");
}
}
/**
* 退
*/
* 退
* 退使
* @param request HttpServletRequest
* @return R退
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
// 调用HttpServletRequest对象的invalidate方法使当前会话失效即清除会话中存储的用户登录等相关信息
request.getSession().invalidate();
// 返回操作成功的结果信息,并附带“退出成功”的提示内容
return R.ok("退出成功");
}
/**
*
*/
*
* "id"
* @IgnoreAuth 访
* @param params Map
* @param request HttpServletRequest使
* @return R
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request) {
logger.debug("list方法:,,Controller:{},,params:{}", this.getClass().getName(), JSONObject.toJSONString(params));
// 没有指定排序字段就默认id倒序
if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){
params.put("orderBy","id");
// 判断传入的参数中排序字段是否为空,如果为空(即没有指定排序字段),则将排序字段设置为"id",表示默认按照"id"字段进行倒序排序此处未明确体现倒序逻辑可能在PageUtils或相关数据库查询逻辑中处理
if (StringUtil.isEmpty(String.valueOf(params.get("orderBy")))) {
params.put("orderBy", "id");
}
// 调用用户服务层的queryPage方法传入参数params用于查询符合条件的分页用户数据返回的PageUtils对象包含了分页相关信息以及用户数据列表等内容。
PageUtils page = yonghuService.queryPage(params);
//字典表数据转换
List<YonghuView> list =(List<YonghuView>)page.getList();
for(YonghuView c:list)
dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
// 获取分页数据中的用户视图列表可能是用于展示给前端的特定格式数据这里将PageUtils中的用户数据列表取出并强转类型为List<YonghuView>。
List<YonghuView> list = (List<YonghuView>) page.getList();
// 遍历用户视图列表对每个用户数据进行字典表数据转换操作调用dictionaryService的dictionaryConvert方法来处理目的是使展示的数据符合字典表相关的业务格式要求。
for (YonghuView c : list)
dictionaryService.dictionaryConvert(c, request);
return R.ok().put("data", page);
}
/**
*
*/
*
* ID
* @param id ID{id}
* @param request HttpServletRequest使
* @return R
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
public R detail(@PathVariable("id") Long id, HttpServletRequest request) {
logger.debug("detail方法:,,Controller:{},,id:{}", this.getClass().getName(), id);
// 通过用户服务层的selectById方法根据传入的用户ID从数据库中查询对应的用户实体信息。
YonghuEntity yonghu = yonghuService.selectById(id);
if(yonghu !=null){
if (yonghu!= null) {
//entity转view
YonghuView view = new YonghuView();
BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中
// 创建一个用户视图对象,用于将从数据库查询到的用户实体数据转换为适合前端展示的数据格式。
YonghuView view = new YonghuView();
// 使用Spring提供的BeanUtils工具类将用户实体中的数据复制到用户视图对象中实现数据格式的转换比如将实体中的各个属性值对应复制到视图对象的相应属性中。
BeanUtils.copyProperties(yonghu, view);
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
// 调用字典服务层的dictionaryConvert方法对用户视图对象中的相关字典表字段进行数据转换操作使数据格式更符合前端展示需求比如将字典代码转换为对应的字典名称等。
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
} else {
// 如果根据传入的用户ID未查询到对应的用户返回查不到数据的错误信息错误码为511具体含义由业务定义
return R.error(511, "查不到数据");
}
}
/**
*
*/
*
* 使1使
* @param yonghu YonghuEntity
* @param request HttpServletRequest使
* @return R使
*/
@RequestMapping("/add")
public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request) {
logger.debug("add方法:,,Controller:{},,yonghu:{}", this.getClass().getName(), yonghu.toString());
// 创建查询条件包装器用于构建查询用户名或手机号是否已存在且未被删除的用户的SQL条件通过使用EntityWrapper来方便地构建数据库查询条件。
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.andNew()
.eq("yonghu_delete", 1)
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.andNew()
.eq("yonghu_delete", 1);
logger.info("sql语句:" + queryWrapper.getSqlSegment());
// 根据构建的查询条件查询是否已存在相同用户名或手机号的用户调用用户服务层的selectOne方法执行查询操作返回符合条件的用户实体对象若存在否则返回null。
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity==null){
if (yonghuEntity == null) {
// 设置新用户的逻辑删除标识为未删除这里假设1表示未删除表示该用户数据为有效可用状态。
yonghu.setYonghuDelete(1);
// 设置新用户的创建时间为当前时间通过创建一个新的Date对象来表示当前时刻。
yonghu.setCreateTime(new Date());
yonghu.setPassword("123456");
yonghuService.insert(yonghu);
// 设置新用户的默认密码为"123456",实际应用中可能需要更安全的密码设置方式,比如密码加密等操作。
yonghu.setPassword("123456");
// 将包含完整信息的新用户实体对象插入到数据库中调用用户服务层的insert方法执行插入操作。
yonghuService.insert(yonghu);
return R.ok();
}else {
return R.error(511,"账户或者手机号已经被使用");
} else {
// 如果查询到已存在相同用户名或手机号的用户返回账户或者手机号已经被使用的错误信息错误码为511具体含义由业务定义
return R.error(511, "账户或者手机号已经被使用");
}
}

Loading…
Cancel
Save