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