commit
c63f218228
@ -114,7 +114,7 @@ class StoreBranchProductController extends BaseAdminController
|
||||
public function delete()
|
||||
{
|
||||
$params = (new StoreProductValidate())->post()->goCheck('delete');
|
||||
StoreProductLogic::delete($params);
|
||||
StoreBranchProductLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
@ -12,8 +12,9 @@ use app\common\model\user\User;
|
||||
use app\common\model\user\UserAddress;
|
||||
use app\common\model\vip_flow\VipFlow;
|
||||
use support\Db;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
class UserLists extends BaseAdminDataLists implements ListsExcelInterface
|
||||
class UserLists extends BaseAdminDataLists implements ListsExcelInterface,ListsSearchInterface
|
||||
{
|
||||
/**
|
||||
* @notes 搜索条件
|
||||
@ -23,8 +24,11 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
$allowSearch = ['keyword', 'channel', 'create_time_start', 'create_time_end'];
|
||||
return array_intersect(array_keys($this->params), $allowSearch);
|
||||
return [
|
||||
'=' => ['store_id','user_ship','is_disable'],
|
||||
'%like%' => ['account','mobile'],
|
||||
'%pipe_like%' => ['nickname'=>'nickname|real_name'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -39,28 +43,15 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$params = $this->params;
|
||||
$where = [];
|
||||
if(isset($params['nickname']) && $params['nickname'] != ''){
|
||||
$where[] = ['real_name|nickname','like','%'.$params['nickname'].'%'];
|
||||
}
|
||||
if(isset($params['account']) && $params['account'] != ''){
|
||||
$where[] = ['account','like','%'.$params['account'].'%'];
|
||||
}
|
||||
if(isset($params['mobile']) && $params['mobile'] != ''){
|
||||
$where[] = ['mobile','like','%'.$params['mobile'].'%'];
|
||||
}
|
||||
if(isset($params['is_disable']) && $params['is_disable'] != ''){
|
||||
$where[] = ['is_disable','=', $params['is_disable']];
|
||||
}
|
||||
$field = "id,nickname,real_name,sex,avatar,account,mobile,channel,create_time,purchase_funds,user_ship,
|
||||
label_id,integral,now_money,total_recharge_amount";
|
||||
$lists = User::withSearch($this->setSearch(), $this->params)->where($where)
|
||||
$lists = User::where($this->searchWhere)
|
||||
->with(['user_ship','user_label'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->field($field)
|
||||
->order('id desc')
|
||||
->select()->each(function($data){
|
||||
->select()
|
||||
->each(function($data){
|
||||
$data['sex_text'] = $data->sex_text;
|
||||
})->toArray();
|
||||
foreach ($lists as &$item) {
|
||||
@ -115,21 +106,8 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
$params = $this->params;
|
||||
$where = [];
|
||||
if(isset($params['nickname']) && $params['nickname'] != ''){
|
||||
$where[] = ['nickname','like','%'.$params['nickname'].'%'];
|
||||
}
|
||||
if(isset($params['account']) && $params['account'] != ''){
|
||||
$where[] = ['account','like','%'.$params['account'].'%'];
|
||||
}
|
||||
if(isset($params['mobile']) && $params['mobile'] != ''){
|
||||
$where[] = ['mobile','like','%'.$params['mobile'].'%'];
|
||||
}
|
||||
if(isset($params['is_disable']) && $params['is_disable'] != ''){
|
||||
$where[] = ['is_disable','=', $params['is_disable']];
|
||||
}
|
||||
return User::withSearch($this->setSearch(), $this->params)->where($where)->count();
|
||||
|
||||
return User::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
|
||||
|
@ -55,6 +55,7 @@ class StoreCashFinanceFlowLogic extends BaseLogic
|
||||
try {
|
||||
StoreCashFinanceFlow::where('id', $params['id'])->update([
|
||||
'file' => $params['file'],
|
||||
'receipts' => $params['receipts']??0,
|
||||
'status'=>1,
|
||||
'admin_id'=>$params['admin_id'],
|
||||
]);
|
||||
|
@ -5,10 +5,14 @@ namespace app\api\controller;
|
||||
use app\admin\logic\store_product\StoreProductLogic;
|
||||
use app\admin\validate\tools\GenerateTableValidate;
|
||||
use app\admin\logic\tools\GeneratorLogic;
|
||||
use app\api\logic\order\OrderLogic as OrderOrderLogic;
|
||||
use app\common\logic\PayNotifyLogic;
|
||||
use app\common\logic\store_order\StoreOrderLogic;
|
||||
use app\common\model\Config as ModelConfig;
|
||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||
use app\common\model\store_order\StoreOrder;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use app\common\model\user\User;
|
||||
use app\common\service\pay\PayService;
|
||||
use app\common\service\PushService;
|
||||
use app\common\service\wechat\WechatTemplate;
|
||||
@ -179,10 +183,10 @@ return json($a);
|
||||
|
||||
public function push()
|
||||
{
|
||||
$name=$this->request->get('name');//用户名
|
||||
$uid=$this->request->get('uid');//用户id
|
||||
$type=$this->request->get('type','INDUSTRYMEMBERS');//类型
|
||||
$a= PushService::push($name, $uid, ['type'=>$type,'msg'=>'支付超时,订单已被取消,请重新提交订单','data'=>['id'=>5]]);
|
||||
return $this->success('ok',['data'=> $a]);
|
||||
$name = $this->request->get('name'); //用户名
|
||||
$uid = $this->request->get('uid'); //用户id
|
||||
$type = $this->request->get('type', 'INDUSTRYMEMBERS'); //类型
|
||||
$a = PushService::push($name, $uid, ['type' => $type, 'msg' => '支付超时,订单已被取消,请重新提交订单', 'data' => ['id' => 5]]);
|
||||
return $this->success('ok', ['data' => $a]);
|
||||
}
|
||||
}
|
||||
|
@ -65,20 +65,23 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
|
||||
->toArray();
|
||||
$off_activity = Config::where('name', 'off_activity')->value('value');
|
||||
$user_ship = User::where('id', $userId)->value('user_ship');
|
||||
if (in_array($user_ship, [4, 5, 6, 7])) {
|
||||
$off_activity=1;
|
||||
$field = 'product_id,image,price,cost,store_name,unit,delete_time,vip_price,top_cate_id';
|
||||
if (in_array($user_ship, [4, 6, 7])) {
|
||||
$field = 'product_id,image,cost price,cost,store_name,unit,delete_time,vip_price,top_cate_id';
|
||||
}
|
||||
$this->user_ship=$user_ship;
|
||||
$this->off_activity=$off_activity;
|
||||
$this->user_ship = $user_ship;
|
||||
$this->off_activity = $off_activity;
|
||||
foreach ($list as $key => &$item) {
|
||||
$find = StoreBranchProduct::where(['product_id' => $item['product_id'], 'store_id' => $item['store_id']])
|
||||
->field('product_id,image,price,cost,store_name,unit,delete_time,vip_price')
|
||||
->field($field)
|
||||
->withTrashed()
|
||||
->find();
|
||||
|
||||
if ($find) {
|
||||
if($off_activity==1){
|
||||
$this->activity_price = bcadd(bcmul($find['cost'],$item['cart_num'], 2), $this->activity_price, 2);
|
||||
if ($off_activity == 1) {
|
||||
$this->activity_price = bcadd(bcmul($find['cost'], $item['cart_num'], 2), $this->activity_price, 2);
|
||||
}
|
||||
if ($off_activity == 0 && $user_ship == 5 && $find['top_cate_id'] == 15189) {
|
||||
$find['price'] = $find['cost'];
|
||||
}
|
||||
$item['goods_total_price'] = bcmul($item['cart_num'], $find['price'], 2);
|
||||
$this->total_price = bcadd($this->total_price, $item['goods_total_price'], 2);
|
||||
@ -111,24 +114,28 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
|
||||
|
||||
public function extend()
|
||||
{
|
||||
$data= [
|
||||
$data = [
|
||||
'off_activity' => $this->off_activity,
|
||||
'total_price' => $this->total_price,
|
||||
'msg' => '',
|
||||
'pay_price' => $this->total_price
|
||||
];
|
||||
if($this->user_ship==0){
|
||||
$data['msg']='您已选购满500元,支付成功后即可获得'.bcmul($this->total_price,0.1,2).'元品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
if ($this->user_ship == 0) {
|
||||
if ($data['pay_price'] < 500) {
|
||||
$data['msg'] = '还差' . bcsub(500, $data['pay_price'], 2) . '即可获得10%的品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
} else {
|
||||
$data['msg'] = '您已选购满500元,支付成功后即可获得' . bcmul($data['pay_price'], 0.1, 2) . '元品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
}
|
||||
}
|
||||
if($this->off_activity==1){//1
|
||||
$data['pay_price']=$this->activity_price;
|
||||
if($this->activity_price<500){
|
||||
if($this->user_ship==0){
|
||||
$data['msg']='还差'.bcsub(500,$this->activity_price,2).'即可获得10%的品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
if ($this->off_activity == 1) { //1
|
||||
$data['pay_price'] = $this->activity_price;
|
||||
if ($data['pay_price'] < 500) {
|
||||
if ($this->user_ship == 0) {
|
||||
$data['msg'] = '还差' . bcsub(500, $this->activity_price, 2) . '即可获得10%的品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
}
|
||||
}else{
|
||||
if($this->user_ship==0){
|
||||
$data['msg']= '您已选购满500元,支付成功后即可获得'.bcmul($this->activity_price,0.1,2).'元品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
} else {
|
||||
if ($this->user_ship == 0) {
|
||||
$data['msg'] = '您已选购满500元,支付成功后即可获得' . bcmul($this->activity_price, 0.1, 2) . '元品牌礼品兑换券,可到线下门店兑换礼品。';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ use app\common\model\store_order\StoreOrder;
|
||||
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use Picqer\Barcode\BarcodeGeneratorPNG;
|
||||
|
||||
/**
|
||||
* 零售订单列表
|
||||
@ -80,6 +81,11 @@ class OrderList extends BaseAdminDataLists implements ListsSearchInterface
|
||||
if($item['verify_img']){
|
||||
$item['verify_img'] = 'https://'.$this->request->host(true).$item['verify_img'];
|
||||
}
|
||||
if($item['is_writeoff']==0){
|
||||
$generator = new BarcodeGeneratorPNG();
|
||||
$tmpFilename = $generator->getBarcode($item['verify_code'], $generator::TYPE_CODE_128);
|
||||
$item['verify_base64'] ='data:image/png;base64,'.base64_encode($tmpFilename);
|
||||
}
|
||||
})
|
||||
->toArray();
|
||||
|
||||
|
@ -79,23 +79,24 @@ class ProductLists extends BaseApiDataLists implements ListsSearchInterface, Lis
|
||||
} else {
|
||||
$order = [$field => $order];
|
||||
}
|
||||
$fields = 'id,product_id,cate_id,store_name,cost,store_id,vip_price,purchase,price,bar_code,image,sales,store_info,delete_time,unit,batch,top_cate_id,two_cate_id,stock';
|
||||
$fields = 'id,product_id,top_cate_id,cate_id,store_name,cost,store_id,vip_price,purchase,price,bar_code,image,sales,store_info,delete_time,unit,batch,top_cate_id,two_cate_id,stock';
|
||||
$off_activity = Config::where('name', 'off_activity')->value('value');
|
||||
if($off_activity==1){
|
||||
$tag='赠10%品牌礼品券';
|
||||
}else{
|
||||
$tag='';
|
||||
if ($off_activity == 1) {
|
||||
$tag = '赠10%品牌礼品券';
|
||||
} else {
|
||||
$tag = '';
|
||||
}
|
||||
$uid=0;
|
||||
if($this->request->get('uid',0)>0){
|
||||
$uid=$this->request->get('uid',0);
|
||||
}elseif( $this->userId > 0){
|
||||
$uid=$this->userId;
|
||||
$uid = 0;
|
||||
if ($this->request->get('uid', 0) > 0) {
|
||||
$uid = $this->request->get('uid', 0);
|
||||
} elseif ($this->userId > 0) {
|
||||
$uid = $this->userId;
|
||||
}
|
||||
if ($uid>0) {
|
||||
$user_ship=-1;
|
||||
if ($uid > 0) {
|
||||
$user_ship = User::where('id', $uid)->value('user_ship');
|
||||
if (in_array($user_ship, [4, 5, 6, 7])) {
|
||||
$off_activity = 1;
|
||||
if (in_array($user_ship, [4, 6, 7])) {
|
||||
$fields = 'id,product_id,top_cate_id,cate_id,store_name,cost,store_id,vip_price,purchase,cost price,bar_code,image,sales,store_info,delete_time,unit,batch,top_cate_id,two_cate_id,stock';
|
||||
}
|
||||
}
|
||||
$this->off_activity = $off_activity;
|
||||
@ -106,9 +107,11 @@ class ProductLists extends BaseApiDataLists implements ListsSearchInterface, Lis
|
||||
->with(['className', 'unitName'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order($order)
|
||||
// ->page($this->limitOffset +1,$this->limitLength)
|
||||
->select()->each(function ($item) use($tag){
|
||||
$item['tag']=$tag;
|
||||
->select()->each(function ($item) use ($tag, $off_activity, $user_ship) {
|
||||
if ($off_activity == 0 && $user_ship == 5 && $item['top_cate_id'] == 15189) {
|
||||
$item['price'] = $item['cost'];
|
||||
}
|
||||
$item['tag'] = $tag;
|
||||
return $item;
|
||||
})
|
||||
->toArray();
|
||||
|
@ -71,7 +71,7 @@ class OrderLogic extends BaseLogic
|
||||
self::setError('购物车为空');
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
// try {
|
||||
self::$total_price = 0;
|
||||
self::$pay_price = 0;
|
||||
self::$cost = 0; //成本由采购价替代原成本为门店零售价
|
||||
@ -84,13 +84,13 @@ class OrderLogic extends BaseLogic
|
||||
self::$fresh_price = 0; //生鲜金额
|
||||
/** 计算价格 */
|
||||
$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,top_cate_id';
|
||||
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase,product_id,top_cate_id,store_info';
|
||||
foreach ($cart_select as $k => $v) {
|
||||
$find = StoreBranchProduct::where(['product_id' => $v['product_id'], 'store_id' => $params['store_id']])->field($field)->find();
|
||||
if (!$find) {
|
||||
// unset($cart_select[$k]);
|
||||
// continue;
|
||||
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase, id product_id,cate_id';
|
||||
$field = 'id branch_product_id,store_name,image,unit,price,vip_price,cost,purchase, id product_id,cate_id,store_info';
|
||||
$find = StoreProduct::where(['id' => $v['product_id']])->field($field)->find();
|
||||
if ($find) {
|
||||
$cate_id = StoreCategory::where('id', $find['cate_id'])->value('pid');
|
||||
@ -108,11 +108,14 @@ class OrderLogic extends BaseLogic
|
||||
}
|
||||
unset($cart_select[$k]['id']);
|
||||
$cart_select[$k]['total_price'] = bcmul($v['cart_num'], $find['price'], 2); //订单总价
|
||||
if ($off_activity == 1 || ($user != null && in_array($user['user_ship'], [4, 5, 6, 7]))) {
|
||||
if ($off_activity == 1 || ($user != null && in_array($user['user_ship'], [4, 6, 7]))) {
|
||||
$price = $find['cost'];
|
||||
} else {
|
||||
$price = $find['price'];
|
||||
}
|
||||
if($off_activity==0 && $user['user_ship']==5 && $find['top_cate_id']==15189){
|
||||
$price=$find['cost'];
|
||||
}
|
||||
$cart_select[$k]['price'] = $price;
|
||||
$cart_select[$k]['cost'] = $find['cost'];
|
||||
$cart_select[$k]['vip'] = 0;
|
||||
@ -133,16 +136,17 @@ class OrderLogic extends BaseLogic
|
||||
$cart_select[$k]['cart_num'] = $v['cart_num'];
|
||||
$cart_select[$k]['verify_code'] = $params['verify_code'] ?? '';
|
||||
$cart_select[$k]['vip_frozen_price'] = 0;
|
||||
$cart_select[$k]['store_info'] = $find['store_info'];
|
||||
//会员待返回金额
|
||||
if ($user && $off_activity == 0) {
|
||||
if ($user['user_ship'] == 4) {
|
||||
//商户
|
||||
$cart_select[$k]['vip_frozen_price'] = bcsub($cart_select[$k]['pay_price'], $cart_select[$k]['store_price'], 2);
|
||||
} else {
|
||||
//其他会员
|
||||
$cart_select[$k]['vip_frozen_price'] = bcsub($cart_select[$k]['pay_price'], $cart_select[$k]['vip_price'], 2);
|
||||
}
|
||||
}
|
||||
// if ($user && $off_activity == 0) {
|
||||
// if ($user['user_ship'] == 4) {
|
||||
// //商户
|
||||
// $cart_select[$k]['vip_frozen_price'] = bcsub($cart_select[$k]['pay_price'], $cart_select[$k]['store_price'], 2);
|
||||
// } else {
|
||||
// //其他会员
|
||||
// $cart_select[$k]['vip_frozen_price'] = bcsub($cart_select[$k]['pay_price'], $cart_select[$k]['vip_price'], 2);
|
||||
// }
|
||||
// }
|
||||
// d($cart_select[$k]['pay_price'],$cart_select[$k]['store_price'],$cart_select[$k]['vip_price'] );
|
||||
$cartInfo = $cart_select[$k];
|
||||
$cartInfo['name'] = $find['store_name'];
|
||||
@ -159,7 +163,7 @@ class OrderLogic extends BaseLogic
|
||||
self::$cost = bcadd(self::$cost, $cart_select[$k]['purchase'], 2);
|
||||
self::$store_price = bcadd(self::$store_price, $cart_select[$k]['store_price'], 2); //商户价
|
||||
self::$deduction_price = bcadd(self::$deduction_price, $deduction_price, 2); //抵扣金额
|
||||
self::$frozen_money = bcadd(self::$frozen_money, $cart_select[$k]['vip_frozen_price'], 2); //返还金额
|
||||
// self::$frozen_money = bcadd(self::$frozen_money, $cart_select[$k]['vip_frozen_price'], 2); //返还金额
|
||||
//计算生鲜
|
||||
if ($createOrder == 1 && $find['top_cate_id'] == 15201) {
|
||||
self::$fresh_price = bcadd(self::$fresh_price, $cart_select[$k]['pay_price'], 2);
|
||||
@ -245,10 +249,10 @@ class OrderLogic extends BaseLogic
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
// } catch (\Exception $e) {
|
||||
// self::setError($e->getMessage());
|
||||
// return false;
|
||||
// }
|
||||
return ['order' => $order, 'cart_list' => $cart_select, 'shopInfo' => $store['near_store']];
|
||||
}
|
||||
|
||||
@ -276,15 +280,15 @@ class OrderLogic extends BaseLogic
|
||||
$_order['uid'] = $uid;
|
||||
$_order['spread_uid'] = $params['spread_uid'] ?? 0;
|
||||
$_order['real_name'] = $user['real_name'] ?? '';
|
||||
$_order['mobile'] = $user['mobile'] ?? '';
|
||||
$_order['user_phone'] = $user['mobile'] ?? '';
|
||||
$_order['pay_type'] = $orderInfo['order']['pay_type'];
|
||||
$_order['verify_code'] = $verify_code;
|
||||
$_order['reservation_time'] = null;
|
||||
$_order['reservation'] = $params['reservation'] ?? 0; //是否需要预约
|
||||
if (isset($params['reservation_time']) && $params['reservation_time']) {
|
||||
$_order['reservation_time'] = $params['reservation_time'];
|
||||
$_order['reservation'] = YesNoEnum::YES;
|
||||
}
|
||||
$_order['reservation'] = 0;$params['reservation'] ?? 0; //是否需要预约
|
||||
// if (isset($params['reservation_time']) && $params['reservation_time']) {
|
||||
// $_order['reservation_time'] = $params['reservation_time'];
|
||||
// $_order['reservation'] = YesNoEnum::YES;
|
||||
// }
|
||||
if ($addressId > 0 && $uid > 0) {
|
||||
$address = UserAddress::where(['id' => $addressId, 'uid' => $uid])->find();
|
||||
if ($address) {
|
||||
@ -502,6 +506,11 @@ class OrderLogic extends BaseLogic
|
||||
if ($find['verify_img']) {
|
||||
$find['verify_img'] = $url . $find['verify_img'];
|
||||
}
|
||||
if($find['is_writeoff']==0){
|
||||
$generator = new BarcodeGeneratorPNG();
|
||||
$tmpFilename = $generator->getBarcode($find['verify_code'], $generator::TYPE_CODE_128);
|
||||
$find['verify_base64'] = 'data:image/png;base64,'.base64_encode($tmpFilename);
|
||||
}
|
||||
//处理返回最近的店铺
|
||||
if ($param['lat'] && $param['long']) {
|
||||
$storeAll = SystemStore::field('id,name,phone,address,detailed_address,latitude,longitude')->select()->toArray();
|
||||
|
@ -148,7 +148,7 @@ class CapitalFlowLogic extends BaseLogic
|
||||
{
|
||||
switch ($category) {
|
||||
case 'user_balance_recharge':
|
||||
return "用户充值{$amount}元";
|
||||
return "用户增加{$amount}元";
|
||||
case 'user_order_purchase_pay':
|
||||
return "用户采购款支付{$amount}元";
|
||||
case 'store_margin':
|
||||
@ -172,7 +172,7 @@ class CapitalFlowLogic extends BaseLogic
|
||||
case 'system_balance_reduce':
|
||||
return "系统减少余额{$amount}元";
|
||||
case 'user_balance_recharge_refund':
|
||||
return "用户充值退还{$amount}元";
|
||||
return "用户减少{$amount}元";
|
||||
default:
|
||||
return "订单支付{$amount}元";
|
||||
}
|
||||
|
@ -169,29 +169,29 @@ class CommissionLogic extends BaseLogic
|
||||
$fees = bcmul($pay_price, $userRate, 2);
|
||||
if ($fees > 0) {
|
||||
//记录用户余额收入
|
||||
if ($uid) {
|
||||
if(in_array($enum,[14,15])&&$userRate==0.05){
|
||||
$purchase_funds=User::where('id', $uid)->value('purchase_funds');
|
||||
if($purchase_funds>0){
|
||||
$fees_two = bcmul($purchase_funds, $userRate, 2);
|
||||
if($fees_two<$fees){
|
||||
$fees=$fees_two;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($enum==12&&$userRate==0.07){
|
||||
$purchase_funds=User::where('id', $uid)->value('purchase_funds');
|
||||
if($purchase_funds>0){
|
||||
$fees_two = bcmul($purchase_funds, $userRate, 2);
|
||||
if($fees_two<$fees){
|
||||
$fees=$fees_two;
|
||||
}
|
||||
}
|
||||
}
|
||||
$GiveUser = User::where('id', $order['uid'])->find();
|
||||
$capitalFlowDao = new CapitalFlowLogic($GiveUser);
|
||||
$capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees);
|
||||
}
|
||||
// if ($uid) {
|
||||
// if(in_array($enum,[14,15])&&$userRate==0.05){
|
||||
// $purchase_funds=User::where('id', $uid)->value('purchase_funds');
|
||||
// if($purchase_funds>0){
|
||||
// $fees_two = bcmul($purchase_funds, $userRate, 2);
|
||||
// if($fees_two<$fees){
|
||||
// $fees=$fees_two;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if($enum==12&&$userRate==0.07){
|
||||
// $purchase_funds=User::where('id', $uid)->value('purchase_funds');
|
||||
// if($purchase_funds>0){
|
||||
// $fees_two = bcmul($purchase_funds, $userRate, 2);
|
||||
// if($fees_two<$fees){
|
||||
// $fees=$fees_two;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// $GiveUser = User::where('id', $order['uid'])->find();
|
||||
// $capitalFlowDao = new CapitalFlowLogic($GiveUser);
|
||||
// $capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees);
|
||||
// }
|
||||
$financeLogic->user['uid'] = $order['uid'];
|
||||
$financeLogic->other_arr['vip_uid'] = $uid;
|
||||
$financeLogic->order = $order;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -95,9 +95,7 @@ class PayNotifyLogic extends BaseLogic
|
||||
$capitalFlowDao = new CapitalFlowLogic($user);
|
||||
$capitalFlowDao->userExpense('user_order_balance_pay', 'order', $order['id'], $order['pay_price'], '', 0, $order['store_id']);
|
||||
self::dealProductLog($order);
|
||||
if ($order['shipping_type'] == 3) {
|
||||
// self::descStock($order['id']);
|
||||
}
|
||||
|
||||
self::afterPay($order);
|
||||
if ($order['reservation'] == 1 && in_array($order['shipping_type'], [1, 2])) {
|
||||
$checkArr = [
|
||||
@ -278,9 +276,7 @@ class PayNotifyLogic extends BaseLogic
|
||||
self::afterPay($order, $extra['transaction_id']);
|
||||
// self::addUserSing($order);
|
||||
self::dealProductLog($order);
|
||||
if ($order['shipping_type'] == 3) {
|
||||
self::descStock($order['id']);
|
||||
}
|
||||
|
||||
if (!empty($extra['payer']['openid']) && $order->pay_type == 7) {
|
||||
Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $extra['payer']['openid']], 4);
|
||||
}
|
||||
@ -438,7 +434,7 @@ class PayNotifyLogic extends BaseLogic
|
||||
$uid = $order->uid;
|
||||
$user = User::where('id', $uid)->findOrEmpty();
|
||||
//check store_id
|
||||
if(empty($user->store_id)){
|
||||
if($user->store_id==0){
|
||||
$user->store_id = $order['store_id'];
|
||||
}
|
||||
|
||||
@ -499,10 +495,6 @@ class PayNotifyLogic extends BaseLogic
|
||||
$cashFlowLogic->insert($order['store_id'], $order['pay_price']);
|
||||
self::dealProductLog($order);
|
||||
|
||||
if ($order['shipping_type'] == 3) {
|
||||
self::descStock($order['id']);
|
||||
}
|
||||
|
||||
if ($order && $order['store_id'] && $order['reservation'] !=1) {
|
||||
$params = [
|
||||
'verify_code' => $order['verify_code'],
|
||||
@ -546,9 +538,6 @@ class PayNotifyLogic extends BaseLogic
|
||||
UserProductStorageLogic::add($order);
|
||||
}
|
||||
self::dealProductLog($order);
|
||||
if ($order['shipping_type'] == 3) {
|
||||
self::descStock($order['id']);
|
||||
}
|
||||
|
||||
// if ($order->pay_type == 9) {
|
||||
// $extra['create_time'] = $order['create_time'];
|
||||
@ -811,37 +800,6 @@ class PayNotifyLogic extends BaseLogic
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 扣库存
|
||||
* @param $oid
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public static function descStock($oid)
|
||||
{
|
||||
$updateData = [];
|
||||
$goods_list = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
|
||||
foreach ($goods_list as $v) {
|
||||
$StoreBranchProduct = StoreBranchProduct::where(
|
||||
[
|
||||
'store_id' => $v['store_id'],
|
||||
'product_id' => $v['product_id'],
|
||||
]
|
||||
)->withTrashed()->find();
|
||||
if ($StoreBranchProduct) {
|
||||
$updateData[] = [
|
||||
'id' => $StoreBranchProduct['id'],
|
||||
'stock' => $StoreBranchProduct['stock'] - $v['cart_num'],
|
||||
'sales' => ['inc', $v['cart_num']]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
(new StoreBranchProduct())->saveAll($updateData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加库存
|
||||
* @param $oid
|
||||
|
@ -134,7 +134,8 @@ class StoreFinanceFlowLogic extends BaseLogic
|
||||
*/
|
||||
public function updateStatusUser($id, $uid, $money, $order_id)
|
||||
{
|
||||
StoreFinanceFlow::where('id', $id)->update(['status' => 1]);
|
||||
$flow=StoreFinanceFlow::where('id', $id)->find();
|
||||
StoreFinanceFlow::where('order_id',$order_id)->where('financial_type',$flow['financial_type'])->update(['status'=>1]);
|
||||
$find = User::where('id', $uid)->find();
|
||||
$capitalFlowDao = new CapitalFlowLogic($find);
|
||||
$capitalFlowDao->userIncome('system_balance_add', 'order', $order_id, $money);
|
||||
|
@ -32,16 +32,16 @@ class UserSignLogic extends BaseLogic
|
||||
$list = DictData::where('type_value', 'recharge')->select();
|
||||
foreach( $list as $k=>$v){
|
||||
if($v['name']=='level_one'){
|
||||
$level_one = $v['value'];
|
||||
$level_one = bcadd($v['value'],0,2);
|
||||
}elseif($v['name']=='level_two'){
|
||||
$level_two = $v['value'];
|
||||
$level_two = bcadd($v['value'],0,2);
|
||||
}elseif($v['name']=='level_three' ){
|
||||
$level_three = $v['value'];
|
||||
$level_three = bcadd($v['value'],0,2);
|
||||
}elseif($v['name']=='level_four'){
|
||||
$level_four = $v['value'];
|
||||
$level_four = bcadd($v['value'],0,2);
|
||||
}
|
||||
}
|
||||
$price=(int)$order['price'];
|
||||
$price= bcadd($order['price'],0,2);
|
||||
switch ($price) {
|
||||
case $level_one:
|
||||
$total_vip = 249;
|
||||
@ -62,7 +62,7 @@ class UserSignLogic extends BaseLogic
|
||||
return false;
|
||||
}
|
||||
$count = UserRecharge::where(['uid'=>$order->uid,'paid'=>YesNoEnum::YES])->count();
|
||||
if ($count ==1 && $user_ship>0) {
|
||||
if ($count ==1 && in_array($user_ship,[1,2,3])) {
|
||||
//首充
|
||||
$write = self::write($order, $total_vip, 0, 1, 9);
|
||||
self::write_log($write, $total_vip, 0, 7);
|
||||
|
@ -12,6 +12,7 @@ use app\common\model\order\Cart;
|
||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||
use app\common\model\store_order\StoreOrder;
|
||||
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use app\common\model\user\User;
|
||||
use app\common\service\pay\PayService;
|
||||
@ -207,10 +208,15 @@ class StoreOrderLogic extends BaseLogic
|
||||
'stock' => $stock-$v['cart_num'],
|
||||
'sales' => ['inc', $v['cart_num']]
|
||||
];
|
||||
$updateDataTwo[] = [
|
||||
'id' => $v['product_id'],
|
||||
'sales' => ['inc', $v['cart_num']]
|
||||
];
|
||||
}
|
||||
(new StoreOrderCartInfo())->saveAll($goods_list);
|
||||
$where = ['is_pay' => 0];
|
||||
(new StoreBranchProduct())->saveAll($updateData);
|
||||
(new StoreProduct())->saveAll($updateDataTwo);
|
||||
Cart::whereIn('id', $cartId)->where($where)->update(['is_pay' => 1]);
|
||||
Db::commit();
|
||||
return $order;
|
||||
|
44
app/queue/redis/TaskRechargeQuerySend.php
Normal file
44
app/queue/redis/TaskRechargeQuerySend.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace app\queue\redis;
|
||||
|
||||
use app\common\logic\PayNotifyLogic;
|
||||
use app\common\model\retail\Cashierclass;
|
||||
use app\common\model\store_order\StoreOrder;
|
||||
use app\common\model\user_recharge\UserRecharge;
|
||||
use app\common\service\pay\PayService;
|
||||
use app\common\service\PushService;
|
||||
use Webman\RedisQueue\Consumer;
|
||||
use support\exception\BusinessException;
|
||||
|
||||
/**
|
||||
* 微信条码支付队列消费
|
||||
*/
|
||||
class TaskRechargeQuerySend implements Consumer
|
||||
{
|
||||
// 要消费的队列名
|
||||
public $queue = 'task-recharge-query';
|
||||
|
||||
// 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接`
|
||||
public $connection = 'default';
|
||||
|
||||
// 消费
|
||||
public function consume($data)
|
||||
{
|
||||
$pay = new PayService();
|
||||
$order = [
|
||||
'out_trade_no' => $data['order_id'],
|
||||
];
|
||||
$res = $pay->wechat->query($order);
|
||||
if ($res['trade_state'] == 'SUCCESS' && $res['trade_state_desc'] == '支付成功') {
|
||||
if(isset($data['pay_type']) && $data['pay_type']=='recharge'){
|
||||
PayNotifyLogic::handle('recharge', $res['out_trade_no'], $res);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 消费失败时
|
||||
public function onConsumeFailure(\Throwable $exception, $package)
|
||||
{
|
||||
return $package;
|
||||
}
|
||||
}
|
@ -29,7 +29,7 @@ class SystemStoreStorageLists extends BaseAdminDataLists implements ListsSearchI
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['admin_id', 'staff_id', 'status','type'],
|
||||
'=' => ['admin_id', 'staff_id', 'status', 'type'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -45,12 +45,12 @@ class SystemStoreStorageLists extends BaseAdminDataLists implements ListsSearchI
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$this->searchWhere[] = ['store_id','=',$this->adminInfo['store_id']];//只显示当前门店的入库记录
|
||||
if($this->request->__get('status')==-1){
|
||||
$this->searchWhere[] = ['status','>=',0];
|
||||
$this->searchWhere[] = ['store_id', '=', $this->adminInfo['store_id']]; //只显示当前门店的入库记录
|
||||
if ($this->request->__get('status') == -1) {
|
||||
$this->searchWhere[] = ['status', '>=', 0];
|
||||
}
|
||||
return SystemStoreStorage::where($this->searchWhere)
|
||||
->field(['id', 'store_id', 'admin_id', 'staff_id', 'product_id', 'nums','mark', 'status'])
|
||||
->field(['id', 'store_id', 'admin_id', 'staff_id', 'product_id', 'nums', 'mark', 'status'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['status' => 'aes'])
|
||||
->select()->each(function ($item) {
|
||||
@ -62,9 +62,15 @@ class SystemStoreStorageLists extends BaseAdminDataLists implements ListsSearchI
|
||||
} else {
|
||||
$item['staff_name'] = '无';
|
||||
}
|
||||
$find=StoreProduct::where('id',$item['product_id'])->field('store_name,image')->find();
|
||||
$item['store_name']=$find['store_name'];
|
||||
$item['image']=$find['image'];
|
||||
$find = StoreProduct::where('id', $item['product_id'])->field('store_name,image')->find();
|
||||
if ($find) {
|
||||
$item['store_name'] = $find['store_name'];
|
||||
$item['image'] = $find['image'];
|
||||
} else {
|
||||
$item['store_name'] = '';
|
||||
$item['image'] = '';
|
||||
}
|
||||
|
||||
return $item;
|
||||
})
|
||||
->toArray();
|
||||
@ -81,5 +87,4 @@ class SystemStoreStorageLists extends BaseAdminDataLists implements ListsSearchI
|
||||
{
|
||||
return SystemStoreStorage::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace process;
|
||||
|
||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||
use app\common\model\store_order\StoreOrder;
|
||||
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\user_recharge\UserRecharge;
|
||||
use Webman\RedisQueue\Redis;
|
||||
use Workerman\Crontab\Crontab;
|
||||
|
||||
class Task
|
||||
@ -9,14 +15,48 @@ class Task
|
||||
public function onWorkerStart()
|
||||
{
|
||||
|
||||
// 每5分钟执行一次
|
||||
new Crontab('0 */10 * * * *', function(){
|
||||
$where=['paid'=>0];
|
||||
$where[]=['create_time','<',time() - 600];// 10分钟前创建的订单
|
||||
// 每10分钟执行一次
|
||||
new Crontab('0 */10 * * * *', function () {
|
||||
$where = ['paid' => 0];
|
||||
$where[] = ['create_time', '<', time() - 600]; // 10分钟前创建的订单
|
||||
// 删除10分钟未支付的订单
|
||||
StoreOrder::where($where)->update(['delete_time'=>time()]); // 删除时间设置为当前时间,即删除
|
||||
$oid = StoreOrder::where($where)->column('id'); // 删除时间设置为当前时间,即删除
|
||||
if ($oid) {
|
||||
StoreOrder::where('id', 'in', $oid)->update(['delete_time' => time()]);
|
||||
$arr = StoreOrderCartInfo::where('oid', 'in', $oid)->field('store_id,product_id,cart_num')->select();
|
||||
$updateData = [];
|
||||
$updateDataTwo = [];
|
||||
foreach ($arr as $v) {
|
||||
$updateData[] = [
|
||||
'id' => $v['branch_product_id'],
|
||||
'sales' => ['dec', $v['cart_num']]
|
||||
];
|
||||
$updateDataTwo[] = [
|
||||
'id' => $v['product_id'],
|
||||
'sales' => ['dec', $v['cart_num']]
|
||||
];
|
||||
}
|
||||
(new StoreBranchProduct())->saveAll($updateData);
|
||||
(new StoreProduct())->saveAll($updateDataTwo);
|
||||
}
|
||||
|
||||
// 获取当前时间
|
||||
$now = time();
|
||||
// 计算一个小时前的时间戳
|
||||
$oneHourAgo = $now - 3600;
|
||||
//删除未充值的订单
|
||||
UserRecharge::where('paid', 0)->where('status', 1)->where('create_time', '<', $oneHourAgo)->update(['delete_time' => time()]);
|
||||
});
|
||||
|
||||
new Crontab('0 */1 * * * *', function () {
|
||||
$endTime = time();
|
||||
|
||||
// 计算10分钟前的时间戳
|
||||
$startTime = $endTime - 10 * 60;
|
||||
$arr = UserRecharge::where('paid', 0)->where('status', 1)->whereBetweenTime('create_time', $startTime, $endTime)->column('order_id');
|
||||
foreach ($arr as $v) {
|
||||
Redis::send('task-recharge-query', ['order_id' => $v]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user