SalesOrderServiceImpl.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.cm.FittingsInfo;
  4. import com.iamberry.rst.core.cm.SalesOrder;
  5. import com.iamberry.rst.core.cm.SalesOrderItem;
  6. import com.iamberry.rst.core.cm.StoreInfo;
  7. import com.iamberry.rst.core.order.ProductColor;
  8. import com.iamberry.rst.core.page.PagedResult;
  9. import com.iamberry.rst.core.sys.SysConfig;
  10. import com.iamberry.rst.faces.cm.SalesOrderService;
  11. import com.iamberry.rst.faces.cm.StoreInfoService;
  12. import com.iamberry.rst.faces.order.EfastOrderService;
  13. import com.iamberry.rst.faces.product.ProductService;
  14. import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
  15. import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
  16. import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
  17. import com.iamberry.rst.util.PageUtil;
  18. import com.iamberry.wechat.tools.DateTimeUtil;
  19. import net.sf.json.JSONArray;
  20. import net.sf.json.JSONNull;
  21. import net.sf.json.JSONObject;
  22. import org.apache.commons.lang.StringUtils;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import javax.xml.crypto.Data;
  29. import java.beans.Transient;
  30. import java.util.ArrayList;
  31. import java.util.Date;
  32. import java.util.List;
  33. /**
  34. * Created by liuzhiwei on 2017/10/31.
  35. */
  36. @Service
  37. public class SalesOrderServiceImpl implements SalesOrderService {
  38. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  39. @Autowired
  40. private SalesOrderMapper salesOrderMapper;
  41. @Autowired
  42. private ProductService productService;
  43. @Autowired
  44. private StoreInfoService storeInfoService;
  45. @Autowired
  46. private EfastOrderService efastOrderService;
  47. @Autowired
  48. private SalesOrderService salesOrderService;
  49. @Autowired
  50. private FittingsInfoMapper fittingsInfoMapper;
  51. @Autowired
  52. private SysConfigMapper sysConfigMapper;
  53. @Override
  54. public Integer addSalesOrder(SalesOrder salesOrder) {
  55. return salesOrderMapper.addSalesOrder(salesOrder);
  56. }
  57. @Override
  58. public SalesOrder getSalesOrderById(Integer salesId) {
  59. return salesOrderMapper.getSalesOrderById(salesId);
  60. }
  61. @Override
  62. public Integer updateSalesOrder(SalesOrder salesOrder) {
  63. return salesOrderMapper.updateSalesOrder(salesOrder);
  64. }
  65. @Override
  66. public Integer addSalesOrderList(List<SalesOrder> list) {
  67. return salesOrderMapper.addSalesOrderList(list);
  68. }
  69. @Override
  70. public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
  71. return salesOrderMapper.listSalesOrder(salesOrder);
  72. }
  73. @Override
  74. public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  75. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  76. //查询订单列表信息
  77. List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
  78. return PageUtil.getPage(orderList);
  79. }
  80. @Override
  81. @Transient
  82. public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
  83. if (list == null || list.size() == 0) {
  84. throw new RuntimeException("获取订单信息出错!");
  85. }
  86. SalesOrder verifyOrder = new SalesOrder();
  87. verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
  88. //查询该订单是否存在,如果存在,不需要再次添加到订单中
  89. int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
  90. if (count > 0) {
  91. return true;
  92. }
  93. //添加订单数据
  94. try {
  95. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  96. if (orderNum <= 0) {
  97. throw new RuntimeException("获取订单信息出错!");
  98. }
  99. }catch (Exception e){
  100. return true;
  101. }
  102. for (SalesOrderItem item : list) {
  103. item.setItemOrderId(salesOrder.getSalesId());
  104. }
  105. //批量添加订单项数据
  106. int itemNum = salesOrderMapper.addOrderItemList(list);
  107. if (itemNum <= 0) {
  108. throw new RuntimeException("获取订单信息出错!");
  109. }
  110. return true;
  111. }
  112. @Override
  113. @Transactional
  114. public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
  115. //添加订单数据
  116. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  117. if (orderNum <= 0) {
  118. return salesOrder;
  119. }
  120. for (SalesOrderItem item : list) {
  121. item.setItemOrderId(salesOrder.getSalesId());
  122. }
  123. //批量添加订单项数据
  124. int itemNum = salesOrderMapper.addOrderItemList(list);
  125. if (itemNum <= 0) {
  126. return salesOrder;
  127. }
  128. return salesOrder;
  129. }
  130. @Override
  131. @Transactional
  132. public boolean addRstOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
  133. //添加订单数据
  134. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  135. if (orderNum <= 0) {
  136. return false;
  137. }
  138. for (SalesOrderItem item : list) {
  139. item.setItemOrderId(salesOrder.getSalesId());
  140. }
  141. //批量添加订单项数据
  142. int itemNum = salesOrderMapper.addOrderItemList(list);
  143. if (itemNum <= 0) {
  144. return false;
  145. }
  146. return true;
  147. }
  148. @Override
  149. public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
  150. return salesOrderMapper.listSalesOrderItem(salesOrderItem);
  151. }
  152. @Override
  153. public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
  154. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  155. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  156. for (int i = 0;i < orderList.size();i++) {
  157. JSONObject orderInfo = orderList.getJSONObject(i);
  158. for (SalesOrder salesOrder : list) {
  159. if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
  160. && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
  161. && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
  162. && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
  163. && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
  164. && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
  165. && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
  166. && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
  167. && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
  168. && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
  169. )) {
  170. SalesOrder order = new SalesOrder();
  171. order.setSalesId(salesOrder.getSalesId());
  172. order.setSalesStatus(orderInfo.getInt("order_status"));
  173. order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
  174. order.setSalesPayStatus(orderInfo.getInt("pay_status"));
  175. order.setSalesProcessStatus(orderInfo.getInt("process_status"));
  176. order.setSalesIsSend(orderInfo.getInt("is_send"));
  177. order.setSalesIsLocked(orderInfo.getInt("is_locked"));
  178. order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
  179. order.setSalesPostFirm(orderInfo.getString("shipping_name"));
  180. order.setSalesPostNum(orderInfo.getString("invoice_no"));
  181. salesOrders.add(order);
  182. }
  183. }
  184. }
  185. if (salesOrders != null && salesOrders.size() > 0) {
  186. //批量修改订单状态等信息
  187. return salesOrderMapper.updateOrderList(salesOrders);
  188. } else {
  189. return 1;
  190. }
  191. }
  192. @Override
  193. public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
  194. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  195. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  196. for (int i = 0;i < orderList.size();i++) {
  197. JSONObject orderInfo = orderList.getJSONObject(i);
  198. for (SalesOrder salesOrder : list) {
  199. if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
  200. SalesOrder order = new SalesOrder();
  201. switch (orderInfo.getInt("process_type")) {
  202. case 1://退货
  203. order.setSalesOrderStatus(3);
  204. break;
  205. case 4://换货
  206. order.setSalesOrderStatus(2);
  207. break;
  208. default:
  209. order.setSalesOrderStatus(3);
  210. break;
  211. }
  212. order.setSalesId(salesOrder.getSalesId());
  213. salesOrders.add(order);
  214. }
  215. }
  216. }
  217. //批量修改订单状态等信息
  218. return salesOrderMapper.updateOrderList(list);
  219. }
  220. @Override
  221. public void addSalesOrderList(JSONObject obj) throws Exception{
  222. if (obj == null) {
  223. return;
  224. }
  225. JSONArray orderList = obj.getJSONArray("list");
  226. if (orderList == null || orderList.size() == 0) {
  227. return;
  228. }
  229. String endTime = sysConfigMapper.getSysConfig(1);
  230. for (int i = 0;i < orderList.size();i++) {
  231. JSONObject order = orderList.getJSONObject(i);
  232. //获取订单详情
  233. JSONObject orderInfo = null;
  234. try{
  235. orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
  236. }catch (Exception e){
  237. logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
  238. }
  239. if (orderInfo == null) {
  240. continue;
  241. }
  242. if (!orderInfo.has("orders")) {
  243. continue;
  244. }
  245. //获取订单项集合
  246. JSONArray itemArray = orderInfo.getJSONArray("orders");
  247. if (itemArray == null || itemArray.size() == 0) {
  248. continue;
  249. }
  250. SalesOrder salesOrder = new SalesOrder();
  251. salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
  252. salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
  253. salesOrder.setSalesOrderStatus(1);//订单状态
  254. salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  255. salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  256. salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
  257. salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
  258. salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
  259. salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
  260. salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  261. salesOrder.setSalesPostFirm(order.getString("shipping_name").trim());//快递方式代码
  262. salesOrder.setSalesPostNum(order.getString("invoice_no").trim());//快递单号
  263. salesOrder.setSalesOpenId(order.getString("mobile").trim());//唯一标识
  264. salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name").trim()));//支付方式
  265. salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
  266. salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
  267. salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
  268. salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
  269. salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
  270. salesOrder.setSalesAddressName(order.getString("consignee").trim());//收货人
  271. String mobile = order.getString("mobile").replaceAll("[\\u00A0]+", "").trim();
  272. salesOrder.setSalesAddressTel(mobile);//收货人电话
  273. salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
  274. salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
  275. salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
  276. if (order.getInt("shipping_status") == 1) {
  277. if(order.has("delivery_time")){
  278. salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  279. }else{
  280. salesOrder.setSalesSendTime(new Date());//发货时间
  281. }
  282. }
  283. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  284. salesOrder.setSalesPledgeMoney(0);//押金金额
  285. salesOrder.setSalesRemainDeposit(0);//待提取金额
  286. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  287. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  288. salesOrder.setSalesWaitMoney(0);//待付金额
  289. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  290. salesOrder.setSalesPayNumber("0000");//支付尾号
  291. salesOrder.setSalesType(1);//订单类型
  292. endTime = order.getString("create_time"); //获取
  293. //查询店铺信息
  294. StoreInfo storeInfo = new StoreInfo();
  295. storeInfo.setStoreEfast(order.getString("sd_id"));
  296. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  297. int storeId = 0;
  298. int companyId = 0;
  299. if (storeList != null && storeList.size() > 0) {
  300. storeInfo = storeList.get(0);
  301. storeId = storeInfo.getStoreId();
  302. companyId = storeInfo.getCompanyId();
  303. }
  304. salesOrder.setSalesStoreId(storeId);//店铺id
  305. salesOrder.setSalesCompanyId(companyId);//销售公司id
  306. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  307. for (int j = 0;j < itemArray.size();j++) {
  308. ProductColor color = new ProductColor();
  309. JSONObject itemJson = itemArray.getJSONObject(j);
  310. SalesOrderItem item = new SalesOrderItem();
  311. color.setColorBar(itemJson.getString("goods_sn"));
  312. List<ProductColor> colorList = productService.listproductAndColor(color);
  313. if (colorList != null && colorList.size() > 0) {
  314. color = colorList.get(0);
  315. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  316. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  317. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  318. item.setItemColorId(color.getColorId());
  319. item.setItemProductColor(color.getColorName());
  320. item.setItemProductDiscount(color.getColorDiscount());
  321. item.setItemProductId(color.getColorProductId());
  322. item.setItemProductName(color.getProductName());
  323. item.setItemProductPic(color.getColorPicture());
  324. item.setItemProductType(color.getProductType());
  325. item.setItemProductPrice(color.getColorPrice());
  326. item.setItemIsSource(1);
  327. itemList.add(item);
  328. } else {
  329. //获取配件信息
  330. FittingsInfo fittingsInfo = new FittingsInfo();
  331. fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
  332. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  333. if (Fittings == null || Fittings.size() == 0) {
  334. continue;
  335. }
  336. fittingsInfo = Fittings.get(0);
  337. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  338. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  339. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  340. item.setItemColorId(fittingsInfo.getFittingsId());
  341. item.setItemProductColor(fittingsInfo.getFittingsName());
  342. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  343. item.setItemProductId(fittingsInfo.getProductId());
  344. item.setItemProductName(fittingsInfo.getFittingsName());
  345. item.setItemProductPic("");
  346. item.setItemProductType(0);
  347. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  348. item.setItemIsSource(2);
  349. itemList.add(item);
  350. }
  351. }
  352. //添加订单和订单项
  353. try{
  354. salesOrderService.addOrderAndItem(salesOrder,itemList);
  355. }catch (Exception e){
  356. logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
  357. }
  358. }
  359. SysConfig sysConfig = new SysConfig(1,endTime);
  360. sysConfigMapper.updateSysConfig(sysConfig);
  361. }
  362. @Override
  363. @Transient
  364. public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
  365. if (orderInfo == null) {
  366. throw new RuntimeException("获取Efast订单信息出错!");
  367. }
  368. if (!orderInfo.has("orders")) {
  369. throw new RuntimeException("获取Efast订单信息出错!");
  370. }
  371. //获取订单项集合
  372. JSONArray itemArray = orderInfo.getJSONArray("orders");
  373. if (itemArray == null || itemArray.size() == 0) {
  374. throw new RuntimeException("获取Efast订单信息出错!");
  375. }
  376. SalesOrder salesOrder = new SalesOrder();
  377. salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
  378. salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
  379. salesOrder.setSalesOrderStatus(1);//订单状态
  380. salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  381. salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  382. salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
  383. salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
  384. salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
  385. salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
  386. salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  387. salesOrder.setSalesPostFirm(new String(orderInfo.getString("shipping_name")).trim());//快递方式代码
  388. salesOrder.setSalesPostNum(new String(orderInfo.getString("invoice_no")).trim());//快递单号
  389. salesOrder.setSalesOpenId(orderInfo.getString("mobile").trim());//唯一标识
  390. salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name").trim()));//支付方式
  391. salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
  392. salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
  393. salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
  394. salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
  395. salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
  396. salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
  397. String mobile = orderInfo.getString("mobile").replaceAll("[\\u00A0]+", "");
  398. salesOrder.setSalesAddressTel(mobile.trim());//收货人电话
  399. salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
  400. salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
  401. salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
  402. if (orderInfo.getInt("shipping_status") == 1) {
  403. if(orderInfo.has("delivery_time")){
  404. salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  405. }else{
  406. salesOrder.setSalesSendTime(new Date());//发货时间
  407. }
  408. }
  409. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  410. salesOrder.setSalesPledgeMoney(0);//押金金额
  411. salesOrder.setSalesRemainDeposit(0);//待提取金额
  412. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  413. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  414. salesOrder.setSalesWaitMoney(0);//待付金额
  415. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  416. salesOrder.setSalesPayNumber("0000");//支付尾号
  417. salesOrder.setSalesType(1);//订单类型
  418. //查询店铺信息
  419. StoreInfo storeInfo = new StoreInfo();
  420. if (orderInfo.has("sd_id")) {
  421. storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
  422. } else {
  423. storeInfo.setStoreEfast("1");
  424. }
  425. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  426. int storeId = 0;
  427. int companyId = 0;
  428. if (storeList != null && storeList.size() > 0) {
  429. storeInfo = storeList.get(0);
  430. storeId = storeInfo.getStoreId();
  431. companyId = storeInfo.getCompanyId();
  432. }
  433. salesOrder.setSalesStoreId(storeId);//店铺id
  434. salesOrder.setSalesCompanyId(companyId);//销售公司id
  435. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  436. for (int j = 0;j < itemArray.size();j++) {
  437. ProductColor color = new ProductColor();
  438. JSONObject itemJson = itemArray.getJSONObject(j);
  439. SalesOrderItem item = new SalesOrderItem();
  440. color.setColorBar(itemJson.getString("goods_barcode"));
  441. List<ProductColor> colorList = productService.listproductAndColor(color);
  442. if (colorList != null && colorList.size() > 0) {
  443. color = colorList.get(0);
  444. item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  445. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  446. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  447. item.setItemColorId(color.getColorId());
  448. item.setItemProductColor(color.getColorName());
  449. item.setItemProductDiscount(color.getColorDiscount());
  450. item.setItemProductId(color.getColorProductId());
  451. item.setItemProductName(color.getProductName());
  452. item.setItemProductPic(color.getColorPicture());
  453. item.setItemProductType(color.getProductType());
  454. item.setItemProductPrice(color.getColorPrice());
  455. item.setItemIsSource(1);
  456. itemList.add(item);
  457. } else {
  458. //获取配件信息
  459. FittingsInfo fittingsInfo = new FittingsInfo();
  460. fittingsInfo.setFittingsBar(itemJson.getString("goods_barcode"));
  461. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  462. if (Fittings == null || Fittings.size() == 0) {
  463. continue;
  464. }
  465. fittingsInfo = Fittings.get(0);
  466. item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  467. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  468. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  469. item.setItemColorId(fittingsInfo.getFittingsId());
  470. item.setItemProductColor(fittingsInfo.getFittingsName());
  471. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  472. item.setItemProductId(fittingsInfo.getProductId());
  473. item.setItemProductName(fittingsInfo.getFittingsName());
  474. item.setItemProductPic("");
  475. item.setItemProductType(0);
  476. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  477. item.setItemIsSource(2);
  478. itemList.add(item);
  479. }
  480. }
  481. boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
  482. if (flag) {
  483. return true;
  484. } else {
  485. throw new RuntimeException("添加订单项出错!");
  486. }
  487. }
  488. @Override
  489. public Integer getOrderInfoCount(SalesOrder salesOrder) {
  490. return salesOrderMapper.getOrderInfoCount(salesOrder);
  491. }
  492. @Override
  493. public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
  494. return salesOrderMapper.listOrderExcel(salesOrder);
  495. }
  496. @Override
  497. public Integer delOrder(String orderId) {
  498. return salesOrderMapper.delOrder(orderId);
  499. }
  500. @Override
  501. public Integer updateOrderItem(SalesOrderItem salesOrderItem) {
  502. return salesOrderMapper.updateOrderItem(salesOrderItem);
  503. }
  504. @Override
  505. public SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder) {
  506. return salesOrderMapper.getSalesOrderByLogistics(salesOrder);
  507. }
  508. @Override
  509. public Integer updateOrderListIsDownload(List<SalesOrder> list) {
  510. return salesOrderMapper.updateOrderListIsDownload(list);
  511. }
  512. @Override
  513. public Integer updateSalesOrderByDealCode(SalesOrder salesOrder) {
  514. return salesOrderMapper.updateSalesOrderByDealCode(salesOrder);
  515. }
  516. }