| 226 | |
| 227 | // 商品类活动 |
| 228 | function getProdAct(act) { |
| 229 | return new Promise((resove) => { |
| 230 | const body = { taskIds: act.tasks.map((task) => task.id).toString() } |
| 231 | $.post(taskurl('cakebaker_getFeedDetail', JSON.stringify(body)), (error, response, data) => { |
| 232 | try { |
| 233 | const _result = JSON.parse(data).data.result |
| 234 | const _vo = _result[Object.keys(_result).find((key) => Array.isArray(_result[key] && _result[key][0] && _result[key][0].productInfoVos))] |
| 235 | act.subacts = [] |
| 236 | _vo.forEach((_suba) => { |
| 237 | const _subact = { |
| 238 | _raw: _suba, |
| 239 | id: _suba.taskId, |
| 240 | name: _suba.taskName, |
| 241 | times: _suba.times, |
| 242 | maxTimes: _suba.maxTimes, |
| 243 | waitDuration: _suba.waitDuration === 0 ? 1 : _suba.waitDuration, |
| 244 | isProd: _suba.productInfoVos ? true : false, |
| 245 | tasks: [] |
| 246 | } |
| 247 | _suba.productInfoVos.slice(0, 5).forEach((_prodvo) => { |
| 248 | const _taskname = _prodvo.skuName || _prodvo.title || _prodvo.shopName || _prodvo.taskName || '未知名称' |
| 249 | _subact.tasks.push({ |
| 250 | _raw: _prodvo, |
| 251 | id: _prodvo.itemId, |
| 252 | name: _taskname |
| 253 | }) |
| 254 | }) |
| 255 | act.subacts.push(_subact) |
| 256 | }) |
| 257 | } catch (e) { |
| 258 | $.log(`❗️ ${$.name}, 执行商品类活动!`, ` error = ${error || e}`, `response = ${JSON.stringify(response)}`, `data = ${data}`, '') |
| 259 | } finally { |
| 260 | resove() |
| 261 | } |
| 262 | }) |
| 263 | }) |
| 264 | } |
| 265 | |
| 266 | function sendtask(act, task, isClaim = false) { |
| 267 | return new Promise((resove) => { |