This commit is contained in:
dute7liang
2023-12-30 21:04:37 +08:00
parent 065cac5ae3
commit 6e56989d0f
15 changed files with 164 additions and 50 deletions

View File

@@ -1,21 +1,13 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.CaiAccountCash;
import com.ruoyi.cai.domain.CaiAccountRecharge;
import com.ruoyi.cai.dto.app.query.*;
import com.ruoyi.cai.dto.app.vo.AccountCashVo;
import com.ruoyi.cai.dto.app.vo.AccountRechargeVo;
import com.ruoyi.cai.dto.app.query.AlbumAddReq;
import com.ruoyi.cai.dto.app.query.AlbumResetReq;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.dto.app.query.UserUpdateReq;
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.UserAccountVo;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.service.CaiAccountCashService;
import com.ruoyi.cai.service.CaiAccountRechargeService;
import com.ruoyi.cai.service.CaiUserAlbumService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -31,10 +23,6 @@ public class UserAppController {
@Autowired
private CurrentUserManager currentUserManager;
@Autowired
private CaiAccountRechargeService caiAccountRechargeService;
@Autowired
private CaiAccountCashService accountCashService;
@Autowired
private CaiUserAlbumService userAlbumService;
@GetMapping("/info")
@@ -43,24 +31,12 @@ public class UserAppController {
return R.ok(currentUserManager.currentInfo());
}
@GetMapping("/account")
@Operation(summary = "快速获取当前用户账号余额信息")
public R<UserAccountVo> currentAccount(){
return R.ok(currentUserManager.currentAccount());
}
@PostMapping("/update")
@Operation(summary = "修改当前用户信息")
public R<Boolean> userUpdate(@RequestBody UserUpdateReq res){
return R.ok(currentUserManager.userUpdate(res));
}
@PostMapping("/album/update")
@Operation(summary = "修改相册")
public R<Boolean> userAlbumDel(@RequestBody AlbumAddReq userAlbumList){
return R.ok(userAlbumService.updateAlbum(userAlbumList));
}
@PostMapping("/album/del")
@Operation(summary = "删除相册")
public R<Boolean> userAlbumDel(@RequestBody IdRes res){
@@ -75,7 +51,7 @@ public class UserAppController {
}
@PostMapping("/album/reset")
@Operation(summary = "重排序相册")
@Operation(summary = "重排序相册",hidden = true)
public R<Boolean> userAlbumAdd(@RequestBody List<AlbumResetReq> res){
return R.ok(userAlbumService.resetAlbum(res,LoginHelper.getUserId()));
}

View File

@@ -9,6 +9,7 @@ import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes;
import com.ruoyi.cai.dto.app.query.WithdrawReq;
import com.ruoyi.cai.dto.app.vo.AccountCashVo;
import com.ruoyi.cai.dto.app.vo.AccountRechargeVo;
import com.ruoyi.cai.dto.app.vo.user.UserAccountVo;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.service.CaiAccountCashService;
import com.ruoyi.cai.service.CaiAccountRechargeService;
@@ -33,6 +34,12 @@ public class WalletController {
@Autowired
private CaiAccountRechargeService accountRechargeService;
@GetMapping("/account")
@Operation(summary = "快速获取当前用户账号余额信息")
public R<UserAccountVo> currentAccount(){
return R.ok(currentUserManager.currentAccount());
}
@GetMapping("/aliInfo")
@Operation(summary = "获取绑定支付宝信息")
public R<CaiAccountBankcard> aliInfo(){

View File

@@ -0,0 +1,37 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 用户黑名单对象 cai_user_blacklist
*
* @author 77
* @date 2023-12-30
*/
@Data
@TableName("cai_user_blacklist")
public class CaiUserBlacklist implements Serializable {
private static final long serialVersionUID=1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 我的uid
*/
private Long userId;
/**
* 拉黑的uid
*/
private Long blackUid;
private LocalDateTime createTime;
}

View File

@@ -11,7 +11,5 @@ public class AlbumAddReq {
private Long id;
@Schema(description = "url")
private String url;
@Schema(description = "排序")
private Integer orderBy;
// private boolean first;
}

View File

@@ -12,4 +12,6 @@ public class GiveGuardReq {
@Schema(description = "赠送数量")
private Long guardNum;
@Schema(description = "赠送价格")
private Long guardPrice;
}

View File

@@ -10,7 +10,7 @@ public class UserUpdateReq {
@Schema(description = "用户ID",accessMode = Schema.AccessMode.READ_ONLY)
private Long userId;
@Schema(description = "城市")
private String city;
private Long city;
@Schema(description = "昵称")
private String nickname;
@Schema(description = "生日")

View File

@@ -97,21 +97,28 @@ public class CurrentUserManager {
update.set(CaiUser::getBirthday,res.getBirthday());
updateFlag=true;
}
if(StringUtils.isNotEmpty(res.getCity())){
if(res.getCity() != null){
update.set(CaiUser::getCity,res.getCity());
updateFlag=true;
}
if(StringUtils.isNotEmpty(res.getAvatar())){
update.set(CaiUser::getAvatar,res.getAvatar());
update.set(CaiUser::getAvatarState,1);
updateFlag=true;
}
if(updateFlag){
return userService.update(update);
boolean flag = userService.update(update);
if(flag){
userService.checkFinishStatus(res.getUserId());
}
}
return true;
}
public CaiAccountBankcard aliInfo() {
CaiAccountBankcard one = accountBankcardService.getOne(Wrappers.lambdaQuery(CaiAccountBankcard.class)
return accountBankcardService.getOne(Wrappers.lambdaQuery(CaiAccountBankcard.class)
.eq(CaiAccountBankcard::getUserId, LoginHelper.getUserId())
.last("limit 1"));
return one;
}
public void saveOrUpdateAliInfo(AccountAliBankCardRes res) {

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.CaiUserBlacklist;
/**
* 用户黑名单Mapper接口
*
* @author 77
* @date 2023-12-30
*/
public interface CaiUserBlacklistMapper extends BaseMapper< CaiUserBlacklist> {
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserBlacklist;
/**
* 用户黑名单Service接口
*
* @author 77
* @date 2023-12-30
*/
public interface CaiUserBlacklistService extends IService<CaiUserBlacklist> {
}

View File

@@ -33,4 +33,6 @@ public interface CaiUserService extends IService<CaiUser> {
void updateVideoStatus(Long userId, int videoStatus);
boolean agreeProtocol(Long userId);
void checkFinishStatus(Long userId);
}

View File

@@ -3,21 +3,17 @@ package com.ruoyi.cai.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.cai.domain.CaiAnchor;
import com.ruoyi.cai.domain.CaiConsumeLog;
import com.ruoyi.cai.domain.CaiGuardTotal;
import com.ruoyi.cai.domain.CaiUser;
import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.dto.GuardTotalDTO;
import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.CaiGuardTotalMapper;
import com.ruoyi.cai.service.CaiAccountService;
import com.ruoyi.cai.service.CaiAnchorService;
import com.ruoyi.cai.service.CaiGuardTotalService;
import com.ruoyi.cai.service.CaiUserService;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
@@ -37,18 +33,21 @@ import java.util.stream.Collectors;
@Service
public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,CaiGuardTotal> implements CaiGuardTotalService {
private final Long GUARD_UNIT_PRICE = 1314L;
@Autowired
private CaiUserService userService;
@Autowired
private CaiAccountService accountService;
@Autowired
private CaiAnchorService anchorService;
@Autowired
private CaiGuardLogService guardLogService;
@Autowired
private SystemConfigManager systemConfigManager;
@Override
public GuardIndexVo guardInfoVo(Long fromUserId, Long toUserId, Integer limit) {
GuardIndexVo vo = new GuardIndexVo();
vo.setGuardPrice(GUARD_UNIT_PRICE);
vo.setGuardPrice(systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.GUARD_PRICE));
// 查询守护总数
Long count = baseMapper.guardCount(toUserId);
if(count > 0){
@@ -84,14 +83,24 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,Ca
if(anchor == null){
throw new ServiceException("女神不存在");
}
Long guardValue = query.getGuardNum() * GUARD_UNIT_PRICE;
Long guardPrice = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.GUARD_PRICE);
if(!query.getGuardPrice().equals(guardPrice)){
throw new ServiceException("守护价格发生变化");
}
Long guardValue = query.getGuardNum() * guardPrice;
CaiConsumeLog consumeLog = new CaiConsumeLog();
consumeLog.init(fromUser,toUser);
consumeLog.setType(ConsumeLogType.GUARD.getCode());
consumeLog.setAmount(guardValue);
consumeLog.setTargetRate(anchor.getGuardRate());
consumeLog = accountService.decr(consumeLog);
CaiGuardLog guardLog = new CaiGuardLog();
guardLog.setFromUserId(fromUserId);
guardLog.setToUserId(query.getToUserId());
guardLog.setGuardNum(query.getGuardNum());
guardLog.setGuardValue(guardPrice);
guardLog.setConsumeLogId(consumeLog.getId());
guardLogService.save(guardLog);
CaiGuardTotal one = this.getOne(Wrappers.lambdaQuery(CaiGuardTotal.class)
.eq(CaiGuardTotal::getToUserId, query.getToUserId())
.eq(CaiGuardTotal::getFromUserId, fromUserId));

View File

@@ -10,12 +10,13 @@ import com.ruoyi.cai.dto.app.query.AlbumResetReq;
import com.ruoyi.cai.mapper.CaiUserAlbumMapper;
import com.ruoyi.cai.service.CaiUserAlbumService;
import com.ruoyi.cai.service.CaiUserService;
import com.ruoyi.common.helper.LoginHelper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**

View File

@@ -0,0 +1,17 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiUserBlacklist;
import com.ruoyi.cai.mapper.CaiUserBlacklistMapper;
import com.ruoyi.cai.service.CaiUserBlacklistService;
import org.springframework.stereotype.Service;
/**
* 用户黑名单Service业务层处理
*
* @author 77
* @date 2023-12-30
*/
@Service
public class CaiUserBlacklistServiceImpl extends ServiceImpl<CaiUserBlacklistMapper,CaiUserBlacklist> implements CaiUserBlacklistService {
}

View File

@@ -15,6 +15,7 @@ import com.ruoyi.cai.mapper.CaiUserMapper;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.helper.LoginHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -121,4 +122,18 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
.set(CaiUser::getAgreeProtocol,1));
return true;
}
@Override
public void checkFinishStatus(Long userId) {
CaiUser user = this.getById(userId);
if(user == null || user.getIsAnchor() == 1 || user.getFinishStatus() == 1){
return;
}
if(user.getCity() != null && user.getBirthday() != null && StringUtils.isNotEmpty(user.getNickname())
&& user.getAvatarState() == 1){
this.update(Wrappers.lambdaUpdate(CaiUser.class)
.eq(CaiUser::getId,user.getId())
.set(CaiUser::getFinishStatus,1));
}
}
}