完善订单和陪玩功能

This commit is contained in:
starrySky
2024-03-24 17:47:28 +08:00
parent a0e377c42f
commit 0ebf6cd3aa
16 changed files with 272 additions and 370 deletions

View File

@@ -1,85 +0,0 @@
package com.starry.admin.modules.commodity.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.commodity.module.entity.CommodityInfoEntity;
import com.starry.admin.modules.commodity.service.ICommodityInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 商品Controller
*
* @author admin
* @since 2024-03-22
*/
@RestController
@RequestMapping("/commodity/info")
public class CommodityInfoController {
@Resource
private ICommodityInfoService commodityInfoService;
/**
* 查询商品列表
*/
@PreAuthorize("@customSs.hasPermission('commodity:info:list')")
@GetMapping("/list")
public R list(CommodityInfoEntity commodityInfo) {
IPage<CommodityInfoEntity> list = commodityInfoService.selectCommodityInfoByPage(commodityInfo);
return R.ok(list);
}
/**
* 获取商品详细信息
*/
@PreAuthorize("@customSs.hasPermission('commodity:info:query')")
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(commodityInfoService.selectCommodityInfoEntityById(id));
}
/**
* 新增商品
*/
@PreAuthorize("@customSs.hasPermission('commodity:info:create')")
@Log(title = "商品", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody CommodityInfoEntity commodityInfo) {
boolean success = commodityInfoService.create(commodityInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改商品
*/
@PreAuthorize("@customSs.hasPermission('commodity:info:edit')")
@Log(title = "商品", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody CommodityInfoEntity commodityInfo) {
commodityInfo.setId(id);
boolean success = commodityInfoService.update(commodityInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除商品
*/
@PreAuthorize("@customSs.hasPermission('commodity:info:remove')")
@Log(title = "商品", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(commodityInfoService.deleteCommodityInfoEntityByIds(ids));
}
}

View File

@@ -1,16 +0,0 @@
package com.starry.admin.modules.commodity.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.commodity.module.entity.CommodityInfoEntity;
/**
* 商品Mapper接口
*
* @author admin
* @since 2024-03-22
*/
public interface CommodityInfoMapper extends BaseMapper<CommodityInfoEntity> {
}

View File

@@ -1,24 +0,0 @@
package com.starry.admin.modules.commodity.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("commodity_info")
public class CommodityInfoEntity extends BaseEntity<CommodityInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 价格
*/
private String money;
}

View File

@@ -1,62 +0,0 @@
package com.starry.admin.modules.commodity.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.commodity.module.entity.CommodityInfoEntity;
/**
* 商品Service接口
*
* @author admin
* @since 2024-03-22
*/
public interface ICommodityInfoService extends IService<CommodityInfoEntity> {
/**
* 查询商品
*
* @param id 商品主键
* @return 商品
*/
CommodityInfoEntity selectCommodityInfoEntityById(String id);
/**
* 查询商品列表
*
* @param CommodityInfoEntity 商品
* @return 商品集合
*/
IPage<CommodityInfoEntity> selectCommodityInfoByPage(CommodityInfoEntity CommodityInfoEntity);
/**
* 新增商品
*
* @param CommodityInfoEntity 商品
* @return 结果
*/
boolean create(CommodityInfoEntity CommodityInfoEntity);
/**
* 修改商品
*
* @param CommodityInfoEntity 商品
* @return 结果
*/
boolean update(CommodityInfoEntity CommodityInfoEntity);
/**
* 批量删除商品
*
* @param ids 需要删除的商品主键集合
* @return 结果
*/
int deleteCommodityInfoEntityByIds(String[] ids);
/**
* 删除商品信息
*
* @param id 商品主键
* @return 结果
*/
int deleteCommodityInfoEntityById(String id);
}

View File

@@ -1,92 +0,0 @@
package com.starry.admin.modules.commodity.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.modules.commodity.mapper.CommodityInfoMapper;
import com.starry.admin.modules.commodity.module.entity.CommodityInfoEntity;
import com.starry.admin.modules.commodity.service.ICommodityInfoService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* 商品Service业务层处理
*
* @author admin
* @since 2024-03-22
*/
@Service
public class CommodityInfoServiceImpl extends ServiceImpl<CommodityInfoMapper, CommodityInfoEntity> implements ICommodityInfoService {
@Resource
private CommodityInfoMapper CommodityInfoMapper;
/**
* 查询商品
*
* @param id 商品主键
* @return 商品
*/
@Override
public CommodityInfoEntity selectCommodityInfoEntityById(String id) {
return this.baseMapper.selectById(id);
}
/**
* 查询商品列表
*
* @param CommodityInfoEntity 商品
* @return 商品
*/
@Override
public IPage<CommodityInfoEntity> selectCommodityInfoByPage(CommodityInfoEntity CommodityInfoEntity) {
Page<CommodityInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<CommodityInfoEntity>());
}
/**
* 新增商品
*
* @param CommodityInfoEntity 商品
* @return 结果
*/
@Override
public boolean create(CommodityInfoEntity CommodityInfoEntity) {
return save(CommodityInfoEntity);
}
/**
* 修改商品
*
* @param CommodityInfoEntity 商品
* @return 结果
*/
@Override
public boolean update(CommodityInfoEntity CommodityInfoEntity) {
return updateById(CommodityInfoEntity);
}
/**
* 批量删除商品
*
* @param ids 需要删除的商品主键
* @return 结果
*/
@Override
public int deleteCommodityInfoEntityByIds(String[] ids) {
return CommodityInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除商品信息
*
* @param id 商品主键
* @return 结果
*/
@Override
public int deleteCommodityInfoEntityById(String id) {
return CommodityInfoMapper.deleteById(id);
}
}

View File

@@ -2,20 +2,17 @@ package com.starry.admin.modules.order.controller;
import cn.hutool.core.util.IdUtil;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.commodity.module.entity.CommodityInfoEntity;
import com.starry.admin.modules.commodity.service.ICommodityInfoService;
import com.starry.admin.modules.coupon.module.entity.CouponInfoEntity;
import com.starry.admin.modules.coupon.service.ICouponInfoService;
import com.starry.admin.modules.order.module.entity.OrderDetailsInfoEntity;
import com.starry.admin.modules.order.module.entity.OrderInfoEntity;
import com.starry.admin.modules.order.module.entity.OrderLogInfoEntity;
import com.starry.admin.modules.order.module.vo.OrderInfoAddVo;
import com.starry.admin.modules.order.module.vo.OrderInfoQueryVo;
import com.starry.admin.modules.order.module.vo.OrderInfoRefundVo;
import com.starry.admin.modules.order.module.vo.OrderInfoRewardVo;
import com.starry.admin.modules.order.module.vo.*;
import com.starry.admin.modules.order.service.IOrderDetailsInfoService;
import com.starry.admin.modules.order.service.IOrderInfoService;
import com.starry.admin.modules.order.service.IOrderLogInfoService;
import com.starry.admin.modules.play.module.entity.PlayUserInfoEntity;
import com.starry.admin.modules.play.service.IPlayUserInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
@@ -39,19 +36,32 @@ public class OrderInfoController {
@Resource
private IOrderInfoService orderInfoService;
@Resource
private IOrderDetailsInfoService orderDetailsInfoService;
@Resource
private ICouponInfoService couponInfoService;
@Resource
private IOrderLogInfoService orderLogInfoService;
@Resource
private IOrderDetailsInfoService orderDetailsInfoService;
@Resource
private ICommodityInfoService commodityInfoService;
private IPlayUserInfoService playUserInfoService;
@Resource
private ICouponInfoService couponInfoService;
@Log(title = "取消订单", businessType = BusinessType.UPDATE)
@PreAuthorize("@customSs.hasPermission('order/info/cancellation')")
public R cancellationOrder(@RequestBody OrderInfoCancellationVo vo) {
//判断操作人是否是陪玩本身
OrderInfoEntity entity = orderInfoService.selectOrderInfoById(vo.getId());
//校验通过
orderInfoService.orderRefund(vo.getId(), "2", null, false);
return R.ok();
}
@PreAuthorize("@customSs.hasPermission('order/info/create')")
@Log(title = "新增打赏订单", businessType = BusinessType.INSERT)
@@ -65,7 +75,7 @@ public class OrderInfoController {
// }
// 新增陪玩余额
playUserInfoService.editAccountBalance(addVo.getPlayUserId(), addVo.getMoney(), "add");
// 减少用户余额
// 新增订单记录(订单信息需完善)
@@ -90,12 +100,10 @@ public class OrderInfoController {
long commodityTotalMoney = 0;
//订单总价格
long orderTotalMoney = 0;
//校验商品是否存在
for (String commodityInfoId : addVo.getCommodityInfoIds()) {
CommodityInfoEntity commodityInfo = commodityInfoService.selectCommodityInfoEntityById(commodityInfoId);
if (commodityInfo == null) {
throw new CustomException("商品不存在");
}
//校验商品(陪玩)状态
PlayUserInfoEntity playUserInfo = playUserInfoService.selectPlayUserInfoById(addVo.getPlayUserId());
if ("2".equals(playUserInfo.getUserState())) {
throw new CustomException("陪玩状态异常,无法下单");
}
//校验优惠券是否存在
@@ -118,12 +126,10 @@ public class OrderInfoController {
orderInfoService.create(entity);
// 记录订单日志
//记录订单日志
orderLogInfoService.create(new OrderLogInfoEntity(entity.getId(), "0", new Date()));
// 记录订单详细信息
for (String commodityInfoId : addVo.getCommodityInfoIds()) {
orderDetailsInfoService.create(new OrderDetailsInfoEntity(entity.getId(), commodityInfoId, "0"));
}
//记录订单详细信息
orderDetailsInfoService.create(new OrderDetailsInfoEntity(entity.getId(), addVo.getPlayUserId(), "0"));
for (String commodityInfoId : addVo.getCouponIds()) {
orderDetailsInfoService.create(new OrderDetailsInfoEntity(entity.getId(), commodityInfoId, "1"));
}
@@ -172,44 +178,10 @@ public class OrderInfoController {
* 根据ID进行订单退款
*/
@PreAuthorize("@customSs.hasPermission('order/info/edit')")
@Log(title = "发起订单退款申请", businessType = BusinessType.UPDATE)
@Log(title = "用户发起订单退款申请", businessType = BusinessType.UPDATE)
@PostMapping(value = "/refund/{id}")
public R refund(@RequestBody OrderInfoRefundVo vo) {
OrderInfoEntity entity = orderInfoService.selectOrderInfoById(vo.getId());
if (entity == null) {
throw new CustomException("订单不存在");
}
if (!"0".equals(entity.getRefundType())) {
throw new CustomException("订单已退款,无法二次退款");
}
// 订单最终金额
long finalAmount = 0;
// 部分退款,计算退款金额是否小于订单金额
if ("1".equals(vo.getRefundType())) {
// 退款金额
long refundMoney = Long.getLong(vo.getRefundMoney());
// 订单金额
long orderMoney = Long.getLong(entity.getOrderMoney());
if (refundMoney <= 0) {
throw new CustomException("退款金额必须大于0");
}
if (orderMoney < refundMoney) {
throw new CustomException("退款金额必须小于订单总金额");
}
finalAmount = orderMoney - refundMoney;
}
// 减少陪玩余额
// 新增用户余额
// 修改订单信息
orderLogInfoService.create(new OrderLogInfoEntity(entity.getId(), "4", new Date()));
entity.setFinalAmount(String.valueOf(finalAmount));
entity.setRefundType(vo.getRefundType());
orderInfoService.update(entity);
// 增加订单处理日志
orderInfoService.orderRefund(vo.getId(), vo.getRefundType(), vo.getRefundMoney(), false);
return R.ok("成功");
}

View File

@@ -28,7 +28,7 @@ public class OrderDetailsInfoEntity extends BaseEntity<OrderDetailsInfoEntity> {
private String orderId;
/**
* 商品ID
* 商品ID(陪玩用户ID or 优惠券)
*/
private String commodityId;

View File

@@ -7,11 +7,10 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 【请填写功能名称】对象 order_info
* 陪玩订单对象 order_info
*
* @author admin
* @since 2024-03-20
@@ -22,7 +21,6 @@ import java.util.List;
@TableName("order_info")
public class OrderInfoAddVo extends BaseEntity<OrderInfoAddVo> {
/**
* 租户ID
*/
@@ -53,12 +51,11 @@ public class OrderInfoAddVo extends BaseEntity<OrderInfoAddVo> {
@NotBlank(message = "下单类型不能为空")
private String placeType;
/**
* 商品列表
* 陪玩ID
*/
@NotNull(message = "商品不能为空")
private List<String> commodityInfoIds;
@NotBlank(message = "陪玩对象不能为空")
private String playUserId;
/**
* 优惠券ID列表

View File

@@ -0,0 +1,38 @@
package com.starry.admin.modules.order.module.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 取消订单对象 order_info
*
* @author admin
* @since 2024-03-20
*/
@Data
public class OrderInfoCancellationVo {
/**
* uuid
*/
@NotNull(message = "订单ID不能为空")
private String id;
/**
* 租户ID
*/
@NotNull(message = "租户ID不能为空")
private String tenantId;
/**
* 操作人ID
*/
@NotNull(message = "操作人不能为空")
private String operatorBy;
}

View File

@@ -27,7 +27,7 @@ public class OrderInfoRewardVo extends BaseEntity<OrderInfoRewardVo> {
* 用户ID
*/
@NotBlank(message = "打赏对象不能为空")
private String userId;
private String playUserId;
/**
* 订单类型【0充值订单1提现订单2普通订单】

View File

@@ -61,4 +61,17 @@ public interface IOrderInfoService extends IService<OrderInfoEntity> {
* @return 结果
*/
int deleteOrderInfoById(String id);
/**
* 订单退款
*
* @param id 订单ID
* @param refundType 退款类型【1部分退款2全部退款】
* @param refundMoney 退款金额,单位分(仅部分退款有效)
* @param examine 是否需要审核
*/
void orderRefund(String id, String refundType, String refundMoney, boolean examine);
}

View File

@@ -6,10 +6,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.order.mapper.OrderInfoMapper;
import com.starry.admin.modules.order.module.entity.OrderInfoEntity;
import com.starry.admin.modules.order.module.entity.OrderLogInfoEntity;
import com.starry.admin.modules.order.module.vo.OrderInfoQueryVo;
import com.starry.admin.modules.order.service.IOrderInfoService;
import com.starry.admin.modules.order.service.IOrderLogInfoService;
import com.starry.admin.modules.play.service.IPlayUserInfoService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -27,6 +31,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
@Resource
private OrderInfoMapper orderInfoMapper;
@Resource
private IOrderLogInfoService orderLogInfoService;
@Resource
private IPlayUserInfoService playUserInfoService;
/**
* 查询订单
*
@@ -101,4 +112,58 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
public int deleteOrderInfoById(String id) {
return orderInfoMapper.deleteById(id);
}
@Override
public void orderRefund(String id, String refundType, String refundMoney, boolean examine) {
OrderInfoEntity entity = this.selectOrderInfoById(id);
if (entity == null) {
throw new CustomException("订单不存在");
}
if (!"0".equals(entity.getRefundType())) {
throw new CustomException("订单已退款,无法二次退款");
}
//最终退款金额
long finalAmount = getFinalAmount(refundType, refundMoney, entity);
// 减少陪玩余额
playUserInfoService.editAccountBalance(id, String.valueOf(finalAmount), "reduce");
// 新增用户余额
// 修改订单信息
entity.setFinalAmount(String.valueOf(finalAmount));
entity.setRefundType(refundType);
entity.setOrderStatus("5");
this.update(entity);
// 增加订单处理日志
orderLogInfoService.create(new OrderLogInfoEntity(entity.getId(), "4", new Date()));
}
/**
* 计算退款金额
*
* @param refundType 退款类型【1部分退款2全部退款】
* @param refundMoney 退款金额,单位分(仅部分退款有效)
* @param entity 订单信息
* @return 最终退款金额
*/
private static long getFinalAmount(String refundType, String refundMoney, OrderInfoEntity entity) {
long finalAmount = 0;
//部分退款,计算退款金额是否小于订单金额
if ("1".equals(refundType)) {
// 退款金额
long refundMoneyLong = Long.getLong(refundMoney);
// 订单金额
long orderMoney = Long.getLong(entity.getOrderMoney());
if (refundMoneyLong <= 0) {
throw new CustomException("退款金额必须大于0");
}
if (orderMoney < refundMoneyLong) {
throw new CustomException("退款金额必须小于订单总金额");
}
finalAmount = orderMoney - refundMoneyLong;
}
return finalAmount;
}
}

View File

@@ -19,7 +19,7 @@ import java.util.Arrays;
* 【请填写功能名称】Service业务层处理
*
* @author admin
* @since 2024-03-22
* @since 2024-03-22
*/
@Service
public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, OrderLogInfoEntity> implements IOrderLogInfoService {
@@ -28,6 +28,7 @@ public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, Ord
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
@@ -38,6 +39,7 @@ public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, Ord
/**
* 查询【请填写功能名称】列表
*
* @param orderLogInfo 【请填写功能名称】
* @return 【请填写功能名称】
*/
@@ -49,19 +51,21 @@ public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, Ord
/**
* 新增【请填写功能名称】
*
* @param orderLogInfo 【请填写功能名称】
* @return 结果
*/
@Override
public boolean create(OrderLogInfoEntity orderLogInfo) {
if (StrUtil.isBlankIfStr(orderLogInfo.getId())) {
if (StrUtil.isBlankIfStr(orderLogInfo.getId())) {
orderLogInfo.setId(IdUtil.fastSimpleUUID());
}
return save(orderLogInfo);
}
return save(orderLogInfo);
}
/**
* 修改【请填写功能名称】
*
* @param orderLogInfo 【请填写功能名称】
* @return 结果
*/
@@ -72,6 +76,7 @@ public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, Ord
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键
* @return 结果
*/
@@ -82,6 +87,7 @@ public class OrderLogInfoServiceImpl extends ServiceImpl<OrderLogInfoMapper, Ord
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/

View File

@@ -61,9 +61,9 @@ public class PlayUserInfoEntity extends BaseEntity<PlayUserInfoEntity> {
private String userState;
/**
* 陪玩登记
* 陪玩等级
*/
private String level;
private Integer level;
/**
* 陪玩在线状态[0:1]

View File

@@ -5,57 +5,95 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.play.module.entity.PlayUserInfoEntity;
/**
* 陪玩用户Service接口
* 陪玩用户Service接口
*
* @author admin
* @since 2024-03-24
*/
public interface IPlayUserInfoService extends IService<PlayUserInfoEntity> {
/**
* 查询陪玩用户
* 查询陪玩用户
*
* @param id 陪玩用户主键
* @return 陪玩用户
* @param id 陪玩用户主键
* @return 陪玩用户
*/
PlayUserInfoEntity selectPlayUserInfoById(String id);
/**
* 查询陪玩用户列表
* 查询陪玩用户列表
*
* @param playUserInfo 陪玩用户
* @return 陪玩用户集合
* @param playUserInfo 陪玩用户
* @return 陪玩用户集合
*/
IPage<PlayUserInfoEntity> selectPlayUserInfoByPage(PlayUserInfoEntity playUserInfo);
/**
* 新增陪玩用户
* 新增陪玩用户
*
* @param playUserInfo 陪玩用户
* @param playUserInfo 陪玩用户
* @return 结果
*/
boolean create(PlayUserInfoEntity playUserInfo);
/**
* 修改陪玩用户
* 修改陪玩用户
*
* @param playUserInfo 陪玩用户
* @param playUserInfo 陪玩用户
* @return 结果
*/
boolean update(PlayUserInfoEntity playUserInfo);
/**
* 批量删除陪玩用户
* 批量删除陪玩用户
*
* @param ids 需要删除的陪玩用户主键集合
* @param ids 需要删除的陪玩用户主键集合
* @return 结果
*/
int deletePlayUserInfoByIds(String[] ids);
/**
* 删除陪玩用户信息
* 删除陪玩用户信息
*
* @param id 陪玩用户主键
* @param id 陪玩用户主键
* @return 结果
*/
int deletePlayUserInfoById(String id);
/**
* 修改陪玩账户余额
*
* @param id 陪玩ID
* @param accountBalance 账户余额
* @param operate 余额操作【add or reduce】
*/
void editAccountBalance(String id, String accountBalance, String operate);
/**
* 修改陪玩账户等级
*
* @param id 陪玩ID
* @param level 陪玩等级
*/
void editLevel(String id, int level);
/**
* 修改陪玩账户等级
*
* @param id 陪玩ID
* @param state 陪玩状态
*/
void editState(String id, String state);
/**
* 修改陪玩在线状态
*
* @param id 陪玩ID
* @param presenceState 陪玩在线状态
*/
void editPresenceState(String id, String presenceState);
}

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.play.mapper.PlayUserInfoMapper;
import com.starry.admin.modules.play.module.entity.PlayUserInfoEntity;
import com.starry.admin.modules.play.service.IPlayUserInfoService;
@@ -36,6 +37,57 @@ public class PlayUserInfoServiceImpl extends ServiceImpl<PlayUserInfoMapper, Pla
return this.baseMapper.selectById(id);
}
@Override
public void editAccountBalance(String id, String accountBalance, String operate) {
PlayUserInfoEntity entity = this.selectPlayUserInfoById(id);
if (entity == null) {
throw new CustomException("陪玩不存在");
}
long accountBalanceLong = Long.parseLong(entity.getAccountBalance());
if ("add".equals(operate)) {
accountBalanceLong += Long.parseLong(accountBalance);
} else if ("reduce".equals(operate)) {
accountBalanceLong -= Long.parseLong(accountBalance);
if (accountBalanceLong < 0) {
throw new CustomException("陪玩余额不足,操作失败");
}
}
entity.setAccountBalance(String.valueOf(accountBalanceLong));
this.update(entity);
}
@Override
public void editLevel(String id, int level) {
PlayUserInfoEntity entity = this.selectPlayUserInfoById(id);
if (entity == null) {
throw new CustomException("陪玩不存在");
}
entity.setLevel(level);
this.update(entity);
}
@Override
public void editState(String id, String state) {
PlayUserInfoEntity entity = this.selectPlayUserInfoById(id);
if (entity == null) {
throw new CustomException("陪玩不存在");
}
entity.setUserState(state);
this.update(entity);
}
@Override
public void editPresenceState(String id, String presenceState) {
PlayUserInfoEntity entity = this.selectPlayUserInfoById(id);
if (entity == null) {
throw new CustomException("陪玩不存在");
}
entity.setPresenceState(presenceState);
this.update(entity);
}
/**
* 查询陪玩用户列表
*
@@ -45,7 +97,7 @@ public class PlayUserInfoServiceImpl extends ServiceImpl<PlayUserInfoMapper, Pla
@Override
public IPage<PlayUserInfoEntity> selectPlayUserInfoByPage(PlayUserInfoEntity playUserInfo) {
Page<PlayUserInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<PlayUserInfoEntity>());
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
}
/**