feat: 修改用户充值API,优化订单逻辑和用户签到逻辑
This commit is contained in:
parent
9ea0327998
commit
42a9130a7a
@ -7,6 +7,7 @@
|
|||||||
use app\admin\validate\user\UserFeedbackValidate;
|
use app\admin\validate\user\UserFeedbackValidate;
|
||||||
use app\api\controller\BaseApiController;
|
use app\api\controller\BaseApiController;
|
||||||
use app\api\lists\user\UserRechargeLists;
|
use app\api\lists\user\UserRechargeLists;
|
||||||
|
use app\common\model\dict\DictData;
|
||||||
|
|
||||||
class UserRechargeController extends BaseApiController
|
class UserRechargeController extends BaseApiController
|
||||||
{
|
{
|
||||||
@ -25,36 +26,21 @@ use app\api\lists\user\UserRechargeLists;
|
|||||||
{
|
{
|
||||||
$buy_bar = "元采购包";
|
$buy_bar = "元采购包";
|
||||||
$send_bar = "品牌礼品券";
|
$send_bar = "品牌礼品券";
|
||||||
$arr = [
|
$list = DictData::where('type_value', 'recharge')->select()
|
||||||
[
|
->each(function($item)use($buy_bar,$send_bar){
|
||||||
'money'=>1000,//采购包
|
$item['money'] = $item['value'];
|
||||||
// 'money'=>1,//采购包
|
$item['money_string'] = $buy_bar;
|
||||||
'send'=>249,//礼品券
|
$item['send_string'] = $send_bar;
|
||||||
'money_string'=>$buy_bar,
|
if($item['name']=='level_one'){
|
||||||
'send_string'=>$send_bar,
|
$item['send'] = 249;
|
||||||
],
|
}elseif($item['name']=='level_two'){
|
||||||
[
|
$item['send'] = 560;
|
||||||
'money'=>2000,//采购包
|
}elseif($item['name']=='level_three'){
|
||||||
'send'=>560,//礼品券
|
$item['send'] = 1550;
|
||||||
'money_string'=>$buy_bar,
|
}elseif($item['name']=='level_four'){
|
||||||
'send_string'=>$send_bar,
|
$item['send'] = 3500;
|
||||||
],
|
}
|
||||||
[
|
});
|
||||||
'money'=>5000,//采购包
|
return $this->success('ok', $list?->toArray());
|
||||||
'send'=>1550,//礼品券
|
|
||||||
'money_string'=>$buy_bar,
|
|
||||||
'send_string'=>$send_bar,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'money'=>10000,//采购包
|
|
||||||
'send'=>3500,//礼品券
|
|
||||||
'money_string'=>$buy_bar,
|
|
||||||
'send_string'=>$send_bar,
|
|
||||||
]
|
|
||||||
];
|
|
||||||
return $this->success('ok',$arr);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ use app\common\model\dict\DictData;
|
|||||||
use app\common\model\dict\DictType;
|
use app\common\model\dict\DictType;
|
||||||
use app\common\model\order\Cart;
|
use app\common\model\order\Cart;
|
||||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||||
|
use app\common\model\store_category\StoreCategory;
|
||||||
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
||||||
use app\common\model\store_order\StoreOrder;
|
use app\common\model\store_order\StoreOrder;
|
||||||
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
||||||
@ -62,7 +63,7 @@ class OrderLogic extends BaseLogic
|
|||||||
* @param $params
|
* @param $params
|
||||||
* @return array|bool
|
* @return array|bool
|
||||||
*/
|
*/
|
||||||
static public function cartIdByOrderInfo($cartId, $addressId, $user = null, $params = [])
|
static public function cartIdByOrderInfo($cartId, $addressId, $user = null, $params = [], $createOrder = 0)
|
||||||
{
|
{
|
||||||
$where = ['is_pay' => 0];
|
$where = ['is_pay' => 0];
|
||||||
$cart_select = Cart::whereIn('id', $cartId)->where($where)->field('id,product_id,cart_num')->select()->toArray();
|
$cart_select = Cart::whereIn('id', $cartId)->where($where)->field('id,product_id,cart_num')->select()->toArray();
|
||||||
@ -80,16 +81,29 @@ class OrderLogic extends BaseLogic
|
|||||||
self::$deduction_price = 0;
|
self::$deduction_price = 0;
|
||||||
self::$frozen_money = 0; //返还金额
|
self::$frozen_money = 0; //返还金额
|
||||||
$deduction_price = 0; //抵扣金额
|
$deduction_price = 0; //抵扣金额
|
||||||
|
$fresh_price = 0; //生鲜金额
|
||||||
/** 计算价格 */
|
/** 计算价格 */
|
||||||
$off_activity = Config::where('name', 'off_activity')->value('value');
|
$off_activity = Config::where('name', 'off_activity')->value('value');
|
||||||
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase,product_id';
|
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase,product_id,top_cate_id';
|
||||||
foreach ($cart_select as $k => $v) {
|
foreach ($cart_select as $k => $v) {
|
||||||
$find = StoreBranchProduct::where(['product_id' => $v['product_id'], 'store_id' => $params['store_id']])->field($field)->find();
|
$find = StoreBranchProduct::where(['product_id' => $v['product_id'], 'store_id' => $params['store_id']])->field($field)->find();
|
||||||
if (!$find) {
|
if (!$find) {
|
||||||
// unset($cart_select[$k]);
|
// unset($cart_select[$k]);
|
||||||
// continue;
|
// continue;
|
||||||
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase, id product_id';
|
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase, id product_id,cate_id';
|
||||||
$find = StoreProduct::where(['id' => $v['product_id']])->field($field)->find();
|
$find = StoreProduct::where(['id' => $v['product_id']])->field($field)->find();
|
||||||
|
if ($find) {
|
||||||
|
$cate_id = StoreCategory::where('id', $find['cate_id'])->value('pid');
|
||||||
|
if ($cate_id > 0) {
|
||||||
|
$cate_id = StoreCategory::where('id', $cate_id)->value('pid');
|
||||||
|
if ($cate_id > 0) {
|
||||||
|
$cate_id = StoreCategory::where('id', $cate_id)->value('pid');
|
||||||
|
$find['top_cate_id'] = $cate_id;
|
||||||
|
} else {
|
||||||
|
$find['top_cate_id'] = $cate_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
$cart_select[$k]['status'] = 1; //缺货标识
|
$cart_select[$k]['status'] = 1; //缺货标识
|
||||||
}
|
}
|
||||||
unset($cart_select[$k]['id']);
|
unset($cart_select[$k]['id']);
|
||||||
@ -114,6 +128,10 @@ class OrderLogic extends BaseLogic
|
|||||||
$deduction_price = bcsub($cart_select[$k]['total_price'], $cart_select[$k]['pay_price'], 2);
|
$deduction_price = bcsub($cart_select[$k]['total_price'], $cart_select[$k]['pay_price'], 2);
|
||||||
$cart_select[$k]['deduction_price'] = $deduction_price; //抵扣金额
|
$cart_select[$k]['deduction_price'] = $deduction_price; //抵扣金额
|
||||||
}
|
}
|
||||||
|
//计算生鲜
|
||||||
|
if ($createOrder == 1 && $find['top_cate_id'] == 15201) {
|
||||||
|
$fresh_price=bcadd($fresh_price,$cart_select[$k]['pay_price']);
|
||||||
|
}
|
||||||
$cart_select[$k]['product_id'] = $find['product_id'];
|
$cart_select[$k]['product_id'] = $find['product_id'];
|
||||||
$cart_select[$k]['old_cart_id'] = $v['id'];
|
$cart_select[$k]['old_cart_id'] = $v['id'];
|
||||||
$cart_select[$k]['cart_num'] = $v['cart_num'];
|
$cart_select[$k]['cart_num'] = $v['cart_num'];
|
||||||
@ -153,6 +171,14 @@ class OrderLogic extends BaseLogic
|
|||||||
// if ($user && $user['user_ship'] == 1 && $pay_type != 17) {
|
// if ($user && $user['user_ship'] == 1 && $pay_type != 17) {
|
||||||
// $pay_price = self::$pay_price;
|
// $pay_price = self::$pay_price;
|
||||||
// } else {
|
// } else {
|
||||||
|
|
||||||
|
//判断生鲜是否大于200
|
||||||
|
if($createOrder==1 && $fresh_price>0){
|
||||||
|
if($fresh_price<200){
|
||||||
|
self::setError('订单里的生鲜必须大于金额200元');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
$pay_price = bcsub(self::$pay_price, self::$activity_price, 2); //减去活动优惠金额
|
$pay_price = bcsub(self::$pay_price, self::$activity_price, 2); //减去活动优惠金额
|
||||||
// }
|
// }
|
||||||
//成本价 收益
|
//成本价 收益
|
||||||
@ -236,7 +262,11 @@ class OrderLogic extends BaseLogic
|
|||||||
$verify_code = createCode($code);
|
$verify_code = createCode($code);
|
||||||
$params['order_id'] = $order_id;
|
$params['order_id'] = $order_id;
|
||||||
$params['verify_code'] = $verify_code;
|
$params['verify_code'] = $verify_code;
|
||||||
$orderInfo = self::cartIdByOrderInfo($cartId, $addressId, $user, $params);
|
$orderInfo = self::cartIdByOrderInfo($cartId, $addressId, $user, $params, 1);
|
||||||
|
if($orderInfo==false){
|
||||||
|
self::setError(self::getError());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!$orderInfo) {
|
if (!$orderInfo) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ namespace app\common\logic;
|
|||||||
|
|
||||||
use app\common\enum\YesNoEnum;
|
use app\common\enum\YesNoEnum;
|
||||||
use app\common\logic\BaseLogic;
|
use app\common\logic\BaseLogic;
|
||||||
|
use app\common\model\dict\DictData;
|
||||||
use app\common\model\user\User;
|
use app\common\model\user\User;
|
||||||
use app\common\model\user_recharge\UserRecharge;
|
use app\common\model\user_recharge\UserRecharge;
|
||||||
use app\common\model\user_sign\UserSign;
|
use app\common\model\user_sign\UserSign;
|
||||||
@ -23,22 +24,38 @@ class UserSignLogic extends BaseLogic
|
|||||||
*/
|
*/
|
||||||
public static function dealRechargeFrozen($user, $order, $user_ship = 0)
|
public static function dealRechargeFrozen($user, $order, $user_ship = 0)
|
||||||
{
|
{
|
||||||
|
$total_vip = 0;
|
||||||
|
$level_one = 1000;
|
||||||
|
$level_two = 2000;
|
||||||
|
$level_three = 5000;
|
||||||
|
$level_four = 10000;
|
||||||
|
$list = DictData::where('type_value', 'recharge')->select();
|
||||||
|
foreach( $list as $k=>$v){
|
||||||
|
if($v['name']=='level_one'){
|
||||||
|
$level_one = $v['value'];
|
||||||
|
}elseif($v['name']=='level_two'){
|
||||||
|
$level_two = $v['value'];
|
||||||
|
}elseif($v['name']=='level_three' ){
|
||||||
|
$level_three = $v['value'];
|
||||||
|
}elseif($v['name']=='level_four'){
|
||||||
|
$level_four = $v['value'];
|
||||||
|
}
|
||||||
|
}
|
||||||
$price=(int)$order['price'];
|
$price=(int)$order['price'];
|
||||||
switch ($price) {
|
switch ($price) {
|
||||||
case 1000:
|
case $level_one:
|
||||||
$total_vip = 249;
|
$total_vip = 249;
|
||||||
break;
|
break;
|
||||||
case 2000:
|
case $level_two:
|
||||||
$total_vip = 560;
|
$total_vip = 560;
|
||||||
break;
|
break;
|
||||||
case 5000:
|
case $level_three:
|
||||||
$total_vip = 1550;
|
$total_vip = 1550;
|
||||||
break;
|
break;
|
||||||
case 10000:
|
case $level_four:
|
||||||
$total_vip = 3500;
|
$total_vip = 3500;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$total_vip = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if($total_vip==0){
|
if($total_vip==0){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user