Compare commits

...

2 Commits

Author SHA1 Message Date
Vinjor
f1e4b9af3e Merge branch 'dev' of http://122.51.230.86:3000/dianliang/lanan-system into dev 2024-10-11 20:45:22 +08:00
Vinjor
0c87ee6793 客户信息 2024-10-11 20:45:13 +08:00
21 changed files with 380 additions and 56 deletions

View File

@ -7,7 +7,6 @@ import cn.iocoder.yudao.module.app.car.vo.AppCarMainResVo;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -73,7 +72,6 @@ public class AppCarMainController {
@Operation(summary = "获得车辆信息") @Operation(summary = "获得车辆信息")
// @PreAuthorize("@ss.hasPermission('base:car-main:query')") // @PreAuthorize("@ss.hasPermission('base:car-main:query')")
public CommonResult<List<AppCarMainResVo>> getCarMain() { public CommonResult<List<AppCarMainResVo>> getCarMain() {
List<AppCarMainResVo> carMain = carMainService.getCarMain(); List<AppCarMainResVo> carMain = carMainService.getCarMain();
return CommonResult.success(carMain); return CommonResult.success(carMain);
} }

View File

@ -1,21 +0,0 @@
package cn.iocoder.yudao.module.custom.controller.admin;
import cn.iocoder.yudao.module.custom.service.UserCarService;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Tag(name = "管理后台 - 用户车辆信息表--用户个人录入的")
@RestController
@RequestMapping("/base/user-car")
@Validated
public class UserCarController {
@Resource
private UserCarService userCarService;
}

View File

@ -0,0 +1,66 @@
package cn.iocoder.yudao.module.custom.controller.app;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.custom.service.UserCarService;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Tag(name = "管理后台 - 用户车辆信息表--用户个人录入的")
@RestController
@RequestMapping("/base/user-car")
@Validated
public class UserCarController {
@Resource
private UserCarService userCarService;
/**
* 查询当前登录用户的所有车辆
* @author vinjor-M
* @date 14:28 2024/10/11
**/
@GetMapping("/getMyCar")
@Operation(summary = "查询个人车辆列表")
public CommonResult<?> getMyCar() {
return CommonResult.success(userCarService.getMyCar());
}
/**
* 创建或更新车辆信息
*
* @param userCarVO 车辆信息
*/
@PostMapping("/createOrUpdate")
@Operation(summary = "创建或更新车辆信息")
public CommonResult<?> createOrUpdate(@RequestBody UserCarVO userCarVO) {
return userCarService.createOrUpdate(userCarVO);
}
/**
* OCR识别
* @author vinjor-M
* @date 16:58 2024/10/11
* @param imagePath 公网图片地址
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
**/
@PostMapping("/vehicleLicenseOCR")
public CommonResult<?> vehicleLicenseOCR(@RequestBody String imagePath) throws Exception {
return CommonResult.success(userCarService.vehicleLicenseOCR(imagePath));
}
/**
* 删除车辆
* @author vinjor-M
* @date 14:28 2024/10/11
**/
@DeleteMapping("/delById")
@Operation(summary = "删除车辆")
public CommonResult<?> delById(String id) {
return CommonResult.success(userCarService.removeById(id));
}
}

View File

@ -1,20 +1,12 @@
package cn.iocoder.yudao.module.custom.entity; package cn.iocoder.yudao.module.custom.entity;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.util.Date;
/** /**
* 用户车辆信息表--用户个人录入的 DO * 用户车辆信息表--用户个人录入的 DO
@ -35,6 +27,10 @@ public class UserCar extends BaseDO {
*/ */
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.ASSIGN_UUID)
private String id; private String id;
/**
* 用户ID
*/
private Long userId;
/** /**
* 发动机号码 * 发动机号码
*/ */
@ -70,11 +66,11 @@ public class UserCar extends BaseDO {
/** /**
* 车辆注册日期 * 车辆注册日期
*/ */
private LocalDateTime carRegisterDate; private Date carRegisterDate;
/** /**
* 保养日期 * 保养日期
*/ */
private LocalDateTime maintenanceDate; private Date maintenanceDate;
/** /**
* 保养里程 * 保养里程
*/ */
@ -82,19 +78,19 @@ public class UserCar extends BaseDO {
/** /**
* 年检日期 * 年检日期
*/ */
private LocalDateTime inspectionDate; private Date inspectionDate;
/** /**
* 保险日期 * 保险日期
*/ */
private LocalDateTime insuranceDate; private Date insuranceDate;
/** /**
* 二级维护时间 * 二级维护时间
*/ */
private LocalDateTime checkDate; private Date checkDate;
/** /**
* 下次保养日期 * 下次保养日期
*/ */
private LocalDateTime nextMaintenanceDate; private Date nextMaintenanceDate;
/** /**
* 下次保养里程 * 下次保养里程
*/ */
@ -102,15 +98,15 @@ public class UserCar extends BaseDO {
/** /**
* 下次年检日期 * 下次年检日期
*/ */
private LocalDateTime nextInspectionDate; private Date nextInspectionDate;
/** /**
* 保险到期日期 * 保险到期日期
*/ */
private LocalDateTime insuranceExpiryDate; private Date insuranceExpiryDate;
/** /**
* 下次二级维护时间 * 下次二级维护时间
*/ */
private LocalDateTime nextCheckDate; private Date nextCheckDate;
/** /**
* 是否车主 * 是否车主
*/ */

View File

@ -1,8 +1,12 @@
package cn.iocoder.yudao.module.custom.mapper; package cn.iocoder.yudao.module.custom.mapper;
import cn.iocoder.yudao.module.custom.entity.UserCar; import cn.iocoder.yudao.module.custom.entity.UserCar;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 用户车辆信息表--用户个人录入的 Mapper * 用户车辆信息表--用户个人录入的 Mapper
@ -12,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface UserCarMapper extends BaseMapper<UserCar> { public interface UserCarMapper extends BaseMapper<UserCar> {
/**
* 查询用户的车辆
* @author vinjor-M
* @date 18:53 2024/10/11
* @param userId 用户id
* @return java.util.List<cn.iocoder.yudao.module.custom.entity.UserCar>
**/
List<UserCarVO> selectByUserId(@Param("userId") Long userId);
} }

View File

@ -1,7 +1,12 @@
package cn.iocoder.yudao.module.custom.service; package cn.iocoder.yudao.module.custom.service;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.custom.entity.UserCar; import cn.iocoder.yudao.module.custom.entity.UserCar;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import java.util.List;
/** /**
* 用户车辆信息表--用户个人录入的 Service 接口 * 用户车辆信息表--用户个人录入的 Service 接口
@ -10,5 +15,29 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface UserCarService extends IService<UserCar> { public interface UserCarService extends IService<UserCar> {
/**
* 创建或更新车辆信息
* @author vinjor-M
* @date 14:11 2024/10/11
* @param userCarVO 车辆信息
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
**/
CommonResult<?> createOrUpdate(UserCarVO userCarVO);
/**
* 查询当前登录用户的所有车辆
* @author vinjor-M
* @date 14:28 2024/10/11
* @return java.util.List<cn.iocoder.yudao.module.custom.vo.UserCarVO>
**/
List<UserCarVO> getMyCar();
/**
*
* @author vinjor-M
* @date 16:59 2024/10/11
* @param imagePath 公网图片地址
* @return java.lang.Object
**/
Object vehicleLicenseOCR(String imagePath) throws TencentCloudSDKException;
} }

View File

@ -1,13 +1,24 @@
package cn.iocoder.yudao.module.custom.service.impl; package cn.iocoder.yudao.module.custom.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.custom.entity.UserCar; import cn.iocoder.yudao.module.custom.entity.UserCar;
import cn.iocoder.yudao.module.custom.mapper.UserCarMapper; import cn.iocoder.yudao.module.custom.mapper.UserCarMapper;
import cn.iocoder.yudao.module.custom.service.UserCarService; import cn.iocoder.yudao.module.custom.service.UserCarService;
import cn.iocoder.yudao.module.custom.vo.DrivelicenseVO;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
import cn.iocoder.yudao.util.VehicleLicenseOCR;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
/** /**
* 用户车辆信息表--用户个人录入的 Service 实现类 * 用户车辆信息表--用户个人录入的 Service 实现类
@ -20,4 +31,53 @@ public class UserCarServiceImpl extends ServiceImpl<UserCarMapper, UserCar> impl
@Resource @Resource
private UserCarMapper userCarMapper; private UserCarMapper userCarMapper;
/**
* 创建或更新车辆信息
*
* @param userCarVO 车辆信息
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
* @author vinjor-M
* @date 14:11 2024/10/11
**/
@Override
public CommonResult<?> createOrUpdate(UserCarVO userCarVO) {
//车牌号英文全部转大写
userCarVO.setLicenseNumber(userCarVO.getLicenseNumber().toUpperCase());
//设置所属者
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
userCarVO.setUserId(loginUser.getId());
this.saveOrUpdate(userCarVO);
return CommonResult.ok();
}
/**
* 查询当前登录用户的所有车辆
*
* @return java.util.List<cn.iocoder.yudao.module.custom.vo.UserCarVO>
* @author vinjor-M
* @date 14:28 2024/10/11
**/
@Override
public List<UserCarVO> getMyCar() {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
return userCarMapper.selectByUserId(loginUser.getId());
}
/**
* @param imagePath 公网图片地址
* @return java.lang.Object
* @author vinjor-M
* @date 16:59 2024/10/11
**/
@Override
public Object vehicleLicenseOCR(String imagePath) throws TencentCloudSDKException {
String info = VehicleLicenseOCR.dealFunction(imagePath);
JSONObject infoJson = JSONUtil.parseObj(info);
DrivelicenseVO licenseVO = BeanUtil.toBean(infoJson.getJSONObject("FrontInfo"),DrivelicenseVO.class);
if(licenseVO.getModel().contains("")){
licenseVO.setBrand(licenseVO.getModel().split("")[0]);
}
return licenseVO;
}
} }

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.custom.vo;
import lombok.Data;
/**
* 行驶证OCR识别结果
* @author vinjor-M
* @date 17:17 2024/10/11
**/
@Data
public class DrivelicenseVO {
/**所有人*/
private String Owner;
/**住址*/
private String Address;
/**车辆类型*/
private String VehicleType;
/**品牌型号*/
private String Model;
/**品牌*/
private String brand;
/**注册日期*/
private String RegisterDate;
/**发证日期*/
private String IssueDate;
/**车辆识别代号*/
private String Vin;
/**所有人*/
private String Seal;
/**车牌号*/
private String PlateNo;
/**使用性质*/
private String UseCharacter;
/**发动机号码*/
private String EngineNo;
}

View File

@ -0,0 +1,12 @@
package cn.iocoder.yudao.module.custom.vo;
import cn.iocoder.yudao.module.custom.entity.UserCar;
import lombok.Data;
@Data
public class UserCarVO extends UserCar {
/**品牌名称*/
private String brandName;
/**品牌logo*/
private String logoImg;
}

View File

@ -0,0 +1,12 @@
package cn.iocoder.yudao.util;
import org.springframework.stereotype.Component;
/**
* 基础工具类
* @author vinjor-M
* @date 14:15 2024/10/11
**/
@Component
public class BaseUtil {
}

View File

@ -9,4 +9,15 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/ 文档可见https://www.iocoder.cn/MyBatis/x-plugins/
--> -->
<select id="selectByUserId" resultType="cn.iocoder.yudao.module.custom.vo.UserCarVO">
SELECT
buc.* ,
bcb.brand_name AS brandName,
bcb.logo_img as logoImg
FROM
base_user_car buc
LEFT JOIN base_car_brand bcb ON buc.car_brand = bcb.id
WHERE buc.user_id = #{userId}
AND buc.deleted = 0
</select>
</mapper> </mapper>

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.system.controller.app.user;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 用户")
@RestController
@RequestMapping("/system/user")
@Validated
public class AppUserController {
@Resource
private AdminUserService userService;
/**
* 微信小程序端修改个人信息
* @author vinjor-M
* @date 20:14 2024/10/11
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.Boolean>
**/
@PutMapping("update")
@Operation(summary = "修改用户")
public CommonResult<Boolean> updateUser(@RequestBody UserInfoVO reqVO) {
userService.updateCusInfo(reqVO);
return success(true);
}
}

View File

@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.system.controller.app.user;
import lombok.Data;
@Data
public class UserInfoVO {
/** 用户id **/
private Long id;
/** 用户昵称 **/
private String nickname;
/** 头像地址 **/
private String avatar;
}

View File

@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.controller.app.user.UserInfoVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -59,4 +60,6 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
AdminUserDO getUserByMobileWithoutTenant(String phoneNumber); AdminUserDO getUserByMobileWithoutTenant(String phoneNumber);
int updateSetOpenId(@Param("userId")Long userId,@Param("openId")String openId); int updateSetOpenId(@Param("userId")Long userId,@Param("openId")String openId);
int updateCusInfo(@Param("entity") UserInfoVO userInfoVO);
} }

View File

@ -6,8 +6,6 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
@ -217,6 +215,16 @@ public class AdminAuthServiceImpl implements AdminAuthService {
return AuthConvert.INSTANCE.convert(accessTokenDO); return AuthConvert.INSTANCE.convert(accessTokenDO);
} }
private AuthLoginRespVO createTokenAfterLoginSuccessCustomer(Long userId, String username, LoginLogTypeEnum logType) {
// 插入登陆日志
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
// 创建访问令牌
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, UserTypeEnum.MEMBER.getValue(),
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null);
// 构建返回结果
return AuthConvert.INSTANCE.convert(accessTokenDO);
}
@Override @Override
public AuthLoginRespVO refreshToken(String refreshToken) { public AuthLoginRespVO refreshToken(String refreshToken) {
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT); OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT);
@ -408,7 +416,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
@Override @Override
public AuthLoginRespVO wxLoginByUserId(Long userId, String userName) { public AuthLoginRespVO wxLoginByUserId(Long userId, String userName) {
// 生成token // 生成token
return createTokenAfterLoginSuccess(userId, userName, LoginLogTypeEnum.LOGIN_SOCIAL); return createTokenAfterLoginSuccessCustomer(userId, userName, LoginLogTypeEnum.LOGIN_SOCIAL);
} }
/** /**

View File

@ -1,17 +1,23 @@
package cn.iocoder.yudao.module.system.service.user; package cn.iocoder.yudao.module.system.service.user;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportRespVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import cn.iocoder.yudao.module.system.controller.app.user.UserInfoVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* 后台用户 Service 接口 * 后台用户 Service 接口
@ -35,6 +41,14 @@ public interface AdminUserService {
*/ */
void updateUser(@Valid UserSaveReqVO updateReqVO); void updateUser(@Valid UserSaveReqVO updateReqVO);
/**
* 微信小程序端修改用户个人信息
* @author vinjor-M
* @date 20:11 2024/10/11
* @param userInfoVO 用户对象
**/
void updateCusInfo(UserInfoVO userInfoVO);
/** /**
* 更新用户的最后登陆信息 * 更新用户的最后登陆信息
* *

View File

@ -12,13 +12,13 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
import cn.iocoder.yudao.module.infra.api.config.ConfigApi; import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.infra.api.file.FileApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportRespVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportRespVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import cn.iocoder.yudao.module.system.controller.app.user.UserInfoVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
@ -142,6 +142,18 @@ public class AdminUserServiceImpl implements AdminUserService {
LogRecordContext.putVariable("user", oldUser); LogRecordContext.putVariable("user", oldUser);
} }
/**
* 微信小程序端修改用户个人信息
*
* @param userInfoVO 用户对象
* @author vinjor-M
* @date 20:11 2024/10/11
**/
@Override
public void updateCusInfo(UserInfoVO userInfoVO) {
userMapper.updateCusInfo(userInfoVO);
}
private void updateUserPost(UserSaveReqVO reqVO, AdminUserDO updateObj) { private void updateUserPost(UserSaveReqVO reqVO, AdminUserDO updateObj) {
Long userId = reqVO.getId(); Long userId = reqVO.getId();
Set<Long> dbPostIds = convertSet(userPostMapper.selectListByUserId(userId), UserPostDO::getPostId); Set<Long> dbPostIds = convertSet(userPostMapper.selectListByUserId(userId), UserPostDO::getPostId);

View File

@ -6,6 +6,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateSetOpenId"> <update id="updateSetOpenId">
UPDATE system_users SET open_id = #{openId} WHERE id = #{userId} UPDATE system_users SET open_id = #{openId} WHERE id = #{userId}
</update> </update>
<update id="updateCusInfo">
UPDATE system_users
SET nickname = #{entity.nickname},avatar = #{entity.avatar}
WHERE id = #{entity.id}
</update>
<select id="getUsersByRoleRescue" resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO"> <select id="getUsersByRoleRescue" resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO">
SELECT SELECT

View File

@ -297,7 +297,7 @@ yudao:
- /admin-api/rescuePayApi/payNotify - /admin-api/rescuePayApi/payNotify
- /admin-api/payApi/payNotify - /admin-api/payApi/payNotify
- /admin-api/base/notice/** - /admin-api/base/notice/**
- /app-api/** #小程序端接口,不区分租户
ignore-tables: ignore-tables:
- system_tenant - system_tenant
- system_tenant_package - system_tenant_package
@ -344,6 +344,7 @@ yudao:
- tmp_report_data_income - tmp_report_data_income
- system_users - system_users
- dl_base_notice - dl_base_notice
- base_user_car
ignore-caches: ignore-caches:
- permission_menu_ids - permission_menu_ids
- oauth_client - oauth_client

View File

@ -4,7 +4,7 @@
"avatar": "", "avatar": "",
"version": "4.9.2", "version": "4.9.2",
"createdTime": "2024-10-9 10:34:15", "createdTime": "2024-10-9 10:34:15",
"updatedTime": "2024-10-11 13:52:26", "updatedTime": "2024-10-11 14:30:48",
"dbConns": [], "dbConns": [],
"profile": { "profile": {
"default": { "default": {
@ -28175,6 +28175,24 @@
"extProps": {}, "extProps": {},
"uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE"
}, },
{
"defKey": "user_id",
"defName": "用户ID",
"comment": "",
"type": "VARCHAR",
"len": 50,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
"extProps": {},
"domain": "",
"id": "043E95EA-52A2-4C8E-B275-5394988C4D30"
},
{ {
"defKey": "engine_number", "defKey": "engine_number",
"defName": "发动机号码", "defName": "发动机号码",