mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 14:01:07 +00:00
Merge branch 'v4.7.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v4.7.0dev
This commit is contained in:
commit
90c820df36
@ -430,6 +430,7 @@ class StoreOrderController
|
||||
* 订单删除
|
||||
* @param Request $request
|
||||
* @return mixed
|
||||
* @throws \Psr\SimpleCache\InvalidArgumentException
|
||||
*/
|
||||
public function del(Request $request)
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ class UnpaidOrderCancelJob extends BaseJobs
|
||||
public function doJob($orderId)
|
||||
{
|
||||
/** @var StoreOrderServices $services */
|
||||
$services = app()->make(StoreOrderServices::class);
|
||||
$services = app()->make(StoreOrderServices::class);
|
||||
$orderInfo = $services->get($orderId);
|
||||
if (!$orderInfo) {
|
||||
return true;
|
||||
@ -49,21 +49,21 @@ class UnpaidOrderCancelJob extends BaseJobs
|
||||
}
|
||||
/** @var StoreOrderCartInfoServices $cartServices */
|
||||
$cartServices = app()->make(StoreOrderCartInfoServices::class);
|
||||
$cartInfo = $cartServices->getOrderCartInfo($orderId);
|
||||
$cartInfo = $cartServices->getOrderCartInfo($orderId);
|
||||
/** @var StoreOrderRefundServices $refundServices */
|
||||
$refundServices = app()->make(StoreOrderRefundServices::class);
|
||||
|
||||
try {
|
||||
$res = $refundServices->transaction(function () use ($orderInfo, $refundServices) {
|
||||
//回退积分和优惠卷
|
||||
$refundServices->integralAndCouponBack($orderInfo);
|
||||
$refundServices->integralAndCouponBack($orderInfo, 'cancel');
|
||||
//回退库存和销量
|
||||
$refundServices->regressionStock($orderInfo);
|
||||
return true;
|
||||
});
|
||||
if ($res) {
|
||||
$orderInfo->is_del = 1;
|
||||
$orderInfo->mark = '订单未支付已超过系统预设时间';
|
||||
$orderInfo->mark = '订单未支付已超过系统预设时间';
|
||||
$orderInfo->save();
|
||||
}
|
||||
return $res;
|
||||
|
||||
@ -391,7 +391,7 @@ class StoreOrderComputedServices extends BaseServices
|
||||
foreach ($temp_num as $k => $v) {
|
||||
if (isset($temp[$v['temp_id']]['appoint']) && $temp[$v['temp_id']]['appoint'] && isset($freeList[$v['temp_id']])) {
|
||||
$free = $freeList[$v['temp_id']];
|
||||
$condition = $v['type'] == 1 ? $free['number'] <= $v['number'] : $free['number'] >= $v['number'];
|
||||
$condition = $free['number'] <= $v['number'];
|
||||
if ($free['price'] <= $v['price'] && $condition) {
|
||||
unset($temp_num[$k]);
|
||||
}
|
||||
|
||||
@ -426,25 +426,26 @@ class StoreOrderRefundServices extends BaseServices
|
||||
/**
|
||||
* 回退积分和优惠卷
|
||||
* @param $order
|
||||
* @param string $type
|
||||
* @return bool
|
||||
*/
|
||||
public function integralAndCouponBack($order)
|
||||
public function integralAndCouponBack($order, $type = 'refund')
|
||||
{
|
||||
/** @var StoreOrderStatusServices $statusService */
|
||||
$statusService = app()->make(StoreOrderStatusServices::class);
|
||||
$res = true;
|
||||
// //回退优惠卷 拆分子订单不退优惠券
|
||||
// if (!$order['pid'] && $order['coupon_id'] && $order['coupon_price']) {
|
||||
// /** @var StoreCouponUserServices $couponUserServices */
|
||||
// $couponUserServices = app()->make(StoreCouponUserServices::class);
|
||||
// $res = $couponUserServices->recoverCoupon((int)$order['coupon_id']);
|
||||
// $statusService->save([
|
||||
// 'oid' => $order['id'],
|
||||
// 'change_type' => 'coupon_back',
|
||||
// 'change_message' => '商品退优惠券',
|
||||
// 'change_time' => time()
|
||||
// ]);
|
||||
// }
|
||||
//取消的订单退回优惠券
|
||||
if ($type == 'cancel' && $order['coupon_id'] && $order['coupon_price']) {
|
||||
/** @var StoreCouponUserServices $couponUserServices */
|
||||
$couponUserServices = app()->make(StoreCouponUserServices::class);
|
||||
$res = $couponUserServices->recoverCoupon((int)$order['coupon_id']);
|
||||
$statusService->save([
|
||||
'oid' => $order['id'],
|
||||
'change_type' => 'coupon_back',
|
||||
'change_message' => '商品退优惠券',
|
||||
'change_time' => time()
|
||||
]);
|
||||
}
|
||||
//回退积分
|
||||
$order = $this->regressionIntegral($order);
|
||||
$statusService->save([
|
||||
|
||||
@ -1855,9 +1855,10 @@ HTML;
|
||||
|
||||
/**
|
||||
* 删除订单
|
||||
* @param $uni
|
||||
* @param $uid
|
||||
* @param string $uni
|
||||
* @param int $uid
|
||||
* @return bool
|
||||
* @throws \Psr\SimpleCache\InvalidArgumentException
|
||||
*/
|
||||
public function removeOrder(string $uni, int $uid)
|
||||
{
|
||||
@ -1879,21 +1880,6 @@ HTML;
|
||||
'change_time' => time()
|
||||
]);
|
||||
if ($order->save() && $res) {
|
||||
//未支付和已退款的状态下才可以退积分退库存退优惠券
|
||||
if ($order['_status']['_type'] == 0 || $order['_status']['_type'] == -2) {
|
||||
/** @var StoreOrderRefundServices $refundServices */
|
||||
$refundServices = app()->make(StoreOrderRefundServices::class);
|
||||
$this->transaction(function () use ($order, $refundServices) {
|
||||
//回退积分和优惠卷
|
||||
$res = $refundServices->integralAndCouponBack($order);
|
||||
//回退库存
|
||||
$res = $res && $refundServices->regressionStock($order);
|
||||
if (!$res) {
|
||||
throw new ApiException(100020);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
return true;
|
||||
} else
|
||||
throw new ApiException(100020);
|
||||
@ -1924,7 +1910,7 @@ HTML;
|
||||
$refundServices = app()->make(StoreOrderRefundServices::class);
|
||||
|
||||
$this->transaction(function () use ($refundServices, $order) {
|
||||
$res = $refundServices->integralAndCouponBack($order) && $refundServices->regressionStock($order);
|
||||
$res = $refundServices->integralAndCouponBack($order, 'cancel') && $refundServices->regressionStock($order);
|
||||
$order->is_del = 1;
|
||||
if (!($res && $order->save())) {
|
||||
throw new ApiException(100020);
|
||||
@ -2136,7 +2122,7 @@ HTML;
|
||||
try {
|
||||
$this->transaction(function () use ($order, $refundServices) {
|
||||
//回退积分和优惠卷
|
||||
$res = $refundServices->integralAndCouponBack($order);
|
||||
$res = $refundServices->integralAndCouponBack($order, 'cancel');
|
||||
//回退库存和销量
|
||||
$res = $res && $refundServices->regressionStock($order);
|
||||
//修改订单状态
|
||||
|
||||
@ -1815,7 +1815,7 @@ class StoreProductServices extends BaseServices
|
||||
$memberCardService = app()->make(MemberCardServices::class);
|
||||
$vipStatus = $memberCardService->isOpenMemberCard('vip_price');
|
||||
foreach ($list as &$item) {
|
||||
if (!($vipStatus && $item['is_vip'])) {
|
||||
if (!$this->vipIsOpen(!!$item['is_vip'], $vipStatus)) {
|
||||
$item['vip_price'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ export default {
|
||||
isTemplate: false,
|
||||
loading: false,
|
||||
tableFrom: {
|
||||
receive_type: 1,
|
||||
receive_type: 3,
|
||||
page: 1,
|
||||
limit: 10,
|
||||
},
|
||||
|
||||
@ -97,7 +97,7 @@ export default {
|
||||
page: 1, // 当前页
|
||||
limit: 15,
|
||||
coupon_title: '',
|
||||
receive_type: 1,
|
||||
receive_type: 3,
|
||||
},
|
||||
total: 0, // 总条数
|
||||
};
|
||||
|
||||
@ -18,13 +18,17 @@
|
||||
<FormItem label="优惠券名称">
|
||||
<Input v-model="formData.coupon_title" :maxlength="18" placeholder="请输入优惠券名称"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="优惠券面值">
|
||||
<InputNumber :min="1" :max="99999" v-model="formData.coupon_price"></InputNumber>
|
||||
</FormItem>
|
||||
<FormItem label="发送方式">
|
||||
<RadioGroup v-model="formData.receive_type">
|
||||
<Radio :label="1">普通券</Radio>
|
||||
<Radio :label="2">新人券</Radio>
|
||||
<!-- <Radio :label="3">赠送券</Radio> -->
|
||||
<Radio :label="4">会员券</Radio>
|
||||
<Radio :label="1">手动领取</Radio>
|
||||
<Radio :label="2">新用户自动发放</Radio>
|
||||
<Radio :label="3">后台赠送</Radio>
|
||||
<Radio :label="4">付费会员专享</Radio>
|
||||
</RadioGroup>
|
||||
<div class="tip">手动领取:用户需要手动领取优惠券;新用户自动发放:新注册的用户自动发放;后台赠送:后台发放制定用户或者添加到商品里面用户购买该商品获得;付费会员专享:仅付费会员可以领取和使用</div>
|
||||
</FormItem>
|
||||
<FormItem label="优惠劵类型">
|
||||
<RadioGroup v-model="formData.type">
|
||||
@ -50,9 +54,6 @@
|
||||
</Select>
|
||||
<div class="info">选择商品的品类</div>
|
||||
</FormItem>
|
||||
<FormItem label="优惠券面值">
|
||||
<InputNumber :min="1" :max="99999" v-model="formData.coupon_price"></InputNumber>
|
||||
</FormItem>
|
||||
<FormItem label="使用门槛">
|
||||
<RadioGroup v-model="isMinPrice">
|
||||
<Radio :label="0">无门槛</Radio>
|
||||
@ -462,4 +463,7 @@ export default {
|
||||
right: 0;
|
||||
transform: translate(50%, -50%);
|
||||
}
|
||||
.tip {
|
||||
color: #888;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -22,10 +22,9 @@
|
||||
<Select v-model="receive_type" placeholder="请选择" clearable @on-change="userSearchs">
|
||||
<Option value="all">全部</Option>
|
||||
<Option value="1">手动领取</Option>
|
||||
<Option value="2">新人券</Option>
|
||||
<Option value="3">赠送券</Option>
|
||||
<Option value="4">会员券</Option>
|
||||
<Option value="5">购买券</Option>
|
||||
<Option value="2">新用户自动发放</Option>
|
||||
<Option value="3">后台赠送</Option>
|
||||
<Option value="4">付费会员专享</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user