package com.uas.eis.manager.impl; import com.uas.eis.beans.CorpAccessToken; import com.uas.eis.beans.req.CrmQueryReq; import com.uas.eis.beans.req.CrmUpdateReq; import com.uas.eis.beans.result.BaseResult; import com.uas.eis.beans.result.CrmQueryResult; import com.uas.eis.beans.result.Customer; import com.uas.eis.exception.AccessTokenException; import com.uas.eis.manager.AccessTokenManager; import com.uas.eis.manager.CustomerManager; import com.uas.eis.manager.OpenUserIdManager; import com.uas.eis.utils.Configuration; import com.uas.eis.utils.OpenAPIUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service("customerManager") public class CustomerManagerImpl implements CustomerManager { private final AccessTokenManager accessTokenManager; public CustomerManagerImpl(AccessTokenManager accessTokenManager, OpenUserIdManager openUserIdManager) { this.accessTokenManager = accessTokenManager; this.openUserIdManager = openUserIdManager; } private final OpenUserIdManager openUserIdManager; @Resource(name = "configuration") private Configuration configuration; @Override public CrmQueryResult queryCustomer(List field_values) throws AccessTokenException { CrmQueryResult crmQueryResult = new CrmQueryResult(); CorpAccessToken token = accessTokenManager.getCorpAccessToken(); String openUserId = configuration.getOpenUserId(); List filtersList = new ArrayList<>(); CrmQueryReq.Filters filters = new CrmQueryReq.Filters(); filters.setField_name("create_time"); filters.setField_values(field_values); filters.setOperator("GT"); filtersList.add(filters); List orderList = new ArrayList<>(); CrmQueryReq.Order order = new CrmQueryReq.Order(); order.setAsc(true); order.setFieldName("create_time"); orderList.add(order); CrmQueryReq.SearchQuery searchQuery = new CrmQueryReq.SearchQuery(); searchQuery.setFilters(filtersList); searchQuery.setLimit(100); searchQuery.setOrders(orderList); CrmQueryReq.DataApiName dataApiName = new CrmQueryReq.DataApiName(); dataApiName.setDataObjectApiName("AccountObj"); dataApiName.setSearch_query_info(searchQuery); CrmQueryReq crmQueryReq = new CrmQueryReq(); crmQueryReq.setCorpAccessToken(token.getCorpAccessToken()); crmQueryReq.setCorpId(token.getCorpId()); crmQueryReq.setCurrentOpenUserId(openUserId); crmQueryReq.setDataApiName(dataApiName); try { crmQueryResult = OpenAPIUtils.queryCrmData(crmQueryReq); }catch (Exception e) { e.printStackTrace(); } return crmQueryResult; } @Override public BaseResult updateCustomer(Customer customer) throws AccessTokenException { BaseResult baseResult = new BaseResult(); CorpAccessToken token = accessTokenManager.getCorpAccessToken(); String openUserId = configuration.getOpenUserId(); Map object_data = new HashMap<>(); object_data.put("object_data",customer); CrmUpdateReq crmUpdateReq = new CrmUpdateReq(); crmUpdateReq.setCorpAccessToken(token.getCorpAccessToken()); crmUpdateReq.setCorpId(token.getCorpId()); crmUpdateReq.setCurrentOpenUserId(openUserId); crmUpdateReq.setData(object_data); try { baseResult = OpenAPIUtils.updateCrmData(crmUpdateReq); }catch (Exception e) { e.printStackTrace(); } return baseResult; } }