CustomerBasicServiceImpl.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. package com.iamberry.rst.service.customer;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.address.City;
  4. import com.iamberry.rst.core.address.Province;
  5. import com.iamberry.rst.core.customer.*;
  6. import com.iamberry.rst.core.order.Product;
  7. import com.iamberry.rst.core.order.ProductColor;
  8. import com.iamberry.rst.core.page.PageRequest;
  9. import com.iamberry.rst.core.page.PagedResult;
  10. import com.iamberry.rst.faces.customer.CustomerBasicService;
  11. import com.iamberry.rst.service.customer.mapper.CustomerBasicMapper;
  12. import com.iamberry.rst.util.PageUtil;
  13. import com.iamberry.wechat.tools.payUtil.StringUtil;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.List;
  20. /**
  21. * Created by Administrator on 2018/4/20.
  22. */
  23. @Service
  24. public class CustomerBasicServiceImpl implements CustomerBasicService{
  25. @Autowired
  26. private CustomerBasicMapper customerBasicMapper;
  27. @Override
  28. public PagedResult<CustomerBasicInfo> listCustomerBasic(PageRequest<CustomerBasicInfo> pageRequest) {
  29. PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
  30. List<CustomerBasicInfo> customerBasicList = customerBasicMapper.listCustomerBasic(pageRequest.getData());
  31. return PageUtil.getPage(customerBasicList);
  32. }
  33. @Override
  34. public CustomerBasicInfo getCustomerBasic(CustomerBasicInfo customerBasicInfo) {
  35. return customerBasicMapper.getCustomerBasic(customerBasicInfo);
  36. }
  37. @Override
  38. public Integer updateState(CustomerBasicInfo customerBasicInfo) {
  39. return customerBasicMapper.updateState(customerBasicInfo);
  40. }
  41. @Override
  42. public BillingInfo getBillingInfo(BillingInfo billingInfo) {
  43. return customerBasicMapper.getBillingInfo(billingInfo);
  44. }
  45. @Override
  46. public TicketOpeningInfo getOpeningInfo(TicketOpeningInfo ticketOpeningInfo) {
  47. return customerBasicMapper.getOpeningInfo(ticketOpeningInfo);
  48. }
  49. @Override
  50. public List<DockedContactInfo> listDockedContactInfo(DockedContactInfo dockedContactInfo) {
  51. return customerBasicMapper.listDockedContactInfo(dockedContactInfo);
  52. }
  53. @Override
  54. public List<ChannelSaleInfo> listChannelSaleInfo(ChannelSaleInfo channelSaleInfo) {
  55. return customerBasicMapper.listChannelSaleInfo(channelSaleInfo);
  56. }
  57. @Override
  58. public List<ChannelDivisionInfo> listChannelDivisionInfo(Integer coustomerId) {
  59. return customerBasicMapper.listChannelDivisionInfo(coustomerId);
  60. }
  61. private Logger logger = LoggerFactory.getLogger(CustomerBasicServiceImpl.class);
  62. @Override
  63. public CustomerBasicInfo queryCustomerBasicInfoByCustomerId(int queryCustomerId) {
  64. return customerBasicMapper.queryCustomerBasicInfoByCustomerId(queryCustomerId);
  65. }
  66. @Override
  67. public List<DockedContactInfo> queryDockedContactInfoListByCustomerId(int queryCustomerId) {
  68. return customerBasicMapper.queryDockedContactInfoListByCustomerId(queryCustomerId);
  69. }
  70. @Override
  71. public List<ChannelSaleInfo> queryChannelSaleInfoListByCustomerId(int queryCustomerId) {
  72. return customerBasicMapper.queryChannelSaleInfoListByCustomerId(queryCustomerId);
  73. }
  74. @Override
  75. public BillingInfo queryBillingInfoByCustomerId(int queryCustomerId) {
  76. return customerBasicMapper.queryBillingInfoByCustomerId(queryCustomerId);
  77. }
  78. @Override
  79. public TicketOpeningInfo queryTicketOpeningInfoByCustomerId(int queryCustomerId) {
  80. return customerBasicMapper.queryTicketOpeningInfoByCustomerId(queryCustomerId);
  81. }
  82. @Override
  83. @Transactional
  84. public void saveCustomerBasicInfo(CustomerBasicInfo customerBasicInfo,List<DockedContactInfo> dockedContactInfoList, List<ChannelSaleInfo> channelSaleInfoList,
  85. BillingInfo billingInfo, TicketOpeningInfo ticketOpeningInfo) throws Exception{
  86. logger.info("saveCustomerBasicInfo start...");
  87. int customerId = -1;
  88. String channelDivisionId = "";
  89. int cooperativeState = customerBasicInfo.getCooperativeState();
  90. try {
  91. customerBasicMapper.saveCustomerBasicInfo(customerBasicInfo);
  92. customerId = customerBasicInfo.getCustomerId();
  93. if(customerId != -1){
  94. if(dockedContactInfoList != null && dockedContactInfoList.size()>1){
  95. dockedContactInfoList.remove(0);
  96. for (DockedContactInfo dockedContactInfo: dockedContactInfoList) {
  97. dockedContactInfo.setCustomerId(customerId);
  98. customerBasicMapper.saveDockedContactInfo(dockedContactInfo);
  99. }
  100. }
  101. if(channelSaleInfoList != null && channelSaleInfoList.size()>1){
  102. channelSaleInfoList.remove(0);
  103. for (ChannelSaleInfo channelSaleInfo: channelSaleInfoList) {
  104. channelSaleInfo.setCustomerId(customerId);
  105. String channelName = channelSaleInfo.getChannelName();
  106. channelDivisionId = customerBasicMapper.queryIsExsitChannelNameChannelName(channelSaleInfo);
  107. if(StringUtil.isNotEmpty(channelDivisionId)){
  108. if(Integer.valueOf(channelDivisionId)>0){
  109. channelSaleInfo.setChannelDivisionId(Integer.valueOf(channelDivisionId));
  110. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  111. }else{
  112. customerBasicMapper.saveChannelDivisionInfo(channelSaleInfo);
  113. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  114. }
  115. }else{
  116. customerBasicMapper.saveChannelDivisionInfo(channelSaleInfo);
  117. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  118. }
  119. }
  120. }
  121. if(cooperativeState == 2 || cooperativeState ==3){
  122. billingInfo.setCustomerId(customerId);
  123. customerBasicMapper.saveBillingInfo(billingInfo);
  124. if(ticketOpeningInfo != null){
  125. ticketOpeningInfo.setCustomerId(customerId);
  126. String enterpriseName = ticketOpeningInfo.getEnterpriseName();
  127. if(StringUtil.isNotEmpty(enterpriseName)){
  128. customerBasicMapper.saveTicketOpeningInfo(ticketOpeningInfo);
  129. }
  130. }
  131. }
  132. }
  133. logger.info("saveCustomerBasicInfo end...");
  134. }catch (Exception e){
  135. logger.error("添加客户信息失败"+e.getMessage());
  136. throw new RuntimeException("添加客户信息失败..."+e.getMessage());
  137. }
  138. }
  139. @Override
  140. @Transactional
  141. public void updateCustomerBasicInfo(CustomerBasicInfo customerBasicInfo,List<DockedContactInfo> dockedContactInfoList, List<ChannelSaleInfo> channelSaleInfoList,
  142. BillingInfo billingInfo, TicketOpeningInfo ticketOpeningInfo) throws Exception{
  143. int customerId = -1;
  144. String channelDivisionId = "";
  145. int cooperativeState = customerBasicInfo.getCooperativeState();
  146. try {
  147. customerBasicMapper.updateCustomerBasic(customerBasicInfo);
  148. customerId = customerBasicInfo.getCustomerId();
  149. //删除旧联系人数据和渠道销售信息
  150. customerBasicMapper.deleteContactInfo(customerId);
  151. List<ChannelSaleInfo> listChannelSale = customerBasicMapper.queryChannelSaleInfoListByCustomerId(customerId);
  152. if(listChannelSale.size() > 0){
  153. for(ChannelSaleInfo channelSaleInfo : listChannelSale){
  154. customerBasicMapper.deleteDivisionInfo(channelSaleInfo.getChannelDivisionId());
  155. }
  156. customerBasicMapper.deleteSaleInfo(customerId);
  157. }
  158. if(customerId != -1){
  159. if(dockedContactInfoList != null && dockedContactInfoList.size()>1){
  160. dockedContactInfoList.remove(0);
  161. for (DockedContactInfo dockedContactInfo: dockedContactInfoList) {
  162. dockedContactInfo.setCustomerId(customerId);
  163. customerBasicMapper.saveDockedContactInfo(dockedContactInfo);
  164. }
  165. }
  166. if(channelSaleInfoList != null && channelSaleInfoList.size()>1){
  167. channelSaleInfoList.remove(0);
  168. for (ChannelSaleInfo channelSaleInfo: channelSaleInfoList) {
  169. channelSaleInfo.setCustomerId(customerId);
  170. channelDivisionId = customerBasicMapper.queryIsExsitChannelNameChannelName(channelSaleInfo);
  171. if(StringUtil.isNotEmpty(channelDivisionId)){
  172. if(Integer.valueOf(channelDivisionId)>0){
  173. channelSaleInfo.setChannelDivisionId(Integer.valueOf(channelDivisionId));
  174. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  175. }else{
  176. customerBasicMapper.saveChannelDivisionInfo(channelSaleInfo);
  177. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  178. }
  179. }else{
  180. customerBasicMapper.saveChannelDivisionInfo(channelSaleInfo);
  181. customerBasicMapper.saveChannelSaleInfo(channelSaleInfo);
  182. }
  183. }
  184. }
  185. if(cooperativeState == 2 || cooperativeState ==3){
  186. if(billingInfo != null){
  187. billingInfo.setCustomerId(customerId);
  188. if(billingInfo.getBillingId()!=null){
  189. customerBasicMapper.updateBillingInfo(billingInfo);
  190. }else{
  191. customerBasicMapper.saveBillingInfo(billingInfo);
  192. }
  193. }
  194. if(ticketOpeningInfo != null){
  195. ticketOpeningInfo.setCustomerId(customerId);
  196. if(ticketOpeningInfo.getTicketOpeningId()!=null){
  197. customerBasicMapper.updateOpeningInfo(ticketOpeningInfo);
  198. }else{
  199. customerBasicMapper.saveTicketOpeningInfo(ticketOpeningInfo);
  200. }
  201. }
  202. }
  203. }
  204. }catch (Exception e){
  205. logger.error("修改客户信息失败"+e.getMessage());
  206. throw new RuntimeException("修改客户信息失败");
  207. }
  208. }
  209. public List<Province> queryProvinceList(String provinceId){
  210. return (List<Province>)customerBasicMapper.queryProvinceList(provinceId);
  211. }
  212. public List<City> queryCityList(String provinceId){
  213. return (List<City>)customerBasicMapper.queryCityList(provinceId);
  214. }
  215. public List<ChannelDivisionInfo> queryChannelCategoryList(String channelCategoryId){
  216. return (List<ChannelDivisionInfo>)customerBasicMapper.queryChannelCategoryList(channelCategoryId);
  217. }
  218. public List<ChannelDivisionInfo> queryChannelTypeList(String channelCategoryId){
  219. return (List<ChannelDivisionInfo>)customerBasicMapper.queryChannelTypeList(channelCategoryId);
  220. }
  221. public List<Product> queryPromotingProductsList(String promotingProductsInfo){
  222. return (List<Product>)customerBasicMapper.queryPromotingProductsList(promotingProductsInfo);
  223. }
  224. public List<ProductColor> querySupplyPriceList(String promotingProductsId){
  225. return (List<ProductColor>)customerBasicMapper.querySupplyPriceList(promotingProductsId);
  226. }
  227. /*@Override
  228. public void saveDockedContactInfo(DockedContactInfo dockedContactInfo) {
  229. customerBasicInfoSaveMapper.saveDockedContactInfo(dockedContactInfo);
  230. }
  231. @Override
  232. public void saveChannelSaleInfo(ChannelSaleInfo channelSaleInfo) {
  233. customerBasicInfoSaveMapper.saveChannelSaleInfo(channelSaleInfo);
  234. }
  235. @Override
  236. public void saveBillingInfo(BillingInfo billingInfo) {
  237. customerBasicInfoSaveMapper.saveBillingInfo(billingInfo);
  238. }
  239. @Override
  240. public void saveTicketOpeningInfo(TicketOpeningInfo ticketOpeningInfo) {
  241. customerBasicInfoSaveMapper.saveTicketOpeningInfo(ticketOpeningInfo);
  242. }*/
  243. @Override
  244. public Integer updateCustomerBasic(CustomerBasicInfo customerBasicInfo) {
  245. return customerBasicMapper.updateCustomerBasic(customerBasicInfo);
  246. }
  247. @Override
  248. public Integer updateBillingInfo(BillingInfo billingInfo) {
  249. return customerBasicMapper.updateBillingInfo(billingInfo);
  250. }
  251. @Override
  252. public Integer updateOpeningInfo(TicketOpeningInfo ticketOpeningInfo) {
  253. return customerBasicMapper.updateOpeningInfo(ticketOpeningInfo);
  254. }
  255. @Override
  256. public Integer deleteContactInfo(Integer customerId) {
  257. return customerBasicMapper.deleteContactInfo(customerId);
  258. }
  259. @Override
  260. public Integer deleteSaleInfo(Integer customerId) {
  261. return customerBasicMapper.deleteSaleInfo(customerId);
  262. }
  263. @Override
  264. public Integer deleteDivisionInfo(Integer channelDivisionId) {
  265. return customerBasicMapper.deleteDivisionInfo(channelDivisionId);
  266. }
  267. /*@Override
  268. public void saveDockedContactInfo(DockedContactInfo dockedContactInfo) {
  269. customerBasicInfoSaveMapper.saveDockedContactInfo(dockedContactInfo);
  270. }
  271. @Override
  272. public void saveChannelSaleInfo(ChannelSaleInfo channelSaleInfo) {
  273. customerBasicInfoSaveMapper.saveChannelSaleInfo(channelSaleInfo);
  274. }
  275. @Override
  276. public void saveBillingInfo(BillingInfo billingInfo) {
  277. customerBasicInfoSaveMapper.saveBillingInfo(billingInfo);
  278. }
  279. @Override
  280. public void saveTicketOpeningInfo(TicketOpeningInfo ticketOpeningInfo) {
  281. customerBasicInfoSaveMapper.saveTicketOpeningInfo(ticketOpeningInfo);
  282. }*/
  283. }