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

@@ -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());
}
}
}