From 835f6562bd7a83fd156c0bc8b9e48b3e6fe3f5ee Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Fri, 29 Oct 2021 07:34:50 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java                                |    6 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java |   39 +++
 zq-erp/pom.xml                                                                          |    5 
 zq-erp/src/main/resources/config/application.properties                                 |   12 
 zq-erp/src/test/java/com/matrix/TaiYanAliyunSmsServiceTest.java                         |   39 ++++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java        |   40 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java            |   13 -
 zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java |    9 
 zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java                              |   13 +
 zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java           |   19 +
 zq-erp/src/main/resources/templates/views/admin/shop/parameterSetting-form.html         |    8 
 zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java               |    8 
 zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java         |  140 +++++++++++++++
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html  |  130 ++++++++-----
 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java         |    7 
 15 files changed, 393 insertions(+), 95 deletions(-)

diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml
index 3f8dd9a..84c6f8e 100644
--- a/zq-erp/pom.xml
+++ b/zq-erp/pom.xml
@@ -393,6 +393,11 @@
             <artifactId>hutool-all</artifactId>
             <version>5.3.1</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>26.0-jre</version>
+        </dependency>
     </dependencies>
     <build>
         <resources>
diff --git a/zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java b/zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java
index a39f00c..cb14c28 100644
--- a/zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java
+++ b/zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java
@@ -1,5 +1,6 @@
 package com.matrix.core.tools;
 
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.CommonRequest;
@@ -7,7 +8,6 @@
 import com.aliyuncs.IAcsClient;
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.http.MethodType;
-import com.google.gson.JsonObject;
 import com.matrix.config.properties.AliSmsProperties;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.system.hive.bean.SysSmsTemplate;
@@ -15,7 +15,6 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -57,8 +56,7 @@
         CommonRequest request = commonRequest(SysSmsTemplate.SMS_ACTION_SEND);
         request.putQueryParameter("PhoneNumbers", phoneNum);
         request.putQueryParameter("TemplateCode", templateCode);
-        String jsonStr = JSONObject.toJSONString(values);
-        request.putQueryParameter("TemplateParam", jsonStr);
+        request.putQueryParameter("TemplateParam", JSONUtil.parse(values).toString());
 
         CommonResponse response = null;
         try {
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
index c477e5e..6b1d335 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
@@ -282,17 +282,8 @@
     @ApiOperation(value = "确认服务", notes = "确认服务")
     @PostMapping(value = "/confirmServiceOrder")
     public AjaxResult confirmServiceOrder(@RequestBody @Validated IdSubmitDto idSubmitDto) {
-        SysProjServices services = new SysProjServices();
-        services.setId(idSubmitDto.getId());
-        services.setState(Dictionary.BEATUI_STATE_DYY);
-        int i = projServicesService.modify(services);
-        if (i > 0) {
-            //发送微信公众号提醒
-            services=projServicesService.findById(services.getId());
-            UniformMsgParam uniformMsgParam=new UniformMsgParam(services.getCompanyId(),UniformMsgParam.GZH_YYCG);
-            uniformMsgParam.put("serviceId",services.getId());
-            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
-
+        int i=projServicesService.confirmServiceOrder(idSubmitDto.getId());
+        if(i>0){
             return AjaxResult.buildSuccessInstance("确认成功");
         }
         return AjaxResult.buildFailInstance("确认失败");
diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
index 5fecc8b..82a26fc 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
@@ -582,6 +582,14 @@
      * 门店是否只能取消待付款订单,服务单
      */
     public static final String SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER = "shopManageAbleCancelDfkOrder";
+    /**
+     * 服务记录跟进模板
+     */
+    public static final String SERVICE_FLOW_TEMPLATE = "SERVICE_FLOW_TEMPLATE";
+    /**
+     * 开启短信提醒
+     */
+    public static final String OPEN_SMS_NOTICE = "OPEN_SMS_NOTICE";
 
     /**
      * 赠送金额购买产品算赠送购买
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
index 8c82ce0..86db596 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -14,6 +14,7 @@
 import com.matrix.core.tools.excl.ExcelSheetPO;
 import com.matrix.core.tools.excl.ExcelUtil;
 import com.matrix.core.tools.excl.ExcelVersion;
+import com.matrix.system.app.dto.IdSubmitDto;
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppConstance;
@@ -26,10 +27,13 @@
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.*;
 import com.matrix.system.hive.service.*;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -390,6 +394,17 @@
         }
     }
 
+    @ApiOperation(value = "确认服务", notes = "确认服务")
+    @PostMapping(value = "/confirmServiceOrder")
+    public @ResponseBody AjaxResult confirmServiceOrder(Long id) {
+        int i=sysProjServicesService.confirmServiceOrder(id);
+        if(i>0){
+            return AjaxResult.buildSuccessInstance("确认成功");
+        }
+        return AjaxResult.buildFailInstance("确认失败");
+    }
+
+
 
     /**
      * @author jiangyouyao
@@ -496,11 +511,11 @@
         if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
                 && shopManageAbleCancelDfkOrder.getParamValue().equals(Dictionary.FLAG_YES)) {
             if (!checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DYY)
-            && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) {
+                    && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) {
                 return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待预约订单");
             }
         }
-       return erpCancelOrder(services);
+        return erpCancelOrder(services);
     }
     /**
      * 根据id取消预约
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
index bae3726..6383e2d 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
@@ -113,4 +113,11 @@
     int findApiServiceOrderListTotal(ServiceOrderListDto serviceOrderListDto);
 
     public boolean skipServiceOrderStep(String step);
+
+    /**
+     * 确认服务单
+     * @param id
+     * @return
+     */
+    int confirmServiceOrder(Long id);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java
new file mode 100644
index 0000000..b0f8369
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java
@@ -0,0 +1,140 @@
+/**
+ * projectName: zq-erp
+ * fileName: TaiYanAliyunSmsService.java
+ * packageName: com.matrix.system.hive.service
+ * date: 2021-10-28 11:18
+ * copyright(c) 2021 http://www.hydee.cn/ Inc. All rights reserved.
+ */
+package com.matrix.system.hive.service;
+
+import com.google.common.collect.Maps;
+import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.SmsUtils;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.hive.bean.SysBeauticianState;
+import com.matrix.system.hive.bean.SysProjServices;
+import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.SysVipInfoDao;
+import lombok.AllArgsConstructor;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @version: V1.0
+ * @author: JiangYouYao
+ * @className: TaiYanAliyunSmsService
+ * @packageName: com.matrix.system.hive.service
+ * @description: 肽妍短信提醒服务
+ * @data: 2021-10-28 11:18
+ **/
+@Service
+@AllArgsConstructor
+public class TaiYanAliyunSmsService {
+
+    SysVipInfoDao vipInfoDao;
+
+    SmsUtils smsUtils;
+
+    SysShopInfoService shopInfoService;
+
+    SysBeauticianStateService sysBeauticianStateService;
+
+    BusParameterSettingsDao busParameterSettingsDao;
+
+    /**
+     * 预约成功短信提醒
+     *
+     * @param services
+     */
+    @Async
+    public void sendYycgNotice(SysProjServices services) {
+        //短信接口为肽妍公司定制,暂时写死
+        if (services.getCompanyId() != 17L) {
+            return;
+        }
+        if (isCloseSmsNotice(services)){
+            return;
+        }
+        SysVipInfo sysVipInfo = vipInfoDao.selectById(services.getVipId());
+        SysShopInfo shopInfo = shopInfoService.findById(services.getShopId());
+        String date = DateUtil.dateFormatStr(new Date(), "yyyy年MM月dd日");
+        LogUtil.debug("发送阿里云预约成功短信,手机号={}", sysVipInfo.getPhone());
+        if (StringUtils.isNotBlank(sysVipInfo.getPhone())) {
+            HashMap<String, String> param = Maps.newHashMap();
+            param.put("date", date);
+            param.put("tel", shopInfo.getShopTel());
+            param.put("shopName", shopInfo.getShopName());
+            smsUtils.sendSms(sysVipInfo.getPhone(), "SMS_226995798", param);
+        }
+
+
+    }
+
+
+    /**
+     * 判断是否开启了短信提醒
+     * @param services
+     * @return
+     */
+    private boolean isCloseSmsNotice(SysProjServices services) {
+        BusParameterSettings openSmsNoticeSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.OPEN_SMS_NOTICE, services.getCompanyId());
+        if (StringUtils.isBlank(openSmsNoticeSetting.getParamValue())
+                || AppConstance.IS_N.equals(openSmsNoticeSetting.getParamValue())) {
+            LogUtil.debug("未开启短信提醒");
+            return true;
+        }
+        return false;
+    }
+
+
+    /**
+     * 项目划扣短信提醒
+     *
+     * @param services
+     */
+    @Async
+    public void sendHkNotice(SysProjServices services) {
+        //短信接口为肽妍公司定制,暂时写死
+       if (services.getCompanyId() != 17L) {
+            return;
+        }
+        if (isCloseSmsNotice(services)){
+            return;
+        }
+        SysVipInfo sysVipInfo = vipInfoDao.selectById(services.getVipId());
+        SysShopInfo shopInfo = shopInfoService.findById(services.getShopId());
+        String date = DateUtil.dateFormatStr(new Date(), "yyyy年MM月dd日");
+
+        List<SysBeauticianState> items = sysBeauticianStateService.findBySerId(services.getId());
+        for (SysBeauticianState item : items) {
+            if (item.getProjInfo() != null) {
+                String projName = item.getProjInfo().getName();
+                LogUtil.debug("发送阿里云项目划扣短信,手机号={}", sysVipInfo.getPhone());
+                if (StringUtils.isNotBlank(sysVipInfo.getPhone())) {
+                    HashMap<String, String> param = Maps.newHashMap();
+                    param.put("date", date);
+                    param.put("projName", projName);
+                    param.put("count", item.getCount() + "");
+                    param.put("balanceCount", item.getProjUse().getSurplusCount() + "");
+                    param.put("tel", shopInfo.getShopTel());
+                    param.put("shopName", shopInfo.getShopName());
+                    smsUtils.sendSms(sysVipInfo.getPhone(), "SMS_226995796", param);
+                }
+
+            }
+        }
+
+
+    }
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 0bdf347..f569ace 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -36,7 +36,6 @@
 import com.matrix.system.wechart.templateMsg.UniformMsgParam;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -483,9 +482,7 @@
 
 
         // 更新收款时间
-        pageOrder.setPayTime(new Date());
-        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
-        sysOrderDao.update(pageOrder);
+        updateOrderInfo(pageOrder);
 
         // 获取用户信息
         SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId());
@@ -515,6 +512,30 @@
         //设置会员积分
         addVipScore(pageOrder);
 
+    }
+
+    /**
+     * 付款后更新订单信息
+     * @param pageOrder
+     */
+    private void updateOrderInfo(SysOrder pageOrder) {
+        pageOrder.setPayTime(new Date());
+        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
+        List<SysOrderFlow> flows = pageOrder.getFlows();
+
+        BigDecimal cashPayAmount = flows.stream()
+                .filter(item -> (!item.getPayMethod().equals("储值卡")) && (!item.getPayMethod().equals("欠款")))
+                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        BigDecimal cardPayAmount = flows.stream()
+                .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N"))
+                .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        pageOrder.setCardPay(cardPayAmount.doubleValue());
+        pageOrder.setCashPay(cashPayAmount.doubleValue());
+        //欠款金额在流水处理中处理了
+
+        sysOrderDao.update(pageOrder);
     }
 
     private void checkOrder(SysOrder pageOrder) {
@@ -1380,17 +1401,20 @@
             //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
             boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
             if (zsConsumeAchieve) {
-                puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+                //赠送情况下,如果收款金额大于0,就是赠送金额划扣的情况,金额即为划扣的折扣金额
+                if(sysOrderItem.getZkPrice()>0){
+                    puse.setPrice(sysOrderItem.getZkPrice());
+                }else{
+                    puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+                }
             } else {
                 puse.setPrice(0D);
             }
-
-
         }
         // 设置失效时间
         Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
         puse.setFailTime(invalidTime);
-        puse.setBalance(sysOrderItem.getShoppingGoods().getSealPice() * puse.getSurplusCount());
+        puse.setBalance(puse.getPrice() * puse.getSurplusCount());
         sysProjUseDao.insert(puse);
     }
 
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
index 1ad9a9c..efb59fb 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -6,10 +6,7 @@
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.pojo.VerifyResult;
-import com.matrix.core.tools.DateUtil;
-import com.matrix.core.tools.LogUtil;
-import com.matrix.core.tools.StringUtils;
-import com.matrix.core.tools.WebUtil;
+import com.matrix.core.tools.*;
 import com.matrix.system.app.dto.ServiceOrderListDto;
 import com.matrix.system.app.vo.ServiceOrderListVo;
 import com.matrix.system.common.bean.BusParameterSettings;
@@ -67,7 +64,8 @@
     private SysOutStoreItemDao sysOutStoreItemDao;
     @Autowired
     private SysBedInfoDao sysBedInfoDao;
-
+    @Autowired
+    TaiYanAliyunSmsService taiYanAliyunSmsService;
 
     @Autowired
     private SysStoreInfoDao storeInfoDao;
@@ -259,7 +257,7 @@
             SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getPuseId());
 
             //检查是否已经处于无效状态
-           if(Dictionary.TAOCAN_STATUS_WX.equals(sysProjUse.getStatus())){
+            if(Dictionary.TAOCAN_STATUS_WX.equals(sysProjUse.getStatus())){
                 return new VerifyResult(true, sysProjUse.getProjName() + "项目已经失效");
             }
 
@@ -663,6 +661,8 @@
             UniformMsgParam uniformMsgParam = new UniformMsgParam(projServices.getCompanyId(), UniformMsgParam.GZH_FWWC);
             uniformMsgParam.put("serviceId", projServices.getId());
             asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
+            //发送划扣短信提醒
+            taiYanAliyunSmsService.sendHkNotice(projServices);
 
             return result;
         }
@@ -1052,4 +1052,31 @@
 
         return flag;
     }
+
+
+    @Override
+    public int confirmServiceOrder(Long id) {
+        SysProjServices services = new SysProjServices();
+        services.setId(id);
+        services.setState(Dictionary.BEATUI_STATE_DYY);
+        int i = modify(services);
+        if (i > 0) {
+            //发送微信公众号提醒
+            services=findById(services.getId());
+            UniformMsgParam uniformMsgParam=new UniformMsgParam(services.getCompanyId(),UniformMsgParam.GZH_YYCG);
+            uniformMsgParam.put("serviceId",services.getId());
+            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
+
+            taiYanAliyunSmsService.sendYycgNotice(services);
+
+
+        }
+        return i;
+    }
+
+
+
+
+
+
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java
index c662a65..9680fbb 100644
--- a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java
+++ b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java
@@ -55,14 +55,13 @@
     public void handle(Map<String,Object> param){
         try {
 
-            JSONObject messageJsonParam=JSONObject.parseObject(param.get("messages").toString());
 
-            if(!messageJsonParam.containsKey("companyId")||(!messageJsonParam.containsKey("templateCode"))){
+            if(!param.containsKey("companyId")||(!param.containsKey("templateCode"))){
                 LogUtil.error("小程序消息推送参数格式异常发送模板消息需要传JSONO字符串作为格式 例如:{\"companyId\":17,\"templateCode\":10000} companyId 、templateCode 是必须属性");
                 return;
             }
-            Long companyId = Long.parseLong( messageJsonParam.get("companyId").toString());
-            Integer templateCode = Integer.parseInt( messageJsonParam.get("templateCode").toString());
+            Long companyId = Long.parseLong( param.get("companyId").toString());
+            Integer templateCode = Integer.parseInt( param.get("templateCode").toString());
 
             //获取公司微信配置参数
             BusParameterSettings xcxAppId = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINIPROGRAM_APPID, companyId);
@@ -82,7 +81,7 @@
             bulderParam.put("xcxAppId", xcxAppId.getParamValue());
             bulderParam.put("gzhAppid", gzhAppid.getParamValue());
             bulderParam.put("template_id", template.getUuid());
-            bulderParam.put("messageJsonParam", messageJsonParam);
+            bulderParam.put("messageJsonParam", param);
             //调用模板计算出消息体
             Map msgResult = templateMessageBulder.buildMsg(bulderParam);
 
diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties
index 7b6d3b6..d2d049e 100644
--- a/zq-erp/src/main/resources/config/application.properties
+++ b/zq-erp/src/main/resources/config/application.properties
@@ -4,9 +4,9 @@
 
 #线上测试环境
 #
-spring.datasource.username=ct_test
-spring.datasource.password=123456
-spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?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_meidu?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!@#
@@ -22,9 +22,9 @@
 #spring.datasource.url=jdbc:mysql://47.111.134.136/db_meidu_prd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
-#spring.datasource.username=root
-#spring.datasource.password=root
-#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+spring.datasource.username=root
+spring.datasource.password=root
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
index cfcf888..106f1be 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
@@ -82,7 +82,7 @@
             <div class="form-group mr-20">
                 <button type="button" class="btn btn-my btn-sm" id="btn4" value="">全部</button>
                 <button type="button" class="btn btn-my btn-sm active" id="btn1" value="待预约">待预约</button>
-<!--                <button type="button" class="btn btn-my btn-sm" id="btn2" value="预约成功待处理">待派单</button>-->
+                <!--                <button type="button" class="btn btn-my btn-sm" id="btn2" value="预约成功待处理">待派单</button>-->
                 <button type="button" class="btn btn-my btn-sm" id="btn3" value="需配料">待配料</button>
                 <button type="button" class="btn btn-my btn-sm" id="btn3" value="配料完成">待服务</button>
                 <button type="button" class="btn btn-my btn-sm" id="btn6" value="服务中">服务中</button>
@@ -132,22 +132,22 @@
 <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
 <script type="text/javascript">
 
-   $("#vipPhone").val($.query.get('vipPhone'));
-   var _initParam = {format : 'yyyy-mm-dd hh:ii',
-       todayBtn : true,
-       autoclose : true,
-       startView : 2,
-       maxView : 3,
-       minView : 0};
-   MTools.ininDatetimepicker(_initParam);
-   //限制结束时间不小于开始时间
-   var initParam = {format : 'yyyy-mm-dd hh:ii',
-       todayBtn : true,
-       autoclose : true,
-       startView : 2,
-       maxView : 3,
-       minView : 0};
-   MTools.limitStartEndTime(initParam);
+    $("#vipPhone").val($.query.get('vipPhone'));
+    var _initParam = {format : 'yyyy-mm-dd hh:ii',
+        todayBtn : true,
+        autoclose : true,
+        startView : 2,
+        maxView : 3,
+        minView : 0};
+    MTools.ininDatetimepicker(_initParam);
+    //限制结束时间不小于开始时间
+    var initParam = {format : 'yyyy-mm-dd hh:ii',
+        todayBtn : true,
+        autoclose : true,
+        startView : 2,
+        maxView : 3,
+        minView : 0};
+    MTools.limitStartEndTime(initParam);
 
     var myGrid;
     $(function () {
@@ -179,9 +179,9 @@
 
         }
     }
-   var btns=[];
-   btns[0]="",btns[1]="",btns[2]="",btns[3]="",btns[4]="",btns[5]="",btns[6]="";
-   function buidOperate(value, row, index) {
+    var btns=[];
+    btns[0]="",btns[1]="",btns[2]="",btns[3]="",btns[4]="",btns[5]="",btns[6]="";
+    function buidOperate(value, row, index) {
         var status = row.state;
         var html ='<a class="text-primary mr-5" onClick="selectFwz(' + value + ')"  title="查看"><i class="fa fa-eye">查看</i></a>&nbsp;'
         switch (status) {
@@ -201,6 +201,9 @@
             case '服务完成':
                 html +=btns[4].replace('VALUE',value);
                 html += btns[2].replace('VALUE',value);
+                break;
+            case '待确认':
+                html +=btns[7].replace('VALUE',value);
                 break;
         }
         html += btns[5].replace('VALUE',value);
@@ -272,42 +275,60 @@
 
 
 
-   function removeOrder(id) {
-       var id=myGrid.getSelectItemId();
-       layer.confirm('确定取消此订单?', {
-           btn: ['确认', '取消'] //可以无限个按钮
-       }, function(index, layero){
-           $.post(basePath+'/admin/projService/cancelOrder?id='+id, {}, function(data){
-               parent.layer.msg(data.info,{icon: 1});
-               layer.closeAll();
-               myGrid.serchData();
-           });
-           //按钮【按钮一】的回调
-       }, function(index){
-           // alert("2 = "+index);
-           //按钮【按钮二】的回调
-       });
+    function removeOrder(id) {
+        var id=myGrid.getSelectItemId();
+        layer.confirm('确定取消此订单?', {
+            btn: ['确认', '取消'] //可以无限个按钮
+        }, function(index, layero){
+            $.post(basePath+'/admin/projService/cancelOrder?id='+id, {}, function(data){
+                parent.layer.msg(data.info,{icon: 1});
+                layer.closeAll();
+                myGrid.serchData();
+            });
+            //按钮【按钮一】的回调
+        }, function(index){
+            // alert("2 = "+index);
+            //按钮【按钮二】的回调
+        });
 
-   }
+    }
 
-   //打开查看界面
-   function openEdit2() {
-       var id=myGrid.getSelectItemId();
-       layer.open({
-           type : 2,
-           title : "查看服务单详情",
-           area :   MUI.SIZE_M,
-           maxmin : true,
-           content : [ basePath+'/admin/projService/serviceInfo?pageFlae=pc&id=' + id]
-       });
-   }
+    function confirmServiceOrder(id) {
+        layer.confirm('确定确认订单吗?', {
+            btn: ['确认', '取消'] //可以无限个按钮
+        }, function(index, layero){
+            $.post(basePath+'/admin/projService/confirmServiceOrder?id='+id, {}, function(data){
+                parent.layer.msg(data.info,{icon: 1});
+                layer.closeAll();
+                myGrid.serchData();
+            });
+            //按钮【按钮一】的回调
+        }, function(index){
+            // alert("2 = "+index);
+            //按钮【按钮二】的回调
+        });
 
-   //导出
-   //导出
-   function exportExcel(){
-       var param=MForm.toUrlParam("#serchform");
-       window.location.href=basePath+"/admin/projService/exportExcel?"+param;
-   }
+    }
+
+
+    //打开查看界面
+    function openEdit2() {
+        var id=myGrid.getSelectItemId();
+        layer.open({
+            type : 2,
+            title : "查看服务单详情",
+            area :   MUI.SIZE_M,
+            maxmin : true,
+            content : [ basePath+'/admin/projService/serviceInfo?pageFlae=pc&id=' + id]
+        });
+    }
+
+    //导出
+    //导出
+    function exportExcel(){
+        var param=MForm.toUrlParam("#serchform");
+        window.location.href=basePath+"/admin/projService/exportExcel?"+param;
+    }
 
 </script>
 
@@ -337,5 +358,8 @@
 <script matrix:btn="serviceClub-edit">
     btns[6]='<a  class="text-primary mr-5" onclick="updateTime(\'VALUE\')" title="修改时间"><i class="fa fa-edit">修改时间</i></a>&nbsp;'
 </script>
+<script matrix:btn="serviceClub-edit">
+    btns[7]='<a  class="text-primary mr-5" onclick="confirmServiceOrder(\'VALUE\')" title="确认服务单"><i class="fa fa-edit">确认服务单</i></a>&nbsp;'
+</script>
 
 </html>
diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/parameterSetting-form.html b/zq-erp/src/main/resources/templates/views/admin/shop/parameterSetting-form.html
index 751099b..0fbaf6f 100644
--- a/zq-erp/src/main/resources/templates/views/admin/shop/parameterSetting-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/shop/parameterSetting-form.html
@@ -71,6 +71,14 @@
                             </el-checkbox-group>
                         </div>
                     </div>
+
+                    <div class="form-group" v-if="paramSetting.type==5">
+                        <label class="col-md-2 control-label">{{paramSetting.name}}</label>
+                        <div class="col-md-8">
+                            <el-input  type="textarea"  :rows="2" v-model="paramSetting.userValue"></el-input>
+                        </div>
+                    </div>
+
                 </template>
 
 
diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
index a3fab25..99c0860 100644
--- a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
+++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
@@ -105,6 +105,19 @@
 		newSetting8.setCategory("店务配置");
 		newSettings.add(newSetting8);
 
+		ParameterSettings newSetting9=new ParameterSettings();
+		newSetting9.setCode(AppConstance.SERVICE_FLOW_TEMPLATE);
+		newSetting9.setName("跟进记录模板");
+		newSetting9.setType(5);
+		newSetting9.setCategory("店务配置");
+		newSettings.add(newSetting9);
+
+		ParameterSettings newSetting10=new ParameterSettings();
+		newSetting10.setCode(AppConstance.OPEN_SMS_NOTICE);
+		newSetting10.setName("是否开启短信提醒");
+		newSetting10.setType(1);
+		newSetting10.setCategory("店务配置");
+		newSettings.add(newSetting10);
 
 		for (ParameterSettings newSetting : newSettings) {
 			List<ParameterSettings> parameterSettings = parameterSettingsDao.selectByModel(newSetting);
diff --git a/zq-erp/src/test/java/com/matrix/TaiYanAliyunSmsServiceTest.java b/zq-erp/src/test/java/com/matrix/TaiYanAliyunSmsServiceTest.java
new file mode 100644
index 0000000..58b7772
--- /dev/null
+++ b/zq-erp/src/test/java/com/matrix/TaiYanAliyunSmsServiceTest.java
@@ -0,0 +1,39 @@
+package com.matrix;
+
+import com.matrix.system.hive.bean.SysProjServices;
+import com.matrix.system.hive.service.SysProjServicesService;
+import com.matrix.system.hive.service.TaiYanAliyunSmsService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * @author jiangyouyao
+ * @email 512061637@qq.com
+ * @date 2019年2月25日
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class TaiYanAliyunSmsServiceTest {
+
+
+
+	@Autowired
+	private TaiYanAliyunSmsService taiYanAliyunSmsService;
+	@Autowired
+	SysProjServicesService projServicesService;
+
+
+	@Test
+	public void addSendYycgNotice(){
+		SysProjServices byId = projServicesService.findById(215550L);
+		byId.setVipId(5949L);
+		taiYanAliyunSmsService.sendYycgNotice(byId);
+		taiYanAliyunSmsService.sendHkNotice(byId);
+
+	}
+
+
+}

--
Gitblit v1.9.1