diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index edce08dc..3c1a591f 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -16,7 +16,6 @@ - org.springframework.boot diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index c5187288..d597a261 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -201,7 +201,7 @@ springdoc: api-docs: # 是否开启接口文档 enabled: true -# swagger-ui: + # swagger-ui: # # 持久化认证数据 # persistAuthorization: true info: diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiCurrentUserAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiCurrentUserAppController.java new file mode 100644 index 00000000..d190e771 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiCurrentUserAppController.java @@ -0,0 +1,64 @@ +package com.ruoyi.cai.controller.app; + +import com.ruoyi.cai.dto.app.query.*; +import com.ruoyi.cai.dto.app.vo.*; +import com.ruoyi.cai.manager.CurrentUserManager; +import com.ruoyi.cai.service.CaiUserAlbumService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.helper.LoginHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/current") +public class CaiCurrentUserAppController { + @Autowired + private CurrentUserManager currentUserManager; + @Autowired + private CaiUserAlbumService userAlbumService; + @GetMapping("/user/info") + public R currentInfo(){ + return R.ok(currentUserManager.currentInfo()); + } + + @GetMapping("/user/account") + public R currentAccount(){ + return R.ok(currentUserManager.currentAccount()); + } + + @GetMapping("/anchor/info") + public R anchorInfo(){ + return R.ok(currentUserManager.anchorInfo()); + } + + @PostMapping("/anchor/update") + public R anchorUpdate(AnchorUpdateRes anchorUpdate){ + return R.ok(currentUserManager.anchorUpdate(anchorUpdate)); + } + + @PostMapping("/user/update") + public R userUpdate(UserUpdateRes res){ + return R.ok(currentUserManager.userUpdate(res)); + } + + @PostMapping("/user/album/del") + public R userAlbumDel(IdRes res){ + return R.ok(userAlbumService.removeAlbum(res.getId())); + } + + @PostMapping("/user/album/add") + public R userAlbumAdd(AlbumAddRes res){ + res.setUserId(LoginHelper.getUserId()); + return R.ok(userAlbumService.addAlbum(res)); + } + + @PostMapping("/user/album/reset") + public R userAlbumAdd(List res){ + return R.ok(userAlbumService.resetAlbum(res,LoginHelper.getUserId())); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java index 2aa6ba62..57d425a2 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java @@ -22,12 +22,6 @@ public class CaiUserAppController { @Autowired private CaiUserService caiUserService; - @GetMapping("/current/info") - public R currentInfo(){ - LoginUser loginUser = LoginHelper.getLoginUser(); - return R.ok(loginUser); - } - @GetMapping("/page") public TableDataInfo page(PageQuery page, UserQuery query){ Page res = caiUserService.pageApp(page,query); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAccount.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAccount.java index 5dd36956..5429449a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAccount.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAccount.java @@ -48,6 +48,7 @@ public class CaiAccount implements Serializable { * 收益的彩币数量 */ private Long incomeCoin; + private Long totalCoin; /** * 当前魅力值 */ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserAlbum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserAlbum.java index f40d4613..0887352e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserAlbum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserAlbum.java @@ -10,7 +10,7 @@ import java.time.LocalDateTime; /** * 主播集锦对象 cai_user_album * - * @author ruoyi + * @author 77 * @date 2023-12-23 */ @Data @@ -49,6 +49,8 @@ public class CaiUserAlbum implements Serializable { */ private Integer isAnchor; + private Integer orderBy; + private LocalDateTime createTime; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumAddRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumAddRes.java new file mode 100644 index 00000000..e52345e9 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumAddRes.java @@ -0,0 +1,11 @@ +package com.ruoyi.cai.dto.app.query; + +import lombok.Data; + +@Data +public class AlbumAddRes { + private Long userId; + private String url; + private Integer orderBy; +// private boolean first; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumResetRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumResetRes.java new file mode 100644 index 00000000..48a344cd --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AlbumResetRes.java @@ -0,0 +1,9 @@ +package com.ruoyi.cai.dto.app.query; + +import lombok.Data; + +@Data +public class AlbumResetRes { + private Long id; + private Integer orderBy; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorUpdateRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorUpdateRes.java new file mode 100644 index 00000000..4629214d --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorUpdateRes.java @@ -0,0 +1,21 @@ +package com.ruoyi.cai.dto.app.query; + +import lombok.Data; + +@Data +public class AnchorUpdateRes { + private Long userId; + /** + * 价格,默认50彩币 + */ + private Long price; + /** + * 开启视频接听 0 未开启 1 已开启 + */ + private Integer openVideoStatus; + /** + * 是否隐藏接单次数 1隐藏 2不隐藏 + */ + private Integer orderSwitch; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/IdRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/IdRes.java new file mode 100644 index 00000000..ead7f49a --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/IdRes.java @@ -0,0 +1,8 @@ +package com.ruoyi.cai.dto.app.query; + +import lombok.Data; + +@Data +public class IdRes { + private Long id; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserUpdateRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserUpdateRes.java new file mode 100644 index 00000000..84eda47d --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserUpdateRes.java @@ -0,0 +1,13 @@ +package com.ruoyi.cai.dto.app.query; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserUpdateRes { + private Long userId; + private String city; + private String nickname; + private LocalDateTime birthday; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorVo.java new file mode 100644 index 00000000..aabed794 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorVo.java @@ -0,0 +1,37 @@ +package com.ruoyi.cai.dto.app.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class AnchorVo { + /** + * 用户ID + */ + private Long userId; + /** + * 技能ID + */ + private Integer skillId; + /** + * 价格,默认50彩币 + */ + private Long price; + /** + * 是否隐藏接单次数 1隐藏 2不隐藏 + */ + private Integer orderSwitch; + /** + * 开启视频接听 0 未开启 1 已开启 + */ + private Integer openVideoStatus; + /** + * 用户评分 + */ + private BigDecimal giveScore; + /** + * 服务总次数 + */ + private Long serviceCount; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/CurrentUserInfoVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/CurrentUserInfoVo.java new file mode 100644 index 00000000..bce82942 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/CurrentUserInfoVo.java @@ -0,0 +1,73 @@ +package com.ruoyi.cai.dto.app.vo; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class CurrentUserInfoVo { + + private Long userId; + + /** + * 用户号/ID号 + */ + private String usercode; + /** + * 昵称 + */ + private String nickname; + /** + * 手机号 + */ + private String mobile; + /** + * 头像 + */ + private String avatar; + /** + * 头像状态,0 系统默认头像,1 用户自定义头像 + */ + private Integer avatarState; + /** + * 性别 0 未知 1 女 2 男 + */ + private Integer gender; + /** + * + */ + private LocalDateTime birthday; + /** + * 城市 + */ + private Long city; + /** + * 是否是播主 0 否 1 是 + */ + private Integer isAnchor; + /** + * 开启视频接听 0 未开启 1 已开启 + */ + private Integer openVideoStatus; + /** + * 状态 0 可用 1 不可用 + */ + private Integer status; + + /** + * 相册 + */ + private List userAlbumList; + + /** + * 用户账户 + */ + private UserAccountVo userAccount; + + /** + * 用户统计 + */ + private UserCountVo userCount; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAccountVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAccountVo.java new file mode 100644 index 00000000..9a7037e7 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAccountVo.java @@ -0,0 +1,21 @@ +package com.ruoyi.cai.dto.app.vo; + +import lombok.Data; + +@Data +public class UserAccountVo { + /** + * 用户ID + */ + private Long userId; + /** + * 当前彩币数量 + */ + private Long coin; + /** + * 收益的彩币数量 + */ + private Long incomeCoin; + + private Long totalCoin; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAlbumDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAlbumDTO.java new file mode 100644 index 00000000..a166fd20 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserAlbumDTO.java @@ -0,0 +1,37 @@ +package com.ruoyi.cai.dto.app.vo; + +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserAlbumDTO { + /** + * + */ + @TableId(value = "id") + private Long id; + /** + * 用户ID + */ + private Long userId; + /** + * + */ + private String url; + /** + * 状态 0 未审核 1 审核通过 2 审核未通过 + */ + private Integer status; + /** + * 审核时间 + */ + private LocalDateTime auditTime; + /** + * 审核备注 + */ + private String auditRemark; + + private Integer orderBy; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserCountVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserCountVo.java new file mode 100644 index 00000000..5adb9243 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserCountVo.java @@ -0,0 +1,24 @@ +package com.ruoyi.cai.dto.app.vo; + +import lombok.Data; + +@Data +public class UserCountVo { + private Long userId; + /** + * 粉丝总数 + */ + private Long fansCount; + /** + * 关注数 + */ + private Long followCount; + /** + * 足迹数 + */ + private Long footCount; + /** + * 访客数 + */ + private Long visitorCount; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java new file mode 100644 index 00000000..8d119318 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java @@ -0,0 +1,103 @@ +package com.ruoyi.cai.manager; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.cai.domain.*; +import com.ruoyi.cai.dto.app.query.AnchorUpdateRes; +import com.ruoyi.cai.dto.app.query.UserUpdateRes; +import com.ruoyi.cai.dto.app.vo.*; +import com.ruoyi.cai.service.*; +import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.BeanConvertUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class CurrentUserManager { + @Autowired + private CaiUserService userService; + @Autowired + private CaiAnchorService anchorService; + @Autowired + private CaiUserCountService userCountService; + @Autowired + private CaiUserAlbumService userAlbumService; + @Autowired + private CaiAccountService accountService; + + public CurrentUserInfoVo currentInfo() { + Long userId = LoginHelper.getUserId(); + CaiUser user = userService.getById(userId); + CurrentUserInfoVo res = BeanConvertUtil.convertTo(user, CurrentUserInfoVo::new); + CaiAnchor anchor = anchorService.getByUserId(userId); + res.setOpenVideoStatus(anchor.getOpenVideoStatus()); + CaiUserCount userCount = userCountService.getByUserId(userId); + res.setUserCount(BeanConvertUtil.convertTo(userCount, UserCountVo::new)); + CaiAccount account = accountService.getByUserId(userId); + res.setUserAccount(BeanConvertUtil.convertTo(account,UserAccountVo::new)); + List userAlbums = userAlbumService.listByUserId(userId); + res.setUserAlbumList(BeanConvertUtil.convertListTo(userAlbums, UserAlbumDTO::new)); + return res; + } + + public UserAccountVo currentAccount(){ + Long userId = LoginHelper.getUserId(); + CaiAccount account = accountService.getByUserId(userId); + return BeanConvertUtil.convertTo(account,UserAccountVo::new); + } + + public AnchorVo anchorInfo() { + Long userId = LoginHelper.getUserId(); + CaiAnchor anchor = anchorService.getByUserId(userId); + return BeanConvertUtil.convertTo(anchor,AnchorVo::new); + } + + public boolean anchorUpdate(AnchorUpdateRes anchorUpdate) { + anchorUpdate.setUserId(LoginHelper.getUserId()); + boolean updateFlag = false; + LambdaUpdateWrapper update = + Wrappers.lambdaUpdate(CaiAnchor.class).eq(CaiAnchor::getUserId, anchorUpdate.getUserId()); + if(anchorUpdate.getPrice() != null){ + update.set(CaiAnchor::getPrice,anchorUpdate.getPrice()); + updateFlag=true; + } + if(anchorUpdate.getOrderSwitch() != null){ + update.set(CaiAnchor::getOrderSwitch,anchorUpdate.getOrderSwitch()); + updateFlag=true; + } + if(anchorUpdate.getOpenVideoStatus() != null){ + update.set(CaiAnchor::getOpenVideoStatus,anchorUpdate.getOpenVideoStatus()); + updateFlag=true; + } + if(updateFlag){ + return anchorService.update(update); + } + return true; + } + + public boolean userUpdate(UserUpdateRes res) { + res.setUserId(LoginHelper.getUserId()); + boolean updateFlag = false; + LambdaUpdateWrapper update = + Wrappers.lambdaUpdate(CaiUser.class).eq(CaiUser::getId, res.getUserId()); + if(StringUtils.isNotEmpty(res.getNickname())){ + update.set(CaiUser::getNickname,res.getNickname()); + updateFlag=true; + } + if(res.getBirthday() != null){ + update.set(CaiUser::getBirthday,res.getBirthday()); + updateFlag=true; + } + if(StringUtils.isNotEmpty(res.getCity())){ + update.set(CaiUser::getCity,res.getCity()); + updateFlag=true; + } + if(updateFlag){ + return userService.update(update); + } + return true; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAccountMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAccountMapper.java index 4810a17f..f025ffff 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAccountMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAccountMapper.java @@ -13,4 +13,6 @@ import org.apache.ibatis.annotations.Param; public interface CaiAccountMapper extends BaseMapper { boolean incs(@Param("userId") Long userId, @Param("value") Long value); + + void incsCoin(@Param("userId") Long userId, @Param("coin") Long coin, @Param("incomeCoin") Long incomeCoin); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAccountService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAccountService.java index 003f888b..471d8da2 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAccountService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAccountService.java @@ -14,4 +14,6 @@ public interface CaiAccountService extends IService { CaiAccount getByUserId(Long userId); boolean incs(Long userId, Long value); + + boolean decr(Long userId, Long value); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserAlbumService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserAlbumService.java index 3484b91a..dcdeb0ab 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserAlbumService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserAlbumService.java @@ -2,17 +2,27 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.CaiUserAlbum; +import com.ruoyi.cai.dto.app.query.AlbumAddRes; +import com.ruoyi.cai.dto.app.query.AlbumResetRes; import java.util.List; /** * 主播集锦Service接口 * - * @author ruoyi + * @author 77 * @date 2023-12-23 */ public interface CaiUserAlbumService extends IService { List getUserAlbum(Long userId, Integer anchor); + + List listByUserId(Long userId); + + boolean addAlbum(AlbumAddRes res); + + boolean removeAlbum(Long id); + + boolean resetAlbum(List res, Long userId); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserCountService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserCountService.java index fecfbefc..1c8aba9c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserCountService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserCountService.java @@ -15,4 +15,6 @@ public interface CaiUserCountService extends IService { void visitor(Long fromUserId,Long toUserId); void reset(Long userId); void resetAsync(Long userId); + + CaiUserCount getByUserId(Long userId); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAccountServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAccountServiceImpl.java index 6c237aba..a82fe0fe 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAccountServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAccountServiceImpl.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.CaiAccount; import com.ruoyi.cai.mapper.CaiAccountMapper; import com.ruoyi.cai.service.CaiAccountService; +import com.ruoyi.common.exception.ServiceException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 用户账户Service业务层处理 @@ -16,6 +18,7 @@ import org.springframework.stereotype.Service; @Service public class CaiAccountServiceImpl extends ServiceImpl implements CaiAccountService { + @Override public CaiAccount getByUserId(Long userId) { return this.getOne(Wrappers.lambdaQuery(CaiAccount.class).eq(CaiAccount::getUserId,userId).last("limit 1")); @@ -25,4 +28,25 @@ public class CaiAccountServiceImpl extends ServiceImpl= 0){ + baseMapper.incsCoin(userId, -value,0L); + }else{ + baseMapper.incsCoin(userId, -newAccount.getCoin(), decrCoinFlag); + } + return incs; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGuardTotalServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGuardTotalServiceImpl.java index 5590b2b6..c368c350 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGuardTotalServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGuardTotalServiceImpl.java @@ -51,11 +51,7 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl implements CaiUserAlbumService { - + @Autowired + private CaiUserService userService; @Override public List getUserAlbum(Long userId,Integer anchor){ LambdaQueryWrapper eq = Wrappers.lambdaQuery(CaiUserAlbum.class) @@ -35,4 +42,57 @@ public class CaiUserAlbumServiceImpl extends ServiceImpl list = this.list(eq); return list.stream().map(CaiUserAlbum::getUrl).collect(Collectors.toList()); } + + @Override + public List listByUserId(Long userId) { + return this.list(Wrappers.lambdaQuery(CaiUserAlbum.class).eq(CaiUserAlbum::getUserId,userId)); + } + + @Override + public boolean addAlbum(AlbumAddRes res) { + CaiUser user = userService.getById(res.getUserId()); + CaiUserAlbum album = new CaiUserAlbum(); + album.setUserId(res.getUserId()); + album.setUrl(res.getUrl()); + album.setIsAnchor(user.getIsAnchor()); + album.setOrderBy(res.getOrderBy()); + this.save(album); + if(user.getIsAnchor() == 1 && res.getOrderBy() == 0){ + userService.update(Wrappers.lambdaUpdate(CaiUser.class) + .eq(CaiUser::getId,res.getUserId()) + .set(CaiUser::getAvatar,res.getUrl())); + } + return true; + } + + @Override + public boolean removeAlbum(Long id){ + return this.removeById(id); + } + + @Override + public boolean resetAlbum(List res, Long userId) { + CaiUser user = userService.getById(userId); + List update = new ArrayList<>(); + Long id = null; + for (AlbumResetRes re : res) { + CaiUserAlbum album = new CaiUserAlbum(); + album.setId(re.getId()); + album.setOrderBy(re.getOrderBy()); + update.add(album); + if(re.getOrderBy() == 0){ + id = re.getId(); + } + } + this.updateBatchById(update); + if(id != null){ + CaiUserAlbum album = this.getById(id); + if(album != null && (album.getIsAnchor() == 1 || album.getStatus() == 1)){ + userService.update(Wrappers.lambdaUpdate(CaiUser.class) + .eq(CaiUser::getId,album.getUserId()) + .set(CaiUser::getAvatar,album.getUrl())); + } + } + return true; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserCountServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserCountServiceImpl.java index 3f5135f6..47c25020 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserCountServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserCountServiceImpl.java @@ -87,4 +87,9 @@ public class CaiUserCountServiceImpl extends ServiceImpl reset(userId)); } + + @Override + public CaiUserCount getByUserId(Long userId) { + return this.getOne(Wrappers.lambdaQuery(CaiUserCount.class).eq(CaiUserCount::getUserId,userId).last("limit 1")); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserGiftServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserGiftServiceImpl.java index fec8e893..7142b8a5 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserGiftServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserGiftServiceImpl.java @@ -47,11 +47,7 @@ public class CaiUserGiftServiceImpl extends ServiceImpl update cai_account - set coin = coin + #{value} + set total_coin = total_coin + #{value} + where user_id = #{userId} and (total_coin + #{value}) > 0 + + + update cai_account + set coin = coin + #{coin}, income_coin = income_coin + #{incomeCoin} where user_id = #{userId}