This commit is contained in:
77
2024-03-17 19:04:48 +08:00
parent a53c70842b
commit bd4ad464a5
23 changed files with 371 additions and 76 deletions

View File

@@ -13,6 +13,9 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.UserAuthAudit;
import com.ruoyi.xq.dto.admin.common.AuditFailReq;
import com.ruoyi.xq.dto.admin.userauth.UserAuthAuditAdminVo;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.service.UserAuthAuditService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -41,8 +44,8 @@ public class UserAuthAuditController extends BaseController {
*/
@SaCheckPermission("xq:userAuthAudit:list")
@GetMapping("/list")
public TableDataInfo<UserAuthAudit> list(UserAuthAudit bo, PageQuery pageQuery) {
Page<UserAuthAudit> page = userAuthAuditService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
public TableDataInfo<UserAuthAuditAdminVo> list(UserAuthAuditAdminVo bo, PageQuery pageQuery) {
Page<UserAuthAuditAdminVo> page = userAuthAuditService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@@ -93,4 +96,24 @@ public class UserAuthAuditController extends BaseController {
@PathVariable Long[] ids) {
return toAjax(userAuthAuditService.removeBatchByIds(Arrays.asList(ids)));
}
@SaCheckPermission("xq:userAuthAudit:edit")
@Log(title = "用户认证审核成功", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/audit/success")
public R<Void> auditSuccess(@RequestBody IdsReq bo) {
userAuthAuditService.auditSuccess(bo.getIds());
return R.ok();
}
@SaCheckPermission("xq:userAuthAudit:edit")
@Log(title = "用户认证审核失败", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/audit/fail")
public R<Void> auditFail(@RequestBody AuditFailReq bo) {
userAuthAuditService.auditFail(bo.getId(), bo.getAuditRemark());
return R.ok();
}
}

View File

@@ -13,6 +13,10 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.UserWithdraw;
import com.ruoyi.xq.dto.admin.common.AuditFailReq;
import com.ruoyi.xq.dto.admin.withdraw.UserWithdrawAdminVo;
import com.ruoyi.xq.dto.admin.withdraw.WithdrawSuccessAdminReq;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.service.UserWithdrawService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -41,8 +45,8 @@ public class UserWithdrawController extends BaseController {
*/
@SaCheckPermission("xq:userWithdraw:list")
@GetMapping("/list")
public TableDataInfo<UserWithdraw> list(UserWithdraw bo, PageQuery pageQuery) {
Page<UserWithdraw> page = userWithdrawService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
public TableDataInfo<UserWithdrawAdminVo> list(UserWithdrawAdminVo bo, PageQuery pageQuery) {
Page<UserWithdrawAdminVo> page = userWithdrawService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@@ -59,28 +63,25 @@ public class UserWithdrawController extends BaseController {
return R.ok(userWithdrawService.getById(id));
}
/**
* 新增用户提现审核
*/
@SaCheckPermission("xq:userWithdraw:add")
@Log(title = "用户提现审核", businessType = BusinessType.INSERT)
@SaCheckPermission("xq:userWithdraw:edit")
@Log(title = "用户提现审核成功", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserWithdraw bo) {
return toAjax(userWithdrawService.save(bo));
@PostMapping("/audit/success")
public R<Void> auditSuccess(@RequestBody WithdrawSuccessAdminReq bo) {
userWithdrawService.auditSuccess(bo.getId(), bo.isAutoTrans());
return R.ok();
}
/**
* 修改用户提现审核
*/
@SaCheckPermission("xq:userWithdraw:edit")
@Log(title = "用户提现审核", businessType = BusinessType.UPDATE)
@Log(title = "用户提现审核失败", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserWithdraw bo) {
return toAjax(userWithdrawService.updateById(bo));
@PostMapping("/audit/fail")
public R<Void> auditFail(@RequestBody AuditFailReq bo) {
userWithdrawService.auditFail(bo.getId(), bo.getAuditRemark());
return R.ok();
}
/**
* 删除用户提现审核
*

View File

@@ -11,7 +11,6 @@ import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.BeanConvertUtil;
import com.ruoyi.xq.domain.WithdrawSetting;
import com.ruoyi.xq.dto.app.common.IdReq;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.dto.app.setting.WithdrawSettingVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListAppVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListPageQuery;
@@ -27,7 +26,7 @@ import java.util.List;
@RestController
@RequestMapping("/api/withdraw")
@Tag(name = "提现接口")
public class WithdrawController {
public class WithdrawAppController {
@Autowired
private WithdrawSettingService withdrawSettingService;
@@ -54,7 +53,7 @@ public class WithdrawController {
return R.ok();
}
@PostMapping("/logs/page")
@GetMapping("/logs/page")
@Operation(summary = "提现记录")
@Log(title = "申请记录", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<WithdrawListAppVo>> logsPage(PageQuery pageQuery, WithdrawListPageQuery query){

View File

@@ -52,7 +52,7 @@ public class UserAuthAudit implements Serializable {
/**
* 其他字段
*/
private String auitOther;
private String authOther;
/**
* 1-待审核 2-审核成功 3-审核失败
*/

View File

@@ -0,0 +1,15 @@
package com.ruoyi.xq.dto.admin.userauth;
import com.ruoyi.xq.domain.UserAuthAudit;
import lombok.Data;
@Data
public class UserAuthAuditAdminVo extends UserAuthAudit {
/**
* 昵称
*/
private String nickname;
private String mobile;
private String avatar;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.xq.dto.admin.withdraw;
import com.ruoyi.xq.domain.UserWithdraw;
import lombok.Data;
@Data
public class UserWithdrawAdminVo extends UserWithdraw {
private String nickname;
private String mobile;
private String avatar;
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.xq.dto.admin.withdraw;
import lombok.Data;
@Data
public class WithdrawSuccessAdminReq {
private Long id;
private boolean autoTrans;
}

View File

@@ -17,7 +17,7 @@ public class UpdateUserAuthInfoReq {
/**
* 工作认证类型
*/
@Schema(description = "工作认证类型")
@Schema(description = "工作认证类型 1-企业微信 2-offer 3-工作证")
private Integer jobAuthType;
/**
* 工作照片

View File

@@ -0,0 +1,25 @@
package com.ruoyi.xq.enums.userauth;
import lombok.Getter;
import java.util.Arrays;
@Getter
public enum UserAuthJobAuthTypeEnum {
QW(1,"企业微信"),
OFFER(2,"offer"),
JOB_CARD(3,"工作证"),
;
private final Integer code;
private final String text;
UserAuthJobAuthTypeEnum(Integer code, String text) {
this.code = code;
this.text = text;
}
public static UserAuthJobAuthTypeEnum getByCode(Integer code){
return Arrays.stream(UserAuthJobAuthTypeEnum.values()).filter(i -> i.getCode().equals(code)).findFirst().orElse(null);
}
}

View File

@@ -13,9 +13,9 @@ import java.util.Arrays;
*/
@Getter
public enum UserGenderEnum {
NONE(0,"未知", ""),
WOMEN(1,"", ""),
MAN(2,"", ""),
NONE(0,"未知", "xq/images/avatar/none.png"),
WOMEN(1,"", "xq/images/avatar/women.png"),
MAN(2,"", "xq/images/avatar/man.png"),
;

View File

@@ -171,6 +171,7 @@ public class CaiLoginManager {
@Transactional(rollbackFor = Exception.class)
public User registerUser(String mobile,String inviteCode){
String cos = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
String usercode = userCodeGenService.getCodeGen();
User add = new User();
add.setUsercode(usercode);
@@ -179,6 +180,7 @@ public class CaiLoginManager {
add.setPassword(BCrypt.hashpw(usercode+"用户手动滑稽安康黄鼠狼"));
add.setMobile(mobile);
add.setGender(UserGenderEnum.NONE.getCode());
add.setAvatar(cos + UserGenderEnum.NONE.getDefaultAvatar());
add.setImToken(IdUtil.simpleUUID());
userService.save(add);
CreateUserReq req = new CreateUserReq();

View File

@@ -1,6 +1,7 @@
package com.ruoyi.xq.manager;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Translation;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.BeanConvertUtil;
@@ -12,8 +13,11 @@ import com.ruoyi.xq.dto.app.user.UpdateUserAuthInfoReq;
import com.ruoyi.xq.dto.app.user.UpdateUserFullInfoReq;
import com.ruoyi.xq.dto.app.user.vo.*;
import com.ruoyi.xq.enums.common.AuditEnum;
import com.ruoyi.xq.enums.common.SystemConfigEnum;
import com.ruoyi.xq.enums.user.UserAuthTypeEnum;
import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum;
import com.ruoyi.xq.enums.userauth.UserAuthJobAuthTypeEnum;
import com.ruoyi.xq.enums.userinfo.UserGenderEnum;
import com.ruoyi.xq.lock.LockKey;
import com.ruoyi.xq.service.*;
import com.ruoyi.xq.util.AgeUtil;
@@ -23,7 +27,9 @@ import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.swing.plaf.basic.BasicBorders;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -42,6 +48,8 @@ public class CurrentUserManager {
private UserAuthAuditService userAuthAuditService;
@Autowired
private UserInfoAuditService userInfoAuditService;
@Autowired
private SystemConfigManager systemConfigManager;
public CurrentUserFullInfoVo currentFullInfo(){
@@ -104,6 +112,11 @@ public class CurrentUserManager {
public void updateBaseInfo(UpdateBaseInfoReq req) {
Long userId = LoginHelper.getUserId();
User updateUser = BeanConvertUtil.convertTo(req, User::new);
UserGenderEnum userGenderEnum = UserGenderEnum.getByCode(req.getGender());
if(userGenderEnum != null){
String cos = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
updateUser.setAvatar(cos + userGenderEnum.getDefaultAvatar());
}
updateUser.setId(userId);
userService.updateById(updateUser);
UserInfo updateUserInfo = BeanConvertUtil.convertTo(req, UserInfo::new);
@@ -217,6 +230,7 @@ public class CurrentUserManager {
return BeanConvertUtil.convertTo(userAuth, UserAuthInfoVo::new);
}
@Transactional(rollbackFor = Exception.class)
public void updateInfoAuth(UpdateUserAuthInfoReq req) {
Long userId = LoginHelper.getUserId();
User user = userService.getById(userId);
@@ -273,7 +287,8 @@ public class CurrentUserManager {
userAuthAuditService.saveAuthAudit(user,UserAuthTypeEnum.MARRIAGE,req.getMarriagePic());
}
if(BooleanUtils.isTrue(req.getPushJobAuthBoo())){ // 工作认证
if(req.getJobAuthType() == null){
UserAuthJobAuthTypeEnum userAuthJobAuthTypeEnum = UserAuthJobAuthTypeEnum.getByCode(req.getJobAuthType());
if(userAuthJobAuthTypeEnum == null){
throw new ServiceException("请选择工作认证方式");
}
if(req.getJobPic() == null){
@@ -286,7 +301,7 @@ public class CurrentUserManager {
if(!update){
throw new ServiceException("房产认证正在审核中,请勿重复提交");
}
String authRemark = "工作认证";
String authRemark = String.format("【%s】工作认证", userAuthJobAuthTypeEnum.getText());
userAuthAuditService.saveAuthAudit(user,UserAuthTypeEnum.JOB,req.getJobPic(),authRemark);
}
}

View File

@@ -1,7 +1,10 @@
package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.UserAuthAudit;
import com.ruoyi.xq.dto.admin.userauth.UserAuthAuditAdminVo;
import org.apache.ibatis.annotations.Param;
/**
* 用户认证审核Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.UserAuthAudit;
*/
public interface UserAuthAuditMapper extends BaseMapper<UserAuthAudit> {
Page<UserAuthAuditAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserAuthAuditAdminVo bo);
}

View File

@@ -3,6 +3,7 @@ package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.UserWithdraw;
import com.ruoyi.xq.dto.admin.withdraw.UserWithdrawAdminVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListAppVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListPageQuery;
import org.apache.ibatis.annotations.Param;
@@ -16,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
public interface UserWithdrawMapper extends BaseMapper<UserWithdraw> {
Page<WithdrawListAppVo> pageApp(@Param("build") Page<Object> build, @Param("query") WithdrawListPageQuery query);
Page<UserWithdrawAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserWithdrawAdminVo bo);
}

View File

@@ -1,8 +1,11 @@
package com.ruoyi.xq.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserAuthAudit;
import com.ruoyi.xq.dto.admin.userauth.UserAuthAuditAdminVo;
import com.ruoyi.xq.enums.user.UserAuthTypeEnum;
/**
@@ -17,4 +20,10 @@ public interface UserAuthAuditService extends IService<UserAuthAudit> {
default void saveAuthAudit(User user, UserAuthTypeEnum userAuthType, String pic) {
saveAuthAudit(user,userAuthType,pic, null);
}
Page<UserAuthAuditAdminVo> pageAdmin(PageQuery pageQuery, UserAuthAuditAdminVo bo);
void auditSuccess(String ids);
void auditFail(Long id, String auditRemark);
}

View File

@@ -18,8 +18,11 @@ import java.math.BigDecimal;
public interface UserExtendService extends IService<UserExtend> {
boolean withdraw(Long userId, BigDecimal withdrawPrice);
void resetWithdraw(Long userId, BigDecimal withdrawMoney, String traceId);
Page<UserExtendAdminVo> pageAdmin(PageQuery pageQuery, UserExtendAdminVo bo);
void updateIncomeCoin(UpdateIncomeCoinReq bo);
}

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.UserWithdraw;
import com.ruoyi.xq.dto.admin.withdraw.UserWithdrawAdminVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListAppVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListPageQuery;
@@ -18,4 +19,10 @@ public interface UserWithdrawService extends IService<UserWithdraw> {
void saveWithdraw(Long userId, Long withdrawSettingId);
Page<WithdrawListAppVo> pageApp(PageQuery pageQuery, WithdrawListPageQuery query);
Page<UserWithdrawAdminVo> pageAdmin(PageQuery pageQuery, UserWithdrawAdminVo bo);
void auditSuccess(Long id, boolean autoTrans);
void auditFail(Long id, String auditRemark);
}

View File

@@ -1,27 +1,35 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserAuth;
import com.ruoyi.xq.domain.UserAuthAudit;
import com.ruoyi.xq.dto.admin.userauth.UserAuthAuditAdminVo;
import com.ruoyi.xq.enums.common.AuditEnum;
import com.ruoyi.xq.enums.user.UserAuthTypeEnum;
import com.ruoyi.xq.mapper.UserAuthAuditMapper;
import com.ruoyi.xq.service.UserAuthAuditService;
import com.ruoyi.xq.service.UserAuthService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 用户认证审核Service业务层处理
*
* @author 77
* @date 2024-03-04
*/
@RequiredArgsConstructor
@Service
public class UserAuthAuditServiceImpl extends ServiceImpl<UserAuthAuditMapper,UserAuthAudit> implements UserAuthAuditService {
@Autowired
private UserAuthService userAuthService;
@Override
public void saveAuthAudit(User user, UserAuthTypeEnum userAuthType, String pic, String remark) {
@@ -34,4 +42,107 @@ public class UserAuthAuditServiceImpl extends ServiceImpl<UserAuthAuditMapper,Us
userAuthAudit.setAuditStatus(AuditEnum.AUDITING.getCode());
this.save(userAuthAudit);
}
@Override
public Page<UserAuthAuditAdminVo> pageAdmin(PageQuery pageQuery, UserAuthAuditAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
@Override
public void auditSuccess(String ids) {
String[] idArray = ids.split(",");
for (String id : idArray) {
boolean flag = this.update(Wrappers.lambdaUpdate(UserAuthAudit.class)
.eq(UserAuthAudit::getId, id)
.eq(UserAuthAudit::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserAuthAudit::getAuditStatus, AuditEnum.SUCCESS.getCode())
.set(UserAuthAudit::getAuditIp, ServletUtils.getClientIP())
.set(UserAuthAudit::getAuditOpId, LoginHelper.getUserId())
.set(UserAuthAudit::getAuditOpName, LoginHelper.getUsername())
.set(UserAuthAudit::getAuditTime, LocalDateTime.now())
.set(UserAuthAudit::getAuditRemark, "审核成功"));
if(flag){
UserAuthAudit userInfoAudit = this.getById(id);
if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.CAR.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getCarAuth, AuditEnum.SUCCESS.getCode())
.set(UserAuth::getCarPic, userInfoAudit.getAuthPic()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.JOB.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getJobAuth, AuditEnum.SUCCESS.getCode())
.set(UserAuth:: getJobPic, userInfoAudit.getAuthPic())
.set(UserAuth:: getJobAuthType, userInfoAudit.getAuthOther()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.EDUCATION.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getEducationAuth, AuditEnum.SUCCESS.getCode())
.set(UserAuth:: getEducationPic, userInfoAudit.getAuthPic()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.HOUSE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getHouseAuth, AuditEnum.SUCCESS.getCode())
.set(UserAuth:: getHousePic, userInfoAudit.getAuthPic()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.MARRIAGE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getMarriageAuth, AuditEnum.SUCCESS.getCode())
.set(UserAuth:: getMarriagePic, userInfoAudit.getAuthPic()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.SINGLE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.set(UserAuth:: getSinglePersonAuth, AuditEnum.SUCCESS.getCode()));
}
}
}
}
@Override
public void auditFail(Long id, String auditRemark) {
boolean update = this.update(Wrappers.lambdaUpdate(UserAuthAudit.class)
.eq(UserAuthAudit::getId, id)
.eq(UserAuthAudit::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserAuthAudit::getAuditStatus, AuditEnum.FAIL.getCode())
.set(UserAuthAudit::getAuditIp, ServletUtils.getClientIP())
.set(UserAuthAudit::getAuditOpId, LoginHelper.getUserId())
.set(UserAuthAudit::getAuditOpName, LoginHelper.getUsername())
.set(UserAuthAudit::getAuditTime, LocalDateTime.now())
.set(UserAuthAudit::getAuditRemark, auditRemark));
if(update){
UserAuthAudit userInfoAudit = this.getById(id);
if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.CAR.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getCarAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getCarAuth, AuditEnum.FAIL.getCode()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.JOB.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getJobAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getJobAuth, AuditEnum.FAIL.getCode()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.EDUCATION.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getEducationAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getEducationAuth, AuditEnum.FAIL.getCode()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.HOUSE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getHouseAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getHouseAuth, AuditEnum.FAIL.getCode()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.MARRIAGE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getMarriageAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getMarriageAuth, AuditEnum.FAIL.getCode()));
}else if(userInfoAudit.getAuthType().equals(UserAuthTypeEnum.SINGLE.getCode())){
userAuthService.update(Wrappers.lambdaUpdate(UserAuth.class)
.eq(UserAuth:: getUserId, userInfoAudit.getUserId())
.in(UserAuth::getSinglePersonAuth, AuditEnum.AUDITING.getCode(), AuditEnum.NO.getCode())
.set(UserAuth:: getSinglePersonAuth, AuditEnum.FAIL.getCode()));
}
}
}
}

View File

@@ -32,8 +32,19 @@ public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExte
@Override
public boolean withdraw(Long userId, BigDecimal withdrawPrice){
boolean exists = baseMapper.decrIncome(userId, withdrawPrice);
return exists;
boolean success = baseMapper.decrIncome(userId, withdrawPrice);
if(success){
// TODO 记录金额流水
}
return success;
}
@Override
public void resetWithdraw(Long userId, BigDecimal withdrawMoney, String traceId) {
boolean success = baseMapper.incrIncome(userId, withdrawMoney);
if(success){
// TODO 记录金额流水
}
}
@Override

View File

@@ -15,7 +15,9 @@ import com.ruoyi.xq.domain.UserInfo;
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
import com.ruoyi.xq.dto.app.user.vo.HomeUserVo;
import com.ruoyi.xq.enums.common.SystemConfigEnum;
import com.ruoyi.xq.enums.userinfo.UserGenderEnum;
import com.ruoyi.xq.manager.SystemConfigManager;
import com.ruoyi.xq.mapper.UserMapper;
import com.ruoyi.xq.service.UserInfoService;
import com.ruoyi.xq.service.UserService;
@@ -41,6 +43,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
private UserInfoService userInfoService;
@Autowired
private ImUserRefClient userRefClient;
@Autowired
private SystemConfigManager systemConfigManager;
@Override
public User getByUsername(String username) {
@@ -102,17 +106,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
if(user == null){
return;
}
String cos = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
Integer gender = user.getGender();
UserGenderEnum genderEnum = UserGenderEnum.getByCode(gender);
if(genderEnum == null){
return;
}
String avatar = cos + genderEnum.getDefaultAvatar();
this.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,user.getId())
.set(User::getAvatar,genderEnum.getDefaultAvatar()));
.set(User::getAvatar,avatar));
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
uinfoReq.setAccid(user.getId()+"");
uinfoReq.setIcon(genderEnum.getDefaultAvatar());
uinfoReq.setIcon(avatar);
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));

View File

@@ -1,17 +1,20 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserWithdraw;
import com.ruoyi.xq.domain.WithdrawSetting;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.xq.domain.*;
import com.ruoyi.xq.dto.admin.withdraw.UserWithdrawAdminVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListAppVo;
import com.ruoyi.xq.dto.app.withdraw.WithdrawListPageQuery;
import com.ruoyi.xq.enums.common.AuditEnum;
import com.ruoyi.xq.enums.common.OrderTypeEnum;
import com.ruoyi.xq.enums.common.TraceIdEnum;
import com.ruoyi.xq.enums.user.UserAuthTypeEnum;
import com.ruoyi.xq.manager.OrderNoUtil;
import com.ruoyi.xq.manager.TraceIdManager;
import com.ruoyi.xq.mapper.UserWithdrawMapper;
@@ -25,6 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 用户提现审核Service业务层处理
@@ -74,4 +78,44 @@ public class UserWithdrawServiceImpl extends ServiceImpl<UserWithdrawMapper,User
public Page<WithdrawListAppVo> pageApp(PageQuery pageQuery, WithdrawListPageQuery query) {
return baseMapper.pageApp(pageQuery.build(), query);
}
@Override
public Page<UserWithdrawAdminVo> pageAdmin(PageQuery pageQuery, UserWithdrawAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void auditSuccess(Long id, boolean autoTrans) {
boolean flag = this.update(Wrappers.lambdaUpdate(UserWithdraw.class)
.eq(UserWithdraw::getId, id)
.eq(UserWithdraw::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserWithdraw::getAuditStatus, AuditEnum.SUCCESS.getCode())
.set(UserWithdraw::getAuditIp, ServletUtils.getClientIP())
.set(UserWithdraw::getAuditOpId, LoginHelper.getUserId())
.set(UserWithdraw::getAuditOpName, LoginHelper.getUsername())
.set(UserWithdraw::getAuditTime, LocalDateTime.now())
.set(UserWithdraw::getAuditRemark, "审核成功"));
if(flag && autoTrans){
// TODO 自动打款
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void auditFail(Long id, String auditRemark) {
boolean update = this.update(Wrappers.lambdaUpdate(UserWithdraw.class)
.eq(UserWithdraw::getId, id)
.eq(UserWithdraw::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserWithdraw::getAuditStatus, AuditEnum.FAIL.getCode())
.set(UserWithdraw::getAuditIp, ServletUtils.getClientIP())
.set(UserWithdraw::getAuditOpId, LoginHelper.getUserId())
.set(UserWithdraw::getAuditOpName, LoginHelper.getUsername())
.set(UserWithdraw::getAuditTime, LocalDateTime.now())
.set(UserWithdraw::getAuditRemark, auditRemark));
if(update){
UserWithdraw userWithdraw = this.getById(id);
userExtendService.resetWithdraw(userWithdraw.getUserId(),userWithdraw.getWithdrawMoney(), userWithdraw.getTraceId());
}
}
}