|
|
@@ -102,6 +102,7 @@ use app\entity\data\user\UserAddressEntity;
|
|
102
|
102
|
use app\entity\data\user\UserBillEntity;
|
|
103
|
103
|
use app\entity\data\user\UserEntity;
|
|
104
|
104
|
use app\entity\monomer\store\FzonePayTypeEntity;
|
|
|
105
|
+use app\entity\monomer\store\StoreOrderPensionJsonEntity;
|
|
105
|
106
|
use app\entity\request\api\store\order\CalculatePostageRequestEntity;
|
|
106
|
107
|
use app\entity\request\api\store\order\StoreOrderCreateRequestEntity;
|
|
107
|
108
|
use app\model\common\JdOrderModel;
|
|
|
@@ -11086,6 +11087,15 @@ class StoreOrderRepository extends BaseRepository
|
|
11086
|
11087
|
/** @var StoreOrderRepository $storeOrderRepository */
|
|
11087
|
11088
|
$storeOrderRepository = app()->make(StoreOrderRepository::class);
|
|
11088
|
11089
|
$storeOrderEntity = $storeOrderRepository->getStoreOrderEntityByOrderId($orderId);
|
|
|
11090
|
+ $yanglaojin = null;
|
|
|
11091
|
+ if (!empty($storeOrderEntity->getPensionJson()) && is_array($storeOrderEntity->getPensionJson())) {
|
|
|
11092
|
+ // 当有商品单独设置养老金比例时,下单时,会将该商品 规格内 单独设置的养老金比例 保存下来,该养老金比例 是根据商品售价来计算的
|
|
|
11093
|
+ $storeOrderPensionJsonEntity = StoreOrderPensionJsonEntity::newInstance($storeOrderEntity->getPensionJson());
|
|
|
11094
|
+ if ($storeOrderPensionJsonEntity->getPensionIs()) {
|
|
|
11095
|
+ $pensionProportion = bcdiv((string)$storeOrderPensionJsonEntity->getAttrValuePensionNum(), '100', CommonEnum::CALCULATE_THE_NUMBER_OF_DECIMAL_PLACES);
|
|
|
11096
|
+ $yanglaojin = bcmul((string)$storeOrderEntity->getTotalPrice(), $pensionProportion, CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
|
|
|
11097
|
+ }
|
|
|
11098
|
+ }
|
|
11089
|
11099
|
|
|
11090
|
11100
|
/** @var UserRepository $userRepository */
|
|
11091
|
11101
|
$userRepository = app()->make(UserRepository::class);
|
|
|
@@ -11101,7 +11111,9 @@ class StoreOrderRepository extends BaseRepository
|
|
11101
|
11111
|
// 精彩生活区
|
|
11102
|
11112
|
if ($storeOrderEntity->getMerId() == CommonEnum::DESIGN_MERCHANT_ID['WonderfulLiving']['code']) {
|
|
11103
|
11113
|
// 为消费者 初始化 添加养老金记录
|
|
11104
|
|
- $yanglaojin = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['WonderfulLiving']['Self']['YangLaoJin']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
|
|
|
11114
|
+ if (is_null($yanglaojin)) {
|
|
|
11115
|
+ $yanglaojin = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['WonderfulLiving']['Self']['YangLaoJin']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
|
|
|
11116
|
+ }
|
|
11105
|
11117
|
/** @var UserBillRepository $userBillRepository */
|
|
11106
|
11118
|
$userBillRepository = app()->make(UserBillRepository::class);
|
|
11107
|
11119
|
$userBillRepository->addUserBill(
|
|
|
@@ -11616,7 +11628,9 @@ class StoreOrderRepository extends BaseRepository
|
|
11616
|
11628
|
}
|
|
11617
|
11629
|
|
|
11618
|
11630
|
// 为消费者 初始化 添加养老金记录
|
|
11619
|
|
- $yanglaojin = bcmul($storeOrderEntity->getTotalPrice(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Self']['YangLaoJin']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
|
|
|
11631
|
+ if (is_null($yanglaojin)) {
|
|
|
11632
|
+ $yanglaojin = bcmul($storeOrderEntity->getTotalPrice(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Self']['YangLaoJin']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
|
|
|
11633
|
+ }
|
|
11620
|
11634
|
/** @var UserBillRepository $userBillRepository */
|
|
11621
|
11635
|
$userBillRepository = app()->make(UserBillRepository::class);
|
|
11622
|
11636
|
$userBillRepository->addUserBill(
|
|
|
@@ -12517,6 +12531,9 @@ class StoreOrderRepository extends BaseRepository
|
|
12517
|
12531
|
// 精彩生活区 走宝塔定时任务 调用 great_life_order_independent_account 命令
|
|
12518
|
12532
|
} elseif ($storeOrderEntity->getMerId() == CommonEnum::DESIGN_MERCHANT_ID['Repurchase']['code']) {
|
|
12519
|
12533
|
// 复购区不用分账,没有现金支付 只用复购金支付
|
|
|
12534
|
+ } elseif ($storeOrderEntity->getMerId() == CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code']) {
|
|
|
12535
|
+ // 共富区分账
|
|
|
12536
|
+ $storeOrderRepository->sharedProsperityOrderIndependentAccount($storeOrderEntity->getOrderSn(), $storeOrderEntity->getPayType());
|
|
12520
|
12537
|
} else {
|
|
12521
|
12538
|
// 商贸区 走宝塔定时任务 调用 commercial_area_order_independent_account 命令
|
|
12522
|
12539
|
}
|
|
|
@@ -12530,6 +12547,52 @@ class StoreOrderRepository extends BaseRepository
|
|
12530
|
12547
|
}
|
|
12531
|
12548
|
}
|
|
12532
|
12549
|
|
|
|
12550
|
+ /**
|
|
|
12551
|
+ * 共富区订单分账
|
|
|
12552
|
+ *
|
|
|
12553
|
+ * @param $merId
|
|
|
12554
|
+ * @param $timeLimit
|
|
|
12555
|
+ * @return void
|
|
|
12556
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
12557
|
+ * @throws \think\db\exception\DbException
|
|
|
12558
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
12559
|
+ */
|
|
|
12560
|
+ private function sharedProsperityOrderIndependentAccount($orderSn, $payType)
|
|
|
12561
|
+ {
|
|
|
12562
|
+ $dst_mer_id = CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code'];
|
|
|
12563
|
+ // 商户信息
|
|
|
12564
|
+ $merchants = [];
|
|
|
12565
|
+ // 已支付、未结算 注意,会员专区之前可能没有去及时 更新结算状态 'is_settlement' => 1,
|
|
|
12566
|
+ $where = ['paid' => 1, 'is_del' => 0, 'is_system_del' => 0, 'is_independentaccount' => 0, 'order_sn' => $orderSn];
|
|
|
12567
|
+ // 订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付 6已取消'
|
|
|
12568
|
+ // $status = [2, 3]; ->whereIn('status', $status)
|
|
|
12569
|
+ // 普通订单
|
|
|
12570
|
+ $cursor = Db::table('rrx_store_order')->where($where)->where('pay_type', '=', $payType)
|
|
|
12571
|
+ ->where('fzone_pay_price', '>', 0.00)
|
|
|
12572
|
+ ->whereIn('mer_id', CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code'])->cursor();
|
|
|
12573
|
+ /** @var StoreOrderRepository $storeOrderRepository */
|
|
|
12574
|
+ $storeOrderRepository = app()->make(StoreOrderRepository::class);
|
|
|
12575
|
+ foreach ($cursor as $key => $value) {
|
|
|
12576
|
+ if (!isset($merchants[$value['mer_id']])) {
|
|
|
12577
|
+ $merchants[$value['mer_id']] = Db::name('merchant')->where('mer_id', $value['mer_id'])->find();
|
|
|
12578
|
+ }
|
|
|
12579
|
+ $group_order = Db::name('store_group_order')->alias('sgo')->where('sgo.group_order_id', $value['group_order_id'])->find();
|
|
|
12580
|
+
|
|
|
12581
|
+ $independentAccount = $storeOrderRepository->getIndependentAccount($value, $group_order, $dst_mer_id, $merchants[$value['mer_id']]['hf_member_id']);
|
|
|
12582
|
+
|
|
|
12583
|
+ $isSuccessed = $storeOrderRepository->prepareExecuteIndependentAccount(
|
|
|
12584
|
+ $value, $group_order, $independentAccount['api_key'], $independentAccount['hf_platform_member_id'], '', $value['fzone_pay_price'], 0
|
|
|
12585
|
+ );
|
|
|
12586
|
+ if ($isSuccessed) {
|
|
|
12587
|
+ Db::name("log")->insert(array('data' => '共富区-订单分账:' . json_encode($value, JSON_FORCE_OBJECT)));// 日志记录
|
|
|
12588
|
+
|
|
|
12589
|
+ $order = StoreOrder::getInstance()->where('order_id', $value['order_id'])->find();
|
|
|
12590
|
+ $order->is_independentaccount = 1;
|
|
|
12591
|
+ $order->save();
|
|
|
12592
|
+ }
|
|
|
12593
|
+ }
|
|
|
12594
|
+ }
|
|
|
12595
|
+
|
|
12533
|
12596
|
public function useKillOrderRewards($groupOrderId, $orderId, $uid,$adminId)
|
|
12534
|
12597
|
{
|
|
12535
|
12598
|
if (empty($orderId) || empty($groupOrderId) || empty($uid)) {
|