package com.java110.store.cmd.shop; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.dto.area.AreaDto; import com.java110.dto.shop.ShopDto; import com.java110.dto.store.StoreDto; import com.java110.dto.storeShop.StoreShopDto; import com.java110.intf.acct.IAccountBondObjInnerServiceSMO; import com.java110.intf.common.IAreaInnerServiceSMO; import com.java110.intf.store.IStoreInnerServiceSMO; import com.java110.intf.store.IStoreShopV1InnerServiceSMO; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.MappingConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.util.ArrayList; import java.util.List; /** * 查询商铺信息 *

* HC小区管理系统 原则上是 开源 HC小区管理系统后端 HC小区管理系统前段 HC智慧家园(业主端) HC掌上物业(物业手机端) HC小区物联网 HC社区政务 *

* 为了社区的继续发展贡献代码 所以 HC智慧商城 需要购买 才能使用 *

* 此类是为了解决未购买 HC社区商城的 小伙伴或者公司 提供查询商铺的功能 *

* 如果你购买了 HC社区商城代码 请您在 开发这账户中 服务信息页面 将接口 /shop/queryShop 调整为调用 shop-service *

* 如果你没有购买 目前也没有购买计划 请您在 开发这账户中 服务信息页面 将接口 /shop/queryShop 调整为调用 store-service * 也就是走到此类中 *

* 该接口是为了解决 停车劵商家登录后 赠送停车劵的功能 需要查询此接口获取 商铺信息 */ @Java110Cmd(serviceCode = "/shop/queryShop") public class QueryShopCmd extends Cmd { @Autowired private IStoreShopV1InnerServiceSMO storeShopV1InnerServiceSMOImpl; @Autowired private IStoreInnerServiceSMO storeInnerServiceSMOImpl; @Autowired private IAccountBondObjInnerServiceSMO accountBondObjInnerServiceSMOImpl; @Autowired private IAreaInnerServiceSMO areaInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { super.validatePageInfo(reqJson); } @Override public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { String storeId = cmdDataFlowContext.getReqHeaders().get("store-id"); StoreShopDto shopDto = BeanConvertUtil.covertBean(reqJson, StoreShopDto.class); String states = reqJson.getString("states"); if (states != null && states.contains(",")) { shopDto.setStates(states.split(",")); } shopDto.setStoreId(storeId); int count = storeShopV1InnerServiceSMOImpl.queryStoreShopsCount(shopDto); List shopDtos = null; if (count > 0) { shopDtos = storeShopV1InnerServiceSMOImpl.queryStoreShops(shopDto); List shopIds = new ArrayList<>(); for (ShopDto prod : shopDtos) { shopIds.add(prod.getShopId()); } // refreshDistributionMode(shopDtos, shopIds); freshShopImg(shopDtos); freshStore(shopDtos); } else { shopDtos = new ArrayList<>(); } ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) shopDto.getRow()), count, shopDtos); ResponseEntity responseEntity = new ResponseEntity(resultVo.toString(), HttpStatus.OK); cmdDataFlowContext.setResponseEntity(responseEntity); } /** * 刷入商户信息 * * @param shopDtos */ private void freshStore(List shopDtos) { if (shopDtos == null || shopDtos.size() < 1) { return; } List storeIds = new ArrayList<>(); for (ShopDto shopDto : shopDtos) { storeIds.add(shopDto.getStoreId()); } StoreDto storeDto = new StoreDto(); storeDto.setStoreIds(storeIds.toArray(new String[storeIds.size()])); List storeDtos = storeInnerServiceSMOImpl.getStores(storeDto); for (ShopDto shopDto : shopDtos) { for (StoreDto tmpStoreDto : storeDtos) { if (shopDto.getStoreId().equals(tmpStoreDto.getStoreId())) { shopDto.setStoreName(tmpStoreDto.getStoreName()); shopDto.setStoreTel(tmpStoreDto.getTel()); shopDto.setStoreAddress(tmpStoreDto.getAddress()); } } } } /** * @param shopDtos */ private void freshShopImg(List shopDtos) { String imgUrl = MappingCache.getValue(MappingConstant.FILE_DOMAIN,"IMG_PATH"); String mallUrl = MappingCache.getValue(MappingConstant.URL_DOMAIN,"MALL_URL"); imgUrl += (!StringUtil.isEmpty(imgUrl) && imgUrl.endsWith("/") ? "" : "/"); mallUrl += (!StringUtil.isEmpty(mallUrl) && mallUrl.endsWith("/") ? "" : "/"); for (ShopDto shopDto : shopDtos) { shopDto.setShopLogo(imgUrl + shopDto.getShopLogo()); shopDto.setPhoneIndexUrl(mallUrl + "#/pages/shopIndex/index?shopId=" + shopDto.getShopId()); if (!StringUtil.isEmpty(shopDto.getAreaCode())) { AreaDto areaDto = new AreaDto(); areaDto.setAreaCode(shopDto.getAreaCode()); List areaDtos = areaInnerServiceSMOImpl.getProvCityArea(areaDto); if (areaDtos != null && areaDtos.size() > 0) { shopDto.setAreaName(areaDtos.get(0).getProvName() + "-" + areaDtos.get(0).getCityName() + "-" + areaDtos.get(0).getAreaName()); } } } } }