From 29593068bda2b8cdd75dea6fc972de57a5f5b9e3 Mon Sep 17 00:00:00 2001 From: zt Date: Mon, 17 Feb 2025 11:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/bgt/AppBgtUserController.java | 54 +++++++++++++++++++ .../web/controller/bgt/BgtUserController.java | 49 +++++++---------- .../controller/common/AppLoginController.java | 41 ++++++++++++++ .../common/core/domain/model/LoginUser.java | 5 ++ .../service/AppUserDetailsServiceImpl.java | 10 ++-- .../ruoyi/bgt/domain/dto/LoginBodyDto.java | 40 -------------- .../bgt/service/impl/BgtUserServiceImpl.java | 22 +++++++- .../ruoyi/common/service/IAnnexService.java | 17 ++++++ .../common/service/impl/AnnexServiceImpl.java | 19 +++++++ 9 files changed, 181 insertions(+), 76 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtUserController.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/LoginBodyDto.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtUserController.java new file mode 100644 index 0000000..c47b0ac --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtUserController.java @@ -0,0 +1,54 @@ +package com.ruoyi.web.controller.bgt; + +import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO; +import com.ruoyi.bgt.service.IBgtUserService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 后台管理包工头Controller + * + * @author ruoyi + * @date 2025-02-14 + */ +@Api(value = "APP包工头控制器", tags = {"APP包工头管理"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/app/bgt/user") +public class AppBgtUserController extends BaseController { + + private final IBgtUserService iBgtUserService; + + /** + * 实名认证 + */ + @ApiOperation("实名认证") + @Log(title = "APP管理包工头", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping + public AjaxResult realNameAuthentication(@Validated @RequestBody UserRealNameAuthenticationDTO dto) { + return toAjax(iBgtUserService.realNameAuthentication(dto)); + } + + + + /** + * 实名认证 + */ + @ApiOperation("个人信息") + @RepeatSubmit + @GetMapping("/{id}") + public AjaxResult getInfo(@Validated @RequestBody UserRealNameAuthenticationDTO dto) { + return toAjax(iBgtUserService.realNameAuthentication(dto)); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/BgtUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/BgtUserController.java index 72b092f..e33977a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/BgtUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/BgtUserController.java @@ -25,12 +25,12 @@ import java.util.Arrays; import java.util.List; /** - * APP包工头Controller + * 后台管理包工头Controller * * @author ruoyi * @date 2025-02-14 */ -@Api(value = "APP包工头控制器", tags = {"APP包工头管理"}) +@Api(value = "后台管理包工头控制器", tags = {"后台管理包工头管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/bgt/user") @@ -39,9 +39,9 @@ public class BgtUserController extends BaseController { private final IBgtUserService iBgtUserService; /** - * 查询APP包工头列表 + * 查询后台管理包工头列表 */ - @ApiOperation("查询APP包工头列表") + @ApiOperation("查询后台管理包工头列表") @PreAuthorize("@ss.hasPermi('bgt:user:list')") @GetMapping("/list") public TableDataInfo list(@Validated BgtUserQueryBo bo) { @@ -49,22 +49,22 @@ public class BgtUserController extends BaseController { } /** - * 导出APP包工头列表 + * 导出后台管理包工头列表 */ - @ApiOperation("导出APP包工头列表") + @ApiOperation("导出后台管理包工头列表") @PreAuthorize("@ss.hasPermi('bgt:user:export')") - @Log(title = "APP包工头", businessType = BusinessType.EXPORT) + @Log(title = "后台管理包工头", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(@Validated BgtUserQueryBo bo) { List list = iBgtUserService.queryList(bo); ExcelUtil util = new ExcelUtil(BgtUser.class); - return util.exportExcel(list, "APP包工头"); + return util.exportExcel(list, "后台管理包工头"); } /** - * 获取APP包工头详细信息 + * 获取后台管理包工头详细信息 */ - @ApiOperation("获取APP包工头详细信息") + @ApiOperation("获取后台管理包工头详细信息") @PreAuthorize("@ss.hasPermi('bgt:user:query')") @GetMapping("/{id}") public AjaxResult getInfo(@NotNull(message = "主键不能为空") @@ -73,11 +73,11 @@ public class BgtUserController extends BaseController { } /** - * 新增APP包工头 + * 新增后台管理包工头 */ - @ApiOperation("新增APP包工头") + @ApiOperation("新增后台管理包工头") @PreAuthorize("@ss.hasPermi('bgt:user:add')") - @Log(title = "APP包工头", businessType = BusinessType.INSERT) + @Log(title = "后台管理包工头", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping() public AjaxResult add(@Validated @RequestBody BgtUser bo) { @@ -85,11 +85,11 @@ public class BgtUserController extends BaseController { } /** - * 修改APP包工头 + * 修改后台管理包工头 */ - @ApiOperation("修改APP包工头") + @ApiOperation("修改后台管理包工头") @PreAuthorize("@ss.hasPermi('bgt:user:edit')") - @Log(title = "APP包工头", businessType = BusinessType.UPDATE) + @Log(title = "后台管理包工头", businessType = BusinessType.UPDATE) @RepeatSubmit @PutMapping() public AjaxResult edit(@Validated @RequestBody BgtUser bo) { @@ -97,25 +97,14 @@ public class BgtUserController extends BaseController { } /** - * 删除APP包工头 + * 删除后台管理包工头 */ - @ApiOperation("删除APP包工头") + @ApiOperation("删除后台管理包工头") @PreAuthorize("@ss.hasPermi('bgt:user:remove')") - @Log(title = "APP包工头" , businessType = BusinessType.DELETE) + @Log(title = "后台管理包工头" , businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) { return toAjax(iBgtUserService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); } - - /** - * 实名认证 - */ - @ApiOperation("实名认证") - @Log(title = "APP包工头", businessType = BusinessType.UPDATE) - @RepeatSubmit - @PutMapping("/realNameAuthentication") - public AjaxResult realNameAuthentication(@Validated @RequestBody UserRealNameAuthenticationDTO dto) { - return toAjax(iBgtUserService.realNameAuthentication(dto)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java index 7221a9c..1c3d485 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/AppLoginController.java @@ -1,8 +1,13 @@ package com.ruoyi.web.controller.common; +import com.ruoyi.bgt.service.IBgtUserService; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.BgtUser; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.BgtLoginBody; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.framework.web.service.AppLoginService; import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.TokenService; @@ -36,6 +41,9 @@ public class AppLoginController @Autowired private TokenService tokenService; + @Autowired + private IBgtUserService iBgtUserService; + /** * 登录方法 * @@ -53,6 +61,39 @@ public class AppLoginController return AjaxResult.success(ajax); } + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("/app/getInfo") + public AjaxResult getInfo() + { + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + SysUser user = loginUser.getUser(); + String userType = loginUser.getUserType(); + Map ajax = new HashMap<>(); + switch (userType){ + case Constants.BGT: + BgtUser bgtUser = iBgtUserService.selectUserByPhone(user.getPhonenumber()); + ajax.put("user", bgtUser); + break; + case Constants.WGZ: + ajax.put("user", user); + break; + default: + break; + } + // 角色集合 +// Set roles = permissionService.getRolePermission(user); + // 权限集合 +// Set permissions = permissionService.getMenuPermission(user); +// ajax.put("roles", roles); +// ajax.put("permissions", permissions); + return AjaxResult.success(ajax); + } + + @GetMapping("/test") public AjaxResult test(){ return AjaxResult.success("test"); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index e13ec1e..fbb7291 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -68,6 +68,11 @@ public class LoginUser implements UserDetails */ private SysUser user; + /** + * 用户类型 + */ + private String userType; + public LoginUser(SysUser user, Set permissions) { this.user = user; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AppUserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AppUserDetailsServiceImpl.java index 19aa045..50b34a7 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AppUserDetailsServiceImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AppUserDetailsServiceImpl.java @@ -11,8 +11,6 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.exception.BaseException; - -import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -46,14 +44,14 @@ public class AppUserDetailsServiceImpl implements UserDetailsService if(phone.contains(Constants.BGT)){ BgtUser user = userService.selectUserByPhone(phone.replace(Constants.BGT,"")); check(user,phone); - userDetailsl = createLoginUser(user); + userDetailsl = createLoginUser(user,Constants.BGT); } else if (phone.contains(Constants.WGZ)) { } return userDetailsl; } - public UserDetails createLoginUser(Object obj) + public UserDetails createLoginUser(Object obj,String userType) { SysUser sysUser = new SysUser(); try { @@ -81,7 +79,9 @@ public class AppUserDetailsServiceImpl implements UserDetailsService } catch (Exception e) { throw new RuntimeException(e); } - return new LoginUser(sysUser, null); + LoginUser loginUser = new LoginUser(sysUser, null); + loginUser.setUserType(userType); + return loginUser; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/LoginBodyDto.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/LoginBodyDto.java deleted file mode 100644 index 0c48d27..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/LoginBodyDto.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ruoyi.bgt.domain.dto; - -import io.swagger.annotations.ApiModel; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -/** - * 用户登录对象 - * - * @author ruoyi - */ - -@Data -@NoArgsConstructor -@Accessors(chain = true) -@ApiModel("包工头实名认证对象") -public class LoginBodyDto -{ - /** - * 手机号 - */ - private String phone; - - /** - * 用户密码 - */ - private String password; - - /** - * 验证码 - */ - private String code; - - /** - * 唯一标识 - */ - private String uuid = ""; - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java index 4ef3aef..77d61c2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java @@ -1,12 +1,17 @@ package com.ruoyi.bgt.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO; import com.ruoyi.common.core.domain.entity.BgtUser; +import com.ruoyi.common.domain.dto.AnnexDTO; +import com.ruoyi.common.exception.BaseException; +import com.ruoyi.common.service.IAnnexService; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -14,7 +19,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.bgt.bo.BgtUserQueryBo; import com.ruoyi.bgt.mapper.BgtUserMapper; import com.ruoyi.bgt.service.IBgtUserService; +import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Collection; @@ -28,6 +35,9 @@ import java.util.Collection; @Service public class BgtUserServiceImpl extends ServicePlusImpl implements IBgtUserService { + @Autowired + private IAnnexService annexService; + @Override public BgtUser queryById(String id){ return getById(id); @@ -87,7 +97,13 @@ public class BgtUserServiceImpl extends ServicePlusImpl * @param entity 实体类数据 */ private void validEntityBeforeSave(BgtUser entity){ - //TODO 做一些数据校验,如唯一约束 + List bgtUsers = baseMapper.selectList(new LambdaQueryWrapper() + .eq(BgtUser::getPhone, entity.getPhone()) + .ne(entity.getId()!=null,BgtUser::getId, entity.getId())); + if(CollectionUtil.isNotEmpty(bgtUsers)){ + throw new BaseException("手机号已存在"); + } + //TODO 做一些数据校验,如唯一约束 } @Override @@ -104,8 +120,12 @@ public class BgtUserServiceImpl extends ServicePlusImpl } @Override + @Transactional(rollbackFor = Exception.class) public Boolean realNameAuthentication(UserRealNameAuthenticationDTO dto) { BgtUser bgtUser = BeanUtil.copyProperties(dto, BgtUser.class); + //todo: 资格证书附件类型 + annexService.deleteByTypes(Arrays.asList("1")); + annexService.insertBatch(dto.getAnnexList()); return baseMapper.updateById(bgtUser)>0; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/service/IAnnexService.java b/ruoyi-system/src/main/java/com/ruoyi/common/service/IAnnexService.java index 6c6ed5b..12cd727 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/service/IAnnexService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/service/IAnnexService.java @@ -4,6 +4,7 @@ import com.ruoyi.common.domain.Annex; import com.ruoyi.common.bo.AnnexQueryBo; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.domain.dto.AnnexDTO; import java.util.Collection; import java.util.List; @@ -52,4 +53,20 @@ public interface IAnnexService extends IServicePlus { * @return */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 删除指定类型的附件 + * @param types 类型集合 + * @return + */ + void deleteByTypes(List types); + + /** + * 附件批量添加 + * @param annexList 附件集合 + * @return + */ + void insertBatch(List annexList); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/service/impl/AnnexServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/common/service/impl/AnnexServiceImpl.java index 48f1858..811431a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/service/impl/AnnexServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/service/impl/AnnexServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.common.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.domain.dto.AnnexDTO; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; @@ -18,6 +19,7 @@ import com.ruoyi.common.service.IAnnexService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 附件Service业务层处理 @@ -84,4 +86,21 @@ public class AnnexServiceImpl extends ServicePlusImpl implem } return removeByIds(ids); } + + @Override + public void deleteByTypes(List types) { + baseMapper.delete(new LambdaQueryWrapper().in(Annex::getAnnexType, types)); + } + + @Override + public void insertBatch(List annexList) { + List annexes = annexList.stream() + .map(dto -> { + Annex annex = new Annex(); + BeanUtil.copyProperties(dto, annex); + return annex; + }) + .collect(Collectors.toList()); + baseMapper.insertAll(annexes); + } }