This commit is contained in:
qjq
2024-04-24 14:16:20 +08:00
parent bec466faa2
commit e3148dc69b
10 changed files with 100 additions and 11 deletions

View File

@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsReqVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsRespVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderMoneyRespVO;
import cn.iocoder.yudao.module.member.controller.app.orderdetail.vo.AppOrderDetailRespVO;
import cn.iocoder.yudao.module.member.service.order.OrderService;
import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService;
@ -111,4 +112,10 @@ public class OrderController {
public CommonResult<OrderDetailsRespVO> getOrderDetailsAndUser(@RequestParam("orderId")Long orderId){
return CommonResult.success(orderService.getOrderDetailsAndUser(orderId));
}
}
@GetMapping("/user/money")
@Operation(summary = "根据会员编号,获得会员余额,充值金额,消费金额")
@PreAuthorize("@ss.hasPermission('member:order:query')")
public CommonResult<OrderMoneyRespVO> getUserMeney(@RequestParam("userId")Long userId){
return CommonResult.success(orderService.getUserMeney(userId));
}
}

View File

@ -45,4 +45,6 @@ public class OrderDetailsReqVO extends PageParam {
private String payMethods;
@Schema(description = "时间段", example = "早餐")
private String timePeriod;
@Schema(description = "会员id", example = "早餐")
private Long userId;
}

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.member.controller.admin.order.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author:qjq
* @Date:2024/4/24 上午9:48
*/
@Schema(description = "管理后台 - 用户钱包明细")
@Data
public class OrderMoneyRespVO {
//会员编号
private Long userId;
//当前余额
private BigDecimal currentMoney;
//充值金额
private BigDecimal rechargeMoney;
//消费金额
private BigDecimal consumeMoney;
}

View File

@ -1,11 +1,13 @@
package cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -25,6 +27,9 @@ public class RechargeAmountPageReqVO extends PageParam {
@Schema(description = "状态0-关闭1-开启", example = "1")
private String status;
@Schema(description = "套餐名", example = "套餐A")
private String name;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@ -29,6 +29,10 @@ public class RechargeAmountRespVO {
@ExcelProperty("状态0-关闭1-开启")
private String status;
@Schema(description = "套餐名", example = "套餐A")
@ExcelProperty("套餐名")
private String name;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;

View File

@ -1,9 +1,8 @@
package cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import lombok.Data;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 充值金额配置新增/修改 Request VO")
@ -22,4 +21,6 @@ public class RechargeAmountSaveReqVO {
@Schema(description = "状态0-关闭1-开启", example = "1")
private String status;
@Schema(description = "套餐名", example = "套餐A")
private String name;
}

View File

@ -48,5 +48,9 @@ public class RechargeAmountDO extends BaseDO {
* 状态0-关闭1-开启
*/
private String status;
/**
* 套餐名
*/
private String name;
}

View File

@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@ -43,4 +44,6 @@ public interface CardMapper extends BaseMapperX<CardDO> {
@Select("select IFNULL(sum(change_money),0) as money,count(*) as count FROM member_card where user_id = #{userId} and flag = #{flag} and create_time BETWEEN #{startTime} and #{endTime}")
AppCardMonthVO selectMonth(@Param("userId") Long userId,@Param("flag") String flag, @Param("startTime") LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
@Select("select SUM(change_money) from member_card where user_id= #{userId} and flag= #{flag}")
BigDecimal selectAddMoney(@Param("userId") Long userId,@Param("flag") String flag);
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.order;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsReqVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsRespVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderMoneyRespVO;
import cn.iocoder.yudao.module.member.controller.admin.screen.vo.CarTeenInfoVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderPageReqVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderRespVO;
@ -101,4 +102,12 @@ public interface OrderService {
BigDecimal getSaleMoney(Long storeId,String time);
List<CarTeenInfoVO> getCarTeenInfo();
/**
* @Description: 根据会员编号,获得会员余额,充值金额,消费金额
* @Author: qjq
* @Date: 2024/4/24 上午9:52
* @return
*/
OrderMoneyRespVO getUserMeney(Long userId);
}

View File

@ -8,14 +8,17 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsReqVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsRespVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderMoneyRespVO;
import cn.iocoder.yudao.module.member.controller.admin.screen.vo.CarTeenInfoVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderPageReqVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderRespVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderSaveReqVO;
import cn.iocoder.yudao.module.member.controller.app.order.vo.AppPageVo;
import cn.iocoder.yudao.module.member.controller.app.orderdetail.vo.AppOrderDetailRespVO;
import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper;
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
import cn.iocoder.yudao.module.member.enums.CostTypeEnum;
@ -64,7 +67,8 @@ public class OrderServiceImpl implements OrderService {
private DeviceInfoApi deviceInfoApi;
@Resource
private CarteenApi carteenApi;
@Resource
private CardMapper cardMapper;
@Override
public Long createOrder(AppOrderSaveReqVO createReqVO) {
// 插入
@ -147,12 +151,15 @@ public class OrderServiceImpl implements OrderService {
List<Long> userIds=new ArrayList<>();
if(ObjUtil.isNotEmpty(reqVO.getUserName())
|| ObjUtil.isNotEmpty(reqVO.getUserAccount())
|| ObjUtil.isNotEmpty(reqVO.getUserJob())){
|| ObjUtil.isNotEmpty(reqVO.getUserJob())
|| ObjUtil.isNotEmpty(reqVO.getUserId())
){
//根据用户属性获取ids
userIds = memberUserMapper.selectList(new LambdaQueryWrapperX<MemberUserDO>()
.likeIfPresent(MemberUserDO::getNickname, reqVO.getUserName())
.eqIfPresent(MemberUserDO::getMobile, reqVO.getUserAccount())
.eqIfPresent(MemberUserDO::getCardId, reqVO.getUserJob()))
.eqIfPresent(MemberUserDO::getCardId, reqVO.getUserJob())
.eqIfPresent(MemberUserDO::getId, reqVO.getUserId()))
.stream().map(MemberUserDO::getId).collect(Collectors.toList());
}
Map<String, LocalDateTime> timePeriod = this.getTimePeriod(reqVO.getTimePeriod());
@ -269,4 +276,28 @@ public class OrderServiceImpl implements OrderService {
}
return result;
}
/**
* @param userId
* @return
* @Description: 根据会员编号,获得会员余额,充值金额,消费金额
* @Author: qjq
* @Date: 2024/4/24 上午9:52
*/
@Override
public OrderMoneyRespVO getUserMeney(Long userId) {
OrderMoneyRespVO orderMoneyRespVO = new OrderMoneyRespVO();
//获取充值的金额
BigDecimal add = cardMapper.selectAddMoney(userId, CardDO.ADD);
orderMoneyRespVO.setRechargeMoney(add);
//消费的金额
BigDecimal minus = cardMapper.selectAddMoney(userId, CardDO.MINUS);
orderMoneyRespVO.setConsumeMoney(minus);
//获取会员余额
BigDecimal subtract = add.subtract(minus);
orderMoneyRespVO.setCurrentMoney(subtract);
orderMoneyRespVO.setUserId(userId);
return orderMoneyRespVO;
}
}