金额修改

This commit is contained in:
zt
2025-02-10 11:37:02 +08:00
parent 884971eaac
commit 7732751e52
13 changed files with 158 additions and 144 deletions

View File

@ -56,6 +56,14 @@ public class OrderDetailsRespVO {
@ExcelProperty("金额") @ExcelProperty("金额")
private BigDecimal totalMoney; private BigDecimal totalMoney;
@Schema(description = "现金金额")
@ExcelProperty("现金金额")
private BigDecimal cashAmount;
@Schema(description = "微信金额")
@ExcelProperty("微信金额")
private BigDecimal wxAmount;
@Schema(description = "支付方式", example = "钱包") @Schema(description = "支付方式", example = "钱包")
private String payMethods; private String payMethods;

View File

@ -63,15 +63,10 @@ public class AppMemberUserController {
UserExpandDO userExpandByuserId = userExpandService.getUserExpandByuserId(getLoginUserId()); UserExpandDO userExpandByuserId = userExpandService.getUserExpandByuserId(getLoginUserId());
AppMemberUserInfoRespVO convert = MemberUserConvert.INSTANCE.convert(user, level); AppMemberUserInfoRespVO convert = MemberUserConvert.INSTANCE.convert(user, level);
convert.setUserExpandDO(userExpandByuserId); convert.setUserExpandDO(userExpandByuserId);
if(carteenId!=null){ convert.setCashAmount(user.getCashAmount());
MoneyDO moneyDO = moneyService.getMoney(user.getId(), carteenId);
if(ObjectUtil.isNotEmpty(moneyDO)){
convert.setCashAmount(moneyDO.getCashAmount());
convert.setDebtAmount(moneyDO.getDebtAmount());
}else {
convert.setCashAmount(BigDecimal.ZERO);
convert.setDebtAmount(BigDecimal.ZERO); convert.setDebtAmount(BigDecimal.ZERO);
} if(user.getMoney().compareTo(BigDecimal.ZERO) < 0 ){
convert.setDebtAmount(user.getMoney());
} }
return success(convert); return success(convert);

View File

@ -49,6 +49,8 @@ public class OrderStatusConverter implements Converter<String> {
value = "待付款"; value = "待付款";
} else if ("1".equals(value)) { } else if ("1".equals(value)) {
value = "已完成"; value = "已完成";
}else {
value = "未完成";
} }
return new WriteCellData<>(value); return new WriteCellData<>(value);

View File

@ -6,8 +6,10 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessPageReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.business.BusinessDO; import cn.iocoder.yudao.module.member.dal.dataobject.business.BusinessDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@ -39,4 +41,8 @@ public interface BusinessMapper extends BaseMapperX<BusinessDO> {
@Select("select id from t_carteen where deleted = false") @Select("select id from t_carteen where deleted = false")
List<Long> getAllStoreId(); List<Long> getAllStoreId();
@Select("select * from t_business where carteen_id = #{carteenId} and create_time between #{startOfDay} and #{endOfDay} limit 1 for update")
BusinessDO getTodayBusiness(@Param("carteenId") Long carteenId, @Param("startOfDay") LocalDateTime startOfDay, @Param("endOfDay") LocalDateTime endOfDay);
} }

View File

@ -62,8 +62,10 @@ 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}") @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); 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} and carteen_id = #{carteenId}") @Select("select SUM(change_money) from member_card where user_id= #{userId} and flag= #{flag} and type= '5'")
BigDecimal selectAddMoney(@Param("userId") Long userId,@Param("flag") String flag,@Param("carteenId") Long carteenId); BigDecimal selectAddMoney(@Param("userId") Long userId,@Param("flag") String flag);
@Select("select SUM(change_money) from member_card where user_id= #{userId} and flag= #{flag}")
BigDecimal selectReduceMoney(@Param("userId") Long userId,@Param("flag") String flag);
@Select("select sum(change_money) from member_card where user_id= #{userId} and type= '1'") @Select("select sum(change_money) from member_card where user_id= #{userId} and type= '1'")
BigDecimal selectWxMoney(@Param("userId") Long userId); BigDecimal selectWxMoney(@Param("userId") Long userId);

View File

@ -21,6 +21,7 @@ public enum CostTypeEnum {
WITHDRAW("7","微信提现"), WITHDRAW("7","微信提现"),
CASH_WITHDRAW("8","现金提现"), CASH_WITHDRAW("8","现金提现"),
SHOPPING("9","购物"), SHOPPING("9","购物"),
SPACE("10","太空舱"),
; ;
/** /**

View File

@ -91,10 +91,11 @@ public class CashRechargeServiceImpl implements CashRechargeService {
memberUserDO.setCashAmount(memberUserDO.getCashAmount().add(money)); memberUserDO.setCashAmount(memberUserDO.getCashAmount().add(money));
} }
} }
userMapper.updateById(memberUserDO);
wxNewMoney = memberUserDO.getWxAmount(); wxNewMoney = memberUserDO.getWxAmount();
cashNewAmount = memberUserDO.getCashAmount(); cashNewAmount = memberUserDO.getCashAmount();
name = memberUserDO.getNickname(); name = memberUserDO.getNickname();
} }
//记录明细 //记录明细
@ -107,6 +108,7 @@ public class CashRechargeServiceImpl implements CashRechargeService {
add.setWxAmount(wxNewMoney); add.setWxAmount(wxNewMoney);
add.setCarteenId(storeId); add.setCarteenId(storeId);
add.setGroupId(groupId); add.setGroupId(groupId);
add.setMoney(newMoney);
add.setGroupName(ObjectUtil.isNotEmpty(memberGroupDO)?memberGroupDO.getName():null); add.setGroupName(ObjectUtil.isNotEmpty(memberGroupDO)?memberGroupDO.getName():null);
addList.add(add); addList.add(add);

View File

@ -176,6 +176,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCarteenId(dishOrderDO.getStoreId()); cardDO.setCarteenId(dishOrderDO.getStoreId());
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
@ -233,6 +234,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setCarteenId(storeId); cardDO.setCarteenId(storeId);
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis
@ -269,6 +271,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setType("7"); cardDO.setType("7");
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis
@ -335,6 +338,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setCarteenId(dishOrderDO.getStoreId()); cardDO.setCarteenId(dishOrderDO.getStoreId());
cardDO.setMoney(newTotalMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis
@ -370,6 +374,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewAmount); cardDO.setWxAmount(wxNewAmount);
cardDO.setCashAmount(cashNewAmount); cardDO.setCashAmount(cashNewAmount);
cardDO.setCarteenId(storeId); cardDO.setCarteenId(storeId);
cardDO.setMoney(newAmount);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis
@ -403,8 +408,8 @@ public class DeductionServiceImpl implements DeductionService {
} }
//扣除金额 //扣除金额
if (judge) {
user.setMoney(money.subtract(total)); user.setMoney(money.subtract(total));
if (judge) {
user.setWxAmount(wxAmount.subtract(total)); user.setWxAmount(wxAmount.subtract(total));
} else { } else {
if (total.compareTo(cashAmount) <= 0) { if (total.compareTo(cashAmount) <= 0) {
@ -432,6 +437,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setCarteenId(storeId); cardDO.setCarteenId(storeId);
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
@ -504,6 +510,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setCarteenId(storeId); cardDO.setCarteenId(storeId);
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis
@ -551,7 +558,7 @@ public class DeductionServiceImpl implements DeductionService {
userService.updateById(user); userService.updateById(user);
wxNewMoney = user.getWxAmount(); wxNewMoney = user.getWxAmount();
newMoney = user.getGiftAmount(); newMoney = user.getMoney();
cashNewMoney = user.getCashAmount(); cashNewMoney = user.getCashAmount();
name = user.getNickname(); name = user.getNickname();
} }
@ -564,6 +571,7 @@ public class DeductionServiceImpl implements DeductionService {
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney); cardDO.setCashAmount(cashNewMoney);
cardDO.setCarteenId(storeId); cardDO.setCarteenId(storeId);
cardDO.setMoney(newMoney);
cardService.insertOne(cardDO); cardService.insertOne(cardDO);
//更新redis //更新redis

View File

@ -62,6 +62,7 @@ public class WxRechargeServiceImpl implements WxRechargeService {
BigDecimal wxNewMoney; BigDecimal wxNewMoney;
BigDecimal cashNewMoney;
BigDecimal newMoney; BigDecimal newMoney;
String name; String name;
@ -88,6 +89,7 @@ public class WxRechargeServiceImpl implements WxRechargeService {
wxNewMoney = memberUserDO.getWxAmount(); wxNewMoney = memberUserDO.getWxAmount();
name = memberUserDO.getNickname(); name = memberUserDO.getNickname();
cashNewMoney = memberUserDO.getCashAmount();
} }
@ -98,6 +100,8 @@ public class WxRechargeServiceImpl implements WxRechargeService {
cardDO.setChangeMoney(money); cardDO.setChangeMoney(money);
cardDO.setType(CostTypeEnum.WX_PAY.getCode()); cardDO.setType(CostTypeEnum.WX_PAY.getCode());
cardDO.setWxAmount(wxNewMoney); cardDO.setWxAmount(wxNewMoney);
cardDO.setCashAmount(cashNewMoney);
cardDO.setMoney(newMoney);
cardMapper.insert(cardDO); cardMapper.insert(cardDO);

View File

@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@ -109,8 +110,9 @@ public class BusinessServiceImpl implements BusinessService {
} }
@Override @Override
@Transactional
public void updateStatistics(StatisticsVo vo) { public void updateStatistics(StatisticsVo vo) {
synchronized(getStoreLock(vo.getCarteenId())){
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
if (vo.getTime() != null) { if (vo.getTime() != null) {
now = vo.getTime().toLocalDate(); now = vo.getTime().toLocalDate();
@ -120,12 +122,8 @@ public class BusinessServiceImpl implements BusinessService {
// 获取今天的结束时间 (23:59:59.999) // 获取今天的结束时间 (23:59:59.999)
LocalDateTime endOfDay = LocalDateTime.of(now, LocalTime.MAX); LocalDateTime endOfDay = LocalDateTime.of(now, LocalTime.MAX);
List<BusinessDO> businessDOS = businessMapper.selectList(Wrappers.<BusinessDO>lambdaQuery() BusinessDO businessDO = businessMapper.getTodayBusiness(vo.getCarteenId(), startOfDay, endOfDay);
.between(BusinessDO::getCreateTime, startOfDay, endOfDay) if (ObjectUtil.isNotEmpty(businessDO)) {
.eq(BusinessDO::getCarteenId, vo.getCarteenId()));
if (CollectionUtil.isNotEmpty(businessDOS)) {
BusinessDO businessDO = businessDOS.get(0);
//重量 //重量
if (ObjectUtil.isNotEmpty(vo.getOrderId())) { if (ObjectUtil.isNotEmpty(vo.getOrderId())) {
List<OrderDetailDO> orderDetailDOS = orderDetailMapper.selectList(Wrappers.<OrderDetailDO>lambdaQuery().eq(OrderDetailDO::getOrderId, vo.getOrderId())); List<OrderDetailDO> orderDetailDOS = orderDetailMapper.selectList(Wrappers.<OrderDetailDO>lambdaQuery().eq(OrderDetailDO::getOrderId, vo.getOrderId()));
@ -177,7 +175,6 @@ public class BusinessServiceImpl implements BusinessService {
businessMapper.updateById(businessDO); businessMapper.updateById(businessDO);
} }
}
} }

View File

@ -374,9 +374,6 @@ public class OrderServiceImpl implements OrderService {
} }
/** /**
* @param userId
* @param carteenId
* @return
* @Description: 根据会员编号,获得会员余额,充值金额,消费金额 * @Description: 根据会员编号,获得会员余额,充值金额,消费金额
* @Author: qjq * @Author: qjq
* @Date: 2024/4/24 上午9:52 * @Date: 2024/4/24 上午9:52
@ -385,13 +382,13 @@ public class OrderServiceImpl implements OrderService {
public OrderMoneyRespVO getUserMeney(Long userId, Long carteenId) { public OrderMoneyRespVO getUserMeney(Long userId, Long carteenId) {
OrderMoneyRespVO orderMoneyRespVO = new OrderMoneyRespVO(); OrderMoneyRespVO orderMoneyRespVO = new OrderMoneyRespVO();
//获取充值的金额 //获取充值的金额
BigDecimal add = cardMapper.selectAddMoney(userId, CardDO.ADD,carteenId); BigDecimal add = cardMapper.selectAddMoney(userId, CardDO.ADD);
if (add == null) { if (add == null) {
add = BigDecimal.ZERO; add = BigDecimal.ZERO;
} }
orderMoneyRespVO.setRechargeMoney(add); orderMoneyRespVO.setRechargeMoney(add);
//消费的金额 //消费的金额
BigDecimal minus = cardMapper.selectAddMoney(userId, CardDO.MINUS,carteenId); BigDecimal minus = cardMapper.selectReduceMoney(userId, CardDO.MINUS);
if (minus == null) { if (minus == null) {
minus = BigDecimal.ZERO; minus = BigDecimal.ZERO;
} }
@ -400,15 +397,11 @@ public class OrderServiceImpl implements OrderService {
MemberUserDO memberUserDO = memberUserMapper.selectById(userId); MemberUserDO memberUserDO = memberUserMapper.selectById(userId);
orderMoneyRespVO.setCurrentMoney(memberUserDO.getWxAmount()); orderMoneyRespVO.setCurrentMoney(memberUserDO.getWxAmount());
orderMoneyRespVO.setUserId(userId); orderMoneyRespVO.setUserId(userId);
orderMoneyRespVO.setCashMoney(memberUserDO.getCashAmount());
MoneyDO moneyDO = moneyService.getMoney(userId, carteenId);
orderMoneyRespVO.setCashMoney(BigDecimal.ZERO);
orderMoneyRespVO.setDebtMoney(BigDecimal.ZERO); orderMoneyRespVO.setDebtMoney(BigDecimal.ZERO);
if(ObjectUtil.isNotEmpty(moneyDO)){ if(memberUserDO.getMoney().compareTo(BigDecimal.ZERO)<0){
orderMoneyRespVO.setCashMoney(moneyDO.getCashAmount()); orderMoneyRespVO.setDebtMoney(memberUserDO.getMoney());
orderMoneyRespVO.setDebtMoney(moneyDO.getDebtAmount());
} }
BigDecimal wxRechargeMoney = cardMapper.selectWxMoney(userId); BigDecimal wxRechargeMoney = cardMapper.selectWxMoney(userId);
orderMoneyRespVO.setWxRechargeMoney(wxRechargeMoney); orderMoneyRespVO.setWxRechargeMoney(wxRechargeMoney);
return orderMoneyRespVO; return orderMoneyRespVO;

View File

@ -84,7 +84,7 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
BigDecimal multiply = orderSpaceCapsule.getComboPrice().multiply(BigDecimal.valueOf(orderSpaceCapsule.getComboNum())); BigDecimal multiply = orderSpaceCapsule.getComboPrice().multiply(BigDecimal.valueOf(orderSpaceCapsule.getComboNum()));
orderSpaceCapsule.setMoney(multiply); orderSpaceCapsule.setMoney(multiply);
// 扣除余额 // 扣除余额
deductionService.spaceDeduct(orderSpaceCapsule.getUserId(), orderSpaceCapsule.getMoney(), CostTypeEnum.SHOPPING.getCode(),createReqVO.getCarteenId()); deductionService.spaceDeduct(orderSpaceCapsule.getUserId(), orderSpaceCapsule.getMoney(), CostTypeEnum.SPACE.getCode(),createReqVO.getCarteenId());
// 设置变动后的余额 // 设置变动后的余额
orderSpaceCapsule.setEndMoney(initialMoney.subtract(orderSpaceCapsule.getMoney())); orderSpaceCapsule.setEndMoney(initialMoney.subtract(orderSpaceCapsule.getMoney()));
// 设置支付方式 // 设置支付方式

View File

@ -234,13 +234,9 @@ public class StoreOrderServiceImpl implements StoreOrderService {
BigDecimal totalMoney = BigDecimal.valueOf(sum); BigDecimal totalMoney = BigDecimal.valueOf(sum);
MemberUserDO user = userService.getUser(Long.valueOf(s)); MemberUserDO user = userService.getUser(Long.valueOf(s));
MoneyDO moneyDO = moneyService.getMoney(user.getId(), storeId);
BigDecimal cashAmount = BigDecimal.ZERO;
if(ObjectUtil.isNotEmpty(moneyDO)){
cashAmount = moneyDO.getCashAmount();
}
dto.setUserId(user.getId()); dto.setUserId(user.getId());
if(user.getWxAmount().add(cashAmount).compareTo(totalMoney) < 0){ if(user.getMoney().compareTo(totalMoney) < 0){
throw exception(AMOUNT_NOT_ENOUGH); throw exception(AMOUNT_NOT_ENOUGH);
} }