onlineEnterpriseId . ' WHERE deleteStatus=' . StatusCode::$standard . ' AND enableStatus='.StatusCode::$standard.' AND auditStatus=' . StatusCode::$auditStatus['auditPass'] . ' AND grantStartTime<' . $nowTime . ' AND grantEndTime> ' . $nowTime . ' AND totalNum>receiveNum AND grantType=' . $selectParams['grantType'].' AND couponType='.StatusCode::$couponType['commonly']; if (!empty($extends)) { $sql .= $extends; } $dbResult = $object->query($sql); if ($dbResult === false) { echo '优惠券查询错误' . $object->error() . PHP_EOL; exit; } if (empty($dbResult)) { echo '没有可领取的优惠券' . PHP_EOL; exit; } return $dbResult; } /** * 验证优惠券,自己可以领取那些 * @param DUserCoupon $object * @param $coupon * @param $params * @return mixed */ public function checkCoupon(DUserCoupon $object, $coupon, $params) { foreach ($coupon as $key => $val) { $coupon[$key]['allowNum'] = $val['allowNum']; if ($val['receiveNum'] >= $val['totalNum']){ echo '优惠券'.$val['id'].'已经领取完了'.PHP_EOL; unset($coupon[$key]); continue; } $dbResult = $object->count(['couponId' => $val['id'], 'userId' => $params['userCenterId']]); if ($dbResult === false) { echo '领取记录查询失败' . $object->error() . PHP_EOL; exit; } if ($dbResult >= $val['allowNum']){ echo '优惠券'.$val['id'].'已经领取了'.$dbResult.'张,每人限领取'.$val['allowNum'].'张'.PHP_EOL; unset($coupon[$key]); continue; } //剩余数量不足每人领取数量 if ($val['receiveNum']+$val['allowNum'] > $val['totalNum']){ $rec = $val['totalNum'] - $val['receiveNum']; $coupon[$key]['allowNum'] = $rec; } } if (empty($coupon)) { echo '优惠券都领取过了' . PHP_EOL; exit; } return $coupon; } /** * 添加领取记录 * @param DUserCoupon $object * @param $coupon * @param $params */ public function add(DUserCoupon $object, $coupon, $params) { $insert = []; foreach ($coupon as $key => $val) { for ($i = 0;$i < $val['allowNum'];$i++){ $insert[] = [ 'couponId' => $val['id'], 'name' => $val['name'], 'remark' => $val['remark'], 'couponType' => $val['couponType'], 'reducePrice' => $val['reducePrice'], 'minPrice' => $val['minPrice'], 'startTime' => $val['startTime'], 'endTime' => $val['endTime'], 'applyRange' => $val['applyRange'], 'categoryCollect' => $val['categoryCollect'], 'brandCollect' => $val['brandCollect'], 'goodsCollect' => $val['goodsCollect'], 'isExpire' => StatusCode::$delete, 'isUse' => StatusCode::$standard, 'userId' => $params['userCenterId'], 'useShop' => $val['useShop'], 'customerId' => $params['customerId'], 'source' => $val['grantType'], 'createTime' => time(), 'updateTime' => time(), 'customerIds' => $val['customerIds'], 'isMutex' => isset($val['isMutex']) ? $val['isMutex'] : StatusCode::$standard, ]; } } $dbResult = $object->insert($insert, true); if ($dbResult === false) { echo '操作数据库失败' . $object->error() . PHP_EOL; exit(); } echo '优惠券发送成功' . PHP_EOL; } /** * @param DCoupon $object * @param $coupon * @param $params */ public function receiveNumIncr(DCoupon $object, $coupon, $params,$step=1) { foreach ($coupon as $val) { $sql = 'UPDATE qianniao_coupon_' . $this->onlineEnterpriseId . ' SET receiveNum=receiveNum+' . $val['allowNum'] . ' WHERE id=' . $val['id']; $dbResult = $object->query($sql); if ($dbResult === false) { echo '操作数据库失败' . $object->error() . PHP_EOL; exit(); } echo '增加' . $val['id'] . '领取数量成功' . PHP_EOL; } } }