@@ -99,10 +99,15 @@ detailAction = async (request) => {
99
99
where : {
100
100
user_id : request . query . openIdUserName
101
101
} ,
102
- // attributes: [
103
- // 'number'
104
- // ],
105
102
} )
103
+ let allnumber = 0 ;
104
+
105
+ if ( oldNumber . length > 0 ) {
106
+ for ( let i = 0 ; i < oldNumber . length ; i ++ ) {
107
+ const element = oldNumber [ i ] ;
108
+ allnumber += element . number
109
+ }
110
+ }
106
111
return {
107
112
results : {
108
113
info,
@@ -121,8 +126,112 @@ detailAction = async (request) => {
121
126
catch ( e ) {
122
127
return { results : e , dataBaseError : true }
123
128
}
129
+ } ;
130
+
131
+ goodsList = async ( request ) => {
132
+ try {
133
+ const categoryId = request . query . categoryId ;
134
+ const isNew = request . query . isNew ;
135
+ const isHot = request . query . isHot ;
136
+ let order = request . query . order ;
137
+ let goodsList = [ ] ;
138
+
139
+ if ( categoryId ) {
140
+ // 获得商品列表
141
+ goodsList = await models . nideshop_goods . findAndCountAll ( {
142
+ where : {
143
+ "category_id" : categoryId
144
+ } ,
145
+ } ) ;
146
+ // 获得当前分类
147
+ const currentNav = await models . nideshop_category . findAndCountAll ( {
148
+ where : {
149
+ "id" : categoryId
150
+ }
151
+ } ) ;
152
+
153
+ // 如果goodslist没有可能这个分类是主分类 例如: 居家,厨具
154
+ if ( goodsList . length == 0 ) {
155
+ // 找到与之相关的子类, 再找到与子类相关的商品列表
156
+ let subIds = await models . nideshop_category . findAndCountAll ( {
157
+ where : {
158
+ "parent_id" : categoryId
159
+ } ,
160
+ attributes : [
161
+ 'id' ,
162
+ ] ,
163
+ } ) ;
164
+ // 需要变成数组形式, childCategoryIds [1020000,1036002]
165
+ if ( subIds . length != 0 ) {
166
+ subIds = subIds . map ( ( item ) => {
167
+ return item . id ;
168
+ } ) ;
169
+ } ;
170
+ goodsList = await models . nideshop_goods . findAndCountAll ( {
171
+ where : {
172
+ category_id : {
173
+ [ Op . in ] : subIds
174
+ } ,
175
+ } ,
176
+ limit : 50 ,
177
+ } ) ;
178
+ } ;
179
+ return {
180
+ results : {
181
+ data : goodsList ,
182
+ currentNav : currentNav [ 0 ]
183
+ } ,
184
+ dataBaseError : false
185
+ }
186
+ } ;
187
+
188
+ if ( ! order ) {
189
+ order = '' ;
190
+ orderBy = "id"
191
+ } else {
192
+ orderBy = "retail_price"
193
+ } ;
194
+ /**
195
+ * 新品列表
196
+ */
197
+ if ( isNew ) {
198
+ goodsList = await models . nideshop_goods . findAndCountAll ( {
199
+ where : {
200
+ is_new : isNew
201
+ } ,
202
+ order : [ orderBy , order ] ,
203
+ } ) ;
204
+ return {
205
+ results : {
206
+ data : goodsList ,
207
+ } ,
208
+ dataBaseError : false
209
+ }
210
+ } ;
211
+ /**
212
+ * 热门商品
213
+ */
214
+ if ( isHot ) {
215
+ goodsList = await models . nideshop_goods . findAndCountAll ( {
216
+ where : {
217
+ is_hot : isHot
218
+ } ,
219
+ order : [ orderBy , order ] ,
220
+ } ) ;
221
+ return {
222
+ results : {
223
+ data : goodsList ,
224
+ } ,
225
+ dataBaseError : false
226
+ }
227
+ }
228
+ }
229
+ catch ( e ) {
230
+ return { results : e , dataBaseError : true }
231
+ }
124
232
}
125
233
126
234
module . exports = {
127
235
detailAction,
236
+ goodsList
128
237
}
0 commit comments