SupplyChainController.java 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. package com.ruixuan.isc.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.ruixuan.common.core.controller.BaseController;
  4. import com.ruixuan.common.core.page.TableDataInfo;
  5. import com.ruixuan.common.utils.Check;
  6. import com.ruixuan.common.utils.DateUtils;
  7. import com.ruixuan.data.utils.ExportExcelUtils;
  8. import com.ruixuan.isc.service.IKuaishouPromoterService;
  9. import com.ruixuan.isc.service.ISupplyChainService;
  10. import io.swagger.annotations.ApiOperation;
  11. import io.swagger.annotations.ApiParam;
  12. import lombok.SneakyThrows;
  13. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.PostMapping;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.io.IOException;
  25. import java.io.OutputStream;
  26. import java.io.UnsupportedEncodingException;
  27. import java.text.SimpleDateFormat;
  28. import java.util.ArrayList;
  29. import java.util.HashMap;
  30. import java.util.List;
  31. import java.util.Map;
  32. @RestController
  33. @RequestMapping("/isv/supply_chain")
  34. public class SupplyChainController extends BaseController {
  35. @Autowired
  36. private ISupplyChainService supplyChainService;
  37. @Autowired
  38. private IKuaishouPromoterService promoterService;
  39. /**
  40. * 达人订单
  41. *
  42. * @param orderStartDate
  43. * @param orderEndDate
  44. * @param promoterNickName
  45. * @param promoterId
  46. * @return
  47. */
  48. @GetMapping("/orderList")
  49. @ApiOperation(value = "达人订单")
  50. public TableDataInfo orderList(@ApiParam("订单开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  51. @ApiParam("订单结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  52. @ApiParam("达人名称") @RequestParam(value = "promoterNickName", required = false) String promoterNickName,
  53. @ApiParam("达人ID") @RequestParam(value = "promoterId", required = false) Long promoterId) {
  54. Map<String, Object> requestMap = new HashMap<>();
  55. if (!Check.isNull(orderStartDate)) {
  56. Long start = DateUtils.getStartLongTime(orderStartDate);
  57. requestMap.put("start", start);
  58. }
  59. if (!Check.isNull(orderEndDate)) {
  60. Long end = DateUtils.getEndLongTime(orderEndDate);
  61. requestMap.put("end", end);
  62. }
  63. if (!Check.isNull(promoterNickName)) {
  64. requestMap.put("promoterNickName", promoterNickName);
  65. }
  66. if (!Check.isNull(promoterId)) {
  67. requestMap.put("promoterId", promoterId);
  68. }
  69. TableDataInfo dataInfo = new TableDataInfo();
  70. if (Check.isNullMap(requestMap)) {
  71. dataInfo.setCode(-1);
  72. dataInfo.setMsg("入参不能为空");
  73. return dataInfo;
  74. }
  75. startPage();
  76. List<JSONObject> list = supplyChainService.getOrderList(requestMap);
  77. return getDataTable(list);
  78. }
  79. /**
  80. * 达人带货详情
  81. *
  82. * @param promoterId
  83. * @param orderStartDate
  84. * @param orderEndDate
  85. * @param itemTitle
  86. * @param itemId
  87. * @return
  88. */
  89. @GetMapping("/anchorOrderDetail")
  90. @ApiOperation(value = "达人带货详情")
  91. public TableDataInfo anchorOrderDetail(
  92. @ApiParam("达人Id") @RequestParam(value = "promoterId", required = false) String promoterId,
  93. @ApiParam("订单开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  94. @ApiParam("订单结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  95. @ApiParam("商品名称") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  96. @ApiParam("商品ID") @RequestParam(value = "itemId", required = false) String itemId) {
  97. Map<String, Object> requestMap = new HashMap<>();
  98. if (!Check.isNull(orderStartDate)) {
  99. Long start = DateUtils.getStartLongTime(orderStartDate);
  100. requestMap.put("start", start);
  101. }
  102. if (!Check.isNull(orderEndDate)) {
  103. Long end = DateUtils.getEndLongTime(orderEndDate);
  104. requestMap.put("end", end);
  105. }
  106. if (!Check.isNull(promoterId)) {
  107. requestMap.put("promoterId", promoterId);
  108. }
  109. if (!Check.isNull(itemId)) {
  110. requestMap.put("itemId", itemId);
  111. }
  112. if (!Check.isNull(itemTitle)) {
  113. requestMap.put("itemTitle", itemTitle);
  114. }
  115. TableDataInfo dataInfo = new TableDataInfo();
  116. if (Check.isNullMap(requestMap)) {
  117. dataInfo.setCode(-1);
  118. dataInfo.setMsg("入参不能为空");
  119. return dataInfo;
  120. }
  121. startPage();
  122. List<JSONObject> list = supplyChainService.anchorOrderDetail(requestMap);
  123. return getDataTable(list);
  124. }
  125. /**
  126. * 订单统计
  127. *
  128. * @param promoterId
  129. * @param orderStartDate
  130. * @param orderEndDate
  131. * @return
  132. */
  133. @GetMapping("/orderStatistics")
  134. @ApiOperation(value = "订单统计")
  135. public JSONObject orderStatistics(
  136. @ApiParam("达人Id") @RequestParam(value = "promoterId", required = false) String promoterId,
  137. @ApiParam("订单开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  138. @ApiParam("订单结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  139. Map<String, Object> requestMap = new HashMap<>();
  140. if (!Check.isNull(orderStartDate)) {
  141. Long start = DateUtils.getStartLongTime(orderStartDate);
  142. requestMap.put("start", start);
  143. }
  144. if (!Check.isNull(orderEndDate)) {
  145. Long end = DateUtils.getEndLongTime(orderEndDate);
  146. requestMap.put("end", end);
  147. }
  148. if (!Check.isNull(promoterId)) {
  149. requestMap.put("promoterId", promoterId);
  150. }
  151. JSONObject returnJson = new JSONObject();
  152. if (Check.isNullMap(requestMap)) {
  153. returnJson.put("code", -1);
  154. returnJson.put("message", "入参不能为空");
  155. return returnJson;
  156. }
  157. List<JSONObject> list = supplyChainService.orderStatistics(requestMap);
  158. returnJson.put("code", 0);
  159. returnJson.put("data", list);
  160. return returnJson;
  161. }
  162. /**
  163. * 商品列表
  164. *
  165. * @param itemId
  166. * @param itemTitle
  167. * @param orderStartDate
  168. * @param orderEndDate
  169. * @return
  170. */
  171. @GetMapping("/itemList")
  172. @ApiOperation(value = "商品列表")
  173. public TableDataInfo itemList(
  174. @ApiParam("商品Id") @RequestParam(value = "itemId", required = false) String itemId,
  175. @ApiParam("商品名称") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  176. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  177. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  178. @ApiParam("排序字段") @RequestParam(value = "fieId", required = false) String fieId,
  179. @ApiParam("排序方式") @RequestParam(value = "sort", required = false) String sort,
  180. @ApiParam("用户ID") @RequestParam(value = "userId", required = false) String userId
  181. ) {
  182. Map<String, Object> requestMap = new HashMap<>();
  183. if (!Check.isNull(orderStartDate)) {
  184. Long start = DateUtils.getStartLongTime(orderStartDate);
  185. requestMap.put("start", start);
  186. }
  187. if (!Check.isNull(orderEndDate)) {
  188. Long end = DateUtils.getEndLongTime(orderEndDate);
  189. requestMap.put("end", end);
  190. }
  191. if (!Check.isNull(itemId)) {
  192. requestMap.put("itemId", itemId);
  193. }
  194. if (!Check.isNull(itemTitle)) {
  195. requestMap.put("itemTitle", itemTitle);
  196. }
  197. if (!Check.isNull(userId)) {
  198. requestMap.put("userId", userId);
  199. }
  200. requestMap.put("fieId", fieId);
  201. requestMap.put("sort", sort);
  202. TableDataInfo dataInfo = new TableDataInfo();
  203. if (Check.isNullMap(requestMap)) {
  204. dataInfo.setCode(-1);
  205. dataInfo.setMsg("入参不能为空");
  206. return dataInfo;
  207. }
  208. startPage();
  209. List<JSONObject> list = supplyChainService.itemList(requestMap);
  210. return getDataTable(list);
  211. }
  212. /**
  213. * 根据商品id获取top达人
  214. *
  215. * @param itemId
  216. * @param orderStartDate
  217. * @param orderEndDate
  218. * @return
  219. */
  220. @GetMapping("/getTopPromoterByItemId")
  221. @ApiOperation(value = "商品列表")
  222. public TableDataInfo getTopPromoterByItemId(
  223. @ApiParam("商品Id") @RequestParam(value = "itemId", required = false) String itemId,
  224. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  225. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  226. Map<String, Object> requestMap = new HashMap<>();
  227. if (!Check.isNull(orderStartDate)) {
  228. Long start = DateUtils.getStartLongTime(orderStartDate);
  229. requestMap.put("start", start);
  230. }
  231. if (!Check.isNull(orderEndDate)) {
  232. Long end = DateUtils.getEndLongTime(orderEndDate);
  233. requestMap.put("end", end);
  234. }
  235. if (!Check.isNull(itemId)) {
  236. requestMap.put("itemId", itemId);
  237. }
  238. List<JSONObject> list = supplyChainService.getTopPromoterByItemId(requestMap);
  239. return getDataTable(list);
  240. }
  241. /**
  242. * 商品详情
  243. *
  244. * @param itemId
  245. * @param orderStartDate
  246. * @param orderEndDate
  247. * @param promoterId
  248. * @param promoterNickName
  249. * @return
  250. */
  251. @GetMapping("/itemDetail")
  252. @ApiOperation(value = "商品详情")
  253. public TableDataInfo itemDetail(
  254. @ApiParam("商品ID") @RequestParam(value = "itemId", required = false) String itemId,
  255. @ApiParam("订单开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  256. @ApiParam("订单结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  257. @ApiParam("达人Id") @RequestParam(value = "promoterId", required = false) String promoterId,
  258. @ApiParam("达人名称") @RequestParam(value = "promoterNickName", required = false) String promoterNickName) {
  259. Map<String, Object> requestMap = new HashMap<>();
  260. if (!Check.isNull(orderStartDate)) {
  261. Long start = DateUtils.getStartLongTime(orderStartDate);
  262. requestMap.put("start", start);
  263. }
  264. if (!Check.isNull(orderEndDate)) {
  265. Long end = DateUtils.getEndLongTime(orderEndDate);
  266. requestMap.put("end", end);
  267. }
  268. if (!Check.isNull(promoterId)) {
  269. requestMap.put("promoterId", promoterId);
  270. }
  271. if (!Check.isNull(itemId)) {
  272. requestMap.put("itemId", itemId);
  273. }
  274. if (!Check.isNull(promoterNickName)) {
  275. requestMap.put("itemTitle", promoterNickName);
  276. }
  277. TableDataInfo dataInfo = new TableDataInfo();
  278. if (Check.isNullMap(requestMap)) {
  279. dataInfo.setCode(-1);
  280. dataInfo.setMsg("入参不能为空");
  281. return dataInfo;
  282. }
  283. startPage();
  284. List<JSONObject> list = supplyChainService.itemDetail(requestMap);
  285. return getDataTable(list);
  286. }
  287. /**
  288. * 产品服务费
  289. *
  290. * @param itemId
  291. * @param itemTitle
  292. * @param orderStartDate
  293. * @param orderEndDate
  294. * @return
  295. */
  296. @GetMapping("/itemServiceCharge")
  297. @ApiOperation(value = "产品服务费")
  298. public TableDataInfo itemServiceCharge(
  299. @ApiParam("商品Id") @RequestParam(value = "itemId", required = false) String itemId,
  300. @ApiParam("商品名称") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  301. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  302. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  303. Map<String, Object> requestMap = new HashMap<>();
  304. if (!Check.isNull(orderStartDate)) {
  305. Long start = DateUtils.getStartLongTime(orderStartDate);
  306. requestMap.put("start", start);
  307. }
  308. if (!Check.isNull(orderEndDate)) {
  309. Long end = DateUtils.getEndLongTime(orderEndDate);
  310. requestMap.put("end", end);
  311. }
  312. if (!Check.isNull(itemId)) {
  313. requestMap.put("itemId", itemId);
  314. }
  315. if (!Check.isNull(itemTitle)) {
  316. requestMap.put("itemTitle", itemTitle);
  317. }
  318. TableDataInfo dataInfo = new TableDataInfo();
  319. if (Check.isNullMap(requestMap)) {
  320. dataInfo.setCode(-1);
  321. dataInfo.setMsg("入参不能为空");
  322. return dataInfo;
  323. }
  324. startPage();
  325. List<JSONObject> list = supplyChainService.itemServiceCharge(requestMap);
  326. return getDataTable(list);
  327. }
  328. /**
  329. * 首页-订单数据
  330. *
  331. * @param dateType
  332. * @param orderStartDate
  333. * @param orderEndDate
  334. * @return
  335. */
  336. @GetMapping("/indexOrderInfo")
  337. @ApiOperation(value = "首页-订单数据")
  338. public JSONObject orderTotal(
  339. @ApiParam("时间类型") @RequestParam(value = "dateType", required = false) Integer dateType,
  340. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  341. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  342. Map<String, Object> requestMap = new HashMap<>();
  343. JSONObject returnJson = new JSONObject();
  344. if (dateType == 0) {
  345. if (!Check.isNull(orderStartDate)) {
  346. Long start = DateUtils.getStartLongTime(orderStartDate); //当天开始时间
  347. requestMap.put("start", start);
  348. }
  349. if (!Check.isNull(orderEndDate)) {
  350. Long end = DateUtils.getEndLongTime(orderEndDate); // 当天结束时间
  351. requestMap.put("end", end);
  352. }
  353. JSONObject orderTotal = supplyChainService.getOrderTotal(requestMap);
  354. returnJson.put("orderTotal", orderTotal);
  355. Integer hour = DateUtils.getNowHour() - 1; // 当前小时
  356. if (hour >= 0) {
  357. JSONObject ratioJson = new JSONObject();
  358. Long nowStartHourTemp = DateUtils.getStartLongTime(orderStartDate); // 当天开始时间戳
  359. Long nowEndHourTemp = DateUtils.getNowEndHourTemp(orderStartDate, hour); // 当前结束时间戳
  360. String yesterday = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -1); // 昨日日期
  361. Long yesterdayStartHourTemp = DateUtils.getStartLongTime(yesterday); //昨日开始时间戳
  362. Long yesterdayEndHourTemp = DateUtils.getNowEndHourTemp(yesterday, hour); // 昨日结束时间戳
  363. Map<String, Object> ratioMap = new HashMap<>();
  364. ratioMap.put("nowStartHourTemp", nowStartHourTemp);
  365. ratioMap.put("nowEndHourTemp", nowEndHourTemp);
  366. ratioMap.put("yesterdayStartHourTemp", yesterdayStartHourTemp);
  367. ratioMap.put("yesterdayEndHourTemp", yesterdayEndHourTemp);
  368. Double ringRatio = supplyChainService.getOrderTotalRatio(ratioMap); //环比
  369. ratioJson.put("ringRatio", ringRatio);
  370. String yearDay = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -6); // 昨日日期
  371. Long yearStartHourTemp = DateUtils.getStartLongTime(yearDay); //前7日开始时间戳
  372. Long yearEndHourTemp = DateUtils.getNowEndHourTemp(yearDay, hour);//前7日结束时间戳
  373. ratioMap.put("yesterdayStartHourTemp", yearStartHourTemp);
  374. ratioMap.put("yesterdayEndHourTemp", yearEndHourTemp);
  375. Double yearRatio = supplyChainService.getOrderTotalRatio(ratioMap); //同比
  376. ratioJson.put("yearRatio", yearRatio);
  377. returnJson.put("ratio", ratioJson);
  378. }
  379. } else {
  380. if (!Check.isNull(orderStartDate)) {
  381. Long start = DateUtils.getStartLongTime(orderStartDate); //昨日开始时间
  382. requestMap.put("start", start);
  383. }
  384. if (!Check.isNull(orderEndDate)) {
  385. Long end = DateUtils.getEndLongTime(orderEndDate); // 前日开始时间
  386. requestMap.put("end", end);
  387. }
  388. JSONObject orderTotal = supplyChainService.getOrderTotal(requestMap);
  389. returnJson.put("orderTotal", orderTotal);
  390. }
  391. return returnJson;
  392. }
  393. /**
  394. * 首页-金额数据
  395. *
  396. * @param dateType
  397. * @param orderStartDate
  398. * @param orderEndDate
  399. * @return
  400. */
  401. @GetMapping("/indexAmountInfo")
  402. @ApiOperation(value = "首页-金额数据")
  403. public JSONObject indexAmountInfo(
  404. @ApiParam("时间类型") @RequestParam(value = "dateType", required = false) Integer dateType,
  405. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  406. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  407. Map<String, Object> requestMap = new HashMap<>();
  408. JSONObject returnJson = new JSONObject();
  409. if (dateType == 0) {
  410. if (!Check.isNull(orderStartDate)) {
  411. Long start = DateUtils.getStartLongTime(orderStartDate); //当天开始时间
  412. requestMap.put("start", start);
  413. }
  414. if (!Check.isNull(orderEndDate)) {
  415. Long end = DateUtils.getEndLongTime(orderEndDate); // 当天结束时间
  416. requestMap.put("end", end);
  417. }
  418. JSONObject amountTotal = supplyChainService.getAmountTotal(requestMap);
  419. returnJson.put("amountTotal", amountTotal);
  420. Integer hour = DateUtils.getNowHour() - 1; // 当前小时
  421. if (hour >= 0) {
  422. JSONObject amountRatioJson = new JSONObject();
  423. Long nowStartHourTemp = DateUtils.getStartLongTime(orderStartDate); // 当天开始时间戳
  424. Long nowEndHourTemp = DateUtils.getNowEndHourTemp(orderStartDate, hour); // 当前结束时间戳
  425. String yesterday = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -1); // 昨日日期
  426. Long yesterdayStartHourTemp = DateUtils.getStartLongTime(yesterday); //昨日开始时间戳
  427. Long yesterdayEndHourTemp = DateUtils.getNowEndHourTemp(yesterday, hour); // 昨日结束时间戳
  428. Map<String, Object> ratioMap = new HashMap<>();
  429. ratioMap.put("nowStartHourTemp", nowStartHourTemp);
  430. ratioMap.put("nowEndHourTemp", nowEndHourTemp);
  431. ratioMap.put("yesterdayStartHourTemp", yesterdayStartHourTemp);
  432. ratioMap.put("yesterdayEndHourTemp", yesterdayEndHourTemp);
  433. Double amountRingRatio = supplyChainService.getAmountTotalRatio(ratioMap); //环比
  434. amountRatioJson.put("amountRingRatio", amountRingRatio);
  435. String yearDay = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -6); // 昨日日期
  436. Long yearStartHourTemp = DateUtils.getStartLongTime(yearDay); //前7日开始时间戳
  437. Long yearEndHourTemp = DateUtils.getNowEndHourTemp(yearDay, hour);//前7日结束时间戳
  438. ratioMap.put("yesterdayStartHourTemp", yearStartHourTemp);
  439. ratioMap.put("yesterdayEndHourTemp", yearEndHourTemp);
  440. Double amountYearRatio = supplyChainService.getAmountTotalRatio(ratioMap); //同比
  441. amountRatioJson.put("amountYearRatio", amountYearRatio);
  442. returnJson.put("amountRatio", amountRatioJson);
  443. }
  444. } else {
  445. if (!Check.isNull(orderStartDate)) {
  446. Long start = DateUtils.getStartLongTime(orderStartDate); //昨日开始时间
  447. requestMap.put("start", start);
  448. }
  449. if (!Check.isNull(orderEndDate)) {
  450. Long end = DateUtils.getEndLongTime(orderEndDate); // 前日开始时间
  451. requestMap.put("end", end);
  452. }
  453. JSONObject amountTotal = supplyChainService.getAmountTotal(requestMap);
  454. returnJson.put("amountTotal", amountTotal);
  455. }
  456. return returnJson;
  457. }
  458. /**
  459. * 首页-服务费数据
  460. *
  461. * @param dateType
  462. * @param orderStartDate
  463. * @param orderEndDate
  464. * @return
  465. */
  466. @GetMapping("/indexServiceAmountInfo")
  467. @ApiOperation(value = "首页-服务费数据")
  468. public JSONObject indexServiceAmountInfo(
  469. @ApiParam("时间类型") @RequestParam(value = "dateType", required = false) Integer dateType,
  470. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  471. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  472. Map<String, Object> requestMap = new HashMap<>();
  473. JSONObject returnJson = new JSONObject();
  474. if (!Check.isNull(orderStartDate)) {
  475. Long start = DateUtils.getStartLongTime(orderStartDate); //昨日开始时间
  476. requestMap.put("start", start);
  477. }
  478. if (!Check.isNull(orderEndDate)) {
  479. Long end = DateUtils.getEndLongTime(orderEndDate); // 前日开始时间
  480. requestMap.put("end", end);
  481. }
  482. JSONObject serviceAmountTotal = supplyChainService.getServiceAmountTotal(requestMap);
  483. returnJson.put("serviceAmountTotal", serviceAmountTotal);
  484. return returnJson;
  485. }
  486. /**
  487. * 首页-商品排行
  488. *
  489. * @param dateType
  490. * @param orderStartDate
  491. * @param orderEndDate
  492. * @return
  493. */
  494. @GetMapping("/indexOrderRank")
  495. @ApiOperation(value = "首页-商品排行")
  496. public TableDataInfo indexOrderRank(
  497. @ApiParam("时间类型") @RequestParam(value = "dateType", required = true) Integer dateType,
  498. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = true) String orderStartDate,
  499. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = true) String orderEndDate) {
  500. Map<String, Object> requestMap = new HashMap<>();
  501. if (dateType == 0) {
  502. if (!Check.isNull(orderStartDate)) {
  503. Long start = DateUtils.getStartLongTime(orderStartDate); //当天开始时间
  504. requestMap.put("start", start);
  505. }
  506. if (!Check.isNull(orderEndDate)) {
  507. Long end = DateUtils.getEndLongTime(orderEndDate); // 当天结束时间
  508. requestMap.put("end", end);
  509. }
  510. Integer hour = DateUtils.getNowHour(); // 当前小时
  511. Long nowStartHourTemp = DateUtils.getStartLongTime(orderStartDate); // 当天开始时间戳
  512. Long nowEndHourTemp = DateUtils.getNowEndHourTemp(orderStartDate, hour); // 当前结束时间戳
  513. String yesterday = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -1); // 昨日日期
  514. Long yesterdayStartHourTemp = DateUtils.getStartLongTime(yesterday); //昨日开始时间戳
  515. Long yesterdayEndHourTemp = DateUtils.getNowEndHourTemp(yesterday, hour); // 昨日结束时间戳
  516. requestMap.put("nowStartHourTemp", nowStartHourTemp);
  517. requestMap.put("nowEndHourTemp", nowEndHourTemp);
  518. requestMap.put("yesterdayStartHourTemp", yesterdayStartHourTemp);
  519. requestMap.put("yesterdayEndHourTemp", yesterdayEndHourTemp);
  520. startPage();
  521. List<JSONObject> orderRankRatioList = supplyChainService.getOrderRankRatioList(requestMap);
  522. return getDataTable(orderRankRatioList);
  523. } else {
  524. if (!Check.isNull(orderStartDate)) {
  525. Long start = DateUtils.getStartLongTime(orderStartDate);
  526. requestMap.put("start", start);
  527. }
  528. if (!Check.isNull(orderEndDate)) {
  529. Long end = DateUtils.getEndLongTime(orderEndDate);
  530. requestMap.put("end", end);
  531. }
  532. startPage();
  533. List<JSONObject> orderRankRatioList = supplyChainService.getOrderRankList(requestMap);
  534. return getDataTable(orderRankRatioList);
  535. }
  536. }
  537. @GetMapping("/indexPromoterRank")
  538. @ApiOperation(value = "首页-达人排行")
  539. public TableDataInfo indexPromoterRank(
  540. @ApiParam("时间类型") @RequestParam(value = "dateType", required = true) Integer dateType,
  541. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = true) String orderStartDate,
  542. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = true) String orderEndDate,
  543. @ApiParam("userId") @RequestParam(value = "userId", required = false) Long userId) {
  544. Map<String, Object> requestMap = new HashMap<>();
  545. if (dateType == 0) {
  546. if (Check.isNotNull(userId)) {
  547. requestMap.put("promoterIds", promoterService.selectPromoterIdList(userId));
  548. }
  549. if (!Check.isNull(orderStartDate)) {
  550. Long start = DateUtils.getStartLongTime(orderStartDate); //当天开始时间
  551. requestMap.put("start", start);
  552. }
  553. if (!Check.isNull(orderEndDate)) {
  554. Long end = DateUtils.getEndLongTime(orderEndDate); // 当天结束时间
  555. requestMap.put("end", end);
  556. }
  557. Integer hour = DateUtils.getNowHour(); // 当前小时
  558. Long nowStartHourTemp = DateUtils.getStartLongTime(orderStartDate); // 当天开始时间戳
  559. Long nowEndHourTemp = DateUtils.getNowEndHourTemp(orderStartDate, hour); // 当前结束时间戳
  560. String yesterday = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -1); // 昨日日期
  561. Long yesterdayStartHourTemp = DateUtils.getStartLongTime(yesterday); //昨日开始时间戳
  562. Long yesterdayEndHourTemp = DateUtils.getNowEndHourTemp(yesterday, hour); // 昨日结束时间戳
  563. requestMap.put("nowStartHourTemp", nowStartHourTemp);
  564. requestMap.put("nowEndHourTemp", nowEndHourTemp);
  565. requestMap.put("yesterdayStartHourTemp", yesterdayStartHourTemp);
  566. requestMap.put("yesterdayEndHourTemp", yesterdayEndHourTemp);
  567. startPage();
  568. List<JSONObject> promoterRankRatioList = supplyChainService.getPromoterRankRatioList(requestMap);
  569. return getDataTable(promoterRankRatioList);
  570. } else {
  571. if (!Check.isNull(orderStartDate)) {
  572. Long start = DateUtils.getStartLongTime(orderStartDate);
  573. requestMap.put("start", start);
  574. }
  575. if (!Check.isNull(orderEndDate)) {
  576. Long end = DateUtils.getEndLongTime(orderEndDate);
  577. requestMap.put("end", end);
  578. }
  579. startPage();
  580. List<JSONObject> orderRatioList = supplyChainService.getPromoterRatioList(requestMap);
  581. return getDataTable(orderRatioList);
  582. }
  583. }
  584. @RequestMapping(value = "/exportPromoterTotal")
  585. @ResponseBody
  586. public void exportPromoterTotal(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws Exception {
  587. Map<String, Object> requestMap = new HashMap<>();
  588. if (!Check.isNull(requestJson.getString("orderStartDate"))) {
  589. Long start = DateUtils.getStartLongTime(requestJson.getString("orderStartDate"));
  590. requestMap.put("start", start);
  591. }
  592. if (!Check.isNull(requestJson.getString("orderEndDate"))) {
  593. Long end = DateUtils.getEndLongTime(requestJson.getString("orderEndDate"));
  594. requestMap.put("end", end);
  595. }
  596. if (!Check.isNull(requestJson.getString("promoterNickName"))) {
  597. requestMap.put("promoterNickName", requestJson.getString("promoterNickName"));
  598. }
  599. if (!Check.isNull(requestJson.getLong("promoterId"))) {
  600. requestMap.put("promoterId", requestJson.getLong("promoterId"));
  601. }
  602. if (!Check.isNull(requestJson.getLong("itemId"))) {
  603. requestMap.put("itemId", requestJson.getLong("itemId"));
  604. }
  605. if (!Check.isNull(requestJson.getString("itemTitle"))) {
  606. requestMap.put("itemTitle", requestJson.getString("itemTitle"));
  607. }
  608. List<JSONObject> list = supplyChainService.exportPromoterTotal(requestMap);
  609. List<List<Object>> exportList = new ArrayList<>();
  610. if (!Check.isNull(list)) {
  611. for (int i = 0; i < list.size(); i++) {
  612. JSONObject date = list.get(i);
  613. List<Object> export = new ArrayList();
  614. export.add(date.getLong("promoterId"));
  615. export.add(date.getString("promoterNickName"));
  616. export.add(date.getInteger("orderNum"));
  617. export.add(date.getInteger("validOrderNUm"));
  618. export.add(date.getString("validRadio"));
  619. export.add(date.getString("deliveryNum"));
  620. export.add(date.getString("deliveryRadio"));
  621. export.add(date.getString("notDeliveryNum"));
  622. exportList.add(export);
  623. }
  624. }
  625. String[] headers = {"达人ID", "达人名称", "订单数", "有效订单数", "有效订单率", "发货数", "发货率", "未发货数"};
  626. OutputStream os = response.getOutputStream();
  627. ExportExcelUtils eeu = new ExportExcelUtils();
  628. XSSFWorkbook workbook = new XSSFWorkbook();
  629. eeu.exportExcel(workbook, 0, "达人信息", headers, exportList);
  630. this.setResponseHeader(response, "达人信息.xls");
  631. workbook.write(os);
  632. os.flush();
  633. os.close();
  634. }
  635. @RequestMapping(value = "/exportPromoter")
  636. @ResponseBody
  637. public void exportPromoter(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws Exception {
  638. Map<String, Object> requestMap = new HashMap<>();
  639. if (!Check.isNull(requestJson.getString("orderStartDate"))) {
  640. Long start = DateUtils.getStartLongTime(requestJson.getString("orderStartDate"));
  641. requestMap.put("start", start);
  642. }
  643. if (!Check.isNull(requestJson.getString("orderEndDate"))) {
  644. Long end = DateUtils.getEndLongTime(requestJson.getString("orderEndDate"));
  645. requestMap.put("end", end);
  646. }
  647. if (!Check.isNull(requestJson.getString("promoterNickName"))) {
  648. requestMap.put("promoterNickName", requestJson.getString("promoterNickName"));
  649. }
  650. if (!Check.isNull(requestJson.getLong("promoterId"))) {
  651. requestMap.put("promoterId", requestJson.getLong("promoterId"));
  652. }
  653. if (!Check.isNull(requestJson.getLong("itemId"))) {
  654. requestMap.put("itemId", requestJson.getLong("itemId"));
  655. }
  656. if (!Check.isNull(requestJson.getString("itemTitle"))) {
  657. requestMap.put("itemTitle", requestJson.getString("itemTitle"));
  658. }
  659. List<JSONObject> list = supplyChainService.exportPromoter(requestMap);
  660. List<List<Object>> exportList = new ArrayList<>();
  661. if (!Check.isNull(list)) {
  662. for (int i = 0; i < list.size(); i++) {
  663. JSONObject date = list.get(i);
  664. List<Object> export = new ArrayList();
  665. export.add(date.getLong("promoterId"));
  666. export.add(date.getString("promoterNickName"));
  667. export.add(date.getLong("itemId"));
  668. export.add(date.getString("itemTitle"));
  669. export.add(date.getString("imageUrl"));
  670. export.add(date.getInteger("orderNum"));
  671. export.add(date.getInteger("validOrderNUm"));
  672. export.add(date.getString("validRadio"));
  673. export.add(date.getString("deliveryNum"));
  674. export.add(date.getString("deliveryRadio"));
  675. exportList.add(export);
  676. }
  677. }
  678. String[] headers = {"达人ID", "达人名称", "商品ID", "商品名称", "商品封面", "订单数", "有效订单数", "有效订单率", "发货数", "发货率"};
  679. OutputStream os = response.getOutputStream();
  680. ExportExcelUtils eeu = new ExportExcelUtils();
  681. XSSFWorkbook workbook = new XSSFWorkbook();
  682. eeu.exportExcel(workbook, 0, "达人信息", headers, exportList);
  683. this.setResponseHeader(response, "达人信息.xls");
  684. workbook.write(os);
  685. os.flush();
  686. os.close();
  687. }
  688. @RequestMapping(value = "/exportOrder")
  689. @ResponseBody
  690. public void exportOrder(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws Exception {
  691. Map<String, Object> requestMap = new HashMap<>();
  692. if (!Check.isNull(requestJson.getString("orderStartDate"))) {
  693. Long start = DateUtils.getStartLongTime(requestJson.getString("orderStartDate"));
  694. requestMap.put("start", start);
  695. }
  696. if (!Check.isNull(requestJson.getString("orderEndDate"))) {
  697. Long end = DateUtils.getEndLongTime(requestJson.getString("orderEndDate"));
  698. requestMap.put("end", end);
  699. }
  700. if (!Check.isNull(requestJson.getString("promoterNickName"))) {
  701. requestMap.put("promoterNickName", requestJson.getString("promoterNickName"));
  702. }
  703. if (!Check.isNull(requestJson.getLong("promoterId"))) {
  704. requestMap.put("promoterId", requestJson.getLong("promoterId"));
  705. }
  706. if (!Check.isNull(requestJson.getLong("itemId"))) {
  707. requestMap.put("itemId", requestJson.getLong("itemId"));
  708. }
  709. if (!Check.isNull(requestJson.getString("itemTitle"))) {
  710. requestMap.put("itemTitle", requestJson.getString("itemTitle"));
  711. }
  712. if (!Check.isNull(requestJson.getLong("userId"))) {
  713. requestMap.put("userId", requestJson.getLong("userId"));
  714. }
  715. List<JSONObject> list = supplyChainService.exportOrder(requestMap);
  716. List<List<Object>> exportList = new ArrayList<>();
  717. if (!Check.isNull(list)) {
  718. for (int i = 0; i < list.size(); i++) {
  719. JSONObject date = list.get(i);
  720. List<Object> export = new ArrayList();
  721. export.add(date.getString("userName"));
  722. export.add(date.getLong("itemId"));
  723. export.add(date.getString("itemTitle"));
  724. export.add(date.getString("imageUrl"));
  725. export.add(date.getString("itemCommissionRate"));
  726. export.add(date.getInteger("orderNum"));
  727. export.add(date.getInteger("validOrderNUm"));
  728. export.add(date.getString("validRadio"));
  729. export.add(date.getString("deliveryNum"));
  730. export.add(date.getString("deliveryRadio"));
  731. export.add(date.getString("notDeliveryNum"));
  732. exportList.add(export);
  733. }
  734. }
  735. String[] headers = {"所属人", "商品ID", "商品名称", "商品封面", "佣金率", "订单数", "有效订单数", "有效订单率", "发货数", "发货率", "未发货数"};
  736. OutputStream os = response.getOutputStream();
  737. ExportExcelUtils eeu = new ExportExcelUtils();
  738. XSSFWorkbook workbook = new XSSFWorkbook();
  739. eeu.exportExcel(workbook, 0, "订单信息", headers, exportList);
  740. this.setResponseHeader(response, "订单信息.xls");
  741. workbook.write(os);
  742. os.flush();
  743. os.close();
  744. }
  745. /**
  746. * 获取供应链人员列表
  747. *
  748. * @return
  749. */
  750. @GetMapping("/getSupplyChainUserList")
  751. @ApiOperation(value = "获取供应链成员列表")
  752. public TableDataInfo getSupplyChainUserList() {
  753. List<JSONObject> list = supplyChainService.getSupplyChainUserList();
  754. return getDataTable(list);
  755. }
  756. /**
  757. * 获取商品绑定人员列表
  758. *
  759. * @param status
  760. * @param userId
  761. * @param itemId
  762. * @param itemTitle
  763. * @param activityId
  764. * @return
  765. */
  766. @GetMapping("/bindUserItemList")
  767. @ApiOperation(value = "商品认领列表")
  768. public TableDataInfo bindUserItemList(
  769. @ApiParam("状态") @RequestParam(value = "status", required = false) Integer status,
  770. @ApiParam("userId") @RequestParam(value = "userId", required = false) Long userId,
  771. @ApiParam("商品id") @RequestParam(value = "itemId", required = false) Long itemId,
  772. @ApiParam("商品名称") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  773. @ApiParam("活动ID") @RequestParam(value = "activityId", required = false) Long activityId
  774. ) {
  775. Map<String, Object> requestMap = new HashMap<>();
  776. if (!Check.isNull(status)) {
  777. requestMap.put("status", status);
  778. }
  779. if (!Check.isNull(userId)) {
  780. requestMap.put("userId", userId);
  781. }
  782. if (!Check.isNull(itemId)) {
  783. requestMap.put("itemId", itemId);
  784. }
  785. if (!Check.isNull(itemTitle)) {
  786. requestMap.put("itemTitle", itemTitle);
  787. }
  788. if (!Check.isNull(activityId)) {
  789. requestMap.put("activityId", activityId);
  790. }
  791. startPage();
  792. List<JSONObject> list = supplyChainService.bindUserItemList(requestMap);
  793. return getDataTable(list);
  794. }
  795. /**
  796. * 商品解绑
  797. *
  798. * @param itemId
  799. * @return
  800. */
  801. @GetMapping("/unbindUser")
  802. @ApiOperation(value = "商品解绑")
  803. public JSONObject unbindUser(
  804. @ApiParam("商品id") @RequestParam(value = "itemId", required = false) Long itemId) {
  805. JSONObject returnJson = new JSONObject();
  806. if (Check.isNull(itemId)) {
  807. returnJson.put("code", -1);
  808. returnJson.put("message", "请传入商品ID");
  809. return returnJson;
  810. }
  811. boolean isTrueOrFalse = supplyChainService.unbindUser(itemId);
  812. if (isTrueOrFalse) {
  813. returnJson.put("code", 0);
  814. returnJson.put("message", "解绑成功");
  815. return returnJson;
  816. } else {
  817. returnJson.put("code", -1);
  818. returnJson.put("message", "解绑失败");
  819. return returnJson;
  820. }
  821. }
  822. /**
  823. * 绑定商品
  824. *
  825. * @param itemId
  826. * @return
  827. */
  828. @GetMapping("/bindUser")
  829. @ApiOperation(value = "绑定商品")
  830. public JSONObject bindUser(
  831. @ApiParam("商品ID") @RequestParam(value = "itemId", required = false) Long itemId,
  832. @ApiParam("用户ID") @RequestParam(value = "userId", required = false) Long userId,
  833. @ApiParam("用户名称") @RequestParam(value = "nikeName", required = false) String nikeName) {
  834. JSONObject returnJson = new JSONObject();
  835. if (Check.isNull(itemId)) {
  836. returnJson.put("code", -1);
  837. returnJson.put("message", "请传入商品ID");
  838. return returnJson;
  839. }
  840. if (Check.isNull("userId")) {
  841. returnJson.put("code", -1);
  842. returnJson.put("message", "请传入用户ID");
  843. return returnJson;
  844. }
  845. if (Check.isNull("nikeName")) {
  846. returnJson.put("code", -1);
  847. returnJson.put("message", "请传入用户名称");
  848. return returnJson;
  849. }
  850. boolean isTrueOrFalse = supplyChainService.bindUser(itemId, userId, nikeName);
  851. if (isTrueOrFalse) {
  852. returnJson.put("code", 0);
  853. returnJson.put("message", "认领成功");
  854. return returnJson;
  855. } else {
  856. returnJson.put("code", -1);
  857. returnJson.put("message", "认领失败");
  858. return returnJson;
  859. }
  860. }
  861. /**
  862. * 供应链管理员统计列表
  863. *
  864. * @param orderStartDate
  865. * @param orderEndDate
  866. * @return
  867. */
  868. @GetMapping("/adminReportList")
  869. @ApiOperation(value = "供应链管理员统计列表")
  870. public TableDataInfo adminReportList(
  871. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  872. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  873. @ApiParam("用户ID") @RequestParam(value = "userId", required = false) Long userId
  874. ) {
  875. Map<String, Object> requestMap = new HashMap<>();
  876. if (!Check.isNull(orderStartDate)) {
  877. Long start = DateUtils.getStartLongTime(orderStartDate);
  878. requestMap.put("start", start);
  879. }
  880. if (!Check.isNull(orderEndDate)) {
  881. Long end = DateUtils.getEndLongTime(orderEndDate);
  882. requestMap.put("end", end);
  883. }
  884. if (!Check.isNull(userId)) {
  885. requestMap.put("userId", userId);
  886. }
  887. TableDataInfo dataInfo = new TableDataInfo();
  888. if (Check.isNullMap(requestMap)) {
  889. dataInfo.setCode(-1);
  890. dataInfo.setMsg("入参不能为空");
  891. return dataInfo;
  892. }
  893. startPage();
  894. List<JSONObject> list = supplyChainService.adminReportList(requestMap);
  895. return getDataTable(list);
  896. }
  897. /**
  898. * 认领商品列表
  899. *
  900. * @param userId
  901. * @param orderStartDate
  902. * @param orderEndDate
  903. * @param itemId
  904. * @param itemTitle
  905. * @return
  906. */
  907. @GetMapping("/userItemDetail")
  908. @ApiOperation(value = "认领商品列表")
  909. public TableDataInfo userItemDetail(
  910. @ApiParam("userId") @RequestParam(value = "userId", required = false) Long userId,
  911. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  912. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  913. @ApiParam("商品Id") @RequestParam(value = "itemId", required = false) Long itemId,
  914. @ApiParam("商品名称") @RequestParam(value = "itemTitle", required = false) String itemTitle,
  915. @ApiParam("排序字段") @RequestParam(value = "fieId", required = false) String fieId,
  916. @ApiParam("排序方式") @RequestParam(value = "sort", required = false) String sort
  917. ) {
  918. Map<String, Object> requestMap = new HashMap<>();
  919. if (!Check.isNull(userId)) {
  920. requestMap.put("userId", userId);
  921. }
  922. if (!Check.isNull(orderStartDate)) {
  923. Long start = DateUtils.getStartLongTime(orderStartDate);
  924. requestMap.put("start", start);
  925. }
  926. if (!Check.isNull(orderEndDate)) {
  927. Long end = DateUtils.getEndLongTime(orderEndDate);
  928. requestMap.put("end", end);
  929. }
  930. if (!Check.isNull(itemId)) {
  931. requestMap.put("itemId", itemId);
  932. }
  933. if (!Check.isNull(itemTitle)) {
  934. requestMap.put("itemTitle", itemTitle);
  935. }
  936. requestMap.put("fieId", fieId);
  937. requestMap.put("sort", sort);
  938. TableDataInfo dataInfo = new TableDataInfo();
  939. if (Check.isNullMap(requestMap)) {
  940. dataInfo.setCode(-1);
  941. dataInfo.setMsg("入参不能为空");
  942. return dataInfo;
  943. }
  944. startPage();
  945. List<JSONObject> list = supplyChainService.userItemDetail(requestMap);
  946. return getDataTable(list);
  947. }
  948. /**
  949. * 认领商品列表导出
  950. *
  951. * @return
  952. */
  953. @PostMapping("/exportUserItemDetail")
  954. @ApiOperation(value = "认领商品列表")
  955. @ResponseBody
  956. public void exportUserItemDetail(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws IOException {
  957. Map<String, Object> requestMap = new HashMap<>();
  958. if (!Check.isNull(requestJson.getLong("userId"))) {
  959. requestMap.put("userId", requestJson.getLong("userId"));
  960. }
  961. if (!Check.isNull(requestJson.getString("orderStartDate"))) {
  962. Long start = DateUtils.getStartLongTime(requestJson.getString("orderStartDate"));
  963. requestMap.put("start", start);
  964. }
  965. if (!Check.isNull(requestJson.getString("orderEndDate"))) {
  966. Long end = DateUtils.getEndLongTime(requestJson.getString("orderEndDate"));
  967. requestMap.put("end", end);
  968. }
  969. if (!Check.isNull(requestJson.getLong("itemId"))) {
  970. requestMap.put("itemId", requestJson.getLong("itemId"));
  971. }
  972. if (!Check.isNull(requestJson.getString("itemTitle"))) {
  973. requestMap.put("itemTitle", requestJson.getString("itemTitle"));
  974. }
  975. List<JSONObject> list = supplyChainService.exportUserItemDetail(requestMap);
  976. List<List<Object>> exportList = new ArrayList<>();
  977. if (!Check.isNull(list)) {
  978. for (int i = 0; i < list.size(); i++) {
  979. JSONObject date = list.get(i);
  980. List<Object> export = new ArrayList();
  981. export.add(date.getString("userName"));
  982. export.add(date.getLong("itemId"));
  983. export.add(date.getString("itemTitle"));
  984. export.add(date.getString("reservePrice"));
  985. export.add(date.getString("itemCommissionRate"));
  986. export.add(date.getString("orderNum"));
  987. export.add(date.getString("validOrderNUm"));
  988. export.add(date.getString("validRadio"));
  989. export.add(date.getString("invalidOrderNUm"));
  990. export.add(date.getString("deliveryNum"));
  991. export.add(date.getString("deliveryRadio"));
  992. export.add(date.getString("notDeliveryNum"));
  993. export.add(date.getString("payAmount"));
  994. export.add(date.getString("regimentalPromotionRate"));
  995. export.add(date.getString("regimentalPromotionAmount"));
  996. export.add(date.getString("totalRegimentalSettleAmount"));
  997. export.add(date.getString("imageUrl"));
  998. exportList.add(export);
  999. }
  1000. }
  1001. String[] headers = {"所属人", "商品ID", "商品名称", "商品单价", "佣金率", "订单数", "有效订单数", "有效订单率", "失效订单数", "发货数", "发货率", "未发货数", "付款金额", "服务费率", "预估服务费收入", "结算服务费收入", "商品封面"};
  1002. OutputStream os = response.getOutputStream();
  1003. ExportExcelUtils eeu = new ExportExcelUtils();
  1004. XSSFWorkbook workbook = new XSSFWorkbook();
  1005. eeu.exportExcel(workbook, 0, "认领列表", headers, exportList);
  1006. this.setResponseHeader(response, "认领列表.xls");
  1007. workbook.write(os);
  1008. os.flush();
  1009. os.close();
  1010. }
  1011. @GetMapping("/userItemTotal")
  1012. @ApiOperation(value = "认领商品列表汇总")
  1013. public JSONObject userItemTotal(
  1014. @ApiParam("userId") @RequestParam(value = "userId", required = false) Long userId,
  1015. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  1016. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate
  1017. ) {
  1018. Map<String, Object> requestMap = new HashMap<>();
  1019. if (!Check.isNull(userId)) {
  1020. requestMap.put("userId", userId);
  1021. }
  1022. if (!Check.isNull(orderStartDate)) {
  1023. Long start = DateUtils.getStartLongTime(orderStartDate);
  1024. requestMap.put("start", start);
  1025. }
  1026. if (!Check.isNull(orderEndDate)) {
  1027. Long end = DateUtils.getEndLongTime(orderEndDate);
  1028. requestMap.put("end", end);
  1029. }
  1030. JSONObject returnJson = supplyChainService.userItemTotal(requestMap);
  1031. return returnJson;
  1032. }
  1033. /**
  1034. * 商品认领汇总
  1035. *
  1036. * @return
  1037. */
  1038. @GetMapping("/itemBindSummary")
  1039. @ApiOperation(value = "商品认领汇总")
  1040. public JSONObject itemBindSummary() {
  1041. JSONObject json = supplyChainService.itemBindSummary();
  1042. return json;
  1043. }
  1044. /**
  1045. * 首页-时段对比
  1046. *
  1047. * @param orderStartDate
  1048. * @param orderEndDate
  1049. * @return
  1050. */
  1051. @SneakyThrows
  1052. @GetMapping("/indexTimeIntervalRatio")
  1053. @ApiOperation(value = "首页-时段对比")
  1054. public JSONObject indexTimeIntervalRatio(
  1055. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  1056. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate) {
  1057. Map<String, Object> requestMap = new HashMap<>();
  1058. String nowDate = DateUtils.getNowDateStr();
  1059. String thisCycleEnd = null; // 当前时段结束日期
  1060. String thisCycleStart = null; // 当前时段开始日期
  1061. String lastCycleEnd = null; // 上一时段结束日期
  1062. String lastCycleStart = null; // 上一时段开始日期
  1063. if (nowDate.equals(orderStartDate) && nowDate.equals(orderEndDate)) {
  1064. thisCycleEnd = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
  1065. thisCycleStart = DateUtils.getAnotherDay("yyyy-MM-dd", thisCycleEnd, -6);
  1066. lastCycleEnd = DateUtils.getAnotherDay("yyyy-MM-dd", thisCycleStart, -1);
  1067. lastCycleStart = DateUtils.getAnotherDay("yyyy-MM-dd", lastCycleEnd, -6);
  1068. } else {
  1069. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  1070. int differDay = DateUtils.differentDaysByMillisecond(simpleDateFormat.parse(orderStartDate), simpleDateFormat.parse(orderEndDate));
  1071. thisCycleEnd = orderEndDate;
  1072. thisCycleStart = orderStartDate;
  1073. lastCycleEnd = DateUtils.getAnotherDay("yyyy-MM-dd", orderStartDate, -1);
  1074. lastCycleStart = DateUtils.getAnotherDay("yyyy-MM-dd", lastCycleEnd, -differDay);
  1075. }
  1076. if (!Check.isNull(thisCycleStart)) {
  1077. Long thisCycleStartTemp = DateUtils.getStartLongTime(thisCycleStart);
  1078. requestMap.put("thisCycleStartTemp", thisCycleStartTemp);
  1079. }
  1080. if (!Check.isNull(thisCycleEnd)) {
  1081. Long thisCycleEndTemp = DateUtils.getEndLongTime(thisCycleEnd);
  1082. requestMap.put("thisCycleEndTemp", thisCycleEndTemp);
  1083. }
  1084. if (!Check.isNull(lastCycleStart)) {
  1085. Long lastCycleStartTemp = DateUtils.getStartLongTime(lastCycleStart);
  1086. requestMap.put("lastCycleStartTemp", lastCycleStartTemp);
  1087. }
  1088. if (!Check.isNull(lastCycleEnd)) {
  1089. Long lastCycleEndTemp = DateUtils.getEndLongTime(lastCycleEnd);
  1090. requestMap.put("lastCycleEndTemp", lastCycleEndTemp);
  1091. }
  1092. JSONObject timeIntervalRatioJson = supplyChainService.getTimeIntervalRatio(requestMap);
  1093. return timeIntervalRatioJson;
  1094. }
  1095. /**
  1096. * 首页-统计图
  1097. *
  1098. * @param orderStartDate
  1099. * @param orderEndDate
  1100. * @param type
  1101. * @return
  1102. */
  1103. @GetMapping("/indexStatistics")
  1104. @ApiOperation(value = "首页-统计图")
  1105. public List<JSONObject> indexStatistics(
  1106. @ApiParam("开始时间") @RequestParam(value = "orderStartDate", required = false) String orderStartDate,
  1107. @ApiParam("结束时间") @RequestParam(value = "orderEndDate", required = false) String orderEndDate,
  1108. @ApiParam("类型") @RequestParam(value = "type", required = false) String type) {
  1109. Map<String, Object> requestMap = new HashMap<>();
  1110. String nowDate = DateUtils.getNowDateStr();
  1111. String start = null;
  1112. String end = null;
  1113. if (nowDate.equals(orderStartDate) && nowDate.equals(orderEndDate)) {
  1114. end = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
  1115. start = DateUtils.getAnotherDay("yyyy-MM-dd", end, -6);
  1116. } else {
  1117. start = orderStartDate;
  1118. end = orderEndDate;
  1119. }
  1120. if (!Check.isNull(start)) {
  1121. Long startTemp = DateUtils.getStartLongTime(start);
  1122. requestMap.put("startTemp", startTemp);
  1123. }
  1124. if (!Check.isNull(end)) {
  1125. Long endTemp = DateUtils.getEndLongTime(end);
  1126. requestMap.put("endTemp", endTemp);
  1127. }
  1128. if (!Check.isNull(type)) {
  1129. requestMap.put("type", type);
  1130. }
  1131. List<JSONObject> list = supplyChainService.indexStatistics(requestMap);
  1132. return list;
  1133. }
  1134. //发送响应流方法
  1135. public void setResponseHeader(HttpServletResponse response, String fileName) {
  1136. try {
  1137. try {
  1138. fileName = new String(fileName.getBytes(), "ISO8859-1");
  1139. } catch (UnsupportedEncodingException e) {
  1140. e.printStackTrace();
  1141. }
  1142. response.setContentType("application/octet-stream;charset=ISO8859-1");
  1143. response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
  1144. response.addHeader("Pargam", "no-cache");
  1145. response.addHeader("Cache-Control", "no-cache");
  1146. } catch (Exception ex) {
  1147. ex.printStackTrace();
  1148. }
  1149. }
  1150. }