From c5f009b990f649fdbcd004305d49736fd41f3a22 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 13 Apr 2021 19:22:19 +0800
Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop

---
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml                             |    3 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SignAwardDto.java                             |   20 
 zq-erp/src/main/resources/config/xcshop/application.properties                                       |   75 ++
 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java                                   |   29 
 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java             |  105 +++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java                        |   16 
 zq-erp/pom.xml                                                                                       |    9 
 zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignReceiveRecordDao.java                |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignSuccessVo.java                             |    4 
 zq-erp/src/main/resources/config/db/increment/推广员.sql                                                |    4 
 zq-erp/src/main/resources/config/application.properties                                              |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java                           |    4 
 zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java                  |  169 +++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java |  144 ++--
 zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml                                |   29 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java                            |   49 +
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java                            |    8 
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml                           |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java            |    2 
 zq-erp/src/main/resources/config/xcshop/config.json                                                  |   94 +++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SeeAwardTextDto.java                          |   24 
 zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopDeliveryInfoAction.java                    |   13 
 zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml                                    |    2 
 zq-erp/src/main/resources/config/xcshop/system.properties                                            |   98 +++
 zq-erp/src/main/resources/templates/views/admin/shop/shopOrder-list.html                             |  234 ++++---
 zq-erp/src/main/java/com/matrix/system/shopXcx/pojo/ShopOrderQueryPOJO.java                          |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopOrderAction.java                           |   47 -
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java                     |  197 +++++-
 zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java                               |    3 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java                        |    1 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java          |   33 
 zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java                                           |    4 
 /dev/null                                                                                            |   14 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java                           |   37 +
 zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml                   |   48 +
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java            |   86 ++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java                  |   41 
 zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java                             |    7 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/MoneyCardUseFlowDto.java                      |   34 +
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml                                    |   50 -
 zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml                                 |    2 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java                   |    2 
 42 files changed, 1,369 insertions(+), 400 deletions(-)

diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml
index dacc6f8..ed1dc1f 100644
--- a/zq-erp/pom.xml
+++ b/zq-erp/pom.xml
@@ -59,6 +59,12 @@
                 <env>lhx</env>
             </properties>
         </profile>
+        <profile>
+            <id>xcshop</id>
+            <properties>
+                <env>xcshop</env>
+            </properties>
+        </profile>
     </profiles>
     <dependencies>
 
@@ -393,8 +399,9 @@
                     <exclude>config/prd/*</exclude>
                     <exclude>config/test/*</exclude>
                     <exclude>config/xcx/*</exclude>
+                    <exclude>config/xcshop/*</exclude>
 
-                    <!-- -->
+                    <!---->
                     <exclude>config/config.json</exclude>
                     <exclude>config/application.properties</exclude>
                     <exclude>config/system.properties</exclude>
diff --git a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java b/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
index 1d25a09..3cbe384 100644
--- a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
+++ b/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
@@ -92,8 +92,8 @@
         taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.SHOP_ORDER_REFUND + evn,MQTaskRouting.SHOP_ORDER_REFUND + evn, SalesOrderRefundTask()));
 
         //不同任务在不同的队列,但是routingKey一样则可以收到生产者消息
-        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,SalesOrderTask()));
-        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SALES_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,OrderrCreateTask()));
+        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,OrderrCreateTask()));
+        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SALES_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,SalesOrderTask()));
         taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SCORE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,ScoreOrderTask()));
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignReceiveRecordDao.java b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignReceiveRecordDao.java
index 08dc623..2c395a8 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignReceiveRecordDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignReceiveRecordDao.java
@@ -11,6 +11,12 @@
 import com.matrix.system.activity.vo.CouponVo;
 import com.matrix.system.activity.vo.GoodsVo;
 import com.matrix.system.activity.vo.SignReceiveListVo;
+import com.matrix.system.shopXcx.api.dto.SeeAwardTextDto;
+import com.matrix.system.shopXcx.api.dto.SignAwardDto;
+import com.matrix.system.shopXcx.api.vo.SeeAwardTextVo;
+import com.matrix.system.shopXcx.api.vo.SignAwardListVo;
+import com.matrix.system.shopXcx.vo.SalesOrderVo;
+
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -28,4 +34,8 @@
 
 	int getSignAwardReceiveCount(@Param("userId")Long userId, @Param("companyId")Long companyId);
 
+	IPage<SignAwardListVo> selectSignAwardList(Page<SalesOrderVo> page, @Param("record")SignAwardDto signAwardDto);
+
+	SeeAwardTextVo selectSeeAwardTextVOById(@Param("record")SeeAwardTextDto seeAwardTextDto);
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
index ed65769..e784058 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -33,7 +33,6 @@
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
 import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao;
 import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -195,20 +194,96 @@
 
         shopDeliveryInfo.setDeliveryTime(new Date());
         shopDeliveryInfoDao.insert(shopDeliveryInfo);
-        //更新核销记录
-        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
-        activitySignWriteoff.setWriteoffTime(new Date());
-        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
-        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
-        activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
-        activitySignWriteoffDao.updateById(activitySignWriteoff);
-        //更新领取记录
-        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
-        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
-        activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
-        activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
-        activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
-        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+//		Integer id = shopDeliveryInfo.getId();
+//		if(ObjectUtil.isNotEmpty(id)) {
+//			List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>();
+//	        AjaxResult result = new AjaxResult();
+//	        Map<String, String> logisticsInfo = new HashMap<String, String>();
+//	        try {
+//	            if (shopDeliveryInfo == null) {
+//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
+//	            }
+//	            if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
+//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
+//	            }
+//	            logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+//	            logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
+//
+//	            //如果已经签收直接查数据库
+//	            if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
+//
+//	                List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+//	                logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
+//	                result.setStatus(AjaxResult.STATUS_SUCCESS);
+//	                result.setRows(shopLogisticsInfos);
+//	                result.putInMap("logisticsInfo", logisticsInfo);
+//	                return result;
+//	            }
+//	            Map<String, String> param = new HashMap<String, String>();
+//	            param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
+//	            param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
+//	            Map<String, String> paramsUrl = getparams(param);
+//	            LogUtil.info("物流查询参数" + paramsUrl);
+//	            String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
+//	            LogUtil.info("查询物流返回信息" + logisticsResult);
+//	            LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
+//	            if (logisticsInfoVo.isSuccess()) {
+//	                ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
+//	                shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
+//	                shopDelivery.setId(shopDeliveryInfo.getId());
+//	                logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
+//	                //更新物流状态
+//	                shopDeliveryInfoDao.updateByModel(shopDelivery);
+//	                if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
+//	                    List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
+//	                    for (int i = 0; i < mapTraces.size(); i++) {
+//	                        ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
+//	                        shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
+//	                        shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
+//	                        shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
+//	                        String acceptStation = mapTraces.get(i).get("AcceptStation");
+//	                        shopLogisticsInfo.setDescribe(acceptStation);
+//	                        shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
+//	                        if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
+//	                        } else {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
+//	                        }
+//	                        shopLogisticsList.add(shopLogisticsInfo);
+//	                    }
+//	                    shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
+//	                    if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
+//	                        shopLogisticsInfoDao.batchInsert(shopLogisticsList);
+//	                    }
+//	                }
+//	            } else {
+//	                throw new GlobleException(logisticsInfoVo.getReason());
+//	            }
+//
+//	        } catch (Exception e) {
+//	            throw new GlobleException("物流信息查询失败");
+//	        }
+	        //更新核销记录
+	        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+	        activitySignWriteoff.setWriteoffTime(new Date());
+	        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+	        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+	        activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
+	        activitySignWriteoffDao.updateById(activitySignWriteoff);
+	        //更新领取记录
+	        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
+	        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+	        activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
+	        activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
+	        activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
+	        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+//		}
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功");
 	}
 
diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java
new file mode 100644
index 0000000..9c4f419
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/common/actions/MultipleFileUploadAction.java
@@ -0,0 +1,169 @@
+package com.matrix.system.common.actions;
+
+import com.alibaba.fastjson.JSONObject;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.UUIDUtil;
+import com.matrix.system.common.constance.AppConstance;
+import org.apache.commons.fileupload.FileUploadException;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.FileCopyUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 多文件上传控制器
+ * 
+ * @author jiangyouyao
+ * @email 512061637@qq.com
+ * @date 2019年2月25日
+ */
+@Controller
+@RequestMapping(value = "admin/multipleUploadFile")
+public class MultipleFileUploadAction {
+	Logger log = Logger.getLogger(MultipleFileUploadAction.class);
+
+	@Value("${file_storage_path}")
+	private String fileStoragePath;
+	@Value("${static_resource_url}")
+	private String nginxUrl;
+
+	/**
+	 * 最大值
+	 */
+	private Long maxSize = 1024*1024*100L;
+
+	/**
+	 * 多文件上传方法
+	 * 
+	 * @author jiangyouyao
+	 * @email 512061637@qq.com
+	 * @date 2019年2月25日
+	 * @param response
+	 * @param request
+	 * @return
+	 * @throws IOException
+	 * @throws FileUploadException
+	 */
+	@RequestMapping(value = "/doUpload")
+	public @ResponseBody JSONObject doFileUpload(HttpServletResponse response, MultipartHttpServletRequest request, Integer data)
+			throws IOException, FileUploadException {
+		// 文件保存目录路径
+		String savePath = fileStoragePath;
+		// 文件保存目录URL
+		String saveUrl = nginxUrl;
+		// String msgPag = "common/fileUploadResult";
+		JSONObject object = new JSONObject();
+		response.setContentType("text/html; charset=UTF-8");
+		request.setCharacterEncoding("UTF-8");
+
+		// 保存和访问路径检查
+		if (StringUtils.isBlank(saveUrl) || StringUtils.isBlank(savePath)) {
+			object.put("status", "err");
+			object.put("msg", "文件上传失败错误代码:001");
+			return object;
+		}
+		// 检查目录
+		File uploadDir = new File(savePath);
+		if (!uploadDir.isDirectory()) {
+			uploadDir.mkdir();
+		}
+		// 检查目录写权限
+//		if (!uploadDir.canWrite()) {
+//			object.put("status", "err");
+//			object.put("msg", "上传目录没有写权限");
+//			return object;
+//		}
+
+		Map<String, MultipartFile> fileMaps = request.getFileMap();
+		for (String key : fileMaps.keySet()) {
+			MultipartFile file = fileMaps.get(key);
+
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+			String ymd = sdf.format(new Date());
+			savePath += ymd + "/";
+			saveUrl += ymd + "/";
+			File dirFile = new File(savePath);
+			if (!dirFile.exists()) {
+				dirFile.mkdirs();
+			}
+			log.info("上传文件名:" + file.getOriginalFilename());
+			log.info("上传文件大小:" + file.getBytes().length);
+			log.info("上传文件大小限制:" + maxSize);
+			log.info("上传文件大小是否超过限制:" + (file.getBytes().length > maxSize));
+			if (file.getBytes().length > maxSize) {
+				object.put("status", "err");
+				object.put("msg", "上传文件大小超过限制");
+				return object;
+			}
+			String fileName = file.getOriginalFilename();
+			String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
+
+			fileName = fileName.replace("." + fileExt, "");
+			fileName = getSensitive(fileName);
+			String newFileName = UUIDUtil.getRandomID() + UUIDUtil.getRandomID() + "." + fileExt;
+			File uploadedFile = new File(savePath, newFileName);
+			try {
+				FileCopyUtils.copy(file.getBytes(), uploadedFile);
+			} catch (Exception e) {
+				object.put("status", "err");
+				object.put("msg", "上传文件失败 "+e.getMessage());
+				return object;
+			}
+			log.info("saveUrl:" + saveUrl);
+			String visitPath = saveUrl + newFileName;
+			log.info("上传一个文件:" + newFileName);
+			log.info("访问路径:" + visitPath);
+			// 获取回调函数
+			/*
+			 * String callBack = request.getParameter("callBack"); String inputId =
+			 * request.getParameter("inputId"); request.setAttribute("status", "200");
+			 * request.setAttribute("callBack", callBack); request.setAttribute("inputId",
+			 * inputId); request.setAttribute("url", visitPath);
+			 */
+			object.put("path", visitPath);
+			object.put("fileName", fileName);
+			object.put("status", 200);
+			if (data != null) {
+				object.put("index", data);
+			}
+		}
+		return object;
+	}
+
+	/**
+	 * 检查文件名,过滤特殊字符
+	 * 
+	 * @author jiangyouyao
+	 * @email 512061637@qq.com
+	 * @date 2019年2月25日
+	 * @param globWords
+	 * @return
+	 */
+	public String getSensitive(String globWords) {
+
+		String sensitive = "";
+		Pattern pattern = Pattern.compile(AppConstance.SPECIAL_CHARACTERS);
+		Matcher matcher = pattern.matcher(globWords);
+		while (matcher.find()) {
+			sensitive += matcher.group();
+		}
+		/*
+		 * if(sensitive=="" || sensitive.length()<3 ){
+		 * sensitive=StringUtils.getRandomString(8); }
+		 */
+		return sensitive;
+	}
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java
index 80a097b..8e4359e 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java
@@ -1,5 +1,7 @@
 package com.matrix.system.hive.bean;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.io.Serializable;
 import java.util.Date;
 /**
@@ -48,6 +50,7 @@
 	/**
 	 * 创建时间
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
 	private Date  createTime;
 	
 	/**
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
index 5c4bad7..597762f 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
@@ -1,10 +1,11 @@
 package com.matrix.system.hive.dao;
 
-import java.util.List;
-
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.system.hive.bean.MoneyCardUseFlow;
+import com.matrix.system.shopXcx.api.dto.MoneyCardUseFlowDto;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
@@ -25,6 +26,8 @@
 	
 	public List<MoneyCardUseFlow> selectInPage(@Param("record") MoneyCardUseFlow moneyCardUseFlow, @Param("pageVo") PaginationVO pageVo);
 
+	public List<MoneyCardUseFlow> selectForWxInPage(@Param("record")MoneyCardUseFlowDto moneyCardUseFlowDto);
+
 	public List<MoneyCardUseFlow> selectByModel(@Param("record") MoneyCardUseFlow moneyCardUseFlow);
 	
 	public int  selectTotalRecord(@Param("record") MoneyCardUseFlow moneyCardUseFlow);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopDeliveryInfoAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopDeliveryInfoAction.java
index 9e1504a..636b4ba 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopDeliveryInfoAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopDeliveryInfoAction.java
@@ -12,20 +12,18 @@
 import com.matrix.core.tools.ModelUtils;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
-import com.matrix.system.common.bean.CustomerDataDictionary;
-import com.matrix.system.common.bean.SystemDictionary;
-import com.matrix.system.common.dao.CustomerDataDictionaryDao;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.bean.SystemDictionary;
 import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.CustomerDataDictionaryDao;
 import com.matrix.system.common.dao.SystemDictionaryDao;
-import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.action.BaseController;
+import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
 import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
 import com.matrix.system.shopXcx.bean.ShopOrder;
 import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao;
 import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao;
 import com.matrix.system.shopXcx.dao.ShopOrderDao;
-import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
 import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -86,11 +84,6 @@
         pageVo.setSort("create_time");
         pageVo.setOrder("desc");
         shopDeliveryInfo.setCompanyId(sysUsers.getCompanyId());
-        if (getMe().getShopRole().equals(Dictionary.FLAG_NO_N)) {
-            shopDeliveryInfo.setShopId(sysUsers.getShopId());
-        }
-
-
         List<ShopDeliveryInfo> dataList = shopDeliveryInfoDao.selectInPage(shopDeliveryInfo, pageVo);
         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList,
                 shopDeliveryInfoDao.selectTotalRecord(shopDeliveryInfo));
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopOrderAction.java
index 49d6d78..32d7e0c 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopOrderAction.java
@@ -16,7 +16,6 @@
 import com.matrix.core.tools.excl.ExcelVersion;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppConstance;
-import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.action.BaseController;
 import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.bean.SysShopInfo;
@@ -108,8 +107,8 @@
         ExcelSheetPO orderSheet = new ExcelSheetPO();
         orderSheet.setSheetName("订单列表");
         orderSheet.setTitle("订单列表");
-        String[] header = new String[]{"订单编号", "客户姓名", "客户电话", "收货地址", "下单时间", "订单金额",
-                "优惠总金额", "优惠说明", "订单状态", "配送方式", "门店名称", "商品名称", "规格", "生产企业", "单价", "购买数量"};
+        String[] header = new String[]{"订单编号", "客户姓名", "客户电话", "收货地址", "店铺名称","订单状态","下单时间",  "购买商品","订单金额",
+                "优惠总金额",  "配送方式"};
         orderSheet.setHeaders(header);
         List<List<Object>> body = new ArrayList<>();
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
@@ -133,42 +132,26 @@
                 } else {
                     bodyItem.add("");
                 }
-                //下单时间
-                bodyItem.add(dateFormat.format(shopOrder.getOrderTime()));
-                //购买数量
-//				bodyItem.add(shopOrder.getPurchaseQuantity());
-                //订单金额
-                bodyItem.add(shopOrder.getOrderMoney());
-                //优惠总金额
-                bodyItem.add(shopOrder.getDiscountAmount());
-                //优惠说明
-                bodyItem.add(shopOrder.getDiscountExplain());
+                //店铺名称
+                bodyItem.add(shopOrder.getStoreName());
                 //订单状态
                 bodyItem.add(OrderStatusEnum.getNameByCode(shopOrder.getOrderStatus()));
-                //配送方式 门店
-                bodyItem.add("物流");
-                bodyItem.add("");
-
-                //商品名称
+                //下单时间
+                bodyItem.add(dateFormat.format(shopOrder.getOrderTime()));
+                //购买商品
+                ShopSku shopSku = shopOrderDetails.getShopSku();
                 ShopProduct shopProduct = shopOrderDetails.getShopProduct();
                 if (shopProduct == null) {
                     bodyItem.add("");
                 } else {
-                    bodyItem.add(shopProduct.getTitle());
+                    bodyItem.add(shopProduct.getTitle()+ "(" +shopSku.getName()+ ")*" + shopOrderDetails.getCount());
                 }
-                //规格名称、生产企业、单价
-                ShopSku shopSku = shopOrderDetails.getShopSku();
-                if (shopSku == null) {
-                    bodyItem.add("");
-                    bodyItem.add(shopOrderDetails.getProductionEnterprise());
-                    bodyItem.add("");
-                } else {
-                    bodyItem.add(shopSku.getName());
-                    bodyItem.add(shopOrderDetails.getProductionEnterprise());
-                    bodyItem.add(shopSku.getPrice());
-                }
-                //购买数量
-                bodyItem.add(shopOrderDetails.getCount());
+                //订单金额
+                bodyItem.add(shopOrder.getOrderMoney());
+                //优惠总金额
+                bodyItem.add(shopOrder.getDiscountAmount());
+                //配送方式 门店
+                bodyItem.add("物流");
                 body.add(bodyItem);
             }
         }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
index d1ad6a3..6f80250 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
@@ -1,30 +1,43 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.component.rabbitmq.RabiitMqTemplate;
 import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
-import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
+import com.matrix.config.RabbitMqConfig;
 import com.matrix.core.constance.SystemErrorCode;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.hive.bean.MoneyCardUse;
+import com.matrix.system.hive.bean.MoneyCardUseFlow;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.MoneyCardUseDao;
+import com.matrix.system.hive.dao.MoneyCardUseFlowDao;
 import com.matrix.system.hive.dao.ShoppingGoodsDao;
 import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
 import com.matrix.system.shopXcx.api.pojo.OrderInfoQueryPOJO;
 import com.matrix.system.shopXcx.api.pojo.ShopOrderDto;
 import com.matrix.system.shopXcx.api.service.OrderCouponGroupService;
 import com.matrix.system.shopXcx.api.service.ShoppingCartService;
 import com.matrix.system.shopXcx.api.service.WXShopOrderService;
 import com.matrix.system.shopXcx.api.service.WxShopCouponService;
-import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil;
-import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
+import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoin;
+import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoinUser;
 import com.matrix.system.shopXcx.bean.ShopOrder;
+import com.matrix.system.shopXcx.bean.ShopPayLog;
 import com.matrix.system.shopXcx.dao.*;
+import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.util.*;
 
 
 /**
@@ -42,16 +55,10 @@
     @Autowired
     WxShopCouponService wxShopCouponService;
 
-    @Autowired
-    private ShopReceiveAddressDao shopReceiveAddressDao;
 
     @Autowired
     ShoppingCartService shoppingCartService;
 
-    @Autowired
-    private ShopCouponDao shopCouponDao;
-    @Autowired
-    private WxShopCouponUtil wxShopCouponUtil;
 
     @Autowired
     private RedisUserLoginUtils redisUserLoginUtils;
@@ -64,20 +71,39 @@
 
     @Autowired
     ShopProductDao shopProductDao;
-    @Autowired
-    private WxShopOrderUtil wxShopOrderUtil;
-
-    @Autowired
-    private ShopOrderDetailsDao shopOrderDetailsDao;
 
     @Autowired
     OrderCouponGroupService orderCouponGroupService;
+
+    @Autowired
+    private ShopPayLogDao shopPayLogDao;
 
     @Autowired
     ShopOrderDao shopOrderDao;
 
     @Autowired
     SysVipInfoDao sysVipInfoDao;
+
+    @Autowired
+    private ShopActivitiesGroupJoinUserDao shopActivitiesGroupJoinUserDao;
+
+    @Autowired
+    private ShopActivitiesGroupJoinDao shopActivitiesGroupJoinDao;
+
+    @Autowired
+    private RabiitMqTemplate rabiitMqTemplate;
+
+    @Autowired
+    ShoppingGoodsDao shoppingGoodsDao;
+
+    @Autowired
+    MoneyCardUseFlowDao moneyCardUseFlowDao;
+
+    @Autowired
+    MoneyCardUseDao moneyCardUseDao;
+
+    @Value("${evn}")
+    private String evn;
 
     /**
      * 计算购物车订单价格
@@ -90,17 +116,15 @@
     public
     @ResponseBody
     AjaxResult calculationCartOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
-
-
         return shopOrderService.buildDiscountExplain(shopOrderDto);
     }
 
 
     @Autowired
-    ShoppingGoodsDao shoppingGoodsDao;
+    private ScoreVipDetailDao scoreVipDetailDao;
 
     /**
-     * 新增订单
+     * 新增微信支付订单
      *
      * @param shopOrderDto
      * @return
@@ -108,43 +132,128 @@
     @PostMapping(value = "/addShopOrder")
     public
     @ResponseBody
-    AjaxResult addShopOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
-        return shopOrderService.createShopOrder(shopOrderDto);
+    AjaxResult addShopOrder(@RequestBody @Validated ShopOrderDto shopOrderDto) throws Exception {
+
+        ShopOrder shopOrder = shopOrderService.createShopOrder(shopOrderDto);
+        AjaxResult result = AjaxResult.buildSuccessInstance("订单创建成功");
+        result.putInMap("orderId", shopOrder.getId());
+        if (shopOrderDto.getPayMethod().equals(ShopOrder.SHOP_ORDER_PAY_METHOD_WX)) {
+            BrandWCPayRequestData payData = shopOrderService.startPayment(shopOrder);
+            result.setRows(Arrays.asList(payData));
+        }
+        return result;
     }
 
 
 
-    @Value("${wx_pay_debug_onoff}")
-    private boolean isDebug;
-    @Autowired
-    private WeixinServiceUtil weixinServiceUtil;
-
     /**
-     * 开始付款
+     * 余额支付确认
      *
-     * @param shopOrder
+     * @param orderId
      * @return
      * @throws Exception
      */
-    public BrandWCPayRequestData startPayment(ShopOrder shopOrder) throws Exception {
-        BigDecimal unit = new BigDecimal("100");
-        BigDecimal money = new BigDecimal(shopOrder.getOrderMoney().toString());
-        BrandWCPayRequestData payData;
-        String productNames = wxShopOrderUtil.getProductNames(shopOrder.getUserId(), shopOrder.getId());
-        SysVipInfo vipInfo = sysVipInfoDao.selectById(shopOrder.getUserId());
+    @GetMapping(value = "/moneyCardPay/{orderId}")
+    @ResponseBody
+    @Transactional
+    public   AjaxResult moneyCardPay(@PathVariable Integer orderId) throws Exception {
 
-        if (isDebug) {
-            payData = weixinServiceUtil.createOrder("[测试]" + productNames, shopOrder.getOrderNo(),
-                    1, vipInfo.getOpenId(), String.valueOf(shopOrder.getId()));
+        ShopOrder order = shopOrderDao.selectById(orderId);
+        if (order != null
+                && ShopOrder.SHOP_ORDER_PAY_METHOD_VIPCARD == order.getPayMethod()
+                && ShopOrder.ORDER_PAY_STATUS_WAIT == order.getPayStatus()) {
+
+            MoneyCardUse moneyCardUse = moneyCardUseDao.selectVipCard(order.getUserId());
+            Double balance=moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney();
+            if(balance>=order.getOrderMoney().doubleValue()){
+                //扣减会员卡余额
+                if(moneyCardUse.getRealMoney()>=order.getOrderMoney().doubleValue()){
+                    moneyCardUse.setRealMoney(moneyCardUse.getRealMoney()-order.getOrderMoney().doubleValue());
+                }else{
+                    moneyCardUse.setGiftMoney(moneyCardUse.getGiftMoney()-(order.getOrderMoney().doubleValue()- moneyCardUse.getRealMoney() ));
+                    moneyCardUse.setRealMoney(0D);
+                }
+                moneyCardUseDao.update(moneyCardUse);
+                //插入扣减记录
+                MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
+                moneyCardUseFlow.setTotal(order.getOrderMoney().doubleValue());
+                moneyCardUseFlow.setCarUseId(moneyCardUse.getId());
+                moneyCardUseFlow.setVipId(order.getUserId());
+                moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER);
+                moneyCardUseFlow.setOrderNo(order.getOrderNo());
+                moneyCardUseFlow.setCreateTime(new Date());
+                moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney());
+                moneyCardUseFlow.setCardName(moneyCardUse.getCardName());
+                moneyCardUseFlowDao.insert(moneyCardUseFlow);
+
+                //构建需要修改订单信息Map
+                Map<String, Object> modifyMap = new HashMap<>();
+                modifyMap.put("id", order.getId());
+                //设置微信支付状态为已支付
+                modifyMap.put("payResult", ShopOrder.ORDER_WX_STATUS_PAY_SUCCESS);
+                //设置支付状态为支付成功
+                modifyMap.put("payStatus", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+                //如果是商品订单则进入待发货
+                modifyMap.put("orderStatus", ShopOrder.ORDER_STATUS_WAIT_SEND);
+                shopOrderDao.updateByMap(modifyMap);
+
+                // 判断该订单是否为拼团产生的订单
+                ShopActivitiesGroupJoinUser joinUser = shopActivitiesGroupJoinUserDao.selectGroupJoinUserByOrderId(order.getId().longValue());
+                if (joinUser != null) {
+                    joinUser.setIsHasPay(ShopActivitiesGroupJoinUser.IS_HAS_PAY_Y);
+                    shopActivitiesGroupJoinUserDao.updateByModel(joinUser);
+
+                    ShopActivitiesGroupJoin groupJoin = shopActivitiesGroupJoinDao.selectGroupAndPriceById(joinUser.getGjId());
+                    List<ShopActivitiesGroupJoinUser> joinUserList = shopActivitiesGroupJoinUserDao.selectGroupJoinUserListByGjId(joinUser.getGjId());
+                    LogUtil.info("#当前已支付完成:{}#", joinUserList.size());
+                    // 若拼团中已支付的数量等于几人团预设值,则更新拼团状态为拼团成功
+                    if (groupJoin.getGroupPrice().getGpCount() == joinUserList.size()) {
+                        groupJoin.setGjStatus(ShopActivitiesGroupJoin.ACTIVITIES_JOIN_SUCCESS);
+                    } else {
+                        if (joinUser.getUserId().equals(groupJoin.getGjHeadId())) {
+                            groupJoin.setGjStatus(ShopActivitiesGroupJoin.ACTIVITIES_JOIN_ING);
+                        }
+                    }
+                    shopActivitiesGroupJoinDao.updateByModel(groupJoin);
+
+                    SysVipInfo sysVipInfo = sysVipInfoDao.selectByPhone(order.getUserTel());
+                    if (sysVipInfo != null) {
+                        sysVipInfo.setIsDeal(SysVipInfo.DEAL_VIP);
+                        sysVipInfoDao.update(sysVipInfo);
+                    }
+                }
+
+                // 根据订单类型创建不同的处理任务
+                rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn, orderId + "");
+                //支付记录
+                recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), order.getOrderMoney(), "会员卡余额支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+
+                return AjaxResult.buildSuccessInstance("支付成功");
+
+            }else{
+                return AjaxResult.buildFailInstance("会员卡余额不足");
+            }
+
         } else {
-            payData = weixinServiceUtil.createOrder(productNames, shopOrder.getOrderNo(),
-                    unit.multiply(money).intValue(), vipInfo.getOpenId(), String.valueOf(shopOrder.getId()));
+            LogUtil.info("订单状态不为待付款,order status=", order.getOrderStatus());
+            return AjaxResult.buildFailInstance("订单不支持本次结算");
         }
-        ShopOrder updateParam = new ShopOrder();
-        updateParam.setId(shopOrder.getId());
-        updateParam.setWxOrderNo(payData.getPrepay_id());
-        shopOrderDao.updateByModel(updateParam);
-        return payData;
+
+    }
+
+
+    private void recordPayLog(Integer orderId, Integer type, String orderNo, BigDecimal payMoney, String payRemark, int payStatus) {
+        //设置支付类型为收款
+        ShopPayLog payLog = new ShopPayLog();
+        payLog.setPayType(type);
+        payLog.setJoinId(orderId);
+        payLog.setPayMoney(payMoney);
+        payLog.setPayOrderNo(orderNo);
+        payLog.setPayRemark(payRemark);
+        payLog.setPayStatus(payStatus);
+        payLog.setCreateBy(AppConstance.SYSTEM_USER);
+        payLog.setUpdateBy(AppConstance.SYSTEM_USER);
+        shopPayLogDao.insert(payLog);
     }
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
index 19f6644..b54a0bc 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
@@ -204,7 +204,7 @@
                             resXml = AppConstance.RESULT_XML_SUCCESS;
 
                             //支付记录
-                            recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), payMoney,  payLog, "支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+                            recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), payMoney,  "支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
 
 
                         } else {
@@ -306,17 +306,22 @@
                                 BigDecimal.ROUND_HALF_DOWN).doubleValue();
 
                         if (moneyCardUseFlow.getCarUseId()==null) {
-                            ShopPayLog payLog = new ShopPayLog();
+
                             if(payMoney.equals(moneyCardUseFlow.getTotal())){
                                 threadResult.putInMap("status", "success");
                                 resXml = AppConstance.RESULT_XML_SUCCESS;
                                 MoneyCardUse moneyCardUse = moneyCardUseDao.selectVipCard(user.getId());
                                 moneyCardUseFlow.setCarUseId(moneyCardUse.getId());
                                 moneyCardUseFlow.setCardName(moneyCardUse.getCardName());
-                                moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney());
+                                Double balance=moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney();
+                                moneyCardUseFlow.setBalance(balance==null?0:balance);
                                 moneyCardUseFlowDao.update(moneyCardUseFlow);
+
+                                moneyCardUse.setRealMoney(moneyCardUse.getRealMoney()+payMoney.doubleValue());
+                                moneyCardUseDao.update(moneyCardUse);
+
                                 //充值记录
-                                recordPayLog(Integer.valueOf(moneyCardUseFlowId),2,moneyCardUseFlow.getPayNo(),new BigDecimal(payMoney),  payLog, "充值成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+                                recordPayLog(Integer.valueOf(moneyCardUseFlowId),2,moneyCardUseFlow.getPayNo(),new BigDecimal(payMoney), "充值成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
                             }else{
                                 LogUtil.debug("支付金额不一致,检查支付金额payMoney={},order.getPayMoney()={}", payMoney, moneyCardUseFlow.getTotal());
                                 threadResult.putInMap("status", "err");
@@ -362,8 +367,9 @@
 
 
 
-    private void recordPayLog(Integer orderId, Integer type,String orderNo, BigDecimal payMoney, ShopPayLog payLog, String payRemark, int payStatus) {
+    private void recordPayLog(Integer orderId, Integer type,String orderNo, BigDecimal payMoney, String payRemark, int payStatus) {
         //设置支付类型为收款
+        ShopPayLog payLog=new ShopPayLog();
         payLog.setPayType(type);
         payLog.setJoinId(orderId);
         payLog.setPayMoney(payMoney);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
index 8bb4daa..05fd001 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
@@ -8,7 +8,6 @@
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.BasePageQueryDto;
-import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.hive.bean.MoneyCardUse;
@@ -17,6 +16,7 @@
 import com.matrix.system.hive.dao.MoneyCardUseFlowDao;
 import com.matrix.system.hive.dao.MoneyCardUseV2Dao;
 import com.matrix.system.hive.service.CodeService;
+import com.matrix.system.shopXcx.api.dto.MoneyCardUseFlowDto;
 import com.matrix.system.shopXcx.api.vo.WxMoneyCardUseVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -58,6 +58,26 @@
     @Autowired
     CodeService codeService;
 
+
+
+
+    @ApiOperation(value = "查询会员主卡", notes = "")
+    @GetMapping(value = "/getUserVipCard")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
+    })
+    public AjaxResult getUserVipCard() {
+        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("vip_id", sysVipInfo.getId());
+        queryWrapper.eq("is_vip_car","Y");
+        MoneyCardUse moneyCardUse = moneyCardUseV2Dao.selectOne(queryWrapper);
+        WxMoneyCardUseVO vo = new WxMoneyCardUseVO();
+        BeanUtils.copyProperties(moneyCardUse, vo);
+        return AjaxResult.buildSuccessInstance(vo);
+    }
+
+
     @ApiOperation(value = "查询会员储值卡", notes = "")
     @PostMapping(value = "/getUserMoneyCardUseList")
     @ApiResponses({
@@ -76,6 +96,9 @@
         }).collect(Collectors.toList());
         return AjaxResult.buildSuccessInstance(rows);
     }
+
+
+
 
     @ApiOperation(value = "创建储值卡充值预付单", notes = "传入参数 {rechargeAmount:10} 最少充值1元,最多2位小数 ")
     @PostMapping(value = "/createRechargeOrder")
@@ -135,19 +158,11 @@
     @ApiResponses({
             @ApiResponse(code = 200, message = "ok", response = MoneyCardUseFlow.class)
     })
-    public AjaxResult getRechargeList(@RequestBody @Validated BasePageQueryDto pageDto) {
-        if(StringUtils.isBlank(pageDto.getKeywords())){
-            return AjaxResult.buildFailInstance("keywords参数是必须的");
-        }
-        PaginationVO pageVo = new PaginationVO();
-        pageVo.setOffset((pageDto.getPageNum() - 1) * pageDto.getPageSize());
-        pageVo.setLimit(pageDto.getPageSize());
+    public AjaxResult getRechargeList(@RequestBody @Validated MoneyCardUseFlowDto pageDto) {
         SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
-        MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
-        moneyCardUseFlow.setVipId(sysVipInfo.getId());
-        moneyCardUseFlow.setCarUseId(Long.parseLong(pageDto.getKeywords()));
-        List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectInPage(moneyCardUseFlow, pageVo);
-        return AjaxResult.buildSuccessInstance(dataList, moneyCardUseFlowDao.selectTotalRecord(moneyCardUseFlow));
+        pageDto.setCompanyId(sysVipInfo.getCompanyId());
+        List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectForWxInPage(pageDto);
+        return AjaxResult.buildSuccessInstance(dataList);
     }
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
index a18c5e2..eb8cf7e 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -5,6 +5,8 @@
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
@@ -18,15 +20,19 @@
 import com.matrix.system.activity.entity.ActivitySignWriteoff;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.dto.ClickSignDTO;
+import com.matrix.system.shopXcx.api.dto.SeeAwardTextDto;
+import com.matrix.system.shopXcx.api.dto.SignAwardDto;
 import com.matrix.system.shopXcx.api.vo.*;
 import com.matrix.system.shopXcx.bean.ShopActivities;
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import com.matrix.system.shopXcx.vo.SalesOrderVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
@@ -312,25 +318,67 @@
         return getCumulativeDay(actId,userId,offsetDay,i);
     }
     
-//    /**
-//     * 获取累计的签到奖品数量
-//     *
-//     * @return
-//     */
-//    @ApiOperation(value = "获取累计的签到奖品列表", notes = "")
-//	@ApiResponses({
-//			@ApiResponse(code = 200, message = "ok", response = SignAwardListVO.class)
-//	})
-//    @GetMapping(value = "/getSignAwardList")
-//    @PostMapping(value = "/getSignAwardList")
-//    public AjaxResult getSignAwardList(@RequestBody SignAwardListVO signAwardListVO) {
-//    	SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
-//        Long userId = user.getId();
-//        Long companyId = user.getCompanyId();
-//        int size = activitySignReceiveRecordDao.getSignAwardReceiveCount(userId, companyId);
-//        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(size);
-//        return ajaxResult;
-//    }
+    /**
+     * 获取累计的签到奖品
+     *
+     * @return
+     */
+    @ApiOperation(value = "获取累计的签到奖品", notes = "")
+    @PostMapping(value = "/getSignAwardList")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = SignAwardListVo.class)
+    })
+    public AjaxResult getSignAwardList(@RequestBody @Validated SignAwardDto signAwardDto) {
+        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        Page<SalesOrderVo> page=new Page<>(signAwardDto.getPageNum(),signAwardDto.getPageSize());
+        if(StringUtils.isBlank(signAwardDto.getSort())){
+        	signAwardDto.setSort("create_time");
+        	signAwardDto.setOrder("desc");
+        }
+        signAwardDto.setUserId(loginUser.getId());
+        signAwardDto.setCompanyId(loginUser.getCompanyId());
+        IPage<SignAwardListVo> signAwardListVos = activitySignReceiveRecordDao.selectSignAwardList(page,signAwardDto);
+        AjaxResult result=AjaxResult.buildSuccessInstance(signAwardListVos.getRecords());
+        return result;
+    }
+    
+    /**
+     * 查看劵码
+     *
+     * @return
+     */
+    @ApiOperation(value = "查看劵码", notes = "")
+    @PostMapping(value = "/seeAwardText")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
+    })
+    public AjaxResult seeAwardText(@RequestBody @Validated SeeAwardTextDto seeAwardTextDto) {
+        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        seeAwardTextDto.setUserId(loginUser.getId());
+        seeAwardTextDto.setCompanyId(loginUser.getCompanyId());
+        SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto);
+        AjaxResult result=AjaxResult.buildSuccessInstance(seeAwardTextVO);
+        return result;
+    }
+    
+    /**
+     * 物流配送确认
+     *
+     * @return
+     */
+    @ApiOperation(value = "查看劵码", notes = "")
+    @PostMapping(value = "/logisticsInsure")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
+    })
+    public AjaxResult logisticsInsure(@RequestBody @Validated SeeAwardTextDto seeAwardTextDto) {
+        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        seeAwardTextDto.setUserId(loginUser.getId());
+        seeAwardTextDto.setCompanyId(loginUser.getCompanyId());
+        SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto);
+        AjaxResult result=AjaxResult.buildSuccessInstance(seeAwardTextVO);
+        return result;
+    }
     
     
     
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
index bf3e8a1..c77ba64 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
@@ -68,6 +68,8 @@
         }
         logisticsInfo.put("isShipments",AppConstance.IS_SHIPMENTS);
         logisticsInfo.put("logisticsStatus",shopDeliveryInfo.getLogisticsStatus()==null?"0":String.valueOf(shopDeliveryInfo.getLogisticsStatus()));
+        logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+        logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
         logisticsInfo.put("describe",describe);
         result.setStatus(AjaxResult.STATUS_SUCCESS);
         result.putInMap("logisticsInfo",logisticsInfo);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/MoneyCardUseFlowDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/MoneyCardUseFlowDto.java
new file mode 100644
index 0000000..138cabb
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/MoneyCardUseFlowDto.java
@@ -0,0 +1,34 @@
+package com.matrix.system.shopXcx.api.dto;
+
+import com.matrix.core.pojo.BasePageQueryDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "MoneyCardUseFlowDto", description = "储值卡流水查询参数接收类")
+public class MoneyCardUseFlowDto extends BasePageQueryDto {
+
+
+    @NotEmpty(message = "请选择查询时间")
+    @ApiModelProperty(value = "查询月份",example = "2021-03")
+    private String queryTime;
+
+
+    @ApiModelProperty(value = "收支类型 不传全部,1,收入,2支出", example = "1")
+    private Integer  revenueType;
+
+    @NotNull(message = "请选择要查询的储值卡ID")
+    @ApiModelProperty(value = "储值卡id", example = "1")
+    private Long  carUseId;
+
+    @ApiModelProperty(hidden = true)
+    private Long  companyId;
+
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SeeAwardTextDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SeeAwardTextDto.java
new file mode 100644
index 0000000..f60d919
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SeeAwardTextDto.java
@@ -0,0 +1,24 @@
+package com.matrix.system.shopXcx.api.dto;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "SeeAwardTextDto", description = "查询参数接收类")
+public class SeeAwardTextDto {
+
+
+    @NotNull(message = "奖品ID不能为空")
+    @ApiModelProperty(value = "奖品ID", example = "1")
+	private Long  awardId;
+
+    @ApiModelProperty(hidden = true)
+    private Long  userId;
+    
+    @ApiModelProperty(hidden = true)
+    private Long  companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SignAwardDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SignAwardDto.java
new file mode 100644
index 0000000..89196d2
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SignAwardDto.java
@@ -0,0 +1,20 @@
+package com.matrix.system.shopXcx.api.dto;
+
+import com.matrix.core.pojo.BasePageQueryDto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+@Data
+@ApiModel(value = "SignAwardDto", description = "查询参数接收类")
+public class SignAwardDto extends BasePageQueryDto {
+
+    @ApiModelProperty(hidden = true)
+    private Long  userId;
+    
+    @ApiModelProperty(hidden = true)
+    private Long  companyId;
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
index ad131b4..a5fa5e3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
@@ -2,6 +2,7 @@
 
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -15,6 +16,7 @@
     /**
      *  收货地址ID
      */
+    @NotNull(message = "请选择正确的收获地址")
     private Integer receiveAddrId;
 
     /**
@@ -37,7 +39,11 @@
      */
     private Integer joinActive;
 
-
+    /**
+     *  支付方式1微信,2 vipCard余额
+     */
+    @NotNull(message = "请选择支付方式")
+    private Integer payMethod;
 
     /**
      *  订单备注
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
index da0f5e4..8430dc5 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
@@ -23,7 +23,7 @@
      * @return
      * @throws Exception
      */
-    AjaxResult createShopOrder(ShopOrderDto shopOrderDto) throws Exception;
+    ShopOrder createShopOrder(ShopOrderDto shopOrderDto) throws Exception;
 
     /**
      * 订单结算
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
index e702535..9a44280 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
@@ -3,7 +3,6 @@
 import cn.hutool.core.collection.CollUtil;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.component.rabbitmq.RabiitMqTemplate;
 import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.tools.WxUtils;
@@ -17,6 +16,7 @@
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.CustomerDataDictionaryDao;
 import com.matrix.system.common.interceptor.HostInterceptor;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.hive.dao.ShoppingGoodsDao;
 import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.score.dao.ScoreVipDetailDao;
@@ -29,7 +29,6 @@
 import com.matrix.system.shopXcx.api.service.ShoppingCartService;
 import com.matrix.system.shopXcx.api.service.WXShopOrderService;
 import com.matrix.system.shopXcx.api.service.WxShopCouponService;
-import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil;
 import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
 import com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO;
 import com.matrix.system.shopXcx.bean.*;
@@ -55,8 +54,6 @@
     @Autowired
     private WxShopOrderUtil wxShopOrderUtil;
     @Autowired
-    private WxShopCouponUtil wxShopCouponUtil;
-    @Autowired
     private RedisUserLoginUtils redisUserLoginUtils;
     @Autowired
     private WeixinServiceUtil weixinServiceUtil;
@@ -68,8 +65,6 @@
     private ShopOrderDao shopOrderDao;
     @Autowired
     private ShopOrderDetailsDao shopOrderDetailsDao;
-    @Autowired
-    private ShopCouponDao shopCouponDao;
     @Autowired
     private ShopProductDao shopProductDao;
     @Autowired
@@ -131,27 +126,25 @@
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public AjaxResult createShopOrder(ShopOrderDto shopOrderDto) throws Exception {
+    public ShopOrder createShopOrder(ShopOrderDto shopOrderDto) throws Exception {
         SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
 
 
-        //校验收货地址
+
         ShopReceiveAddress shopReceiveAddress = shopReceiveAddressDao.selectById(shopOrderDto.getReceiveAddrId());
-        if (shopReceiveAddress == null) {
-            return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择正确的收获地址");
-        }
+
 
         //计算订单优惠信息
         AjaxResult caculateResult= buildDiscountExplain(shopOrderDto);
         DiscountExplain discountExplain= (DiscountExplain) caculateResult.getMapInfo().get("discountExplain");
-
         if(discountExplain.getScorePay()!=null){
             //校验用户积分是否够用
             int score=scoreVipDetailDao.selectUserTotalScore(sysVipInfo.getId());
             if(score<discountExplain.getScorePay()){
-                return  AjaxResult.buildFailInstance("积分不足");
+                throw new GlobleException("积分不足");
             }
         }
+
 
         ShopOrder shopOrder = new ShopOrder();
         shopOrder.setCompanyId(sysVipInfo.getCompanyId());
@@ -200,6 +193,7 @@
         shopOrder.setUserId(sysVipInfo.getId());
         shopOrder.setCreateBy("微信小程序生成");
         shopOrder.setUpdateBy("微信小程序生成");
+        shopOrder.setPayMethod(shopOrderDto.getPayMethod());
         shopOrder.setCommodityPrice(discountExplain.getBillPrice());
         shopOrder.setPurchaseQuantity(orderCount);
         shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
@@ -256,11 +250,8 @@
 
 
 
-        BrandWCPayRequestData payData = startPayment(shopOrder);
-        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(payData));
-        result.putInMap("orderId", shopOrder.getId());
 
-        return result;
+        return shopOrder;
     }
 
     @Override
@@ -392,11 +383,15 @@
     @Override
     public AjaxResult orderSettlement(int orderId) throws Exception {
         ShopOrder shopOrder = shopOrderDao.selectById(orderId);
+
         if (shopOrder == null) {
-            throw new GlobleException("订单不存在!");
+            return AjaxResult.buildFailInstance("订单不存在!");
+        }
+        if (ShopOrder.SHOP_ORDER_PAY_METHOD_WX != shopOrder.getPayMethod()) {
+            return AjaxResult.buildFailInstance("支付方式错误");
         }
         if (!shopOrder.getPayResult().equals(ShopOrder.ORDER_PAY_STATUS_WAIT)) {
-            throw new GlobleException("该订单不是待支付状态!");
+            return AjaxResult.buildFailInstance("该订单不是待支付状态!");
         }
 
         if(shopOrder.getScorePay()!=null){
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
index 92cf088..d5fc4b5 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
@@ -79,76 +79,72 @@
         List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>();
         AjaxResult result = new AjaxResult();
         Map<String, String> logisticsInfo = new HashMap<String, String>();
-        try {
-            if (shopDeliveryInfo == null) {
-                return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
-            }
-            if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
-                return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
-            }
-            logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
-            logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
 
-            //如果已经签收直接查数据库
-            if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
-
-                List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
-                logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
-                result.setStatus(AjaxResult.STATUS_SUCCESS);
-                result.setRows(shopLogisticsInfos);
-                result.putInMap("logisticsInfo", logisticsInfo);
-                return result;
-            }
-            Map<String, String> param = new HashMap<String, String>();
-            param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
-            param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
-            Map<String, String> paramsUrl = getparams(param);
-            LogUtil.info("物流查询参数" + paramsUrl);
-            String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
-            LogUtil.info("查询物流返回信息" + logisticsResult);
-            LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
-            if (logisticsInfoVo.isSuccess()) {
-                ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
-                shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
-                shopDelivery.setId(shopDeliveryInfo.getId());
-                logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
-                //更新物流状态
-                shopDeliveryInfoDao.updateByModel(shopDelivery);
-                if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
-                    List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
-                    for (int i = 0; i < mapTraces.size(); i++) {
-                        ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
-                        shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
-                        shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
-                        shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
-                        String acceptStation = mapTraces.get(i).get("AcceptStation");
-                        shopLogisticsInfo.setDescribe(acceptStation);
-                        shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
-                        if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
-                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
-                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
-                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
-                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
-                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
-                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
-                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
-                        } else {
-                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
-                        }
-                        shopLogisticsList.add(shopLogisticsInfo);
-                    }
-                    shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
-                    if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
-                        shopLogisticsInfoDao.batchInsert(shopLogisticsList);
-                    }
-                }
-            } else {
-                throw new GlobleException(logisticsInfoVo.getReason());
-            }
-
-        } catch (Exception e) {
-            throw new GlobleException("物流信息查询失败");
+        if (shopDeliveryInfo == null) {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
         }
+        if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
+        }
+        logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+        logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
+
+        //如果已经签收直接查数据库
+        if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
+
+            List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+            logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
+            result.setStatus(AjaxResult.STATUS_SUCCESS);
+            result.setRows(shopLogisticsInfos);
+            result.putInMap("logisticsInfo", logisticsInfo);
+            return result;
+        }
+        Map<String, String> param = new HashMap<String, String>();
+        param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
+        param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
+        Map<String, String> paramsUrl = getparams(param);
+        LogUtil.info("物流查询参数" + paramsUrl);
+        String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
+        LogUtil.info("查询物流返回信息" + logisticsResult);
+        LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
+        if (logisticsInfoVo.isSuccess()) {
+            ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
+            shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
+            shopDelivery.setId(shopDeliveryInfo.getId());
+            logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
+            //更新物流状态
+            shopDeliveryInfoDao.updateByModel(shopDelivery);
+            if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
+                List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
+                for (int i = 0; i < mapTraces.size(); i++) {
+                    ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
+                    shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
+                    shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
+                    shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
+                    String acceptStation = mapTraces.get(i).get("AcceptStation");
+                    shopLogisticsInfo.setDescribe(acceptStation);
+                    shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
+                    if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
+                        shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
+                    } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
+                        shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
+                    } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
+                        shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
+                    } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
+                        shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
+                    } else {
+                        shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
+                    }
+                    shopLogisticsList.add(shopLogisticsInfo);
+                }
+                shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
+                if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
+                    shopLogisticsInfoDao.batchInsert(shopLogisticsList);
+                }
+            }
+        }
+
+
         List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
         result.setStatus(AjaxResult.STATUS_SUCCESS);
         result.setRows(shopLogisticsInfos);
@@ -187,14 +183,18 @@
      * @param map
      * @return
      */
-    private Map<String, String> getparams(Map<String, String> map) throws Exception {
+    private Map<String, String> getparams(Map<String, String> map)  {
         String params = JSON.toJSONString(map);
         Map<String, String> paramsUrl = new HashMap<String, String>();
-        paramsUrl.put("RequestData", URLEncoder.encode(params, "UTF-8"));
+        try {
+            paramsUrl.put("RequestData", URLEncoder.encode(params, "UTF-8"));
+            String dataSign = encrypt(params, appKey, "UTF-8");
+            paramsUrl.put("DataSign", URLEncoder.encode(dataSign, "UTF-8"));
+        } catch (Exception e) {
+           throw new GlobleException(e.getMessage());
+        }
         paramsUrl.put("EBusinessID", eBusinessID);
         paramsUrl.put("RequestType", requestType);
-        String dataSign = encrypt(params, appKey, "UTF-8");
-        paramsUrl.put("DataSign", URLEncoder.encode(dataSign, "UTF-8"));
         paramsUrl.put("DataType", AppConstance.DATATYPE);
         return paramsUrl;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java
index f1694d6..1916ac4 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java
@@ -225,6 +225,7 @@
         shopDeliveryInfo.setUserId(shopOrder.getUserId());
         shopDeliveryInfo.setDeliveryWay(shippingMethod);
         shopDeliveryInfo.setShopId(shopOrder.getStoreId().longValue());
+        shopDeliveryInfo.setCompanyId(shopOrder.getCompanyId());
         StringBuffer receiveAddrStr = new StringBuffer();
         if (receiveAddress != null) {
             receiveAddrStr.append(receiveAddress.getAddrProvince());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
new file mode 100644
index 0000000..7dd4cfc
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
@@ -0,0 +1,49 @@
+package com.matrix.system.shopXcx.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "SeeAwardTextVo", description = "劵码信息")
+public class SeeAwardTextVo {
+	
+	@ApiModelProperty(value ="奖项名称")
+	private String  awardName;
+
+	@ApiModelProperty(value ="图片介绍")
+	private String  introduceImg;
+	
+	@ApiModelProperty(value ="兑奖方式(1:线下兑换2:物流配送3:客服兑换)")
+	private int  awardWay;
+	
+	@ApiModelProperty(value ="数量")
+	private int  total;
+
+	@ApiModelProperty(value ="兑奖期限开始日期")
+	@JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+	private Date  prizeStartTime;
+	
+	@ApiModelProperty(value ="兑奖期限结束日期")
+	@JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+	private Date  prizeEndTime;
+	
+	@ApiModelProperty(value =" 核销码")
+	private String  writeOffCode;
+
+	@ApiModelProperty(value ="兑奖须知")
+	private String  operationTip;
+	
+	@ApiModelProperty(value ="兑奖地址")
+	private String  prizeAddress;
+
+	@ApiModelProperty(value ="客服微信")
+	private String  wechatImg;
+
+	@ApiModelProperty(value =" 是否已领取(1:待领取2:已领取)")
+	private Integer  state;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVO.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVO.java
deleted file mode 100644
index d097874..0000000
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVO.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.matrix.system.shopXcx.api.vo;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
-@Data
-@ApiModel(value = "SignAwardListVO", description = "签到活动")
-public class SignAwardListVO {
-	/**
-	 * 主键
-	 */
-	private Long  id;
-
-}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java
new file mode 100644
index 0000000..b445647
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java
@@ -0,0 +1,37 @@
+package com.matrix.system.shopXcx.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "SignAwardListVo", description = "奖品列表")
+public class SignAwardListVo {
+	/**
+	 * 主键
+	 */
+	private Long  id;
+	
+	@ApiModelProperty(value ="奖项名称")
+	private String  awardName;
+
+	@ApiModelProperty(value ="图片介绍")
+	private String  introduceImg;
+	
+	@ApiModelProperty(value ="兑奖方式(1:线下兑换2:物流配送3:客服兑换)")
+	private int  awardWay;
+	
+	@ApiModelProperty(value ="数量")
+	private int  total;
+	
+	@ApiModelProperty(value ="是否已领取(1:待领取2:已领取)")
+	private Integer  state;
+	
+	@ApiModelProperty(value ="领取时间")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
+	private Date  receiveTime;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java
index 6fb1263..47689ff 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java
@@ -7,6 +7,8 @@
 import java.util.Date;
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 @Data
 
 @ApiModel(value = "SignBasicInfoVo", description = "签到活动")
@@ -27,8 +29,10 @@
 	@ApiModelProperty(value ="活动编码")
 	private String actCode;
 	@ApiModelProperty(value ="活动开始时间")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
 	private Date beginTime;
 	@ApiModelProperty(value ="活动结束时间")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
 	private Date endTime;
 	@ApiModelProperty(value ="活动基本参数")
 	private SignBasicInfoJsonVo signBasicInfoJsonVo;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignSuccessVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignSuccessVo.java
index 8971d19..298419d 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignSuccessVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignSuccessVo.java
@@ -6,6 +6,8 @@
 
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 @Data
 
 @ApiModel(value = "SignSuccessVo", description = "签到活动")
@@ -87,6 +89,7 @@
 
 
 	@ApiModelProperty(value ="兑奖期限开始日期")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
 	private Date  prizeStartTime;
 	
 	/**
@@ -94,6 +97,7 @@
 	 */
 
 	@ApiModelProperty(value ="兑奖期限结束日期")
+	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
 	private Date  prizeEndTime;
 	
 	/**
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
index e3003fe..f82f46d 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
@@ -17,9 +17,22 @@
 public class ShopOrder extends EntityDTO {
 
     /**
+     * 支付方式-微信支付
+     */
+    public static final int SHOP_ORDER_PAY_METHOD_WX = 1;
+
+    /**
+     * 支付方式-vip会籍卡
+     */
+    public static final int SHOP_ORDER_PAY_METHOD_VIPCARD = 2;
+
+
+
+    /**
      * 订单微信支付状态(待支付)
      */
     public static final int ORDER_WX_STATUS_WAIT_PAY = 1;
+
     /**
      * 订单微信支付状态(支付成功)
      */
@@ -162,7 +175,10 @@
      * 支付状态(1=待支付,2=支付成功,3=支付失败)
      */
     private Integer payStatus;
-
+    /**
+     *  支付方式1微信,2 vipCard余额
+     */
+    private Integer payMethod;
 
     /**
      * 优惠说明
@@ -491,10 +507,21 @@
         this.delFlag = delFlag;
     }
 
+
+    public Integer getPayMethod() {
+        return payMethod;
+    }
+
+    public void setPayMethod(Integer payMethod) {
+        this.payMethod = payMethod;
+    }
+
     public String getWxOrderNo() {
         return wxOrderNo;
     }
 
+
+
     public void setWxOrderNo(String wxOrderNo) {
         this.wxOrderNo = wxOrderNo;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/pojo/ShopOrderQueryPOJO.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/pojo/ShopOrderQueryPOJO.java
index 83cdfcd..db93b0b 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/pojo/ShopOrderQueryPOJO.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/pojo/ShopOrderQueryPOJO.java
@@ -19,6 +19,10 @@
      * 开始时间
      */
     private String orderBeginTime;
+    /**
+     * 开始时间
+     */
+    private String orderTime;
 
     /**
      * 结束时间
diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties
index 2a2ae62..9d8a8ef 100644
--- a/zq-erp/src/main/resources/config/application.properties
+++ b/zq-erp/src/main/resources/config/application.properties
@@ -4,9 +4,13 @@
 
 #线上测试环境
 
-spring.datasource.username=ct_test
-spring.datasource.password=123456
-spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+#spring.datasource.username=ct_test
+#spring.datasource.password=123456
+#spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+
+spring.datasource.username=xc_shop
+spring.datasource.password=xc_shop123!@#
+spring.datasource.url=jdbc:mysql://124.70.222.34/xc_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
 
diff --git "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql" "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
index d29024c..36a5ba5 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
@@ -227,7 +227,9 @@
 ADD COLUMN `pay_no`  varchar(32) NULL COMMENT '微信充值订单号';
 
 
-
+ALTER TABLE `shop_order`
+    ADD COLUMN `pay_method`  int(2) NULL COMMENT '支付方式1微信,2 vipCard余额';
+update shop_order set pay_method=1;
 
 ALTER TABLE `sys_vip_info`
     ADD COLUMN `fenxiao_state` int(11) NULL DEFAULT NULL COMMENT '分销审核状态' AFTER `recommend_id`,
diff --git a/zq-erp/src/main/resources/config/xcshop/application.properties b/zq-erp/src/main/resources/config/xcshop/application.properties
new file mode 100644
index 0000000..d871e87
--- /dev/null
+++ b/zq-erp/src/main/resources/config/xcshop/application.properties
@@ -0,0 +1,75 @@
+evn=xcshop
+server.port=8080
+
+
+#线上测试环境
+
+spring.datasource.username=xc_shop
+spring.datasource.password=xc_shop123!@#
+spring.datasource.url=jdbc:mysql://124.70.222.34/xc_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+
+#spring.datasource.username=chuhuan
+#spring.datasource.password=chuhuan
+#spring.datasource.url=jdbc:mysql://175.6.132.141:3306/hive_v2_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+
+
+
+
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.initialSize=3
+spring.datasource.minIdle=3
+spring.datasource.maxActive=20
+spring.datasource.maxWait=60000
+spring.datasource.timeBetweenEvictionRunsMillis=60000
+spring.datasource.minEvictableIdleTimeMillis=300000
+spring.datasource.validationQuery=SELECT 1 FROM DUAL
+spring.datasource.testWhileIdle=true
+spring.datasource.testOnBorrow=true
+spring.datasource.testOnReturn=true
+spring.datasource.filters=stat,wall,log4j
+spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+spring.thymeleaf.prefix: classpath:/templates/views/
+spring.thymeleaf.cache=false
+mybatis-plus.config-location=classpath:mybatis/mybatis-config.xml
+mybatis-plus.mapper-locations=classpath*:mybatis/mapper/**/*.xml
+
+#设置全局时间返回格式 第三行设置为true表示返回时间戳
+#spring.jackson.date-format=yyyy-MM-dd
+#spring.jackson.time-zone=GMT+8
+#spring.jackson.serialization.write-dates-as-timestamps=true
+#文件上传时的大小限制 单位M
+spring.servlet.multipart.max-file-size=100MB
+spring.servlet.multipart.max-request-size=100MB
+#--------------------------------------
+
+
+#rabbitMQ配置
+rabbitmq.host=47.111.134.136
+rabbitmq.port=5672
+rabbitmq.username=hivequeue
+rabbitmq.password=hivequeueadmin
+useRabbit=false
+
+server.session.timeout=120
+
+ali.sms.accessKeyId=LTAI4FrjY9R9iDfC6YQTHfne
+ali.sms.accessKeySecret=eSvQslpHpDSGlI9Hxm4y5MynNgLbCp
+ali.sms.regionId=cn-hangzhou
+ali.sms.signName=\u80bd\u598d
+
+#hour
+activities.groupBuy.limit=24
+#minute
+groupBuy.pay.timeLimit=30
+
+#定时任务
+scheduling.enabled=false
+
+swagger.enable=true
+swagger.security.username=admin
+swagger.security.password=admin
+
+
+#默认头像
+default.vip.photo.woman=https://filehive2.jyymatrix.cc/uploadeFile/20210125/db53552e688040afb286686f081e1e68f3fe946f75624598828f01898635152e.png
+default.vip.photo.man=https://filehive2.jyymatrix.cc/uploadeFile/20210125/3642f1d827c44c76832fea106c85e0f89e089c16cbcc4dd0a82bb52b9ac700f4.png
diff --git a/zq-erp/src/main/resources/config/xcshop/config.json b/zq-erp/src/main/resources/config/xcshop/config.json
new file mode 100644
index 0000000..bffbd4a
--- /dev/null
+++ b/zq-erp/src/main/resources/config/xcshop/config.json
@@ -0,0 +1,94 @@
+/* 前后端通信相关的配置,注释只允许使用多行方式 */
+{
+    /* 上传图片配置项 */
+    "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
+    "imageFieldName": "upfile", /* 提交的图片表单名称 */
+    "imageMaxSize": 2048000, /* 上传大小限制,单位B */
+    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
+    "imageCompressEnable": true, /* 是否压缩图片,默认是true */
+    "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
+    "imageInsertAlign": "none", /* 插入的图片浮动方式 */
+    "imageUrlPrefix": "http://xcshop.csxuncong.com/uploadfile", /* 图片访问路径前缀 */
+    "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+                                /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
+                                /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
+                                /* {time} 会替换成时间戳 */
+                                /* {yyyy} 会替换成四位年份 */
+                                /* {yy} 会替换成两位年份 */
+                                /* {mm} 会替换成两位月份 */
+                                /* {dd} 会替换成两位日期 */
+                                /* {hh} 会替换成两位小时 */
+                                /* {ii} 会替换成两位分钟 */
+                                /* {ss} 会替换成两位秒 */
+                                /* 非法字符 \ : * ? " < > | */
+                                /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
+
+    /* 涂鸦图片上传配置项 */
+    "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
+    "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
+    "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+    "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
+    "scrawlUrlPrefix": "http://xcshop.csxuncong.com/uploadfile", /* 图片访问路径前缀 */
+    "scrawlInsertAlign": "none",
+
+    /* 截图工具上传 */
+    "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
+    "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+    "snapscreenUrlPrefix": "http://xcshop.csxuncong.com/uploadfile", /* 图片访问路径前缀 */
+    "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
+
+    /* 抓取远程图片配置 */
+    "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
+    "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
+    "catcherFieldName": "source", /* 提交的图片列表表单名称 */
+    "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+    "catcherUrlPrefix": "http://xcshop.csxuncong.com/uploadfile", /* 图片访问路径前缀 */
+    "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
+    "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
+
+    /* 上传视频配置 */
+    "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
+    "videoFieldName": "upfile", /* 提交的视频表单名称 */
+    "videoPathFormat": "/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+    "videoUrlPrefix": "http://127.0.0.1:1088/uploadeFile/", /* 视频访问路径前缀 */
+    "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
+    "videoAllowFiles": [
+        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
+        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
+
+    /* 上传文件配置 */
+    "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
+    "fileFieldName": "upfile", /* 提交的文件表单名称 */
+    "filePathFormat": "/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
+    "fileUrlPrefix": "http://127.0.0.1:1088/uploadeFile/", /* 文件访问路径前缀 */
+    "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
+    "fileAllowFiles": [
+        ".png", ".jpg", ".jpeg", ".gif", ".bmp",
+        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
+        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
+        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
+        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
+    ], /* 上传文件格式显示 */
+
+    /* 列出指定目录下的图片 */
+    "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
+    "imageManagerListPath": "http://127.0.0.1:1088/uploadeFile/", /* 指定要列出图片的目录 */
+    "imageManagerListSize": 20, /* 每次列出文件数量 */
+    "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
+    "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
+    "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
+
+    /* 列出指定目录下的文件 */
+    "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
+    "fileManagerListPath": "http://127.0.0.1:1088/uploadeFile/", /* 指定要列出文件的目录 */
+    "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
+    "fileManagerListSize": 20, /* 每次列出文件数量 */
+    "fileManagerAllowFiles": [
+        ".png", ".jpg", ".jpeg", ".gif", ".bmp",
+        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
+        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
+        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
+        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
+    ] /* 列出的文件类型 */
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/config/xcshop/system.properties b/zq-erp/src/main/resources/config/xcshop/system.properties
new file mode 100644
index 0000000..db3c494
--- /dev/null
+++ b/zq-erp/src/main/resources/config/xcshop/system.properties
@@ -0,0 +1,98 @@
+#是否启用debug模式
+debug=false
+# 日志文件保存地址
+log_path=/mnt/xcshop/log
+
+# 系统语言环境 zh中文,us英文
+system_language=zh
+
+# 错误密码允许输入的次数,大于五次后账号锁定,0表示不锁账号
+error_password_times=5
+# 默认密码
+default_password=123
+
+#nginx静态资源访问地址
+static_resource_url=http://xcshop.csxuncong.com/uploadfile/
+#文件保存地址
+file_storage_path=/mnt/xcshop/uploadfile/
+#文件上传大小字节为单位  10MB
+maxUploadSize=10485760
+
+
+#Matser\u7684ip\u5730\u5740
+redis.hostname=120.27.238.55
+#\u7AEF\u53E3\u53F7
+redis.port=6379
+#\u5982\u679C\u6709\u5BC6\u7801
+redis.password=xcong123
+#\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000
+redis.timeout=10000  
+redis.database=2
+redis_time_out=1800000
+cookie_time_out=36000
+
+#APP登录公钥
+login_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWvK6UWCtSp/8qnTqyUfO0wbg4CuxOe7IeiDSAmATfHnWqBPnbZ73qQ4A90vGowB7mp5XnmBvgTwfXtDh08yd4btlHwSD3ShbRyGfGfV8lc47ZTLiJH0xuuN2iHfnfj8zQ5kcqijeotggo2rF8Uu7KSR3HxVyN9mO22C6p1r5wVQIDAQAB
+#APP登录秘钥
+login_private_key=MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJa8rpRYK1Kn/yqdOrJR87TBuDgK7E57sh6INICYBN8edaoE+dtnvepDgD3S8ajAHuanleeYG+BPB9e0OHTzJ3hu2UfBIPdKFtHIZ8Z9XyVzjtlMuIkfTG643aId+d+PzNDmRyqKN6i2CCjasXxS7spJHcfFXI32Y7bYLqnWvnBVAgMBAAECgYBNzQFGq+NgfDllo1WCaG4jI8GTm3+wWoPq4l5G6S/KgYw1vu+/YOJTIZf1UQVOFitc3a6vpIDu25uup+Rj6IS8B4V8NDfc8P+iMNwdIKqqBj8wHu0/SaxYdW1uqlU5+XkJMxsNMgNRRGPSIQhla5OPHtBzIa7t4lmypETMZtXEmQJBAMsa1OIQzAKU05GweCnNNSoqo/nAQLqp8zfbJypxRx24uaCyS7C+KxN+O4FyaYmM9n0X+cgkr+RYHAIa7mg3gccCQQC9/nJvRBum8+4TINnz6QrvTmTlhi8QKW/CiRYpGgmo5PtQYw4BkRQbYO8ktFDM2yeO75XBv09qnGQaivDCeL0DAkEAisFg8LSy+4x7YcvivAQirxUEg2qRjjTvIZjKEBflkuuRfbRxO2Uf/qg9tPjaGwu/lcScc9yEggaj09hcSbyqHwJAN8QLiqUPCL3oTy0BTBpG316/Nq9f+Ppwl0TtgDroQu6S5VFttwACStb02m0imj5pKgcgibHBeaVVrITDjhEqSQJAaCHD/ytTzgtgLoVVyZZxOB272W7PI3mnzL8qQSldx1/QOBs1NmmEZuo7ELFMrfTmlxa1qR4gsq/ImfIdUdXewQ==
+
+
+#日志文件清理阈值  单位:MB
+log_max=20
+#日志清理天数
+log_clear_day=5
+
+
+
+
+wechar_login_url =https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code
+xcx_appid =wx5cc58f796224af61
+xcx_secret =facea088aae414e5c2ee86b459887721
+gzh_appid=wx57e6335559bdbda6
+gzh_secret=ecb408af170e3890e6544290cad33760
+
+#微信支付调试开关
+wx_pay_debug_onoff = false
+
+#快递鸟用户id
+logistics.eBusinessID=1530881
+#快递鸟密钥
+logistics.appKey=f1cf9777-26fb-4e3f-a14d-896075e6384e
+#快递鸟接口地址
+logistics.url=http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx
+#快递鸟接口指令
+logistics.requestType=1002
+
+
+
+
+#发送短信配置
+crm.request_url = http://192.168.1.248
+sms.request_url = http://smssh1.253.com
+sms.login_account = M7315130
+sms.login_password = J7FAoehPkv63e3
+sms.login_accountNe = N4617160
+sms.login_passwordNe = rb1cxLitRB83e0
+
+#接入统一登录平台配置
+platform_app_code = wx_shop
+platform_secret_key = b21e309f07964e4fae5b156d74b5d66z
+#platform_verity_url = http://localhost:8080/platform/getUserInfo
+platform_verity_url = http://stg1-xcerp-ca.xc.jyymatrix.cc/platform/getUserInfo
+
+qrcodeBackgroundImgPath=/mnt/xcshop/webresource/static/xcxresource/bj1.png
+qrcodeFrontImgPath=/mnt/xcshop/webresource/static/xcxresource/qj2.png
+
+#hive仓库地址
+hive.service=http://localhost:8082/meidu-crm/
+
+
+
+#是否启用异常上报
+is_open_exception_report=true
+showExcptionUrl=http://xcshop.csxuncong.com/showException
+
+
+#异常信息查询接口
+showExcptionUrl=http://xcshop.csxuncong.com/showException
+
diff --git a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
index 9b584d0..4892c5c 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
@@ -92,4 +92,52 @@
 
 	</select>
 
+	<select id="selectSignAwardList" resultType="com.matrix.system.shopXcx.api.vo.SignAwardListVo">
+		SELECT
+		a.id id,
+		a.state state,
+		1 total,
+		a.receive_time receiveTime,
+		b.award_way awardWay,
+		b.introduce_img introduceImg,
+		b.award_name awardName
+
+		FROM
+		activity_sign_receive_record a
+		LEFT JOIN activity_sign_award_set b ON a.award_id = b.id
+		WHERE
+		b.award_type = 1
+		AND a.state = 1
+		and a.company_id = #{record.companyId}
+		and a.user_id = #{record.userId}
+		<if test="record.sort !=null">
+			order by
+			a.${record.sort} ${record.order}
+		</if>
+	</select>
+
+	<select id="selectSeeAwardTextVOById" resultType="com.matrix.system.shopXcx.api.vo.SeeAwardTextVo">
+		SELECT
+			a.id id,
+			a.state state,
+			a.receive_time receiveTime,
+			a.write_off_code writeOffCode,
+			1 total,
+			b.wechat_img wechatImg,
+			b.prize_address prizeAddress,
+			b.operation_tip operationTip,
+			b.prize_end_time prizeEndTime,
+			b.prize_start_time prizeStartTime,
+			b.award_way awardWay,
+			b.introduce_img introduceImg,
+			b.award_name awardName
+		FROM
+			activity_sign_receive_record a
+				LEFT JOIN activity_sign_award_set b ON a.award_id = b.id
+		WHERE
+		a.id = #{record.awardId}
+		and a.company_id = #{record.companyId}
+		and a.user_id = #{record.userId}
+	</select>
+
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml
index c74aeca..493f7d5 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml
@@ -619,7 +619,7 @@
 	</select>
 
     <select id="selectVipCardTotalMoney" resultType="java.lang.Double">
-            SELECT TRUNCATE( SUM(gift_money)+SUM(real_money) ,2 ) from money_card_use where vip_id=#{vipId}  and `status` ='有效'
+            SELECT  IFNULL(sum(IFNULL(gift_money, 0)),0)+ IFNULL(sum(IFNULL(real_money, 0)),0)  from money_card_use where vip_id=#{vipId}  and `status` ='有效'
     </select>
 
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
index 9a30f8e..d9d505a 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
@@ -331,6 +331,35 @@
 			</if>
 		</if>
 	</select>
+
+	<select id="selectForWxInPage" resultMap="MoneyCardUseFlowMap">
+		select
+			id,
+			order_no,
+			pay_no,
+			content,
+			create_time,
+			type,
+			total,
+			times,
+			gift_money,
+			balance,
+			(SELECT su_name from sys_users a WHERE operation_id=a.su_id) staffName
+		from money_card_use_flow
+		<where>
+				and car_use_id=#{record.carUseId}
+			<if test="record.queryTime!=null and record.queryTime!=''">
+				and DATE_FORMAT(create_time,'%Y-%m')=#{record.queryTime}
+			</if>
+			<if test="record.revenueType==1">
+				and  total>0
+			</if>
+			<if test="record.revenueType==2">
+				<![CDATA[ and total<0 ]]>
+			</if>
+		</where>
+		order by  create_time desc
+	</select>
 </mapper>
 
 		
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml b/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
index 5481b2b..bc19396 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/score/ScoreVipDetailDao.xml
@@ -5,7 +5,7 @@
 <mapper namespace="com.matrix.system.score.dao.ScoreVipDetailDao">
 
     <select id="selectUserTotalScore" resultType="java.lang.Integer">
-        select IFNULL(sum(IFNULL( remain_score, 0 )),0) from score_vip_detail
+        select IFNULL(sum(IFNULL(remain_score, 0 )),0) from score_vip_detail
         where  state=1 and vip_id=#{vipId}
 
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
index f5cc7fb..0a9cbab 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopDeliveryInfoDao.xml
@@ -241,6 +241,9 @@
 			<if test="record.orderId != null ">
 				order_id  = #{record.orderId},
 			</if>
+			<if test="record.receiveId != null ">
+				receive_id  = #{record.receiveId},
+			</if>
 			<if test="record.userId != null and record.userId != '' ">
 				user_id  = #{record.userId},
 			</if>
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
index c584cfa..d2cd718 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
@@ -34,7 +34,11 @@
 			<result property="orderType" column="order_type" />
 			<result property="applyStatus" column="apply_status" />
 			<result property="scorePay" column="score_pay" />
+			<result property="payMethod" column="pay_method" />
 			<result property="companyId" column="company_id" />
+			<!--返回详情列表-->
+			<collection property="details" column="{orderId=id}"
+						select="com.matrix.system.shopXcx.dao.ShopOrderDetailsDao.selectByOrderId"/>
 	</resultMap>
 
 
@@ -45,6 +49,7 @@
 		<result property="createTime" column="create_time" />
 		<result property="updateBy" column="update_by" />
 		<result property="updateTime" column="update_time" />
+		<result property="payMethod" column="pay_method" />
 			<result property="orderNo" column="order_no" />
 			<result property="orderMoney" column="order_money" />
 			<result property="commodityPrice" column="commodity_price" />
@@ -130,6 +135,8 @@
 			order_type,
 			activity_type,
 score_pay,
+
+		pay_method,
 			company_id
 	</sql>
 	
@@ -163,6 +170,7 @@
 			#{item.orderType},
 			#{item.activityType},
 			#{item.scorePay},
+			#{item.payMethod},
 			#{item.companyId}
 	</sql>
 	
@@ -239,6 +247,7 @@
 			 <if test="(record.companyId!=null and record.companyId!='') or  (record.companyId!='' and record.companyId==0)  ">
 				 and company_id  = #{record.companyId}
 			 </if>
+
 		</if>
 		 
 	</sql>
@@ -541,35 +550,8 @@
 	<!-- 分页查询 -->
 	<select id="selectInPageByQuery" resultMap="ShopOrderMap">
 		select
-		o.create_by,
-		o.create_time,
-		o.update_by,
-		o.update_time,
-		o.id,
-		o.order_no,
-		o.order_money,
-		o.commodity_price,
-		o.user_id,
-		o.order_time,
-		o.pay_status,
-		o.discount_explain,
-		o.discount_amount,
-		o.order_status,
-		o.refund_charge,
-		o.user_name,
-		o.user_tel,
-		o.remarks,
-		o.shipping_method,
-		o.store_id,
-		o.purchase_quantity,
-		o.del_flag,
-		o.wx_order_no,
-		o.pay_result,
-		o.postage,
-		s.shop_name,
-		o.order_type,
-		o.score_pay,
-		o.apply_status
+		o.*,
+		s.shop_name
 		from shop_order o
 		INNER JOIN sys_shop_info s on o.store_id = s.ID
 		where del_flag = 2 and o.company_id  = #{record.companyId}
@@ -598,6 +580,8 @@
 			<if test="(record.shopId!=null and record.shopId!='')">
 				and o.store_id=#{record.shopId}
 			</if>
+
+
 		</if>
 		<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
 			<if test="pageVo.sort !=null  and pageVo.order !=null">
@@ -639,11 +623,11 @@
 		o.wx_order_no,
 		o.pay_result,
 		o.postage,
-		s.store_name,
-		s.score_pay,
+		       o.pay_method,
+		s.shop_name,
 		o.order_type
 		from shop_order o
-		LEFT JOIN shop_store s on o.store_id = s.store_id
+		LEFT JOIN sys_shop_info s on o.store_id = s.ID
 		where del_flag = 2 and o.company_id  = #{record.companyId}
 
 		<if test="record != null">
@@ -666,7 +650,7 @@
 				and  o.order_status = #{record.orderStatus}
 			</if>
 			<if test="(record.storeName!=null and record.storeName!='')">
-				and s.store_name like concat('%', #{record.storeName}, '%')
+				and s.shop_name like concat('%', #{record.storeName}, '%')
 			</if>
 		</if>
 		<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml
index fe87fd2..3c34532 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml
@@ -425,7 +425,7 @@
 			shop_product_comment c
 			LEFT JOIN shop_product p ON c.product_id = p.id
 			LEFT JOIN shop_order o ON c.order_id = o.id
-			LEFT JOIN sys_vip_info b ON c.user_id = b.id
+			LEFT JOIN sys_vip_info b ON c.user_id = b.openid
 		<where>
 			and c.product_id = #{record.productId}
 			AND p.del_flag = 2
@@ -448,7 +448,7 @@
 		shop_product_comment c
 		LEFT JOIN shop_product p ON c.product_id = p.id
 		LEFT JOIN shop_order o ON c.order_id = o.id
-		LEFT JOIN sys_vip_info b ON c.user_id = b.id
+		LEFT JOIN sys_vip_info b ON c.user_id = b.openid
 		<where>
 			<if test="record!=null">
 				<if test="(record.productId!=null and record.productId!='') or  (record.productId!='' and record.productId==0)  ">
diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopOrder-list.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopOrder-list.html
index 29e3350..4dcba3f 100644
--- a/zq-erp/src/main/resources/templates/views/admin/shop/shopOrder-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopOrder-list.html
@@ -13,120 +13,108 @@
             th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
     <script type="text/javascript"
             th:src="@{/js/systools/MBase.js}"></script>
+    <style type="text/css">
+
+        .btn-my {
+            background-color: #f8ac59;
+            border-color: #f8ac59;
+            color: #fff
+        }
+
+        .btn-my:hover {
+            background-color: #FFD19F;
+            border-color: #FFD19F;
+            color: #fff
+        }
+
+        .btn-my:focus {
+            outline: 0 !important;
+        }
+
+        .btn-my.active {
+            background-color: rgb(185, 136, 85);
+            border-color: rgb(185, 136, 85);
+            color: #fff;
+            outline: 0;
+        }
+
+    </style>
+
+
 </head>
 <body class=" container-fluid">
 
 <div class="pd-10">
     <!-- 搜索框部分start -->
+    <!-- 搜索框部分start -->
     <div class="row form-head">
-        <div class="col-md-2 col-xs-12">
-            <!-- 功能按钮部分 -->
-            <div class="">
-                <!--<button onclick="myGrid.delItems('id')" type="button"-->
-                <!--class="btn btn-danger btn-sm">-->
-                <!--<i class="fa fa-trash"></i>批量删除-->
-                <!--</button>-->
-            </div>
-        </div>
-        <div class="col-md-10 col-xs-12">
-            <div class="row">
-                <div class="col-md-11" style="text-align: right">
-                    <form class="form-inline" id="serchform">
-                        <div class="input-group">
-                            <div class="btn-group search-list " data-for="search-text">
-                                <button type="button"
-                                        class="btn btn-default dropdown-toggle searchlist"
-                                        data-toggle="dropdown">
-                                    用户姓名 <span class="caret "></span>
-                                </button>
-                                <ul class="dropdown-menu" role="menu">
-                                    <li data-field="userName"><a>用户姓名</a></li>
-                                    <li data-field="userTel"><a>用户电话 </a></li>
-                                    <li data-field="orderNo"><a>订单号 </a></li>
-                                    <li data-field="storeName"><a>门店名称 </a></li>
-                                </ul>
-                            </div>
-                            <div class="form-group mr-20 ml-20">
-                                <input autocomplete="off"   id="search-text" name="userName" placeholder="输入查询关键词"
-                                       type="text" class="form-control">
-                            </div>
-                            <div class="form-group">
-                                <button onclick="myGrid.serchData(1)" type="button"
-                                        class="btn btn-info">
-                                    <i class="fa fa-search "></i> 搜索
-                                </button>
-                                <button onclick="exportExcel()" type="button"
-                                        class="btn btn-info"
-                                        matrix:btn="order-exportExcel">
-                                    <i class="fa fa-search "></i> 导出EXCEL
-                                </button>
-                                <button type="reset" class="btn btn-info ">
-                                    <i class="fa fa-refresh "></i> 重置
-                                </button>
-                                <button type="reset" class="btn btn-info " onclick="applyMoney()">
-                                    <i class="fa fa-bank "></i> 申请提现
-                                </button>
-                            </div>
-                        </div>
-                        <!-- 高级搜索 -->
-                        <div class="senior-content">
-                            <!-- <div><a class="serch-close closestyle">×</a></div> -->
-                            <div class="serch-headline">高级搜索</div>
-                            <div>
-                                <div style="margin-bottom: 20px!important;">
-                                    <div class="col-sm-6" style="text-align: right!important;">
-                                        <label class="col-sm-12 control-label">
-                                            开始日期:
-                                        </label>
-                                    </div>
-                                    <div class="col-sm-6">
-                                        <input autocomplete="off"   name="orderBeginTime" readonly="readonly"
-                                               type="text" class="form-control datetimepicker" style="width: 98%">
-                                    </div>
-                                </div>
 
-                                <div style="margin-bottom: 20px!important;">
-                                    <div class="col-sm-6" style="text-align: right!important;">
-                                        <label class="col-sm-12 control-label">
-                                            结束日期:
-                                        </label>
-                                    </div>
-                                    <div class="col-sm-6">
-                                        <input autocomplete="off"   name="orderEndTime" readonly="readonly"
-                                               type="text" class="form-control datetimepicker" style="width: 98%">
-                                    </div>
-                                </div>
+        <!-- ------------搜索服务单开始---------------- -->
+        <form class="form-inline" id="serchform">
 
-                                <div style="margin-bottom: 20px!important;">
-                                    <div class="col-sm-6" style="text-align: right!important;">
-                                        <label class="col-sm-12 control-label">
-                                            订单状态:
-                                        </label>
-                                    </div>
-                                    <div class="col-sm-6">
-                                        <select class="form-control autoFull select2" dataType="*"
-                                                th:data-url="@{/admin/shopOrder/getOrderStatusSelectValue}"
-                                                data-value="code"
-                                                data-filed="name" name="orderStatus" style="width: 98%">
-                                            <option value=''>请选择</option>
-                                        </select>
-                                    </div>
-                                </div>
 
-                            </div>
-                            <div class="button col-sm-12">
-                                <button type="button" class="btn btn-sm btn-info mr20" onclick="myGrid.serchData()">确认
-                                </button>
-                                <button type="button" class="btn btn-warning serch-close">取消</button>
-                            </div>
-                        </div>
-                    </form>
-                </div>
-                <div class="col-md-1 text-r layui-anim" data-anim="layui-anim-up">
-                    <a class="senior-serch">高级搜索</a>
+            <div class="form-group mr-20">
+                <div class="btn-group search-list " data-for="search-text">
+                    <button type="button"
+                            class="btn btn-default dropdown-toggle searchlist"
+                            data-toggle="dropdown">
+                        用户姓名 <span class="caret "></span>
+                    </button>
+                    <ul class="dropdown-menu" role="menu">
+                        <li data-field="userName"><a>用户姓名</a></li>
+                        <li data-field="userTel"><a>用户电话 </a></li>
+                        <li data-field="orderNo"><a>订单号 </a></li>
+                        <li data-field="storeName"><a>门店名称 </a></li>
+                    </ul>
                 </div>
             </div>
-        </div>
+            <div class="form-group mr-20">
+                <input autocomplete="off"   id="search-text" name="userName" placeholder="输入查询关键词"
+                       type="text" class="form-control">
+            </div>
+
+            <div class="form-group mr-20">
+                <label>开始日期:</label>
+                <input autocomplete="off"   name="orderBeginTime" type="text"
+                       class="form-control datetimepicker" id="orderBeginTime">
+            </div>
+            <div class="form-group mr-20">
+                <label>结束日期:</label>
+                <input autocomplete="off"   name="orderEndTime" type="text"
+                       class="form-control datetimepicker" id="orderEndTime">
+            </div>
+
+            <input type="hidden" value="" name="orderStatus" id="orderStatus"/>
+            <div class="form-group mr-20">
+                <button type="button" class="btn btn-my btn-sm active" id="btn0" value="">全部</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn1" value="1">待付款</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn2" value="2">待配送</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn3" value="3">待收货</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn4" value="4">待评价</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn5" value="5">已评价</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn6" value="6">申请退款</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn7" value="7">退款成功</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn8" value="8">退款拒绝</button>
+                <button type="button" class="btn btn-my btn-sm" id="btn9" value="9">已取消</button>
+            </div>
+            <div class="form-group mr-20">
+                <button onclick="myGrid.serchData(1)" type="button"
+                        class="btn btn-info">
+                    <i class="fa fa-search "></i> 搜索
+                </button>
+                <button onclick="exportExcel()" type="button"
+                        class="btn btn-info"
+                        matrix:btn="order-exportExcel">
+                    <i class="fa fa-search "></i> 导出EXCEL
+                </button>
+                <button type="reset" class="btn btn-info ">
+                    <i class="fa fa-refresh "></i> 重置
+                </button>
+                <!--<button type="reset" class="btn btn-info " onclick="applyMoney()">
+                    <i class="fa fa-bank "></i> 申请提现
+                </button>-->
+            </div>
+        </form>
     </div>
 
     <div class="row">
@@ -142,13 +130,14 @@
                     <th data-field="storeName">店铺名称</th>
                     <th data-field="orderStatus" data-formatter="buildOrderStatus">订单状态</th>
                     <th data-field="orderTime" data-formatter="MGrid.getTime">下单时间</th>
-                    <th data-field="purchaseQuantity">购买件数</th>
+                    <th data-field="details" data-formatter="buildDetails">购买商品</th>
+                    <!--<th data-field="purchaseQuantity">购买件数</th>-->
                     <th data-field="orderMoney">订单金额</th>
                     <th data-field="discountAmount">优惠总金额</th>
-                    <th data-field="shippingMethod" >配送方式</th>
-                    <th data-field="orderType" data-formatter="orderTypeFormatter">订单类型</th>
+                    <th data-field="shippingMethod"  data-formatter="buildShippingMethod" >配送方式</th>
+                    <!--<th data-field="orderType" data-formatter="orderTypeFormatter">订单类型</th>-->
                     <th data-field="orderNo">订单编号</th>
-                    <th data-field="applyStatus" data-formatter="applyStatusFormatter">是否已提现</th>
+                    <!--<th data-field="applyStatus" data-formatter="applyStatusFormatter">是否已提现</th>-->
                 </tr>
                 </thead>
             </table>
@@ -172,6 +161,17 @@
 
     });
 
+    $(".btn-my").click(function () {
+        var btnValue = $(this).val();
+        $("#orderStatus").val(btnValue);
+        myGrid.serchData();
+        /* $("#state").val(""); */
+        $(".btn-my").removeClass("active");
+        $(this).addClass("active");
+    });
+
+
+
     function exportExcel() {
         var userName = $('input[name=userName]').val();
         if (typeof userName == 'undefined') {
@@ -191,7 +191,7 @@
         }
         var orderBeginTime = $('input[name=orderBeginTime]').val();
         var orderEndTime = $('input[name=orderEndTime]').val();
-        var orderStatus = $('select[name=orderStatus]').val();
+        var orderStatus = $('input[name=orderStatus]').val();
         var url = basePath + "/admin/shopOrder/exportOrderExcel";
         url += "?userName=" + userName;
         url += "&orderNo=" + orderNo;
@@ -201,6 +201,14 @@
         url += "&userTel=" + userTel;
         url += "&storeName=" + storeName;
         window.open(url);
+    }
+
+    function buildDetails(value, row, index) {
+        var details = "";
+        for(var i= 0;i<value.length;i++){
+            details = details +value[i].shopProduct.title+ "("+value[i].shopSku.name+ ")*"+value[i].count+";";
+        }
+        return details;
     }
 
 
@@ -227,6 +235,16 @@
         return "";
     }
 
+    function buildShippingMethod(value, row, index) {
+        if (value == 1) {
+            return "物流配送";
+        } else if (value == 2) {
+            return "<lable class='label label-warning' >门店自取</lable>";
+        }else {
+            return "-";
+        }
+    }
+
     var btns = [];
     btns[0] = "", btns[1] = "", btns[2] = "";
 

--
Gitblit v1.9.1