关闭 主单
This commit is contained in:
@@ -27,7 +27,7 @@ public interface ShopInfoService extends IService<ShopInfo> {
|
|||||||
* @param switchType ShopInfo的某列 开关 目前只支持Integer类型字段
|
* @param switchType ShopInfo的某列 开关 目前只支持Integer类型字段
|
||||||
* @return true:开启 false:关闭
|
* @return true:开启 false:关闭
|
||||||
*/
|
*/
|
||||||
boolean checkSwitch(Long shopId, ShopSwitchTypeEnum switchType) throws ValidateException;
|
boolean checkSwitch(Long shopId, ShopSwitchTypeEnum switchType) throws ValidateException;
|
||||||
|
|
||||||
Page<ShopInfo> get(PageDTO pageDTO, String shopName, Integer status, Integer isHeadShop);
|
Page<ShopInfo> get(PageDTO pageDTO, String shopName, Integer status, Integer isHeadShop);
|
||||||
|
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ public class GbOrderServiceImpl extends ServiceImpl<GbOrderMapper, GbOrder> impl
|
|||||||
throw new CzgException("申请失败,该商品不可申请退款");
|
throw new CzgException("申请失败,该商品不可申请退款");
|
||||||
}
|
}
|
||||||
if ("待成团".equals(record.getStatus())) {
|
if ("待成团".equals(record.getStatus())) {
|
||||||
return refundAmount(record, param.getReason());
|
return refundByGbOrderDetail(record, param.getReason());
|
||||||
}
|
}
|
||||||
GbOrderDetail upRecord = new GbOrderDetail();
|
GbOrderDetail upRecord = new GbOrderDetail();
|
||||||
upRecord.setStatus("退款中");
|
upRecord.setStatus("退款中");
|
||||||
@@ -395,7 +395,7 @@ public class GbOrderServiceImpl extends ServiceImpl<GbOrderMapper, GbOrder> impl
|
|||||||
if (!"待核销".equals(record.getStatus()) && !"待成团".equals(record.getStatus()) && !"退款中".equals(record.getStatus())) {
|
if (!"待核销".equals(record.getStatus()) && !"待成团".equals(record.getStatus()) && !"退款中".equals(record.getStatus())) {
|
||||||
throw new CzgException("退款失败,订单不处于待退款");
|
throw new CzgException("退款失败,订单不处于待退款");
|
||||||
}
|
}
|
||||||
return refundAmount(record, param.getReason());
|
return refundByGbOrderDetail(record, param.getReason());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -442,25 +442,8 @@ public class GbOrderServiceImpl extends ServiceImpl<GbOrderMapper, GbOrder> impl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean refundByGbOrder(GbOrder gbOrder, String reason) {
|
//单个退
|
||||||
if (gbOrder == null) {
|
public boolean refundByGbOrderDetail(GbOrderDetail record, String reason) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
List<GbOrderDetail> details = detailService.list(query()
|
|
||||||
.eq(GbOrderDetail::getShopId, gbOrder.getShopId())
|
|
||||||
.eq(GbOrderDetail::getGroupOrderNo, gbOrder.getGroupOrderNo())
|
|
||||||
.ne(GbOrderDetail::getStatus, "已退款")
|
|
||||||
.eq(GbOrderDetail::getIsDel, SystemConstants.OneZero.ZERO));
|
|
||||||
details.forEach(item -> FunUtils.safeRunVoid(() -> refundAmount(item, reason), "订单详情{}退款失败", item.getId()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private boolean refundAmount(GbOrderDetail record, String reason) {
|
|
||||||
//退钱
|
|
||||||
String refPayOrderNo = CzgRandomUtils.snowflake(OrderNoPrefixEnum.REP);
|
|
||||||
payService.unifyRefund(record.getShopId(), record.getId(), record.getPayOrderId(), refPayOrderNo,
|
|
||||||
StrUtil.isBlankIfStr(reason) ? "拼团退款" : reason, record.getPayAmount());
|
|
||||||
//回退 人数
|
//回退 人数
|
||||||
GbOrder gbOrder = getOne(query().eq(GbOrder::getGroupOrderNo, record.getGroupOrderNo()).eq(GbOrder::getShopId, record.getShopId()));
|
GbOrder gbOrder = getOne(query().eq(GbOrder::getGroupOrderNo, record.getGroupOrderNo()).eq(GbOrder::getShopId, record.getShopId()));
|
||||||
if (gbOrder != null) {
|
if (gbOrder != null) {
|
||||||
@@ -473,6 +456,33 @@ public class GbOrderServiceImpl extends ServiceImpl<GbOrderMapper, GbOrder> impl
|
|||||||
}
|
}
|
||||||
updateById(upOrder);
|
updateById(upOrder);
|
||||||
}
|
}
|
||||||
|
FunUtils.safeRunVoid(() -> refundAmount(record, reason), "订单详情{}退款失败", record.getId());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//大量退
|
||||||
|
public boolean refundByGbOrder(GbOrder gbOrder, String reason) {
|
||||||
|
if (gbOrder == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
List<GbOrderDetail> details = detailService.list(query()
|
||||||
|
.eq(GbOrderDetail::getShopId, gbOrder.getShopId())
|
||||||
|
.eq(GbOrderDetail::getGroupOrderNo, gbOrder.getGroupOrderNo())
|
||||||
|
.ne(GbOrderDetail::getStatus, "已退款")
|
||||||
|
.eq(GbOrderDetail::getIsDel, SystemConstants.OneZero.ZERO));
|
||||||
|
details.forEach(item -> FunUtils.safeRunVoid(() -> refundAmount(item, reason), "订单详情{}退款失败", item.getId()));
|
||||||
|
GbOrder upOrder = new GbOrder();
|
||||||
|
upOrder.setStatus("fail");
|
||||||
|
update(upOrder, query().eq(GbOrder::getId, gbOrder.getId()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean refundAmount(GbOrderDetail record, String reason) {
|
||||||
|
//退钱
|
||||||
|
String refPayOrderNo = CzgRandomUtils.snowflake(OrderNoPrefixEnum.REP);
|
||||||
|
payService.unifyRefund(record.getShopId(), record.getId(), record.getPayOrderId(), refPayOrderNo,
|
||||||
|
StrUtil.isBlankIfStr(reason) ? "拼团退款" : reason, record.getPayAmount());
|
||||||
GbOrderDetail upRecord = new GbOrderDetail();
|
GbOrderDetail upRecord = new GbOrderDetail();
|
||||||
upRecord.setStatus("已退款");
|
upRecord.setStatus("已退款");
|
||||||
upRecord.setCancelReason(reason);
|
upRecord.setCancelReason(reason);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<select id="countOrder" resultType="com.czg.order.vo.GbOrderCountVO">
|
<select id="countOrder" resultType="com.czg.order.vo.GbOrderCountVO">
|
||||||
SELECT
|
SELECT
|
||||||
sum(CASE WHEN status !='已退款' THEN detail.pay_amount ELSE 0 END) AS paidAmountTotal,
|
sum(CASE WHEN pay_time is not null THEN detail.pay_amount ELSE 0 END) AS paidAmountTotal,
|
||||||
sum(CASE WHEN status ='已退款' THEN detail.pay_amount ELSE 0 END) AS refundAmount,
|
sum(CASE WHEN status ='已退款' THEN detail.pay_amount ELSE 0 END) AS refundAmount,
|
||||||
count(detail.id) as countNum
|
count(detail.id) as countNum
|
||||||
FROM
|
FROM
|
||||||
|
|||||||
Reference in New Issue
Block a user