代码优化

This commit is contained in:
admin
2024-08-22 20:48:51 +08:00
parent 3dcaaa66b4
commit fc59148185
103 changed files with 180 additions and 1523 deletions

View File

@@ -0,0 +1,68 @@
package com.starry.admin.modules.personnel.controller;
import com.starry.admin.modules.personnel.module.entity.PlayBalanceDetailsInfoEntity;
import com.starry.admin.modules.personnel.module.vo.PlayBalanceDetailsQueryVo;
import com.starry.admin.modules.personnel.service.IPlayBalanceDetailsInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 余额明细Controller
*
* @author admin
* @since 2024-04-30
*/
@RestController
@RequestMapping("/balance/details")
public class PlayBalanceDetailsInfoController {
@Resource
private IPlayBalanceDetailsInfoService playBalanceDetailsInfoService;
/**
* 查询余额明细列表
*/
@PostMapping("/listByPage")
public R list(@Validated @RequestBody PlayBalanceDetailsQueryVo vo) {
return R.ok(playBalanceDetailsInfoService.selectByPage(vo));
}
/**
* 获取余额明细详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playBalanceDetailsInfoService.selectPlayBalanceDetailsInfoById(id));
}
/**
* 修改余额明细
*/
//@PreAuthorize("@customSs.hasPermission('balance:details:update')")
@Log(title = "余额明细", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) {
playBalanceDetailsInfo.setId(id);
boolean success = playBalanceDetailsInfoService.update(playBalanceDetailsInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除余额明细
*/
//@PreAuthorize("@customSs.hasPermission('balance:details:delete')")
@Log(title = "余额明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playBalanceDetailsInfoService.deletePlayBalanceDetailsInfoByIds(ids));
}
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.personnel.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.personnel.module.entity.PlayBalanceDetailsInfoEntity;
/**
* 余额明细Mapper接口
*
* @author admin
* @since 2024-04-30
*/
public interface PlayBalanceDetailsInfoMapper extends MPJBaseMapper<PlayBalanceDetailsInfoEntity> {
}

View File

@@ -0,0 +1,92 @@
package com.starry.admin.modules.personnel.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 余额明细对象 play_balance_details_info
*
* @author admin
* @since 2024-04-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_balance_details_info")
public class PlayBalanceDetailsInfoEntity extends BaseEntity<PlayBalanceDetailsInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 用户ID
*/
private String userId;
/**
* 用户类型[0:陪聊;1:顾客]
*/
private String userType;
/**
* 操作前余额
*/
private BigDecimal balanceBeforeOperation;
/**
* 操作后余额
*/
private BigDecimal balanceAfterOperation;
/**
* 操作类型0:充值;1:消费;2:服务)
*/
private String operationType;
/**
* 操作动作
*/
private String operationAction;
/**
* 操作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime operationTime;
/**
* 操作金额
*/
private BigDecimal balanceMoney;
/**
* 赠送金额
*/
private BigDecimal giftAmount;
/**
* 支付金额
*/
private BigDecimal paymentAmount;
/**
* 订单ID
*/
private String orderId;
}

View File

@@ -0,0 +1,38 @@
package com.starry.admin.modules.personnel.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 分页查询余额明细
*
* @author admin
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayBalanceDetailsQueryVo extends BasePageEntity {
/**
* 店员昵称
*/
private String nickname;
/**
* 操作类型0:充值;1:消费;2:服务)
*/
private String operationType;
/**
* 支付方式0余额支付,1:微信支付,2:支付宝支付
*/
private String payMethod;
private String userType = "1";
private List<String> operationTime;
private String userId;
}

View File

@@ -0,0 +1,105 @@
package com.starry.admin.modules.personnel.module.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 余额明细查询对象
*
* @author admin
*/
@Data
public class PlayBalanceDetailsReturnVo {
/**
* UUID
*/
private String id;
/**
* 操作前余额
*/
private BigDecimal balanceBeforeOperation;
/**
* 操作后余额
*/
private BigDecimal balanceAfterOperation;
/**
* 操作类型0:充值;1:消费;2:服务)
*/
private String operationType;
/**
* 操作动作
*/
private String operationAction;
/**
* 操作时间
*/
private Date operationTime;
/**
* 操作金额
*/
private BigDecimal balanceMoney;
/**
* 支付方式0余额支付,1:微信支付,2:支付宝支付
*/
private String payMethod;
/**
* 订单ID
*/
private String orderId;
/**
* 订单ID
*/
private String orderNo;
/**
* 订单金额
*/
private BigDecimal orderMoney;
/**
* 赠送金额
*/
private BigDecimal giftAmount;
/**
* 订单最终金额
*/
private BigDecimal finalAmount;
/**
* 订单备注
*/
private String orderRemark;
/**
* 顾客Id
*/
private String customId;
/**
* 顾客昵称
*/
private String customNickname;
/**
* 顾客头像
*/
private String customAvatar;
}

View File

@@ -0,0 +1,93 @@
package com.starry.admin.modules.personnel.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.personnel.module.entity.PlayBalanceDetailsInfoEntity;
import com.starry.admin.modules.personnel.module.vo.PlayBalanceDetailsQueryVo;
import com.starry.admin.modules.personnel.module.vo.PlayBalanceDetailsReturnVo;
import java.math.BigDecimal;
/**
* 余额明细Service接口
*
* @author admin
* @since 2024-04-30
*/
public interface IPlayBalanceDetailsInfoService extends IService<PlayBalanceDetailsInfoEntity> {
/**
* 查询余额明细
*
* @param id 余额明细主键
* @return 余额明细
*/
PlayBalanceDetailsInfoEntity selectPlayBalanceDetailsInfoById(String id);
/**
* 查询余额明细列表
*
* @param vo 余额明细查询对象
* @return 余额明细集合
*/
IPage<PlayBalanceDetailsReturnVo> selectByPage(PlayBalanceDetailsQueryVo vo);
/**
* 查询余额明细列表
*
* @param playBalanceDetailsInfo 余额明细
* @return 余额明细集合
*/
IPage<PlayBalanceDetailsInfoEntity> selectPlayBalanceDetailsInfoByPage(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo);
/**
* 新增余额明细信息
*
* @param userType 用户类型[0:陪聊;1:顾客]
* @param userId 用户ID
* @param balanceBeforeOperation 操作前余额
* @param balanceAfterOperation 操作后余额
* @param operationType 操作类型0:充值;1:消费,2:服务;3:退款)
* @param operationAction 操作动作
* @param balanceMoney 操作金额
* @param giftAmount 赠送金额
* @param orderId 订单ID
*/
void insertBalanceDetailsInfo(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, String operationAction, BigDecimal balanceMoney, BigDecimal giftAmount, String orderId);
/**
* 新增余额明细
*
* @param playBalanceDetailsInfo 余额明细
* @return 结果
*/
boolean create(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo);
/**
* 修改余额明细
*
* @param playBalanceDetailsInfo 余额明细
* @return 结果
*/
boolean update(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo);
/**
* 批量删除余额明细
*
* @param ids 需要删除的余额明细主键集合
* @return 结果
*/
int deletePlayBalanceDetailsInfoByIds(String[] ids);
/**
* 删除余额明细信息
*
* @param id 余额明细主键
* @return 结果
*/
int deletePlayBalanceDetailsInfoById(String id);
}

View File

@@ -0,0 +1,166 @@
package com.starry.admin.modules.personnel.service.impl;
import cn.hutool.core.util.StrUtil;
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.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
import com.starry.admin.modules.personnel.mapper.PlayBalanceDetailsInfoMapper;
import com.starry.admin.modules.personnel.module.entity.PlayBalanceDetailsInfoEntity;
import com.starry.admin.modules.personnel.module.vo.PlayBalanceDetailsQueryVo;
import com.starry.admin.modules.personnel.module.vo.PlayBalanceDetailsReturnVo;
import com.starry.admin.modules.personnel.service.IPlayBalanceDetailsInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
/**
* 余额明细Service业务层处理
*
* @author admin
* @since 2024-04-30
*/
@Service
public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl<PlayBalanceDetailsInfoMapper, PlayBalanceDetailsInfoEntity> implements IPlayBalanceDetailsInfoService {
@Resource
private PlayBalanceDetailsInfoMapper playBalanceDetailsInfoMapper;
@Resource
private IPlayOrderInfoService playOrderInfoService;
/**
* 查询余额明细
*
* @param id 余额明细主键
* @return 余额明细
*/
@Override
public PlayBalanceDetailsInfoEntity selectPlayBalanceDetailsInfoById(String id) {
return this.baseMapper.selectById(id);
}
@Override
public IPage<PlayBalanceDetailsReturnVo> selectByPage(PlayBalanceDetailsQueryVo vo) {
MPJLambdaWrapper<PlayBalanceDetailsInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayBalanceDetailsInfoEntity>()
//查询主表全部字段
.selectAll(PlayBalanceDetailsInfoEntity.class)
//查询顾客表
.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar")
//查询订单表
// .selectAs(PlayOrderInfoEntity::getId, "orderId").selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPayMethod,"payMethod")
.selectAll(PlayOrderInfoEntity.class)
.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayBalanceDetailsInfoEntity::getOrderId)
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayBalanceDetailsInfoEntity::getUserId);
if (StrUtil.isNotBlank(vo.getPayMethod())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPayMethod, vo.getPayMethod());
}
if (StrUtil.isNotBlank(vo.getOperationType())) {
lambdaQueryWrapper.eq(PlayBalanceDetailsInfoEntity::getOperationType, vo.getOperationType());
}
if (StrUtil.isNotBlank(vo.getUserType())) {
lambdaQueryWrapper.eq(PlayBalanceDetailsInfoEntity::getUserType, vo.getUserType());
}
if (StrUtil.isNotBlank(vo.getNickname())) {
lambdaQueryWrapper.like(PlayCustomUserInfoEntity::getNickname, vo.getNickname());
}
if (StrUtil.isNotBlank(vo.getUserId())) {
lambdaQueryWrapper.like(PlayBalanceDetailsInfoEntity::getUserId, vo.getUserId());
}
if (!vo.getOperationTime().isEmpty()) {
lambdaQueryWrapper.between(PlayBalanceDetailsInfoEntity::getOperationTime, vo.getOperationTime().get(0), vo.getOperationTime().get(1));
}
lambdaQueryWrapper.orderByDesc(PlayBalanceDetailsInfoEntity::getOperationTime);
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayBalanceDetailsReturnVo.class, lambdaQueryWrapper);
}
/**
* 查询余额明细列表
*
* @param playBalanceDetailsInfo 余额明细
* @return 余额明细
*/
@Override
public IPage<PlayBalanceDetailsInfoEntity> selectPlayBalanceDetailsInfoByPage(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) {
Page<PlayBalanceDetailsInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
}
@Override
public void insertBalanceDetailsInfo(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, String operationAction, BigDecimal balanceMoney, BigDecimal giftAmount, String orderId) {
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(orderId);
PlayBalanceDetailsInfoEntity entity = new PlayBalanceDetailsInfoEntity();
entity.setId(IdUtils.getUuid());
entity.setUserType(userType);
entity.setUserId(userId);
entity.setBalanceBeforeOperation(balanceBeforeOperation);
entity.setBalanceAfterOperation(balanceAfterOperation);
entity.setOperationType(operationType);
entity.setBalanceMoney(balanceMoney);
entity.setGiftAmount(giftAmount);
entity.setPaymentAmount(orderInfo == null ? balanceMoney : orderInfo.getFinalAmount());
entity.setOperationTime(LocalDateTime.now());
entity.setOrderId(orderId);
this.baseMapper.insert(entity);
}
/**
* 新增余额明细
*
* @param playBalanceDetailsInfo 余额明细
* @return 结果
*/
@Override
public boolean create(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) {
if (StrUtil.isBlankIfStr(playBalanceDetailsInfo.getId())) {
playBalanceDetailsInfo.setId(IdUtils.getUuid());
}
return save(playBalanceDetailsInfo);
}
/**
* 修改余额明细
*
* @param playBalanceDetailsInfo 余额明细
* @return 结果
*/
@Override
public boolean update(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) {
return updateById(playBalanceDetailsInfo);
}
/**
* 批量删除余额明细
*
* @param ids 需要删除的余额明细主键
* @return 结果
*/
@Override
public int deletePlayBalanceDetailsInfoByIds(String[] ids) {
return playBalanceDetailsInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除余额明细信息
*
* @param id 余额明细主键
* @return 结果
*/
@Override
public int deletePlayBalanceDetailsInfoById(String id) {
return playBalanceDetailsInfoMapper.deleteById(id);
}
}