Merge branch 'v4.7.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v4.7.0dev

This commit is contained in:
From-wh 2023-03-27 19:40:24 +08:00
commit 90c820df36
10 changed files with 42 additions and 51 deletions

View File

@ -430,6 +430,7 @@ class StoreOrderController
* 订单删除
* @param Request $request
* @return mixed
* @throws \Psr\SimpleCache\InvalidArgumentException
*/
public function del(Request $request)
{

View File

@ -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;

View File

@ -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]);
}

View File

@ -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([

View File

@ -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);
//修改订单状态

View File

@ -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;
}
}

View File

@ -81,7 +81,7 @@ export default {
isTemplate: false,
loading: false,
tableFrom: {
receive_type: 1,
receive_type: 3,
page: 1,
limit: 10,
},

View File

@ -97,7 +97,7 @@ export default {
page: 1, // 当前页
limit: 15,
coupon_title: '',
receive_type: 1,
receive_type: 3,
},
total: 0, // 总条数
};

View File

@ -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>

View File

@ -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>