InquiryForSaleController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package com.uas.ps.inquiry.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.uas.ps.core.logging.BufferedLoggerManager;
  5. import com.uas.ps.inquiry.domain.IPage;
  6. import com.uas.ps.inquiry.entity.Constant;
  7. import com.uas.ps.inquiry.entity.Inquiry;
  8. import com.uas.ps.inquiry.entity.InquirySource;
  9. import com.uas.ps.inquiry.model.Attach;
  10. import com.uas.ps.inquiry.model.InquiryRemind;
  11. import com.uas.ps.inquiry.model.PublicInquiryItem;
  12. import com.uas.ps.inquiry.model.PublicInquiryReply;
  13. import com.uas.ps.inquiry.page.PageInfo;
  14. import com.uas.ps.inquiry.page.PageParams;
  15. import com.uas.ps.inquiry.page.SearchFilter;
  16. import com.uas.ps.inquiry.service.InquiryForSaleService;
  17. import com.uas.ps.inquiry.support.InquiryBufferedLogger;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.data.domain.Page;
  20. import org.springframework.data.domain.Sort;
  21. import org.springframework.ui.ModelMap;
  22. import org.springframework.web.bind.annotation.RequestBody;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestMethod;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import java.util.List;
  27. /**
  28. * 针对供应商,对询价的相关操作
  29. *
  30. * Created by hejq on 2018-01-18.
  31. */
  32. @RequestMapping("/inquiry/sale")
  33. @RestController
  34. public class InquiryForSaleController {
  35. @Autowired
  36. private InquiryForSaleService saleService;
  37. private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
  38. /**
  39. * 通过ID查询报价详情
  40. *
  41. * @param itemId 已转报价的明细id
  42. * @return
  43. */
  44. @RequestMapping(value = "/inquiry/detail", method = RequestMethod.GET)
  45. public PublicInquiryItem findById(Long itemId, Long en_uu) {
  46. logger.log("公共询价", "查询已转报价的明细", "id: " + itemId, Constant.UU, en_uu, InquirySource.PLAIN.name());
  47. return saleService.findById(itemId);
  48. }
  49. /**
  50. * 通过id查询公共询价详情
  51. *
  52. * @param id 询价明细id
  53. * @param enuu 企业UU号
  54. * @return
  55. */
  56. @RequestMapping(value = "/publicInquiry/detail", method = RequestMethod.GET)
  57. public ModelMap findInquiryById(Long id, Long enuu) {
  58. logger.log("公共询价", "通过id查询公共询价详情", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name());
  59. return saleService.findByIdAndEnuu(id, enuu);
  60. }
  61. /**
  62. * 卖家报价时上传附件信息
  63. *
  64. * @param attach 附件信息
  65. * @return
  66. * @throws Exception
  67. */
  68. @RequestMapping(value = "/attach", method = RequestMethod.POST)
  69. public String addAttachs(@RequestBody Attach attach) throws Exception {
  70. attach = saleService.addAttachs(attach);
  71. if (null != attach.getId()) {
  72. return JSONObject.toJSONString(attach);
  73. } else {
  74. throw new Exception("保存失败");
  75. }
  76. }
  77. /**
  78. * 作为卖家,新增报价
  79. *
  80. * @param item 前台数据
  81. * @return
  82. */
  83. @RequestMapping(value = "/item/add", method = RequestMethod.POST)
  84. public String saveInquiryItem(@RequestBody PublicInquiryItem item) throws Exception {
  85. item = saleService.add(item);
  86. if (null != item.getId()) {
  87. return JSONObject.toJSONString(item);
  88. } else {
  89. throw new Exception("保存失败");
  90. }
  91. }
  92. /**
  93. * 作为卖家,保存更新公共询价单
  94. *
  95. * @param item 前台数据
  96. * @return
  97. */
  98. @RequestMapping(value = "/item/save", method = RequestMethod.POST)
  99. public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception {
  100. item = saleService.saveItem(item);
  101. logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + item.getSourceId() + ", id" + item.getId(),
  102. item.getVendUserUU(), item.getVendUU(), item.getQutoApp());
  103. if (null != item) {
  104. return JSON.toJSONString(item.getInquiry());
  105. } else {
  106. throw new Exception("保存失败");
  107. }
  108. }
  109. /**
  110. * 保存询价信息
  111. *
  112. * @author hejq
  113. * @date 2018-01-16 15:49
  114. * @param inquiryItem 供应商报价信息
  115. * @return
  116. * @throws Exception
  117. */
  118. @RequestMapping(value = "/renew", method = RequestMethod.POST)
  119. public String saveItem(@RequestBody PublicInquiryItem inquiryItem) throws Exception {
  120. inquiryItem = saleService.save(inquiryItem);
  121. return JSONObject.toJSONString(inquiryItem);
  122. }
  123. /**
  124. * 根据公共询价明细id查询报价信息,判断是否已报价
  125. *
  126. * @param id 公共询价明细id
  127. * @param en_uu 当前企业UU
  128. * @return
  129. */
  130. @RequestMapping(value = "/quote", method = RequestMethod.GET)
  131. public PublicInquiryItem findBySourceId(Long id, Long en_uu) {
  132. logger.log("公共询价", "查询公共询价单是否已报价", "id: " + id,
  133. Constant.UU, en_uu, InquirySource.PLAIN.name());
  134. return saleService.findBySourceIdAndEnuu(id, en_uu);
  135. }
  136. /**
  137. * 移动端转报价的功能
  138. *
  139. * @param inquiryItemId 公共询价明细id
  140. * @param en_uu 报价企业UU号
  141. * @param replies 报价信息
  142. * @param leadtime 交货周期
  143. * @param minOrderQty 最小订购
  144. * @param minPackQty 最小包装
  145. * @return
  146. */
  147. @RequestMapping(value = "/mobile/quote", method = RequestMethod.POST)
  148. public ModelMap quote(Long inquiryItemId, Long en_uu, Long useruu, Long leadtime, Double minPackQty, Double minOrderQty, String replies) throws Exception {
  149. List<PublicInquiryReply> replyList = JSONObject.parseArray(replies, PublicInquiryReply.class);
  150. logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + inquiryItemId,
  151. useruu, en_uu, InquirySource.UU.name());
  152. return saleService.quoteInquiry(inquiryItemId, en_uu, useruu, replyList, leadtime, minPackQty, minOrderQty);
  153. }
  154. /**
  155. * 通过用户信息查询推荐的询价列表
  156. *
  157. * @param useruu 用户UU
  158. * @param enuu 企业UU
  159. * @param pageInfo 分页参数
  160. * @param searchFilter 过滤条件
  161. * @return page<T>
  162. */
  163. @RequestMapping(value = "/remind", method = RequestMethod.GET)
  164. public IPage<InquiryRemind> findByUserInfo(Long useruu, Long enuu, PageInfo pageInfo, SearchFilter searchFilter) {
  165. if (useruu == null || enuu == null) {
  166. throw new IllegalAccessError("非法访问");
  167. } else {
  168. Sort sort = new Sort(Sort.Direction.DESC, "date");
  169. if (pageInfo.getOffset() == 0) {
  170. pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
  171. }
  172. pageInfo.setSort(sort);
  173. pageInfo.filter("vendUU", enuu);
  174. pageInfo.filter("vendUserUU", useruu);
  175. logger.log("公共询价", "查询推荐询价信息", null, useruu, enuu, InquirySource.PLAIN.name());
  176. return saleService.findRemindByPageInfo(pageInfo, searchFilter);
  177. }
  178. }
  179. }