订单添加信用购

This commit is contained in:
luofei 2023-06-27 10:54:15 +08:00
parent 11ba0dc8d3
commit 7115792191
7 changed files with 21 additions and 5 deletions

View File

@ -114,7 +114,7 @@ class StoreCartDao extends BaseDao
->append(['bc_extension_one', 'bc_extension_two']);
},
'merchant' => function (Relation $query) use ($uid) {
$query->field('mer_id,mer_name,mer_state,mer_avatar,delivery_way,commission_rate,category_id')->with(['coupon' => function ($query) use ($uid) {
$query->field('mer_id,mer_name,mer_state,mer_avatar,delivery_way,commission_rate,category_id,credit_buy')->with(['coupon' => function ($query) use ($uid) {
$query->where('uid', $uid);
},
'config' => function ($query) {

View File

@ -21,6 +21,12 @@ use app\common\repositories\store\coupon\StoreCouponRepository;
class StoreGroupOrder extends BaseModel
{
const PAY_TYPE_BALANCE = 0; //余额支付
const PAY_TYPE_WECHAT = 1; //微信支付
const PAY_TYPE_ROUTINE = 2; //小程序支付
const PAY_TYPE_H5 = 3; //H5支付
const PAY_TYPE_CREDIT_BUY = 8; //信用购
public static function tablePk(): ?string
{
return 'group_order_id';

View File

@ -3,6 +3,7 @@
namespace app\common\repositories\store\order;
use app\common\dao\store\order\StoreCartDao;
use app\common\model\store\order\StoreGroupOrder;
use app\common\repositories\store\coupon\StoreCouponRepository;
use app\common\repositories\store\coupon\StoreCouponUserRepository;
use app\common\repositories\store\product\ProductAssistSkuRepository;
@ -939,6 +940,9 @@ class StoreOrderCreateRepository extends StoreOrderRepository
//检查发票状态
if (isset($receipt_data[$merchantCart['mer_id']]) && !$merchantCart['openReceipt'])
throw new ValidateException('该店铺不支持开发票');
if ($pay_type == StoreGroupOrder::PAY_TYPE_CREDIT_BUY && !$merchantCart['credit_buy']) {
throw new ValidateException('该店铺不支持先货后款');
}
foreach ($merchantCart['list'] as $cart) {
if (!$cartSpread && $cart['spread_id']) {

View File

@ -74,7 +74,7 @@ class StoreOrderRepository extends BaseRepository
/**
* 支付类型
*/
const PAY_TYPE = ['balance', 'weixin', 'routine', 'h5', 'alipay', 'alipayQr', 'weixinQr', 'scrcu'];
const PAY_TYPE = ['balance', 'weixin', 'routine', 'h5', 'alipay', 'alipayQr', 'weixinQr', 'scrcu', 'creditBuy'];
const TYPE_SN_ORDER = 'wxo';
const TYPE_SN_PRESELL = 'wxp';

View File

@ -16,6 +16,7 @@ namespace app\common\repositories\system\merchant;
use app\common\dao\system\merchant\MerchantDao;
use app\common\dao\system\serve\ServeOrderDao;
use app\common\model\store\order\StoreGroupOrder;
use app\common\model\store\order\StoreOrder;
use app\common\model\store\product\ProductReply;
use app\common\model\store\service\StoreService;
@ -500,7 +501,8 @@ class MerchantRepository extends BaseRepository
public function addLockMoney(int $merId, string $orderType, int $orderId, float $money)
{
if ($money <= 0) return;
if (systemConfig('mer_lock_time')) {
$payType = StoreOrder::getInstance()->where('order_id', $orderId)->value('pay_type');
if (systemConfig('mer_lock_time') || $payType == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
app()->make(UserBillRepository::class)->incBill($merId, 'mer_lock_money', $orderType, [
'link_id' => ($orderType === 'order' ? 1 : 2) . $orderId,
'mer_id' => $merId,

View File

@ -14,6 +14,7 @@
namespace app\controller\api\store\order;
use app\common\model\store\order\StoreGroupOrder;
use app\common\repositories\delivery\DeliveryOrderRepository;
use app\common\repositories\store\order\StoreOrderCreateRepository;
use app\common\repositories\store\order\StoreOrderReceiptRepository;
@ -105,7 +106,7 @@ class StoreOrder extends BaseController
return $orderCreateRepository->v2CreateOrder(array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post);
});
if ($groupOrder['pay_price'] == 0) {
if ($groupOrder['pay_price'] == 0 || $payType == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
$this->repository->paySuccess($groupOrder);
return app('json')->status('success', '支付成功', ['order_id' => $groupOrder['group_order_id']]);
}
@ -239,7 +240,7 @@ class StoreOrder extends BaseController
if (!$groupOrder)
return app('json')->fail('订单不存在或已支付');
$this->repository->changePayType($groupOrder, array_search($type, StoreOrderRepository::PAY_TYPE));
if ($groupOrder['pay_price'] == 0) {
if ($groupOrder['pay_price'] == 0 || $groupOrder['pay_type'] == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
$this->repository->paySuccess($groupOrder);
return app('json')->status('success', '支付成功', ['order_id' => $groupOrder['group_order_id']]);
}

View File

@ -87,6 +87,9 @@ class Merchant extends BaseController
'long',
'lat',
['delivery_way',[2]],
'credit_buy',
'settle_cycle',
'interest_rate',
]);
$validate->check($data);
$sys_bases_status = systemConfig('sys_bases_status') === '0' ? 0 : 1;