KuaishouItemCollectSamplesController.java 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815
  1. package com.ruixuan.isc.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.google.gson.Gson;
  5. import com.kuaidi100.sdk.api.Subscribe;
  6. import com.kuaidi100.sdk.contant.ApiInfoConstant;
  7. import com.kuaidi100.sdk.core.IBaseClient;
  8. import com.kuaidi100.sdk.request.SubscribeParam;
  9. import com.kuaidi100.sdk.request.SubscribeParameters;
  10. import com.kuaidi100.sdk.request.SubscribeReq;
  11. import com.kuaidi100.sdk.response.SubscribeResp;
  12. import com.ruixuan.common.core.controller.BaseController;
  13. import com.ruixuan.common.core.domain.AjaxResult;
  14. import com.ruixuan.common.core.domain.entity.SysUser;
  15. import com.ruixuan.common.core.page.TableDataInfo;
  16. import com.ruixuan.common.utils.Check;
  17. import com.ruixuan.data.utils.ExportExcelUtils;
  18. import com.ruixuan.isc.entity.*;
  19. import com.ruixuan.isc.enums.CompanyEnum;
  20. import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
  21. import com.ruixuan.isc.service.IKuaishouItemListService;
  22. import com.ruixuan.isc.service.IKuaishouPromoterService;
  23. import com.ruixuan.system.service.ISysDeptService;
  24. import com.ruixuan.system.service.ISysRoleService;
  25. import com.ruixuan.system.service.ISysUserService;
  26. import io.swagger.annotations.Api;
  27. import io.swagger.annotations.ApiOperation;
  28. import io.swagger.annotations.ApiParam;
  29. import lombok.extern.slf4j.Slf4j;
  30. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  31. import org.springframework.beans.factory.annotation.Autowired;
  32. import org.springframework.web.bind.annotation.DeleteMapping;
  33. import org.springframework.web.bind.annotation.GetMapping;
  34. import org.springframework.web.bind.annotation.PostMapping;
  35. import org.springframework.web.bind.annotation.PutMapping;
  36. import org.springframework.web.bind.annotation.RequestBody;
  37. import org.springframework.web.bind.annotation.RequestMapping;
  38. import org.springframework.web.bind.annotation.RequestParam;
  39. import org.springframework.web.bind.annotation.ResponseBody;
  40. import org.springframework.web.bind.annotation.RestController;
  41. import javax.servlet.http.HttpServletRequest;
  42. import javax.servlet.http.HttpServletResponse;
  43. import java.io.IOException;
  44. import java.io.OutputStream;
  45. import java.io.UnsupportedEncodingException;
  46. import java.math.BigDecimal;
  47. import java.util.ArrayList;
  48. import java.util.Date;
  49. import java.util.HashMap;
  50. import java.util.List;
  51. import java.util.Map;
  52. /**
  53. * 【商品领样】Controller
  54. *
  55. * @author ruoyi
  56. * @date 2023-02-08
  57. */
  58. @Api(tags = "商品领样")
  59. @RestController
  60. @Slf4j
  61. @RequestMapping("/itemCollectSamples")
  62. public class KuaishouItemCollectSamplesController extends BaseController {
  63. @Autowired
  64. private IKuaishouItemCollectSamplesService kuaishouItemCollectSamplesService;
  65. @Autowired
  66. private ISysRoleService sysRoleService;
  67. @Autowired
  68. private ISysDeptService sysDeptService;
  69. @Autowired
  70. private ISysUserService sysUserService;
  71. @Autowired
  72. private IKuaishouItemListService itemListService;
  73. @Autowired
  74. private IKuaishouPromoterService promoterService;
  75. /**
  76. * 查询【请填写功能名称】列表
  77. */
  78. @GetMapping("/list")
  79. public TableDataInfo list(Long itemId, Long promoterId, Long userId, Integer collectSampleStatus, String itemTitle, String promoterNickName, String promoterPhone,
  80. String consignee, Long itemCreateId, Long collectSampleId
  81. ) {
  82. TableDataInfo tableDataInfo = new TableDataInfo();
  83. try {
  84. Map<String, Object> requestMap = new HashMap<>();
  85. if (!Check.isNull(userId)) {
  86. if (!Check.isNull(collectSampleStatus)) {
  87. String roleId = sysRoleService.getRoleBYUserId(userId);
  88. if (roleId.equals("courtshipManager") || roleId.equals("bdManager") || roleId.equals("associationManager")) { // 经理层级查看部门下所有数据
  89. Long deptId = sysDeptService.getDeptIdByUserId(userId);
  90. List<Long> userIds = sysDeptService.getDeptUserListByDeptId(deptId);
  91. if (roleId.equals("bdManager") || roleId.equals("associationManager")) {
  92. requestMap.put("collectSampleIds", userIds);
  93. } else {
  94. requestMap.put("itemCreateIds", userIds);
  95. }
  96. } else if (roleId.equals("association") || roleId.equals("bd")) { // 社群和bd查看申请人为自己的领样信息
  97. requestMap.put("collectSampleId", userId);
  98. } else if (roleId.equals("courtship")) { // 招商查看创建人为自己的领样信息
  99. requestMap.put("itemCreateId", userId);
  100. }
  101. }
  102. }
  103. if (!Check.isNull(itemId)) {
  104. requestMap.put("itemId", itemId);
  105. }
  106. if (!Check.isNull(promoterId)) {
  107. requestMap.put("promoterId", promoterId);
  108. }
  109. if (!Check.isNull(collectSampleStatus)) {
  110. requestMap.put("collectSampleStatus", collectSampleStatus);
  111. }
  112. if (!Check.isNull(itemTitle)) {
  113. requestMap.put("itemTitle", itemTitle);
  114. }
  115. if (!Check.isNull(promoterNickName)) {
  116. requestMap.put("promoterNickName", promoterNickName);
  117. }
  118. if (!Check.isNull(promoterPhone)) {
  119. requestMap.put("promoterPhone", promoterPhone);
  120. }
  121. if (!Check.isNull(consignee)) {
  122. requestMap.put("consignee", consignee);
  123. }
  124. if (!Check.isNull(itemCreateId)) {
  125. requestMap.put("itemCreateId", itemCreateId);
  126. }
  127. if (!Check.isNull(collectSampleId)) {
  128. requestMap.put("collectSampleId", collectSampleId);
  129. }
  130. startPage();
  131. List<KuaishouItemCollectSamples> list = kuaishouItemCollectSamplesService.selectKuaishouItemCollectSamplesList(requestMap);
  132. return getDataTable(list);
  133. } catch (Exception e) {
  134. e.printStackTrace();
  135. tableDataInfo.setCode(500);
  136. tableDataInfo.setMsg(e.getMessage());
  137. }
  138. return tableDataInfo;
  139. }
  140. /**
  141. * 领样预览
  142. */
  143. @PostMapping("/preview")
  144. public JSONObject preview(@RequestBody JSONObject requestJson) {
  145. JSONObject returnJson = new JSONObject();
  146. try {
  147. Long userId = requestJson.getLong("userId");
  148. if (Check.isNull(userId)) {
  149. throw new Exception("请传入当前登录人ID");
  150. }
  151. SysUser sysUser = sysUserService.selectUserById(userId);
  152. if (Check.isNull(sysUser)) {
  153. throw new Exception("未获取到登录人信息");
  154. }
  155. JSONArray itemIds = requestJson.getJSONArray("itemIds");
  156. if (Check.isNull(itemIds)) {
  157. throw new Exception("请传入需要申请的商品列表");
  158. }
  159. JSONArray ids = requestJson.getJSONArray("ids");
  160. if (Check.isNull(ids)) {
  161. throw new Exception("请传入需要申请的达人列表");
  162. }
  163. JSONObject previewJson = kuaishouItemCollectSamplesService.preview(userId, sysUser.getNickName(), itemIds, ids);
  164. returnJson.put("code", 0);
  165. returnJson.put("message", "success");
  166. returnJson.put("preview", previewJson);
  167. } catch (Exception e) {
  168. e.printStackTrace();
  169. returnJson.put("code", -1);
  170. returnJson.put("message", e.getMessage());
  171. }
  172. return returnJson;
  173. }
  174. /**
  175. * 新增【请填写功能名称】
  176. */
  177. @PostMapping("/add")
  178. public JSONObject add(@RequestBody JSONObject requestJson) {
  179. JSONObject returnJson = new JSONObject();
  180. try {
  181. if (Check.isNull(requestJson)) {
  182. throw new Exception("入参不能为空");
  183. }
  184. JSONArray temCollectSamples = requestJson.getJSONArray("temCollectSamples");
  185. if (Check.isNull(temCollectSamples)) {
  186. throw new Exception("认领信息不能为空");
  187. }
  188. kuaishouItemCollectSamplesService.batchAdd(temCollectSamples);
  189. returnJson.put("code", 0);
  190. returnJson.put("message", "领样信息增加成功");
  191. } catch (Exception e) {
  192. e.printStackTrace();
  193. returnJson.put("code", 500);
  194. returnJson.put("message", e.getMessage());
  195. }
  196. return returnJson;
  197. }
  198. @GetMapping("/getCompany")
  199. public List<JSONObject> getCompany() {
  200. return CompanyEnum.companyList();
  201. }
  202. /**
  203. * 修改【请填写功能名称】
  204. */
  205. @PutMapping("/edit")
  206. public JSONObject edit(@RequestBody KuaishouItemCollectSamples kuaishouItemCollectSamples) {
  207. JSONObject returnJson = new JSONObject();
  208. try {
  209. Long id = kuaishouItemCollectSamples.getId();
  210. if (Check.isNull(id)) {
  211. throw new Exception("id不能为空");
  212. }
  213. KuaishouItemCollectSampleLog sampleLog = new KuaishouItemCollectSampleLog();
  214. sampleLog.setUserId(kuaishouItemCollectSamples.getUserId());
  215. sampleLog.setUserName(kuaishouItemCollectSamples.getUserName());
  216. sampleLog.setSampleId(id);
  217. Integer collectSampleStatus = kuaishouItemCollectSamples.getCollectSampleStatus();
  218. if (!Check.isNull(collectSampleStatus)) {
  219. sampleLog.setCollectSampleStatus(collectSampleStatus);
  220. if (collectSampleStatus == 2) {
  221. String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
  222. if (Check.isNull(collectSampleDesc)) {
  223. kuaishouItemCollectSamples.setCollectSampleDesc("领样审核拒绝");
  224. kuaishouItemCollectSamplesService.cleanLogs(kuaishouItemCollectSamples.getId(), collectSampleStatus);
  225. }
  226. }
  227. if (collectSampleStatus == 3) {
  228. kuaishouItemCollectSamples.setCollectSampleDesc("待录入订单号");
  229. }
  230. if (collectSampleStatus == 5) { // 招商审核作业拒绝
  231. String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
  232. if (Check.isNull(collectSampleDesc)) {
  233. kuaishouItemCollectSamples.setCollectSampleDesc("招商审核作业拒绝,请重新提交");
  234. }
  235. kuaishouItemCollectSamplesService.cleanLogs(kuaishouItemCollectSamples.getId(), collectSampleStatus);
  236. }
  237. if (collectSampleStatus == 7) { // 作业完成
  238. kuaishouItemCollectSamples.setCollectSampleDesc("作业已完成");
  239. }
  240. }
  241. String courierNumber = kuaishouItemCollectSamples.getCourierNumber();
  242. if (!Check.isNull(courierNumber)) {
  243. sampleLog.setCollectSampleStatus(4);
  244. kuaishouItemCollectSamples.setCollectSampleStatus(4);
  245. kuaishouItemCollectSamples.setCollectSampleDesc("商品已发货");
  246. // 调用快递接口
  247. kuaishouItemCollectSamplesService.subscribe(id, courierNumber, kuaishouItemCollectSamples.getCompanyCode());
  248. }
  249. String taskFileUrl = kuaishouItemCollectSamples.getTaskFileUrl();
  250. if (!Check.isNull(taskFileUrl)) { // 作业上传成功
  251. sampleLog.setCollectSampleStatus(6);
  252. kuaishouItemCollectSamples.setCollectSampleStatus(6);
  253. kuaishouItemCollectSamples.setCollectSampleDesc("作业上传成功,待招商审核");
  254. }
  255. int i = kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  256. if (i > 0) {
  257. sampleLog.setCreateTime(new Date());
  258. sampleLog.setUpdateTime(new Date());
  259. kuaishouItemCollectSamplesService.insertLog(sampleLog);
  260. Long itemId = kuaishouItemCollectSamplesService.getItemIdById(id);
  261. if (!Check.isNull(itemId)) {
  262. JSONObject info = kuaishouItemCollectSamplesService.getCollectSampleInfo(itemId);
  263. itemListService.updateCount(itemId, info.getInteger("sampleCount"), info.getInteger("userCount"));
  264. }
  265. }
  266. returnJson.put("code", 0);
  267. returnJson.put("message", "修改成功");
  268. } catch (Exception e) {
  269. e.printStackTrace();
  270. returnJson.put("code", 500);
  271. returnJson.put("message", e.getMessage());
  272. }
  273. return returnJson;
  274. }
  275. @PutMapping("/update")
  276. public JSONObject update(@RequestBody KuaishouItemCollectSamples kuaishouItemCollectSamples) {
  277. JSONObject returnJson = new JSONObject();
  278. try {
  279. Long id = kuaishouItemCollectSamples.getId();
  280. if (Check.isNull(id)) {
  281. throw new Exception("id不能为空");
  282. }
  283. int i = kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  284. returnJson.put("code", 0);
  285. returnJson.put("message", "修改成功");
  286. } catch (Exception e) {
  287. e.printStackTrace();
  288. returnJson.put("code", 500);
  289. returnJson.put("message", e.getMessage());
  290. }
  291. return returnJson;
  292. }
  293. @PutMapping("/updateTask")
  294. public JSONObject updateTask(@RequestBody KuaishouItemCollectSamples kuaishouItemCollectSamples) {
  295. JSONObject returnJson = new JSONObject();
  296. try {
  297. Long id = kuaishouItemCollectSamples.getId();
  298. if (Check.isNull(id)) {
  299. throw new Exception("id不能为空");
  300. }
  301. String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
  302. if (Check.isNull(collectSampleDesc)) {
  303. kuaishouItemCollectSamples.setCollectSampleDesc("转审上传作业");
  304. }
  305. int i = kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  306. if (i > 0) {
  307. List<Integer> statusList = new ArrayList<>();
  308. statusList.add(4);
  309. statusList.add(5);
  310. for (int j = 0; j < statusList.size(); j++) {
  311. Integer status = statusList.get(j);
  312. KuaishouItemCollectSampleLog sampleLog = new KuaishouItemCollectSampleLog();
  313. sampleLog.setUserId(kuaishouItemCollectSamples.getUserId());
  314. sampleLog.setUserName(kuaishouItemCollectSamples.getUserName());
  315. sampleLog.setSampleId(id);
  316. sampleLog.setCollectSampleStatus(status);
  317. sampleLog.setCreateTime(new Date());
  318. sampleLog.setUpdateTime(new Date());
  319. kuaishouItemCollectSamplesService.insertLog(sampleLog);
  320. }
  321. }
  322. returnJson.put("code", 0);
  323. returnJson.put("message", "修改成功");
  324. } catch (Exception e) {
  325. e.printStackTrace();
  326. returnJson.put("code", 500);
  327. returnJson.put("message", e.getMessage());
  328. }
  329. return returnJson;
  330. }
  331. @GetMapping("/updateCourierNumber")
  332. public JSONObject updateCourierNumber(Long id, String courierNumber, String companyCode) {
  333. JSONObject returnJson = new JSONObject();
  334. try {
  335. if (Check.isNull(id)) {
  336. throw new Exception("id不能为空");
  337. }
  338. if (Check.isNull(courierNumber)) {
  339. throw new Exception("快递单号不能为空");
  340. }
  341. if (Check.isNull(companyCode)) {
  342. throw new Exception("公司编号不能为空");
  343. }
  344. KuaishouItemCollectSamples kuaishouItemCollectSamples = new KuaishouItemCollectSamples();
  345. kuaishouItemCollectSamples.setId(id);
  346. kuaishouItemCollectSamples.setCourierNumber(courierNumber);
  347. int i = kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  348. if (i > 0) {
  349. kuaishouItemCollectSamplesService.subscribe(id, courierNumber, companyCode);
  350. }
  351. returnJson.put("code", 0);
  352. returnJson.put("message", "修改成功");
  353. } catch (Exception e) {
  354. e.printStackTrace();
  355. returnJson.put("code", 500);
  356. returnJson.put("message", e.getMessage());
  357. }
  358. return returnJson;
  359. }
  360. @GetMapping("/detail")
  361. public JSONObject detail(Long id) {
  362. JSONObject returnJson = new JSONObject();
  363. try {
  364. if (Check.isNull(id)) {
  365. throw new Exception("id不能为空");
  366. }
  367. returnJson = kuaishouItemCollectSamplesService.getDetail(id);
  368. returnJson.put("code", 0);
  369. returnJson.put("message", "查询成功");
  370. } catch (Exception e) {
  371. e.printStackTrace();
  372. returnJson.put("code", 500);
  373. returnJson.put("message", e.getMessage());
  374. }
  375. return returnJson;
  376. }
  377. @GetMapping("/courierNumberInfo")
  378. public JSONObject courierNumberInfo(String courierNumber) {
  379. JSONObject returnJson = new JSONObject();
  380. try {
  381. if (Check.isNull(courierNumber)) {
  382. throw new Exception("快递单号不能为空");
  383. }
  384. JSONObject data = kuaishouItemCollectSamplesService.courierNumberInfo(courierNumber);
  385. returnJson.put("data", data);
  386. returnJson.put("code", 0);
  387. returnJson.put("message", "查询成功");
  388. } catch (Exception e) {
  389. e.printStackTrace();
  390. returnJson.put("code", 500);
  391. returnJson.put("message", e.getMessage());
  392. }
  393. return returnJson;
  394. }
  395. @PutMapping("/testSubscribe")
  396. public JSONObject testSubscribe(String phone, String courierNumber, String code) {
  397. JSONObject returnJson = new JSONObject();
  398. try {
  399. SubscribeParameters subscribeParameters = new SubscribeParameters();
  400. subscribeParameters.setCallbackurl("http://ruixuan.api.tjyourong.com.cn/itemCollectSamples/callback");
  401. subscribeParameters.setPhone(phone);
  402. SubscribeParam subscribeParam = new SubscribeParam();
  403. subscribeParam.setParameters(subscribeParameters);
  404. subscribeParam.setCompany(code);
  405. subscribeParam.setNumber(courierNumber);
  406. subscribeParam.setKey("BPEQUJxB9244");
  407. SubscribeReq subscribeReq = new SubscribeReq();
  408. subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
  409. subscribeReq.setParam(new Gson().toJson(subscribeParam));
  410. IBaseClient subscribe = new Subscribe();
  411. JSONObject jsonObject = JSONObject.parseObject(subscribe.execute(subscribeReq).getBody());
  412. System.err.println(jsonObject);
  413. System.out.println(subscribe.execute(subscribeReq));
  414. returnJson.put("code", 0);
  415. returnJson.put("message", "调用成功");
  416. } catch (Exception e) {
  417. e.printStackTrace();
  418. returnJson.put("code", 500);
  419. returnJson.put("message", e.getMessage());
  420. }
  421. return returnJson;
  422. }
  423. @PostMapping("/callback")
  424. public SubscribeResp callback(HttpServletRequest request) {
  425. SubscribeResp subscribeResp = new SubscribeResp();
  426. try {
  427. String param = request.getParameter("param");
  428. log.info("快递回调信息:{}", param);
  429. JSONObject paramJson = JSONObject.parseObject(param);
  430. if (Check.isNull(paramJson)) {
  431. throw new Exception("回调信息为空");
  432. }
  433. JSONObject lastResult = paramJson.getJSONObject("lastResult");
  434. if (!Check.isNull(lastResult)) {
  435. String state = lastResult.getString("state");
  436. String nu = lastResult.getString("nu");
  437. String com = lastResult.getString("com");
  438. if ("3".equals(state)) {
  439. Integer status = kuaishouItemCollectSamplesService.getStatusByCourierNumbe(nu);
  440. if (!Check.isNull(status)) {
  441. if (status < 5) { // 防止快递重复回调
  442. KuaishouItemCollectSamples updateSample = new KuaishouItemCollectSamples();
  443. updateSample.setCourierNumber(nu);
  444. updateSample.setCollectSampleStatus(5);
  445. updateSample.setCollectSampleDesc("快递已签收,待上传作业");
  446. kuaishouItemCollectSamplesService.updateByNum(updateSample);
  447. }
  448. }
  449. }
  450. JSONArray data = lastResult.getJSONArray("data");
  451. KuaishouItemCollectSampleExpress express = new KuaishouItemCollectSampleExpress();
  452. express.setCourierNumber(nu);
  453. express.setCom(com);
  454. express.setState(state);
  455. if (!Check.isNull(data)) {
  456. express.setExpressData(data.toJSONString());
  457. }
  458. kuaishouItemCollectSamplesService.replaceExpress(express);
  459. }
  460. subscribeResp.setResult(Boolean.TRUE);
  461. subscribeResp.setReturnCode("200");
  462. subscribeResp.setMessage("回调成功");
  463. } catch (Exception e) {
  464. e.printStackTrace();
  465. subscribeResp.setResult(Boolean.FALSE);
  466. subscribeResp.setReturnCode("-1");
  467. subscribeResp.setMessage(e.getMessage());
  468. }
  469. return subscribeResp;
  470. }
  471. @GetMapping("/copyInfo")
  472. public JSONObject copyInfo(Long promoterId) {
  473. JSONObject returnJson = new JSONObject();
  474. try {
  475. if (Check.isNull(promoterId)) {
  476. throw new Exception("请传入达人ID");
  477. }
  478. JSONObject copyJson = kuaishouItemCollectSamplesService.getCopyInfo(promoterId);
  479. returnJson.put("code", 0);
  480. returnJson.put("message", "调用成功");
  481. returnJson.put("data", copyJson);
  482. } catch (Exception e) {
  483. e.printStackTrace();
  484. returnJson.put("code", 500);
  485. returnJson.put("message", e.getMessage());
  486. }
  487. return returnJson;
  488. }
  489. @DeleteMapping("/remove")
  490. public AjaxResult remove(Long id) {
  491. return toAjax(kuaishouItemCollectSamplesService.deleteKuaishouItemCollectSamplesById(id));
  492. }
  493. /**
  494. * 认领商品列表导出
  495. *
  496. * @return
  497. */
  498. @PostMapping("/exportCollectSamples")
  499. @ApiOperation(value = "认领商品列表")
  500. @ResponseBody
  501. public void exportCollectSamples(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws IOException {
  502. Map<String, Object> requestMap = new HashMap<>();
  503. if (!Check.isNull(requestJson.getJSONArray("ids"))) {
  504. requestMap.put("ids", requestJson.getJSONArray("ids"));
  505. }
  506. List<JSONObject> list = kuaishouItemCollectSamplesService.exportCollectSamples(requestMap);
  507. List<List<Object>> exportList = new ArrayList<>();
  508. if (!Check.isNull(list)) {
  509. for (int i = 0; i < list.size(); i++) {
  510. JSONObject date = list.get(i);
  511. List<Object> export = new ArrayList();
  512. export.add(date.getString("id"));
  513. export.add(date.getString("itemId"));
  514. export.add(date.getString("itemTitle"));
  515. export.add(date.getString("promoterId"));
  516. export.add(date.getString("promoterNickName"));
  517. export.add(date.getString("status"));
  518. JSONObject copyJson = kuaishouItemCollectSamplesService.getCopyInfo(date.getLong("promoterId"));
  519. export.add(copyJson.getString("fansNumber"));
  520. export.add(copyJson.getString("totalSale"));
  521. export.add(date.getString("sampleCount"));
  522. export.add(date.getString("sampleRequirement"));
  523. export.add(date.getString("consignee"));
  524. export.add(date.getString("promoterPhone"));
  525. export.add(date.getString("promoterAddress"));
  526. exportList.add(export);
  527. }
  528. }
  529. String[] headers = {"id", "商品ID", "商品名称", "达人ID", "达人昵称", "领样状态", "粉丝数", "销售额", "领样数量", "领样规则", "收件人", "收件人手机号码", "收件人地址"};
  530. OutputStream os = response.getOutputStream();
  531. ExportExcelUtils eeu = new ExportExcelUtils();
  532. XSSFWorkbook workbook = new XSSFWorkbook();
  533. eeu.exportExcel(workbook, 0, "领样列表", headers, exportList);
  534. this.setResponseHeader(response, "领样列表.xls");
  535. workbook.write(os);
  536. os.flush();
  537. os.close();
  538. }
  539. //发送响应流方法
  540. public void setResponseHeader(HttpServletResponse response, String fileName) {
  541. try {
  542. try {
  543. fileName = new String(fileName.getBytes(), "ISO8859-1");
  544. } catch (UnsupportedEncodingException e) {
  545. e.printStackTrace();
  546. }
  547. response.setContentType("application/octet-stream;charset=ISO8859-1");
  548. response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
  549. response.addHeader("Pargam", "no-cache");
  550. response.addHeader("Cache-Control", "no-cache");
  551. } catch (Exception ex) {
  552. ex.printStackTrace();
  553. }
  554. }
  555. @GetMapping("/getPersonalInfo")
  556. @ApiOperation(value = "工作台——个人信息")
  557. public JSONObject getPersonalInfo(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
  558. @ApiParam("类型,1-渠道;2-招商") @RequestParam(value = "type", required = true) String type) {
  559. JSONObject returnJson = new JSONObject();
  560. try {
  561. if (Check.isNull(userId)) {
  562. throw new Exception("请传入人员ID");
  563. }
  564. return kuaishouItemCollectSamplesService.getPersonalInfo(userId, type);
  565. } catch (Exception e) {
  566. e.printStackTrace();
  567. returnJson.put("code", -500);
  568. returnJson.put("message", e.getMessage());
  569. }
  570. return returnJson;
  571. }
  572. @GetMapping("/getOrderData")
  573. @ApiOperation(value = "工作台——订单数据")
  574. public JSONObject getOrderData(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
  575. @ApiParam("开始日期") @RequestParam(value = "statDate", required = false) String startDate,
  576. @ApiParam("结束日期") @RequestParam(value = "endDate", required = false) String endDate,
  577. @ApiParam("类型,1-渠道;2-招商") @RequestParam(value = "type", required = true) String type) {
  578. JSONObject returnJson = new JSONObject();
  579. try {
  580. if (Check.isNull(userId)) {
  581. throw new Exception("请传入人员ID");
  582. }
  583. return kuaishouItemCollectSamplesService.getOrderData(userId, startDate, endDate, type);
  584. } catch (Exception e) {
  585. e.printStackTrace();
  586. returnJson.put("code", 500);
  587. returnJson.put("message", e.getMessage());
  588. }
  589. return returnJson;
  590. }
  591. @GetMapping("/getDataAnalysis")
  592. @ApiOperation(value = "工作台——数据分析")
  593. public JSONObject getDataAnalysis(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
  594. @ApiParam("开始日期") @RequestParam(value = "statDate", required = false) String startDate,
  595. @ApiParam("结束日期") @RequestParam(value = "endDate", required = false) String endDate,
  596. @ApiParam("类型,1-渠道;2-招商") @RequestParam(value = "type", required = true) String type) {
  597. JSONObject returnJson = new JSONObject();
  598. try {
  599. if (Check.isNull(userId)) {
  600. throw new Exception("请传入人员ID");
  601. }
  602. return kuaishouItemCollectSamplesService.getDataAnalysis(userId, startDate, endDate, type);
  603. } catch (Exception e) {
  604. e.printStackTrace();
  605. returnJson.put("code", 500);
  606. returnJson.put("message", e.getMessage());
  607. }
  608. return returnJson;
  609. }
  610. @GetMapping("/queryProductList")
  611. @ApiOperation(value = "查询商品列表")
  612. public TableDataInfo queryProductList(
  613. @ApiParam("商品ID") @RequestParam(value = "itemId", required = false) Long itemId,
  614. @ApiParam("商品标题") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  615. @ApiParam("达人id") @RequestParam(value = "promoterId", required = false) Long promoterId,
  616. @ApiParam("达人昵称") @RequestParam(value = "promoterNickName", required = false) String promoterNickName,
  617. @ApiParam("商品单价起始价") @RequestParam(value = "reservePriceStart", required = false) Double reservePriceStart,
  618. @ApiParam("商品单价结束价") @RequestParam(value = "reservePriceEnd", required = false) Double reservePriceEnd,
  619. @ApiParam("有效订单数起始数") @RequestParam(value = "validorderStart", required = false) Double validorderStart,
  620. @ApiParam("有效订单数结束数") @RequestParam(value = "validorderEnd", required = false) Double validorderEnd,
  621. @ApiParam("起始时间") @RequestParam(value = "startDate", required = true) String startDate,
  622. @ApiParam("结束时间") @RequestParam(value = "endDate", required = true) String endDate
  623. ) {
  624. Map<String, Object> map = new HashMap<>();
  625. map.put("itemId", itemId);
  626. map.put("itemTitle", itemTitle);
  627. map.put("promoterId", promoterId);
  628. map.put("promoterNickName", promoterNickName);
  629. map.put("reservePriceStart", reservePriceStart);
  630. map.put("reservePriceEnd", reservePriceEnd);
  631. map.put("validorderStart", validorderStart);
  632. map.put("validorderEnd", validorderEnd);
  633. map.put("startDate", startDate);
  634. map.put("endDate", endDate);
  635. JSONObject returnJson = new JSONObject();
  636. try {
  637. List<JSONObject> list = kuaishouItemCollectSamplesService.queryProductList(map);
  638. return getDataTable(list);
  639. } catch (Exception e) {
  640. e.printStackTrace();
  641. }
  642. return null;
  643. }
  644. /**
  645. * 激励列表导出
  646. *
  647. * @return
  648. */
  649. @PostMapping("/exportProductList")
  650. @ApiOperation(value = "激励列表导出")
  651. public void exportProductList(HttpServletResponse response, @RequestBody Map<String, Object> map) throws IOException {
  652. List<JSONObject> list = kuaishouItemCollectSamplesService.exportProductList(map);
  653. List<List<Object>> exportList = new ArrayList<>();
  654. if (!Check.isNull(list)) {
  655. for (int i = 0; i < list.size(); i++) {
  656. JSONObject date = list.get(i);
  657. List<Object> export = new ArrayList();
  658. export.add(date.getString("promoterNickName") + "(" + date.getString("promoterId") + ")");
  659. export.add(date.getString("itemTitle") + "(" + date.getString("itemId") + ")");
  660. export.add(date.getBigDecimal("reservePrice").divide(new BigDecimal("100")));
  661. export.add(date.getBigDecimal("orderAmount").divide(new BigDecimal("100")));
  662. export.add(date.getString("validorder"));
  663. export.add(date.getBigDecimal("regimentalPromotionAmount").divide(new BigDecimal("100")));
  664. exportList.add(export);
  665. }
  666. }
  667. String[] headers = {"达人名称", "商品名称", "商品单价", "销售额", "有效订单", "预估服务费"};
  668. OutputStream os = response.getOutputStream();
  669. ExportExcelUtils eeu = new ExportExcelUtils();
  670. XSSFWorkbook workbook = new XSSFWorkbook();
  671. eeu.exportExcel(workbook, 0, "激励列表", headers, exportList);
  672. this.setResponseHeader(response, "激励列表.xls");
  673. workbook.write(os);
  674. os.flush();
  675. os.close();
  676. }
  677. @PostMapping("/batchProcess")
  678. @ResponseBody
  679. public JSONObject batchProcess(@RequestBody JSONObject requestJson) {
  680. JSONObject returnJson = new JSONObject();
  681. try {
  682. JSONArray ids = requestJson.getJSONArray("ids");
  683. if (Check.isNull(ids)) {
  684. throw new Exception("请传入需要审核的领样ID");
  685. }
  686. Integer status = requestJson.getInteger("status");
  687. if (Check.isNull(status)) {
  688. throw new Exception("请传入审核状态");
  689. }
  690. Long userId = requestJson.getLong("userId");
  691. if (Check.isNull(userId)) {
  692. throw new Exception("请传入审核人id");
  693. }
  694. String userName = requestJson.getString("userName");
  695. if (Check.isNull(userName)) {
  696. throw new Exception("请传入审核人姓名");
  697. }
  698. kuaishouItemCollectSamplesService.batchProcess(ids, status);
  699. List<KuaishouItemCollectSampleLog> logs = new ArrayList<>();
  700. for (int i = 0; i < ids.size(); i++) {
  701. Long id = ids.getLong(i);
  702. KuaishouItemCollectSampleLog sampleLog = new KuaishouItemCollectSampleLog();
  703. sampleLog.setUserId(userId);
  704. sampleLog.setUserName(userName);
  705. sampleLog.setSampleId(id);
  706. sampleLog.setCollectSampleStatus(status);
  707. sampleLog.setCreateTime(new Date());
  708. sampleLog.setUpdateTime(new Date());
  709. logs.add(sampleLog);
  710. }
  711. if (!Check.isNull(logs)) {
  712. kuaishouItemCollectSamplesService.batchAddLogs(logs);
  713. }
  714. returnJson.put("code", 0);
  715. returnJson.put("message", "批量审核通过");
  716. } catch (Exception e) {
  717. returnJson.put("code", 500);
  718. returnJson.put("message", e.getMessage());
  719. }
  720. return returnJson;
  721. }
  722. @GetMapping("/samplesCheck")
  723. @ResponseBody
  724. public JSONObject samplesCheck(Long itemId, Long promoterId, Long userId) {
  725. JSONObject returnJson = new JSONObject();
  726. try {
  727. KuaishouItemList itemInfoByItemId = itemListService.getItemInfoByItemId(itemId);
  728. if (Check.isNull(itemInfoByItemId)) {
  729. throw new Exception("该商品未录入");
  730. }
  731. Integer activityItemStatus = itemInfoByItemId.getActivityItemStatus();
  732. if (activityItemStatus == 3 || activityItemStatus == 4 || activityItemStatus == 5) {
  733. throw new Exception("该商品已下架或失效");
  734. }
  735. KuaishouPromoter onlyPromoterInfo = promoterService.getOnlyPromoterInfo(promoterId);
  736. if (Check.isNull(onlyPromoterInfo)) {
  737. throw new Exception("该达人未录入");
  738. }
  739. Long id = null;
  740. KuaishouPromoter userPromoterInfo = promoterService.getOnlyPromoterInfoByUserId(promoterId, userId);
  741. if (!Check.isNull(userPromoterInfo)) {
  742. id = userPromoterInfo.getId();
  743. } else {
  744. id = onlyPromoterInfo.getId();
  745. }
  746. returnJson.put("code", 0);
  747. returnJson.put("message", "校验通过");
  748. returnJson.put("id", id);
  749. } catch (Exception e) {
  750. returnJson.put("code", 500);
  751. returnJson.put("message", e.getMessage());
  752. }
  753. return returnJson;
  754. }
  755. }