|
|
@@ -367,14 +367,27 @@ class UserController extends BaseController {
|
|
|
}
|
|
|
|
|
|
// 分期的总期数
|
|
|
- $instalment = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
|
|
|
- // 是否有未完成的BD类型的分期订单
|
|
|
- $stage = Instalment::getOneStage($baseInfo['ID'], 'BD');
|
|
|
- // 如果分期未完成,切已经升级到顶级,则商品列表只返回分期商品
|
|
|
- if ($isMax === true) {
|
|
|
- $stage += (!$stage || ($stage >= $instalment)) ? 1000 : 1;
|
|
|
+ $instalmentConfig = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
|
|
|
+ // 查询是否有FX的分期订单
|
|
|
+ $stageFX = Instalment::getOneStage($baseInfo['ID'], 'FX');
|
|
|
+ if ($stageFX && $stageFX < $instalmentConfig) {
|
|
|
+ $condition = ") AND INSTALMENT = 1000";
|
|
|
} else {
|
|
|
- $stage += ($stage >= $instalment) ? 1000 : 1;
|
|
|
+ // 是否有未完成的BD类型的分期订单
|
|
|
+ $stageBD = Instalment::getOneStage($baseInfo['ID'], 'BD');
|
|
|
+ if ($isMax === true) {
|
|
|
+ if ($stageBD > 0 && $stageBD < $instalmentConfig) {
|
|
|
+ $condition = ") AND (INSTALMENT = " . ($stageBD + 1) . ")";
|
|
|
+ } else {
|
|
|
+ $condition = ") AND INSTALMENT = 0";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ($stageBD > 0 && $stageBD < $instalmentConfig) {
|
|
|
+ $condition = ") AND (INSTALMENT = 0 OR INSTALMENT = " . ($stageBD + 1) . ")";
|
|
|
+ } else {
|
|
|
+ $condition = ") AND INSTALMENT = 0";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//所有自选商品
|
|
|
@@ -390,14 +403,9 @@ class UserController extends BaseController {
|
|
|
$query_condition.= " OR FIND_IN_SET(3,GIFT_TYPE)>0";
|
|
|
}
|
|
|
|
|
|
- // 如果等级已经是顶级 && 没有分期订单,则不查询商品
|
|
|
- if ($stage >= 1000) {
|
|
|
- $query_condition.= ") AND (INSTALMENT = :INSTALMENT)";
|
|
|
- } else {
|
|
|
- $query_condition.= ") AND ((INSTALMENT = 0) OR (INSTALMENT = :INSTALMENT))";
|
|
|
- }
|
|
|
+ $query_condition .= $condition;
|
|
|
|
|
|
- $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition, [':INSTALMENT' => $stage])->orderBy('SORT ASC')->asArray()->all();
|
|
|
+ $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition)->orderBy('SORT ASC')->asArray()->all();
|
|
|
foreach ($allGoods as &$goods) {
|
|
|
$goods['TAX'] = Tool::calculateTax($goods['SELL_PRICE'], $goods['TAX_RATE']);
|
|
|
}
|