空字符串的sql处理

充值流水id填充
This commit is contained in:
wangw 2025-02-18 10:26:17 +08:00
parent 28b5a7d2d4
commit b0dc49e770
7 changed files with 49 additions and 13 deletions

View File

@ -4,6 +4,7 @@ import com.czg.account.dto.ShopActivateDTO;
import com.czg.account.service.ShopActivateService;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -39,6 +40,7 @@ public class ShopActivateController {
@SaAdminCheckPermission("activate:add")
@PostMapping
public CzgResult<Boolean> add(@RequestBody @Validated ShopActivateDTO activateDTO) {
activateDTO.setShopId(StpKit.USER.getShopId());
return CzgResult.success(shopActivateService.add(activateDTO));
}

View File

@ -25,6 +25,12 @@ public class ShopUserMoneyEditDTO {
*/
@NotNull
private Integer type;
/**
* 关联id
* 霸王餐时 订单id
* 支付/退款 tb_order_payment.id
*/
private Long relationId;
/**
* 浮动金额
*/

View File

@ -55,9 +55,11 @@ public class ShopUserFlow implements Serializable {
private String remark;
/**
* 关联订单编号支付单号退款单号
* 关联id
* 霸王餐时 订单id
* 支付/退款 tb_order_payment.id
*/
private String relationOrderNo;
private Long relationId;
@Column(onInsertValue = "now()")
private LocalDateTime createTime;

View File

@ -0,0 +1,18 @@
package com.czg.utils;
import cn.hutool.core.util.StrUtil;
/**
* @author ww
* @description
*/
public class CzgStrUtils {
/**
* 如果str为空返回null否则返回str
* flex sql查询时 自动忽略null 不忽略''
*/
public static String getStrOrNull(String str) {
return StrUtil.isNotBlank(str) ? str : null;
}
}

View File

@ -23,8 +23,10 @@ public class ShopActivateServiceImpl extends ServiceImpl<ShopActivateMapper, Sho
@Override
public List<ShopActivateDTO> getList() {
return queryChain().select().eq(ShopActivate::getShopId, StpKit.USER.getShopId())
.orderBy(ShopActivate::getAmount, true).listAs(ShopActivateDTO.class);
return queryChain().select()
.eq(ShopActivate::getShopId, StpKit.USER.getShopId())
.orderBy(ShopActivate::getAmount, true)
.listAs(ShopActivateDTO.class);
}
@Override

View File

@ -99,6 +99,7 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
userFlow.setBizCode(shopUserEditDTO.getBizEnum().getCode());
userFlow.setType(shopUserEditDTO.getType() == 0 ? "-" : "+");
userFlow.setRemark(shopUserEditDTO.getRemark());
userFlow.setRelationId(shopUserEditDTO.getRelationId());
return shopUserFlowService.save(userFlow);
}

View File

@ -19,6 +19,7 @@ import com.czg.order.vo.OrderDetailSmallVO;
import com.czg.order.vo.OrderInfoVo;
import com.czg.service.order.enums.OrderStatusEnums;
import com.czg.service.order.mapper.OrderInfoMapper;
import com.czg.utils.CzgStrUtils;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
@ -65,11 +66,11 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
QueryWrapper queryWrapper = PageUtil.buildSortQueryWrapper();
queryWrapper.eq(OrderInfo::getShopId, param.getShopId())
.eq(OrderInfo::getStatus, param.getStatus())
.eq(OrderInfo::getPayType, param.getPayType())
.eq(OrderInfo::getStatus, CzgStrUtils.getStrOrNull(param.getStatus()))
.eq(OrderInfo::getPayType, CzgStrUtils.getStrOrNull(param.getPayType()))
.eq(OrderInfo::getUserId, param.getUserId())
.eq(OrderInfo::getTableCode, param.getTableCode())
.eq(OrderInfo::getOrderNo, param.getOrderNo())
.eq(OrderInfo::getTableCode, CzgStrUtils.getStrOrNull(param.getTableCode()))
.eq(OrderInfo::getOrderNo, CzgStrUtils.getStrOrNull(param.getOrderNo()))
.gt(OrderInfo::getCreateTime, param.getStartTime())
.le(OrderInfo::getCreateTime, param.getEndTime())
.in(OrderInfo::getId, like);
@ -77,7 +78,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
orderInfoVoPage.getRecords().parallelStream().forEach(s -> {
List<OrderDetailSmallVO> orderDetails = orderDetailService.queryChain().select()
.eq(OrderDetail::getShopId, s.getShopId())
.eq(OrderDetail::getOrderId, s.getId()).listAs(OrderDetailSmallVO.class);
.eq(OrderDetail::getOrderId, s.getId())
.listAs(OrderDetailSmallVO.class);
s.setGoods(orderDetails);
});
return orderInfoVoPage;
@ -88,7 +90,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
public void payCallBackOrder(@NotBlank String orderNo, @NotBlank JSONObject resultJson) {
CzgPayNotifyDTO czgCallBackDto = JSONObject.parseObject(resultJson.toString(), CzgPayNotifyDTO.class);
OrderPayment payment = paymentService.queryChain().eq(OrderPayment::getOrderNo, orderNo).one();
paymentService.updateChain().of(OrderPayment.class)
paymentService.updateChain()
.set(OrderPayment::getTradeNumber, czgCallBackDto.getPayOrderId())
.set(OrderPayment::getRespJson, resultJson.toString())
.where(OrderPayment::getId).eq(payment.getId())
@ -96,7 +98,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
if ("TRADE_SUCCESS".equals(czgCallBackDto.getState())) {
if ("order".equals(payment.getPayType())) {
updateChain().of(OrderInfo.class)
updateChain()
.set(OrderInfo::getPayAmount, new BigDecimal(czgCallBackDto.getAmount() / 100L))
.set(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())
.set(OrderInfo::getPaidTime, DateUtil.parseLocalDateTime(czgCallBackDto.getPayTime()))
@ -117,13 +119,16 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.id(payment.getSourceId())
.money(new BigDecimal(czgCallBackDto.getAmount() / 100L))
.type(1)
.relationId(payment.getId())
.build();
if ("WECHAT".equals(czgCallBackDto.getPayType())) {
shopUserMoneyEditDTO.setBizEnum(ShopUserFlowBizEnum.WECHAT_IN);
}else if("ALIPAY".equals(czgCallBackDto.getPayType())){
} else if ("ALIPAY".equals(czgCallBackDto.getPayType())) {
shopUserMoneyEditDTO.setBizEnum(ShopUserFlowBizEnum.ADMIN_IN);
}
shopUserService.updateMoney(shopUser.getShopId(),shopUserMoneyEditDTO);
//更新会员余额 并生成流水
shopUserService.updateMoney(shopUser.getShopId(), shopUserMoneyEditDTO);
//会员活动
}
}
}