Merge branch 'feature/purchase_record' into dev

This commit is contained in:
luofei 2023-07-13 11:42:27 +08:00
commit e67553fc92
4 changed files with 24 additions and 7 deletions

View File

@ -15,6 +15,7 @@ namespace app\common\repositories\store\order;
use app\common\dao\store\order\StoreRefundOrderDao;
use app\common\model\store\order\StoreGroupOrder;
use app\common\model\store\order\StoreOrder;
use app\common\model\store\order\StoreRefundOrder;
use app\common\model\system\merchant\FinancialRecord;
@ -268,6 +269,9 @@ class StoreRefundOrderRepository extends BaseRepository
*/
public function refunds(StoreOrder $order, array $ids, $uid, array $data)
{
if ($order->pay_type == StoreGroupOrder::PAY_TYPE_CREDIT_BUY && $order->status == 2) {
throw new ValidateException('已收货的订单不支持退款');
}
$orderId = $order->order_id;
$products = app()->make(StoreOrderProductRepository::class)->userRefundProducts($ids, $uid, $orderId);
if (!$products || count($ids) != count($products))
@ -331,6 +335,9 @@ class StoreRefundOrderRepository extends BaseRepository
$data['integral'] = $totalIntegral;
$data['platform_refund_price'] = $totalPlatformRefundPrice;
$data['refund_postage'] = $totalPostage;
if ($order['pay_type'] == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
$data['refund_price'] = 0;
}
return Db::transaction(function () use ($refundProduct, $data, $products, $order, &$refund_order_id) {
event('refund.creates.before', compact('data'));
@ -394,6 +401,9 @@ class StoreRefundOrderRepository extends BaseRepository
*/
public function refund(StoreOrder $order, $productId, $num, $uid, array $data)
{
if ($order->pay_type == StoreGroupOrder::PAY_TYPE_CREDIT_BUY && $order->status == 2) {
throw new ValidateException('已收货的订单不支持退款');
}
$orderId = $order->order_id;
//TODO 订单状态生成佣金
$product = app()->make(StoreOrderProductRepository::class)->userRefundProducts([$productId], $uid, $orderId);
@ -464,6 +474,9 @@ class StoreRefundOrderRepository extends BaseRepository
$data['refund_num'] = $num;
$data['extension_one'] = $total_extension_one;
$data['extension_two'] = $total_extension_two;
if ($order['pay_type'] == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
$data['refund_price'] = 0;
}
return Db::transaction(function () use ($order, $data, $product, $productId, $num) {
event('refund.create.before', compact('data'));

View File

@ -2280,9 +2280,9 @@ class ProductRepository extends BaseRepository
$supplierMerId = 0;
if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格
$product = Db::name('store_product')->where('source_product_id', $params['order_product_id'])->where('mer_id', $merId)->find();
$product = $this->getWhere(['source_product_id' => $params['order_product_id'], 'mer_id' => $merId]);
if (!empty($product)) {
$unique = $this->importAttrValue($params['order_product_id'], $product, $params['order_unique']);
$unique = $this->importAttrValue($params['order_product_id'], $product->toArray(), $params['order_unique']);
if (!$unique) {
throw new \Exception('商品规格导入出错', 500);
}

View File

@ -250,7 +250,7 @@ class Merchant extends BaseController
}
public function apply($merId){
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type,is_frozen')->find();
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg);
}
@ -283,7 +283,7 @@ class Merchant extends BaseController
public function createApply($merId)
{
$data = $this->request->param(['extract_money','financial_type', 'financial_bank_name', 'financial_bank_bank', 'financial_bank_code', 'financial_bank_branch']);
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type,is_frozen')->find();
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg);
}
@ -302,7 +302,7 @@ class Merchant extends BaseController
public function listApply($merId)
{
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type,is_frozen')->find();
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg);
}
@ -315,7 +315,7 @@ class Merchant extends BaseController
public function account($merId)
{
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type,is_frozen')->find();
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg);
}
@ -332,7 +332,7 @@ class Merchant extends BaseController
{
$data = $this->request->param(['name','bank','bank_code','financial_type']);
app()->make(MerchantFinancialAccountValidate::class)->check($data);
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type,is_frozen')->find();
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg);
}

View File

@ -4,6 +4,7 @@ declare (strict_types=1);
namespace app\listener;
use app\common\model\store\order\StoreGroupOrder;
use app\common\model\system\merchant\Merchant;
use app\common\repositories\store\order\StoreOrderInterestRepository;
@ -17,6 +18,9 @@ class OrderCreate
{
$groupOrder = $event['groupOrder'];
$order = $groupOrder->orderList[0];
if ($order['pay_type'] != StoreGroupOrder::PAY_TYPE_CREDIT_BUY && $order['activity_type'] != 98) {
return true;
}
/** @var StoreOrderInterestRepository $storeOrderInterestRepository */
$storeOrderInterestRepository = app()->make(StoreOrderInterestRepository::class);
$merchantId = Merchant::where('uid', $groupOrder['uid'])->value('mer_id');