Bladeren bron

物业系统支持单独查询商铺功能

java110 3 jaren geleden
bovenliggende
commit
75019ce308

+ 82 - 43
java110-bean/src/main/java/com/java110/dto/storeShop/StoreShopDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.storeShop;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -15,20 +16,21 @@ import java.util.Date;
 public class StoreShopDto extends PageDto implements Serializable {
 
     private String shopDesc;
-private String returnPerson;
-private String shopLogo;
-private String shopName;
-private String storeId;
-private String mapY;
-private String mapX;
-private String sendAddress;
-private String returnAddress;
-private String openType;
-private String areaCode;
-private String returnLink;
-private String shopId;
-private String state;
-private String shopType;
+    private String returnPerson;
+    private String shopLogo;
+    private String shopName;
+    private String storeId;
+    private String mapY;
+    private String mapX;
+    private String sendAddress;
+    private String returnAddress;
+    private String openType;
+    private String areaCode;
+    private String returnLink;
+    private String shopId;
+    private String state;
+    private String[] states;
+    private String shopType;
 
 
     private Date createTime;
@@ -39,91 +41,120 @@ private String shopType;
     public String getShopDesc() {
         return shopDesc;
     }
-public void setShopDesc(String shopDesc) {
+
+    public void setShopDesc(String shopDesc) {
         this.shopDesc = shopDesc;
     }
-public String getReturnPerson() {
+
+    public String getReturnPerson() {
         return returnPerson;
     }
-public void setReturnPerson(String returnPerson) {
+
+    public void setReturnPerson(String returnPerson) {
         this.returnPerson = returnPerson;
     }
-public String getShopLogo() {
+
+    public String getShopLogo() {
         return shopLogo;
     }
-public void setShopLogo(String shopLogo) {
+
+    public void setShopLogo(String shopLogo) {
         this.shopLogo = shopLogo;
     }
-public String getShopName() {
+
+    public String getShopName() {
         return shopName;
     }
-public void setShopName(String shopName) {
+
+    public void setShopName(String shopName) {
         this.shopName = shopName;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getMapY() {
+
+    public String getMapY() {
         return mapY;
     }
-public void setMapY(String mapY) {
+
+    public void setMapY(String mapY) {
         this.mapY = mapY;
     }
-public String getMapX() {
+
+    public String getMapX() {
         return mapX;
     }
-public void setMapX(String mapX) {
+
+    public void setMapX(String mapX) {
         this.mapX = mapX;
     }
-public String getSendAddress() {
+
+    public String getSendAddress() {
         return sendAddress;
     }
-public void setSendAddress(String sendAddress) {
+
+    public void setSendAddress(String sendAddress) {
         this.sendAddress = sendAddress;
     }
-public String getReturnAddress() {
+
+    public String getReturnAddress() {
         return returnAddress;
     }
-public void setReturnAddress(String returnAddress) {
+
+    public void setReturnAddress(String returnAddress) {
         this.returnAddress = returnAddress;
     }
-public String getOpenType() {
+
+    public String getOpenType() {
         return openType;
     }
-public void setOpenType(String openType) {
+
+    public void setOpenType(String openType) {
         this.openType = openType;
     }
-public String getAreaCode() {
+
+    public String getAreaCode() {
         return areaCode;
     }
-public void setAreaCode(String areaCode) {
+
+    public void setAreaCode(String areaCode) {
         this.areaCode = areaCode;
     }
-public String getReturnLink() {
+
+    public String getReturnLink() {
         return returnLink;
     }
-public void setReturnLink(String returnLink) {
+
+    public void setReturnLink(String returnLink) {
         this.returnLink = returnLink;
     }
-public String getShopId() {
+
+    public String getShopId() {
         return shopId;
     }
-public void setShopId(String shopId) {
+
+    public void setShopId(String shopId) {
         this.shopId = shopId;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getShopType() {
+
+    public String getShopType() {
         return shopType;
     }
-public void setShopType(String shopType) {
+
+    public void setShopType(String shopType) {
         this.shopType = shopType;
     }
 
@@ -143,4 +174,12 @@ public void setShopType(String shopType) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String[] getStates() {
+        return states;
+    }
+
+    public void setStates(String[] states) {
+        this.states = states;
+    }
 }

+ 152 - 0
service-store/src/main/java/com/java110/store/cmd/shop/QueryShopCmd.java

@@ -0,0 +1,152 @@
+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.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;
+
+/**
+ * 查询商铺信息
+ * <p>
+ * HC小区管理系统 原则上是 开源 HC小区管理系统后端 HC小区管理系统前段 HC智慧家园(业主端) HC掌上物业(物业手机端) HC小区物联网 HC社区政务
+ * <p>
+ * 为了社区的继续发展贡献代码 所以 HC智慧商城 需要购买 才能使用
+ * <p>
+ * 此类是为了解决未购买 HC社区商城的 小伙伴或者公司 提供查询商铺的功能
+ * <p>
+ * 如果你购买了 HC社区商城代码 请您在 开发这账户中 服务信息页面 将接口 /shop/queryShop 调整为调用 shop-service
+ * <p>
+ * 如果你没有购买 目前也没有购买计划 请您在 开发这账户中 服务信息页面 将接口 /shop/queryShop 调整为调用 store-service
+ * 也就是走到此类中
+ * <p>
+ * 该接口是为了解决 停车劵商家登录后 赠送停车劵的功能 需要查询此接口获取 商铺信息
+ */
+@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<ShopDto> shopDtos = null;
+        if (count > 0) {
+            shopDtos = storeShopV1InnerServiceSMOImpl.queryStoreShops(shopDto);
+            List<String> 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<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        cmdDataFlowContext.setResponseEntity(responseEntity);
+
+    }
+
+
+    /**
+     * 刷入商户信息
+     *
+     * @param shopDtos
+     */
+    private void freshStore(List<ShopDto> shopDtos) {
+
+        if (shopDtos == null || shopDtos.size() < 1) {
+            return;
+        }
+        List<String> storeIds = new ArrayList<>();
+        for (ShopDto shopDto : shopDtos) {
+            storeIds.add(shopDto.getStoreId());
+        }
+
+        StoreDto storeDto = new StoreDto();
+        storeDto.setStoreIds(storeIds.toArray(new String[storeIds.size()]));
+        List<StoreDto> 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<ShopDto> shopDtos) {
+        String imgUrl = MappingCache.getValue("IMG_PATH");
+        String mallUrl = MappingCache.getValue("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<AreaDto> areaDtos = areaInnerServiceSMOImpl.getProvCityArea(areaDto);
+                if (areaDtos != null && areaDtos.size() > 0) {
+                    shopDto.setAreaName(areaDtos.get(0).getProvName() + "-" + areaDtos.get(0).getCityName() + "-" + areaDtos.get(0).getAreaName());
+                }
+            }
+        }
+    }
+}