소스 검색

Merge branch 'master' of https://github.com/java110/MicroCommunity

wuxw 6 년 전
부모
커밋
bec2ef3f7b

+ 1 - 1
Api/src/main/java/com/java110/api/listener/complaint/SaveComplaintListener.java

@@ -37,7 +37,7 @@ public class SaveComplaintListener extends AbstractServiceApiListener {
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
 
-        /*Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");*/
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
         Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择投诉类型");
         Assert.hasKeyAndValue(reqJson, "roomId", "必填,请选择房屋编号");
         Assert.hasKeyAndValue(reqJson, "complaintName", "必填,请填写投诉人");

+ 2 - 1
Api/src/main/java/com/java110/api/listener/parkingSpace/QueryParkingSpacesByOwnerListener.java

@@ -89,7 +89,8 @@ public class QueryParkingSpacesByOwnerListener extends AbstractServiceApiDataFlo
             List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
 
             if (parkingSpaceDtos == null || parkingSpaceDtos.size() != 1) {
-                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "根据psId 查询存在多条停车位信息" + tmpOwnerCarDto.getPsId());
+                //throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "根据psId 查询存在多条停车位信息" + tmpOwnerCarDto.getPsId());
+                continue;
             }
 
             parkingSpaceDto = parkingSpaceDtos.get(0);

+ 112 - 0
Api/src/main/java/com/java110/api/listener/store/ListStoresByCommunityListener.java

@@ -0,0 +1,112 @@
+package com.java110.api.listener.store;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.DataFlowFactory;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
+import com.java110.core.smo.store.IStoreInnerServiceSMO;
+import com.java110.dto.CommunityMemberDto;
+import com.java110.dto.store.StoreDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.*;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.advert.ApiAdvertDataVo;
+import com.java110.vo.api.advert.ApiAdvertVo;
+import com.java110.vo.api.store.ApiStoreDataVo;
+import com.java110.vo.api.store.ApiStoreVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 保存商户信息
+ * Created by Administrator on 2019/3/29.
+ */
+@Java110Listener("listStoresByCommunityListener")
+public class ListStoresByCommunityListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IStoreInnerServiceSMO storeInnerServiceSMOImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_LIST_STORES_BY_COMMUNITY;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+
+        CommunityMemberDto communityMemberDto = BeanConvertUtil.covertBean(reqJson, CommunityMemberDto.class);
+        int storeCount = communityInnerServiceSMOImpl.getCommunityMemberCount(communityMemberDto);
+        List<CommunityMemberDto> communityMemberDtos = null;
+        List<ApiStoreDataVo> stores = null;
+        if (storeCount > 0) {
+            communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+            StoreDto storeDto = new StoreDto();
+            storeDto.setStoreIds(getStoreIds(communityMemberDtos));
+            List<StoreDto> storeDtos = storeInnerServiceSMOImpl.getStores(storeDto);
+            stores = BeanConvertUtil.covertBeanList(storeDtos, ApiStoreDataVo.class);
+        } else {
+            stores = new ArrayList<>();
+        }
+
+        ApiStoreVo apiStoreVo = new ApiStoreVo();
+
+        apiStoreVo.setTotal(storeCount);
+        apiStoreVo.setRecords((int) Math.ceil((double) storeCount / (double) reqJson.getInteger("row")));
+        apiStoreVo.setStores(stores);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiStoreVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 查询商户ID
+     *
+     * @param communityMemberDtos
+     * @return
+     */
+    private String[] getStoreIds(List<CommunityMemberDto> communityMemberDtos) {
+        List<String> storeIds = new ArrayList<>();
+        for (CommunityMemberDto communityMemberDto : communityMemberDtos) {
+            storeIds.add(communityMemberDto.getMemberId());
+        }
+
+        return storeIds.toArray(new String[storeIds.size()]);
+    }
+
+
+}

+ 8 - 2
AppFrontService/src/main/java/com/java110/app/controller/ComplaintController.java

@@ -1,10 +1,12 @@
 package com.java110.app.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.app.smo.complaint.ISaveComplaintSMO;
 import com.java110.app.smo.wxLogin.IWxLoginSMO;
 import com.java110.core.base.controller.BaseController;
 import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
+import com.java110.utils.constant.CommonConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +28,7 @@ public class ComplaintController extends BaseController {
     private final static Logger logger = LoggerFactory.getLogger(ComplaintController.class);
 
     @Autowired
-    private IWxLoginSMO wxLoginSMOImpl;
+    private ISaveComplaintSMO saveComplaintSMOImpl;
 
 
     /**
@@ -38,7 +40,11 @@ public class ComplaintController extends BaseController {
     @RequestMapping(path = "/complaint", method = RequestMethod.POST)
     public ResponseEntity<String> complaint(@RequestBody String postInfo, HttpServletRequest request) {
 
-        return wxLoginSMOImpl.doLogin(null);
+        /*IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);*/
+
+        IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+
+        return saveComplaintSMOImpl.save(pd);
     }
 
 }

+ 51 - 0
AppFrontService/src/main/java/com/java110/app/controller/PaymentController.java

@@ -0,0 +1,51 @@
+package com.java110.app.controller;
+
+import com.java110.app.smo.complaint.ISaveComplaintSMO;
+import com.java110.core.base.controller.BaseController;
+import com.java110.core.context.IPageData;
+import com.java110.utils.constant.CommonConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 支付 处理类
+ */
+@RestController
+@RequestMapping(path = "/app/payment")
+public class PaymentController extends BaseController {
+    private final static Logger logger = LoggerFactory.getLogger(PaymentController.class);
+
+
+
+    /**
+     * <p>统一下单入口</p>
+     *
+     * @param request
+     * @throws Exception
+     */
+    @RequestMapping(path = "/toPay", method = RequestMethod.POST)
+    public ResponseEntity<String> toPay(@RequestBody String postInfo, HttpServletRequest request) {
+        return null;
+    }
+
+
+    /**
+     * <p>支付回调Api</p>
+     *
+     * @param request
+     * @throws Exception
+     */
+    @RequestMapping(path = "/notify", method = RequestMethod.POST)
+    public ResponseEntity<String> notify(@RequestBody String postInfo, HttpServletRequest request) {
+        return null;
+    }
+
+}

+ 45 - 3
AppFrontService/src/main/java/com/java110/app/smo/complaint/impl/SaveComplaintSMOImpl.java

@@ -1,26 +1,68 @@
 package com.java110.app.smo.complaint.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.app.smo.AppAbstractComponentSMO;
 import com.java110.app.smo.complaint.ISaveComplaintSMO;
+import com.java110.app.smo.wxLogin.impl.WxLoginSMOImpl;
 import com.java110.core.context.IPageData;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
+@Service("saveComplaintSMOImpl")
 public class SaveComplaintSMOImpl extends AppAbstractComponentSMO implements ISaveComplaintSMO {
+    private final static Logger logger = LoggerFactory.getLogger(SaveComplaintSMOImpl.class);
+
+    @Autowired
+    private RestTemplate restTemplate;
+
     @Override
     public ResponseEntity<String> save(IPageData pd) {
-        return null;
+        return businessProcess(pd);
     }
 
     @Override
     protected void validate(IPageData pd, JSONObject paramIn) {
-
+        Assert.hasKeyAndValue(paramIn, "communityId", "请求报文中未包含小区信息");
     }
 
     @Override
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) throws IOException {
-        return null;
+
+        //查询用户ID
+        paramIn.put("userId", pd.getUserId());
+        //查询商户ID
+        Map paramObj = new HashMap();
+        paramObj.put("communityId", paramIn.getString("communityId"));
+        paramObj.put("auditStatusCd", "1100");
+        paramObj.put("memberTypeCd", "390001200002");
+        paramObj.put("page", 1);
+        paramObj.put("row", 1);
+        String url = ServiceConstant.SERVICE_API_URL + "/api/store.listStoresByCommunity" + mapToUrlParam(paramObj);
+        ResponseEntity<String> responseEntity = super.callCenterService(restTemplate, pd, "", url, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
+        JSONObject storeObj = JSONObject.parseObject(responseEntity.getBody());
+        JSONArray stores = storeObj.getJSONArray("stores");
+        String storeId = stores.getJSONObject(0).getString("storeId");
+        paramIn.put("storeId", storeId);
+        url = ServiceConstant.SERVICE_API_URL + "/api/complaint.saveComplaint";
+        responseEntity = super.callCenterService(restTemplate, pd, paramIn.toJSONString(), url, HttpMethod.POST);
+
+        return responseEntity;
     }
 }

+ 17 - 0
AppFrontService/src/main/java/com/java110/app/smo/payment/IToPaySMO.java

@@ -0,0 +1,17 @@
+package com.java110.app.smo.payment;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 统一下单接口类
+ */
+public interface IToPaySMO {
+
+    /**
+     * 下单
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> toPay(IPageData pd);
+}

+ 26 - 0
AppFrontService/src/main/java/com/java110/app/smo/payment/impl/ToPaySMOImpl.java

@@ -0,0 +1,26 @@
+package com.java110.app.smo.payment.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.app.smo.AppAbstractComponentSMO;
+import com.java110.app.smo.payment.IToPaySMO;
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+import java.io.IOException;
+
+public class ToPaySMOImpl extends AppAbstractComponentSMO implements IToPaySMO {
+    @Override
+    public ResponseEntity<String> toPay(IPageData pd) {
+        return super.businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) throws IOException {
+        return null;
+    }
+}

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/store/StoreDto.java

@@ -17,6 +17,7 @@ public class StoreDto extends PageDto implements Serializable {
 
 
     private String storeId;
+    private String[] storeIds;
     private String userId;
     private String name;
     private String address;
@@ -136,4 +137,12 @@ public class StoreDto extends PageDto implements Serializable {
     public void setStoreTypeName(String storeTypeName) {
         this.storeTypeName = storeTypeName;
     }
+
+    public String[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(String[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }

+ 115 - 0
java110-bean/src/main/java/com/java110/vo/api/store/ApiStoreDataVo.java

@@ -0,0 +1,115 @@
+package com.java110.vo.api.store;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ApiStoreDataVo implements Serializable {
+    private String storeId;
+    private String userId;
+    private String name;
+    private String address;
+    private String tel;
+    private String storeTypeCd;
+    private String nearByLandmarks;
+    private String mapX;
+    private String mapY;
+    private String storeName;
+    private String storeTypeName;
+    private String createTime;
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getStoreTypeCd() {
+        return storeTypeCd;
+    }
+
+    public void setStoreTypeCd(String storeTypeCd) {
+        this.storeTypeCd = storeTypeCd;
+    }
+
+    public String getNearByLandmarks() {
+        return nearByLandmarks;
+    }
+
+    public void setNearByLandmarks(String nearByLandmarks) {
+        this.nearByLandmarks = nearByLandmarks;
+    }
+
+    public String getMapX() {
+        return mapX;
+    }
+
+    public void setMapX(String mapX) {
+        this.mapX = mapX;
+    }
+
+    public String getMapY() {
+        return mapY;
+    }
+
+    public void setMapY(String mapY) {
+        this.mapY = mapY;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public String getStoreTypeName() {
+        return storeTypeName;
+    }
+
+    public void setStoreTypeName(String storeTypeName) {
+        this.storeTypeName = storeTypeName;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 19 - 0
java110-bean/src/main/java/com/java110/vo/api/store/ApiStoreVo.java

@@ -0,0 +1,19 @@
+package com.java110.vo.api.store;
+
+import com.java110.vo.MorePageVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ApiStoreVo extends MorePageVo implements Serializable {
+    List<ApiStoreDataVo> stores;
+
+
+    public List<ApiStoreDataVo> getStores() {
+        return stores;
+    }
+
+    public void setStores(List<ApiStoreDataVo> stores) {
+        this.stores = stores;
+    }
+}

+ 338 - 0
java110-core/src/main/java/com/java110/core/factory/PaymentFactory.java

@@ -0,0 +1,338 @@
+package com.java110.core.factory;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.springframework.util.StringUtils;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.math.BigDecimal;
+import java.net.InetAddress;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * Function: 支付工厂类 <br/>
+ * date: 2018-01-18 <br/>
+ *
+ * @author att
+ * @version 1.0
+ * @see
+ * @since JDK1.8
+ */
+public class PaymentFactory {
+
+    static Logger log = LogManager.getLogger(PaymentFactory.class);
+
+    /**
+     * 获取当前机器的ip
+     *
+     * @return String
+     */
+    public static String getLocalIp() {
+        InetAddress ia = null;
+        String localip = null;
+        try {
+            ia = ia.getLocalHost();
+            localip = ia.getHostAddress();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return localip;
+
+    }
+
+    /**
+     * Map转换为 Xml
+     *
+     * @return Xml
+     * @throws Exception
+     */
+    public static String mapToXml(SortedMap<String, String> map) throws Exception {
+        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+//防止XXE攻击
+        documentBuilderFactory.setXIncludeAware(false);
+        documentBuilderFactory.setExpandEntityReferences(false);
+        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+        org.w3c.dom.Document document = documentBuilder.newDocument();
+        org.w3c.dom.Element root = document.createElement("xml");
+        document.appendChild(root);
+        for (String key : map.keySet()) {
+            String value = map.get(key);
+            if (value == null) {
+                value = "";
+            }
+            value = value.trim();
+            org.w3c.dom.Element filed = document.createElement(key);
+            filed.appendChild(document.createTextNode(value));
+            root.appendChild(filed);
+        }
+        TransformerFactory tf = TransformerFactory.newInstance();
+        Transformer transformer = tf.newTransformer();
+        DOMSource source = new DOMSource(document);
+        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+        StringWriter writer = new StringWriter();
+        StreamResult result = new StreamResult(writer);
+        transformer.transform(source, result);
+        String output = writer.getBuffer().toString();
+        try {
+            writer.close();
+        } catch (Exception ex) {
+        }
+        return output;
+    }
+
+
+    /**
+     * 创建签名Sign
+     *
+     * @param key
+     * @param parameters
+     * @return
+     */
+    public static String createSign(SortedMap<String, String> parameters, String key) {
+        StringBuffer sb = new StringBuffer();
+        Set es = parameters.entrySet();
+        Iterator<?> it = es.iterator();
+        while (it.hasNext()) {
+            Map.Entry entry = (Map.Entry) it.next();
+            String k = (String) entry.getKey();
+            if (entry.getValue() != null || !"".equals(entry.getValue())) {
+                String v = String.valueOf(entry.getValue());
+                if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {
+                    sb.append(k + "=" + v + "&");
+                }
+            }
+        }
+        sb.append("key=" + key);
+        String sign = AuthenticationFactory.md5(sb.toString()).toUpperCase();
+        return sign;
+    }
+
+
+    /**
+     * XML转换为Map
+     *
+     * @param strXML
+     * @return Map
+     * @throws Exception
+     */
+    public static Map<String, Object> getMapFromXML(String strXML) throws Exception {
+        try {
+            Map<String, Object> data = new HashMap<String, Object>();
+            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+//防止XXE攻击
+            documentBuilderFactory.setXIncludeAware(false);
+            documentBuilderFactory.setExpandEntityReferences(false);
+            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+            InputStream stream = new ByteArrayInputStream(strXML.getBytes("UTF-8"));
+            org.w3c.dom.Document doc = documentBuilder.parse(stream);
+            doc.getDocumentElement().normalize();
+            NodeList nodeList = doc.getDocumentElement().getChildNodes();
+            for (int idx = 0; idx < nodeList.getLength(); ++idx) {
+                Node node = nodeList.item(idx);
+                if (node.getNodeType() == Node.ELEMENT_NODE) {
+                    org.w3c.dom.Element element = (org.w3c.dom.Element) node;
+                    data.put(element.getNodeName(), element.getTextContent());
+                }
+            }
+            try {
+                stream.close();
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+            return data;
+        } catch (Exception ex) {
+            throw ex;
+        }
+    }
+
+    /**
+     * 生成随机数
+     *
+     * @return
+     */
+    public static String makeUUID(int len) {
+        return UUID.randomUUID().toString().replaceAll("-", "").substring(0, len);
+    }
+
+    /**
+     * 获取当前的Timestamp
+     *
+     * @return
+     */
+    public static String getCurrentTimeStamp() {
+        return Long.toString(System.currentTimeMillis() / 1000);
+    }
+
+    /**
+     * 获取当前的时间
+     *
+     * @return
+     */
+    public static long getCurrentTimestampMs() {
+        return System.currentTimeMillis();
+    }
+
+    /**
+     * 生成订单号
+     *
+     * @return
+     */
+    public static String generateOrderNo() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
+        return sdf.format(new Date()) + makeUUID(16);
+    }
+
+    /**
+     * 获取当前工程url
+     *
+     * @param request
+     * @return
+     */
+    public static String getCurrentUrl(HttpServletRequest request) {
+        return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
+    }
+
+    /**
+     * Xml字符串转换为Map
+     *
+     * @param xmlStr
+     * @return
+     */
+    public static Map<String, String> xmlStrToMap(String xmlStr) {
+        Map<String, String> map = new HashMap<String, String>();
+        Document doc;
+        try {
+            doc = DocumentHelper.parseText(xmlStr);
+            Element root = doc.getRootElement();
+            List children = root.elements();
+            if (children != null && children.size() > 0) {
+                for (int i = 0; i < children.size(); i++) {
+                    Element child = (Element) children.get(i);
+                    map.put(child.getName(), child.getTextTrim());
+                }
+            }
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        return map;
+    }
+
+    public static String getSceneInfo(String wapUrl, String name) {
+        Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
+        if (!StringUtils.isEmpty(wapUrl) && !StringUtils.isEmpty(name)) {
+            /*{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}*/
+            Map<String, String> childmap = new TreeMap<String, String>();
+            childmap.put("type", "Wap");
+            childmap.put("wap_url", wapUrl);
+            childmap.put("wap_name", name);
+            map.put("h5_info", childmap);
+            return JSONObject.toJSONString(map);
+        }
+        return null;
+    }
+
+    /**
+     * 转换金额型到整型
+     *
+     * @param money
+     * @return
+     */
+    public static String moneyToIntegerStr(Double money) {
+        BigDecimal decimal = new BigDecimal(money);
+        int amount = decimal.multiply(new BigDecimal(100))
+                .setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+        return String.valueOf(amount);
+    }
+
+    /**
+     * 除去数组中的空值和签名参数
+     *
+     * @param sArray 签名参数组
+     * @return 去掉空值与签名参数后的新签名参数组
+     */
+    public static Map<String, String> paraFilter(Map<String, String> sArray) {
+
+        Map<String, String> result = new HashMap<String, String>();
+
+        if (sArray == null || sArray.size() <= 0) {
+            return result;
+        }
+
+        for (String key : sArray.keySet()) {
+            String value = sArray.get(key);
+            if (value == null || value.equals("") || key.equalsIgnoreCase("sign")
+                    || key.equalsIgnoreCase("sign_type")) {
+                continue;
+            }
+            result.put(key, value);
+        }
+
+        return result;
+    }
+
+    /**
+     * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
+     *
+     * @param params 需要排序并参与字符拼接的参数组
+     * @return 拼接后字符串
+     */
+    public static String createLinkString(Map<String, String> params) {
+        List<String> keys = new ArrayList<String>(params.keySet());
+        Collections.sort(keys);
+        String prestr = "";
+        for (int i = 0; i < keys.size(); i++) {
+            String key = keys.get(i);
+            String value = params.get(key);
+            if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
+                prestr = prestr + key + "=" + value;
+            } else {
+                prestr = prestr + key + "=" + value + "&";
+            }
+        }
+        return prestr;
+    }
+
+    /**
+     * 根据不同环境生成支付金额
+     *
+     * @param env
+     * @param money
+     * @return
+     */
+    public static double getPayAmountByEnv(String env, Double money) {
+        double pay_money = 0.01;
+//测试环境
+        if ("ON".equals(env)) {
+            if (money > 10000) {
+                pay_money = 0.03;
+            } else if (money > 1000) {
+                pay_money = 0.02;
+            } else {
+                pay_money = 0.01;
+            }
+            return pay_money;
+        } else {
+//生成环境
+            return money;
+        }
+    }
+}

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java

@@ -127,6 +127,11 @@ public class ServiceCodeConstant {
      */
     public static final String SERVICE_CODE_SAVE_STORE_INFO = "save.store.info";
 
+    /**
+     * 保存商户信息
+     */
+    public static final String SERVICE_CODE_LIST_STORES_BY_COMMUNITY = "store.listStoresByCommunity";
+
     /**
      * 修改商户信息
      */