| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- package com.dderp.business.service;
- import com.dderp.business.dao.StoreDao;
- import com.dderp.common.api.NoSqlKeysService;
- import com.dderp.common.api.PlatformService;
- import com.dderp.common.api.StoreService;
- import com.dderp.common.base.BaseService;
- import com.dderp.common.datas.ESKeys;
- import com.dderp.common.datas.business.PlatformType;
- import com.dderp.common.entity.platform.PlatformInfo;
- import com.dderp.common.entity.site.ERPTokenUser;
- import com.dderp.common.entity.store.*;
- import com.dderp.common.tool.ERPUtils;
- import com.dySweetFishPlugin.elasticsearch.ESClient;
- import com.dySweetFishPlugin.sql.TableIdService;
- import com.dySweetFishPlugin.sql.dao.TunaService;
- import com.sweetfish.convert.json.JsonConvert;
- import com.sweetfish.service.Local;
- import com.sweetfish.service.RetResult;
- import com.sweetfish.source.PageFlipper;
- import com.sweetfish.util.AnyValue;
- import com.sweetfish.util.AutoLoad;
- import com.sweetfish.util.ResourceType;
- import org.apache.commons.lang3.StringUtils;
- import org.elasticsearch.action.DocWriteResponse;
- import org.elasticsearch.action.index.IndexResponse;
- import org.elasticsearch.action.support.WriteRequest;
- import org.elasticsearch.common.xcontent.XContentType;
- import org.elasticsearch.index.query.BoolQueryBuilder;
- import org.elasticsearch.index.query.Operator;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.sort.SortBuilders;
- import org.elasticsearch.search.sort.SortOrder;
- import org.rex.RMap;
- import javax.annotation.Resource;
- import java.util.List;
- @AutoLoad(value = false)
- @Local
- @ResourceType(StoreService.class)
- public class StoreServiceImpl extends BaseService implements StoreService {
- @Resource
- private ESClient esClient;
- @Resource
- private JsonConvert jsonConvert;
- @Resource
- private NoSqlKeysService keysService;
- @Resource
- private TableIdService tableIdService;
- @Resource
- private TunaService tunaService;
- private StoreDao storeDao;
- @Override
- public void start(AnyValue config) {
- super.start(config);
- storeDao = tunaService.generate(StoreDao.class);
- }
- @Override
- public List<StoreBrand> queryStoreBrandList(RMap params, PageFlipper pageFlipper, long supplierCode) {
- List<StoreBrand> storeBrandList = searchESList(esClient, jsonConvert,
- StoreBrand.class,
- null,
- ((sd) -> {
- BoolQueryBuilder qb = QueryBuilders.boolQuery();
- qb = qb.must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_STORE_BRAND_INDEX));
- if (ERPUtils.mapContainKey(params, "brandName")) {
- String platformName = params.getString("brandName");
- BoolQueryBuilder qbPlatformName = QueryBuilders.boolQuery()
- .should(QueryBuilders.matchQuery("brandName", platformName).analyzer("query_ansj").operator(Operator.AND))
- .should(QueryBuilders.termQuery("brandName.number", platformName.toLowerCase()))
- .should(QueryBuilders.matchQuery("brandName.letter", platformName.toLowerCase()).operator(Operator.AND));
- qb = qb.must(qbPlatformName);
- }
- if (ERPUtils.mapContainKey(params, "voidFlag")) {
- qb = qb.must(QueryBuilders.termQuery("voidFlag", params.getInt("voidFlag")));
- }
- return qb;
- }),
- keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_TYPE, supplierCode),
- (() -> SortBuilders.fieldSort("id").order(SortOrder.DESC)));
- return storeBrandList;
- }
- @Override
- public StoreBrand getStoreBrand(long id, long supplierCode) {
- return this.getESOneInfo(esClient, jsonConvert, StoreBrand.class,
- String.valueOf(id),
- keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
- ESKeys.ES_DELIVER_STORE_BRAND_TYPE,
- null);
- }
- @Override
- public RetResult<StoreBrand> addStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- if (StringUtils.isBlank(storeBrand.getBrandName()))
- return RetResult.<StoreBrand>errorT().retinfo("门店品牌名称不可为空");
- //先查一下有没有重名的平台信息
- StoreBrand esInfo = this.getESOneInfo(esClient, jsonConvert,
- StoreBrand.class,
- (a) -> {
- BoolQueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_STORE_BRAND_TYPE));
- qb.must(QueryBuilders.termQuery("brandName.raw", storeBrand.getBrandName()));
- return qb;
- },
- keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
- null);
- if (esInfo != null) return RetResult.<StoreBrand>errorT().retinfo("已存在同名的门店品牌");
- storeBrand.setId(tableIdService.getTableIdMulti("tbStoreBrand.id", 1, dataSourceId, String.valueOf(supplierCode)));
- StoreBrand.create(storeBrand, currentUser.getId());
- IndexResponse itemResponse = esClient.getClient()
- .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_BRAND_TYPE)
- .setId(String.valueOf(storeBrand.getId()))
- .setSource(jsonConvert.convertTo(storeBrand), XContentType.JSON)
- .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
- .get();
- if (itemResponse.getResult() == DocWriteResponse.Result.CREATED) {
- storeDao.addStoreBrand(storeBrand, dataSourceId, supplierCode);
- } else {
- return RetResult.<StoreBrand>errorT().retinfo("创建平台档案失败");
- }
- return RetResult.<StoreBrand>successT().result(storeBrand);
- }
- @Override
- public RetResult<StoreBrand> uploadBrandLogo(long idStoreBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StoreBrand> updateStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StoreBrand> voidStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public List<ViewStoreInfo> queryViewStoreInfo(RMap params, PageFlipper pageFlipper, long supplierCode) {
- return null;
- }
- @Override
- public ViewStoreInfo getViewStoreInfo(long idStore, long supplierCode, int withInvoice) {
- return null;
- }
- @Override
- public RetResult<StoreInfo> addStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StoreInvoiceInfo> configStoreInvoiceInfo(StoreInvoiceInfo invoiceInfo, int enableInvoice, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StoreInfo> updateStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StoreInfo> voidStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StorePlatform> addStorePlatform(StorePlatform storePlatform, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- @Override
- public RetResult<StorePlatform> configStorePlatform(StorePlatform storePlatform, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
- return null;
- }
- }
|