From 6d78f8ab222498d727e91983d0511d8119d95aa3 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Mon, 24 Jan 2022 19:34:42 +0800 Subject: [PATCH] Merge branch 'score_shop' into api_score_meger --- zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html | 6 zq-erp/src/main/resources/templates/views/admin/index.html | 2 zq-erp/pom.xml | 5 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html | 5 zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html | 5 zq-erp/src/main/resources/config/prd/system.properties | 3 zq-erp/src/main/resources/config/test/application.properties | 2 zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java | 17 zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java | 13 zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java | 40 zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java | 34 zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java | 17 zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html | 12 zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml | 15 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java | 3 zq-erp/src/main/resources/config/system.properties | 2 zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java | 10 zq-erp/src/main/java/com/matrix/core/tools/SmsUtils.java | 6 zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java | 5 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java | 3 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java | 8 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java | 2 zq-erp/src/test/java/com/matrix/TaiYanAliyunSmsServiceTest.java | 39 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java | 5 zq-erp/src/main/resources/templates/views/admin/hive/orgment/shopInfo-form.html | 2 zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html | 8 zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html | 10 zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml | 8 zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java | 12 zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html | 79 + zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/map.html | 2 zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html | 25 zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html | 5 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml | 11 zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java | 15 zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java | 13 zq-erp/src/main/resources/config/application.properties | 16 zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java | 10 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java | 5 zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html | 223 +++ zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/index.html | 2 zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java | 126 ++ zq-erp/src/main/resources/config/test/system.properties | 2 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java | 2 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 80 + zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html | 5 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html | 4 zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java | 3 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml | 13 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java | 140 ++ zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java | 10 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 6 zq-erp/src/main/resources/templates/views/super/sysCompany-form.html | 356 ++-- zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml | 19 zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java | 50 zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html | 2 zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java | 69 + zq-erp/src/main/resources/templates/views/common/login.html | 4 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml | 6 zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml | 62 zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/map.html | 2 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html | 15 zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java | 15 zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 70 zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java | 50 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html | 126 ++ zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml | 6 zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java | 3 zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java | 3 zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java | 20 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html | 4 zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java | 2 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 3 zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java | 273 ++- zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html | 7 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java | 3 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html | 5 zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html | 148 ++ zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java | 15 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 179 ++ zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java | 1 zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java | 3 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java | 2 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html | 7 zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html | 6 zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/show.html | 2 zq-erp/src/main/java/com/matrix/system/common/bean/SysCompany.java | 14 zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/map.html | 2 zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java | 2 zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml | 18 zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java | 4 zq-erp/src/main/java/com/matrix/system/common/tools/DataAuthUtil.java | 4 zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java | 3 zq-erp/src/main/resources/config/mdprd/system.properties | 3 zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java | 1 zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java | 4 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java | 1 zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java | 10 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html | 9 zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java | 4 zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java | 4 zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/index.html | 2 zq-erp/src/main/resources/templates/views/admin/hive-erp/shop/shopInfo-form.html | 2 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html | 2 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html | 16 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml | 6 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java | 12 zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java | 548 ++++---- zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml | 7 zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java | 13 zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js | 4 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java | 12 zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java | 5 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java | 15 zq-erp/src/main/resources/templates/views/super/sysCompany-list.html | 1 zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java | 6 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml | 11 zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html | 1 zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java | 24 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html | 2 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java | 142 -- 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 | 22 zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java | 3 zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java | 108 - zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java | 4 126 files changed, 2,781 insertions(+), 912 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/config/MvcCoreConfig.java b/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java index 54801c7..c3067f7 100644 --- a/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java +++ b/zq-erp/src/main/java/com/matrix/config/MvcCoreConfig.java @@ -72,6 +72,9 @@ //小程序公司与域名对应关系拦截 registry.addInterceptor(hostInterceptor).addPathPatterns("/**/wxapi/**") + .addPathPatterns("/api/common/wxLogin/**") + .addPathPatterns("/api/common/bindUser") + .addPathPatterns("/api/user/xcxloginOut/**") .excludePathPatterns("/wxCommon/wxapi/wxpayCallback") .excludePathPatterns("/wxCommon/wxapi/rechargeCallBack"); } 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/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java index f3e8702..ed9b2c4 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java @@ -1,5 +1,8 @@ package com.matrix.system.app.action; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.matrix.component.tools.HttpCurlUtil; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.*; import com.matrix.system.app.authority.AppAuthorityManager; @@ -8,9 +11,14 @@ import com.matrix.system.app.vo.UserInfoVo; import com.matrix.system.common.authority.strategy.AccountPasswordLogin; import com.matrix.system.common.authority.strategy.LoginStrategy; +import com.matrix.system.common.bean.SysCompany; import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.init.LocalCache; +import com.matrix.system.common.init.UserCacheManager; +import com.matrix.system.common.interceptor.HostInterceptor; +import com.matrix.system.common.service.SysCompanyService; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.tools.PasswordUtil; import com.matrix.system.common.tools.UploadUtil; @@ -19,10 +27,12 @@ import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.plugin.util.ImageUtil; import com.matrix.system.hive.service.SysShopInfoService; +import com.matrix.system.shopXcx.api.WeChatApiTools; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import net.sf.json.JSONObject; import org.apache.commons.fileupload.FileUploadException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -62,18 +72,29 @@ @Autowired private BusParameterSettingsDao busParameterSettingsDao; + @Autowired + private SysCompanyService sysCompanyService;; + + @Autowired + WeChatApiTools weChatApiTools; + + @Autowired + private UserCacheManager userCacheManager; @Value("${file_storage_path}") private String fileStoragePath; @Value("${static_resource_url}") private String nginxUrl; + @Value("${login_public_key}") + private String publicKey; + @ApiOperation(value = "登陆接口", notes = "手机端登陆接口") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = UserInfoVo.class) }) @PostMapping(value = "/login") - public AjaxResult login(@RequestBody @Validated LoginDto loginDto) { + public AjaxResult login(@RequestBody @Validated LoginDto loginDto) throws Exception { SysUsers user = new SysUsers(); user.setSuAccount(loginDto.getUsername()); @@ -97,10 +118,12 @@ userInfoVo.setRoleName(user.getRoleName()); userInfoVo.setPhoto(user.getSuPhoto()); + String sb = token + "_1" + "_/api/vip/findVipInfoById/972"; AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功"); authorityManager.initUserPower(result,user); result.putInMap("user", userInfoVo); result.putInMap("token", token); + result.putInMap("rasToken", RSAUtils.encryptByPublicKey(sb, publicKey)); return result; } @@ -247,6 +270,121 @@ } + @ApiOperation(value = "根据企业编码获取对应的请求地址") + @PostMapping(value = "/getUrlByCompanyCode") + public AjaxResult getUrlByCompanyCode(@RequestBody SettingDto codeDto) { + SysCompany query = new SysCompany(); + query.setComCode(codeDto.getCode()); + List<SysCompany> list = sysCompanyService.findByModel(query); + if (CollUtil.isEmpty(list)) { + return new AjaxResult(AjaxResult.STATUS_FAIL, "企业编码有误"); + } + AjaxResult ajaxResult = new AjaxResult(); + ajaxResult.setStatus(AjaxResult.STATUS_SUCCESS); + ajaxResult.putInMap("url", list.get(0).getComWebUrl()); + return ajaxResult; + } + + @ApiOperation(value = "管理端小程序登录") + @PostMapping(value = "/wxLogin/{code}") + public AjaxResult wxLogin(@PathVariable("code") String code) throws IOException { + if (StrUtil.isBlank(code)) { + return AjaxResult.buildFailInstance("code不存在"); + } + AjaxResult res = new AjaxResult(); + String requrl = weChatApiTools.getManagerXcxLoginUrl(code); + + String resultData = HttpCurlUtil.sendGetHttp(requrl, null); + JSONObject json = JSONObject.fromObject(resultData); + LogUtil.debug("管理端小程序登录获取到登录信息={}", json); + + if (json.containsKey("errcode")) { + res.setStatus(AjaxResult.STATUS_FAIL); + res.setInfo("自动登录失败"); + LogUtil.info("微信登录获取到异常信息errcode"); + return res; + } + + String openId = json.getString("openid"); + res.setStatus(AjaxResult.STATUS_SUCCESS); + res.putInMap("openId", openId); + SysUsers hasBind = sysUsersService.findByOpenId(openId, HostInterceptor.getCompanyId()); + if (hasBind == null) { + res.setInfo("未绑定用户"); + return res; + } + + String token = userCacheManager.saveUserInfo(hasBind); + LogUtil.info("用户token={}", token); + + authorityManager.initUserPower(res, hasBind); + + UserInfoVo userInfoVo = new UserInfoVo(); + if(hasBind.getShopId()!=null){ + SysShopInfo shopInfo = sysShopInfoService.findById(hasBind.getShopId()); + hasBind.setShopName(shopInfo.getShopName()); + userInfoVo.setShopName(shopInfo.getShopShortName()); + } + + userInfoVo.setId(hasBind.getSuId()); + userInfoVo.setName(hasBind.getSuName()); + userInfoVo.setRoleName(hasBind.getRoleName()); + userInfoVo.setPhoto(hasBind.getSuPhoto()); + + res.putInMap("token", token); + res.putInMap("userInfo", userInfoVo); + return res; + } + + @ApiOperation(value = "绑定用户") + @PostMapping(value = "/bindUser") + public AjaxResult bindUser(@RequestBody @Validated LoginDto loginDto) { + SysUsers user = new SysUsers(); + user.setSuAccount(loginDto.getUsername()); + user.setSuPassword(loginDto.getPassword()); + LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService); + user = authorityManager.login(apLogin); + user.setSuPassword(null); + user.setOpenIds(null); + String token = userCacheManager.saveUserInfo(user); + + AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功"); + authorityManager.initUserPower(result, user); + + UserInfoVo userInfoVo = new UserInfoVo(); + if(user.getShopId()!=null){ + SysShopInfo shopInfo = sysShopInfoService.findById(user.getShopId()); + user.setShopName(shopInfo.getShopName()); + userInfoVo.setShopName(shopInfo.getShopShortName()); + } + + userInfoVo.setId(user.getSuId()); + userInfoVo.setName(user.getSuName()); + userInfoVo.setRoleName(user.getRoleName()); + userInfoVo.setPhoto(user.getSuPhoto()); + + result.putInMap("token", token); + result.putInMap("userInfo", userInfoVo); + + synchronized (this) { + SysUsers hasBind = sysUsersService.findByOpenId(loginDto.getOpenId(), HostInterceptor.getCompanyId()); + if (hasBind != null) { + if(StrUtil.isNotBlank(hasBind.getOpenIds())) { + List<String> openIds = StrUtil.split(hasBind.getOpenIds(), ','); + openIds.remove(loginDto.getOpenId()); + + sysUsersService.modifyUserOpenId(CollUtil.join(openIds, ","), hasBind.getSuId()); + } + } + + List<String> openIds = StrUtil.split(user.getOpenIds(), ','); + openIds.add(loginDto.getOpenId()); + user.setOpenIds(CollUtil.join(openIds, ",")); + sysUsersService.modifyByModel(user); + } + + return result; + } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java index f3d4d1f..c6fa5d6 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java @@ -86,4 +86,17 @@ achieveNew.setT1(rankingDto.getType()); return AjaxResult.buildSuccessInstance(achieveNewDao.selectBeauticianConsumeAchieveRanking(achieveNew)); } + + @ApiOperation(value = "人头数排名", notes = "人头数排名") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = RankingVo.class) + }) + @PostMapping(value = "/findNumOfPeopleRanking") + public AjaxResult findNumOfPeopleRanking(@RequestBody RankingDto rankingDto) { + AchieveNew achieveNew = new AchieveNew(); + QueryUtil.setQueryLimitCom(achieveNew); + achieveNew.setDatatime(new Date()); + achieveNew.setT1(rankingDto.getType()); + return AjaxResult.buildSuccessInstance(achieveNewDao.selectNumOfPeopleAchieveRanking(achieveNew)); + } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java index 312228d..47d0e49 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java @@ -3,6 +3,7 @@ import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.WebUtil; +import com.matrix.system.app.dto.SettingDto; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; @@ -12,10 +13,7 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @author jyy @@ -44,4 +42,13 @@ return result; } + @ApiOperation(value = "根据code获取配置", notes = "根据code获取配置") + @PostMapping(value = "/findAppSettingsByCode") + public AjaxResult findAppSettingsByCode(@RequestBody SettingDto settingDto) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + AjaxResult result = AjaxResult.buildSuccessInstance("查询成功"); + result.putInMap(settingDto.getCode(), busParameterSettingsDao.selectCompanyParamByCode(settingDto.getCode(),user.getCompanyId())); + return result; + } + } diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java index e4fdf69..f0dcbb0 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java @@ -1,5 +1,7 @@ package com.matrix.system.app.action; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.DateUtil; @@ -16,6 +18,7 @@ import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.init.LocalCache; import com.matrix.system.common.interceptor.ApiUserLoginInterceptor; +import com.matrix.system.common.interceptor.HostInterceptor; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.common.tools.PasswordUtil; @@ -108,6 +111,23 @@ return AjaxResult.buildSuccessInstance("退出成功"); } + @ApiOperation(value = "小程序退出登陆", notes = "小程序退出登陆") + @GetMapping(value = "/xcxloginOut/{code}") + public AjaxResult xcxloginOut(HttpServletRequest request, @PathVariable("code") String code) { + SysUsers hasBind = sysUsersService.findByOpenId(code, HostInterceptor.getCompanyId()); + if (hasBind != null) { + if(StrUtil.isNotBlank(hasBind.getOpenIds())) { + List<String> openIds = StrUtil.split(hasBind.getOpenIds(), ','); + openIds.remove(code); + + sysUsersService.modifyUserOpenId(CollUtil.join(openIds, ","), hasBind.getSuId()); + } + } + String token=ApiUserLoginInterceptor.resolveToken(request,privateKey); + LocalCache.remove(token); + return AjaxResult.buildSuccessInstance("退出成功"); + } + @ApiOperation(value = "员工列表", notes = "员工列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = BeauticianVo.class) diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java index a06332d..a919a3e 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java @@ -20,6 +20,16 @@ @NotBlank(message = "用户名或密码错误") private String password; + private String openId; + + public String getOpenId() { + return openId; + } + + public void setOpenId(String openId) { + this.openId = openId; + } + public String getUsername() { return username; } diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java index 3c3d788..428491e 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java @@ -18,11 +18,12 @@ public static final String DAY = "1"; public static final String MONTH = "2"; public static final String YEAR = "3"; + public static final String WEEK = "4"; @ApiModelProperty(value = "数据类型 1-销售 2-消耗", example = "1") private String dataType; - @ApiModelProperty(value = "排行榜类型 1-日榜 2-月榜 3-年榜", example = "1") + @ApiModelProperty(value = "排行榜类型 1-日榜 2-月榜 3-年榜 4-周榜", example = "1") private String type; public String getDataType() { diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java new file mode 100644 index 0000000..76865f9 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java @@ -0,0 +1,13 @@ +package com.matrix.system.app.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "SettingDto", description = "根据code获取配置参数接收类") +public class SettingDto { + + @ApiModelProperty(value = "code", example = "1") + private String code; +} diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java index c9b6e8b..6fb3473 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; import java.util.Date; /** @@ -25,6 +26,9 @@ @ApiModelProperty(value = "套餐来源,转让,购买") private String source; + + @ApiModelProperty(value = "划扣金额") + private BigDecimal price; @ApiModelProperty(value = "时长") private Integer timeLength; @@ -149,4 +153,12 @@ public void setBalance(Double balance) { this.balance = balance; } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java index 67df2c9..fb43859 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -36,6 +37,9 @@ @ApiModelProperty(value = "若套餐为任选套餐 则判断是否无限次 Y是 N否") private String isInfinite; + + @ApiModelProperty(value = "来源") + private String source; @ApiModelProperty(value = "套餐内产品") List<ServiceProjVo> proj; @@ -150,4 +154,12 @@ public void setStatus(String status) { this.status = status; } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java index 325c469..1934aaf 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java @@ -42,6 +42,16 @@ @ApiModelProperty(value = "累计消费") private BigDecimal totalShopping; + @ApiModelProperty(value = "欠款") + private BigDecimal arrears; + + public BigDecimal getArrears() { + return arrears; + } + + public void setArrears(BigDecimal arrears) { + this.arrears = arrears; + } public String getPhoto() { return photo; diff --git a/zq-erp/src/main/java/com/matrix/system/common/bean/SysCompany.java b/zq-erp/src/main/java/com/matrix/system/common/bean/SysCompany.java index 875c420..4b9e6703 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/bean/SysCompany.java +++ b/zq-erp/src/main/java/com/matrix/system/common/bean/SysCompany.java @@ -134,8 +134,16 @@ private String comPlats; - - + + private String comCode; + + public String getComCode() { + return comCode; + } + + public void setComCode(String comCode) { + this.comCode = comCode; + } public Long getComId() { return comId; @@ -333,7 +341,7 @@ public void setComPlats(String comPlats) { this.comPlats=comPlats; } - + @Override public String toString() { diff --git a/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java b/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java index dcadb31..a68a8d5 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java +++ b/zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java @@ -288,6 +288,16 @@ @Extend private SysCompany company; + private String openIds; + + public String getOpenIds() { + return openIds; + } + + public void setOpenIds(String openIds) { + this.openIds = openIds; + } + public String getAllCustomer() { return allCustomer; } 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..87a5736 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,19 @@ * 门店是否只能取消待付款订单,服务单 */ 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"; + + /** + * 服务单自动配料 + */ + public static final String OPEN_SERVICE_ORDER_AUTO_BATCHING = "OPEN_SERVICE_ORDER_AUTO_BATCHING"; /** * 赠送金额购买产品算赠送购买 @@ -593,7 +606,14 @@ */ public static final String WX_ORDER_NOTICE_DINGDING_TOKEN = "wxOrderNoticeDingdingToken"; - + /** + * 管理端小程序appid + */ + public static final String MINI_PROGRAM_MANAGER_APP_ID = "xcx_manager_appid"; + /** + * 管理端小程序secret + */ + public static final String MINI_PROGRAM_MANAGER_SECRET = "xcx_manager_secret"; diff --git a/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java b/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java index 0d9a4cb..c72524b 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java +++ b/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java @@ -41,4 +41,5 @@ public SysRolePwoerFn selectForUpdate(Long rpfId); + int deleteByFns(@Param("companyId") Long comId, @Param("list") List<String> deletedFn); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java b/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java index fcb8f9a..7d3181a 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java +++ b/zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java @@ -125,4 +125,7 @@ public List<AppVersion> selectAppVersion(); + SysUsers selectUserByOpenId(@Param("openId") String openId, @Param("companyId") Long companyId); + + int updateUserOpenId(@Param("openId") String openId, @Param("suId") Long suId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java index 773e107..3749554 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java +++ b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java @@ -122,7 +122,7 @@ List<SysCompany> company=sysCompanyService.findByModel(null); Map<String, SysCompany> companyMap=new HashMap<>(); for (SysCompany sysCompany : company) { - companyMap.put(sysCompany.getComWebUrl(), sysCompany); + companyMap.put(sysCompany.getComCode(), sysCompany); } LocalCache.save("companyMap", companyMap); } diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java b/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java new file mode 100644 index 0000000..e98dd93 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java @@ -0,0 +1,40 @@ +package com.matrix.system.common.service; + +import com.matrix.core.tools.LogUtil; +import com.matrix.core.tools.StringUtils; +import com.matrix.system.common.bean.BusParameterSettings; +import com.matrix.system.common.bean.SysCompany; +import com.matrix.system.common.constance.AppConstance; +import com.matrix.system.common.dao.BusParameterSettingsDao; +import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant; +import com.matrix.system.score.constant.ScoreSettingConstant; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@Service +@AllArgsConstructor +public class BusParameterSettingService { + + private BusParameterSettingsDao busParameterSettingsDao; + + /** + * 判断某个设置是否是开启状态 + * 未配置,或者无效settingkey都返回false + */ + public boolean isSettingOpen(String settingKey,Long companyId) { + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(settingKey, companyId); + return ( + Objects.nonNull(busParameterSettings) + && StringUtils.isNotBlank(busParameterSettings.getParamValue()) + && AppConstance.IS_Y.equals(busParameterSettings.getParamValue()) + ); + } + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java b/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java index b41f466..ec9d7c5 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java +++ b/zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java @@ -173,4 +173,7 @@ public List<AppVersion> findAppVersion(); + SysUsers findByOpenId(String openId, Long companyId); + + int modifyUserOpenId(String openId, Long suId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java index da1be03..bb496c6 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java @@ -1,250 +1,300 @@ -package com.matrix.system.common.service.impl; - -import com.matrix.core.constance.MatrixConstance; -import com.matrix.core.constance.SystemErrorCode; -import com.matrix.core.exception.GlobleException; -import com.matrix.core.pojo.PaginationVO; -import com.matrix.core.tools.ModelUtils; -import com.matrix.core.tools.StringUtils; -import com.matrix.core.tools.WebUtil; -import com.matrix.system.common.bean.*; -import com.matrix.system.common.dao.SysCompanyDao; -import com.matrix.system.common.dao.SysRoleDao; -import com.matrix.system.common.dao.SysRolePwoerFnDao; -import com.matrix.system.common.service.SysCompanyService; -import com.matrix.system.hive.bean.SysShopInfo; -import com.matrix.system.hive.bean.Warehouse; -import com.matrix.system.hive.dao.SysShopInfoDao; -import com.matrix.system.hive.dao.WarehouseDao; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * 公司管理 - * - * @author JIANGYOUYAO - * @email 935090232@qq.com - * @date Dec 11, 2017 - */ -@Service -public class SysCompanyServiceImpl implements SysCompanyService { - - @Autowired - private SysCompanyDao sysCompanyDao; - @Autowired - private SysRoleDao sysRoleDao; - @Autowired - private SysRolePwoerFnDao rolePwoerFnDao; - - @Autowired - private SysShopInfoDao shopInfoDao; - - - @Autowired - private InitCustomerDataDictionaryService initCustomerDataDictionaryService; - - - @Autowired - private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService; - - - @Autowired - private InitRolePowerService initRolePowerService; - - @Autowired - private InitGoodsTypeService initGoodsTypeService; - - @Autowired - private InitShopProductCateService initShopProductCateService; - - @Autowired - private InitBusParameterSettingService initBusParameterSettingService; - - - @Transactional - @Override - public int add(SysCompany sysCompany) { - SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - sysCompany.setCreateBy(user.getSuName()); - sysCompany.setUpdateBy(user.getSuName()); - int i= sysCompanyDao.insert(sysCompany); - SysShopInfo zbShop= addZbShop(sysCompany); - initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany); - initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany,zbShop); - initRolePowerService.initRolePower(sysCompany); - initGoodsTypeService.initRolePower(sysCompany); - initShopProductCateService.initShopProductCate(sysCompany); - initBusParameterSettingService.initBusParameterSetting(sysCompany); - initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany); - - return i; - - } - - - @Autowired - private WarehouseDao warehouseDao; - /** - * 为新公司创建一个总部 - * @param sysCompany - */ - private SysShopInfo addZbShop(SysCompany sysCompany) { - SysShopInfo zbShopInfo=new SysShopInfo(); - zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU); - zbShopInfo.setShopName(sysCompany.getComName()+"(总部)"); - zbShopInfo.setCompanyId(sysCompany.getComId()); - zbShopInfo.setShopTel(sysCompany.getComTel()); - zbShopInfo.setShopShortName("总部"); - zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET); - zbShopInfo.setShopNo(StringUtils.getRandomString(10)); - shopInfoDao.insert(zbShopInfo); - - //新增一个总部仓库 - Warehouse warehouse=new Warehouse(); - warehouse.setCompanyId(sysCompany.getComId()); - warehouse.setName("总部仓库"); - warehouse.setShopId(zbShopInfo.getId()); - warehouse.setSort("1"); - warehouseDao.insert(warehouse); - return zbShopInfo; - } - - @Transactional(rollbackFor = Exception.class) - @Override - public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) { - SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - newSysCompany.setUpdateBy(user.getSuName()); - - updatePower(newSysCompany); - Map<String, Object> modifyMap = null; - try { - if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) { - return MatrixConstance.DML_SUCCESSS; - } - - modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany); - } catch (Exception e) { - throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName()); - } - if (modifyMap.size() > 0) { - modifyMap.put("comId", oldSysCompany.getComId()); - return sysCompanyDao.updateByMap(modifyMap); - } - return MatrixConstance.DML_SUCCESSS; - } - - /** - * 更新公司员工权限 - * - * @author JIANGYOUYAO - * @email 935090232@qq.com - * @date 2017年12月5日 - * @param newSysCompany - */ - private void updatePower(SysCompany newSysCompany) { - List<String> oldFunctions = null; - String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(); - if (functions == null || functions.equals("")) { - oldFunctions = new ArrayList<>(); - } else { - oldFunctions = StringUtils - .strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ","); - } - List<String> newFunctions = new ArrayList<>(); - if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) { - newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ","); - } - - for (String old : oldFunctions) { - // 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限 - if (!newFunctions.contains(old)) { - SysRole role = new SysRole(); - role.setCompanyId(newSysCompany.getComId()); - List<SysRole> roles = sysRoleDao.selectByModel(role); - // 获取该公司下所有的权限信息 - List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>(); - for (SysRole tempRole : roles) { - SysRolePwoerFn r = new SysRolePwoerFn(); - r.setRoleId(tempRole.getRoleId()); - compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r)); - } - // 记录要删除的id - List<String> delRolePwoer = new ArrayList<>(); - for (SysRolePwoerFn rolePwoer : compalyRolePwoer) { - // 如果有一个老权限则删除这个权限 - if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) { - delRolePwoer.add(rolePwoer.getRpfId()+""); - } - } - // 如果获取到了就删除 - if (!delRolePwoer.isEmpty()) { - rolePwoerFnDao.deleteByIds(delRolePwoer); - } - } - } - } - - @Override - public int modifyByModel(SysCompany sysCompany) { - - return sysCompanyDao.updateByModel(sysCompany); - - } - - @Override - public int remove(List<String> list) { - - return sysCompanyDao.deleteByIds(list); - - } - - @Override - public int removeById(String comId) { - - return sysCompanyDao.deleteById(Long.parseLong(comId)); - - } - - @Override - public int removeByModel(SysCompany sysCompany) { - - return sysCompanyDao.deleteByModel(sysCompany); - - } - - @Override - public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) { - - return sysCompanyDao.selectInPage(sysCompany, pageVo); - - } - - @Override - public List<SysCompany> findByModel(SysCompany sysCompany) { - - return sysCompanyDao.selectByModel(sysCompany); - - } - - @Override - public int findTotal(SysCompany sysCompany) { - - return sysCompanyDao.selectTotalRecord(sysCompany); - - } - - @Override - public SysCompany findById(String comId) { - - return sysCompanyDao.selectById(Long.parseLong(comId)); - - } - - - +package com.matrix.system.common.service.impl; + +import cn.hutool.crypto.SecureUtil; +import cn.hutool.json.JSONUtil; +import com.matrix.core.constance.MatrixConstance; +import com.matrix.core.constance.SystemErrorCode; +import com.matrix.core.exception.GlobleException; +import com.matrix.core.pojo.PaginationVO; +import com.matrix.core.tools.LogUtil; +import com.matrix.core.tools.ModelUtils; +import com.matrix.core.tools.StringUtils; +import com.matrix.core.tools.WebUtil; +import com.matrix.system.app.authority.AppAuthorityManager; +import com.matrix.system.common.authority.DefaultAuthorityManager; +import com.matrix.system.common.bean.SysCompany; +import com.matrix.system.common.bean.SysRole; +import com.matrix.system.common.bean.SysRolePwoerFn; +import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.common.constance.AppConstance; +import com.matrix.system.common.dao.SysCompanyDao; +import com.matrix.system.common.dao.SysRoleDao; +import com.matrix.system.common.dao.SysRolePwoerFnDao; +import com.matrix.system.common.init.LocalCache; +import com.matrix.system.common.service.SysCompanyService; +import com.matrix.system.common.service.SysUsersService; +import com.matrix.system.hive.bean.SysShopInfo; +import com.matrix.system.hive.bean.Warehouse; +import com.matrix.system.hive.dao.SysShopInfoDao; +import com.matrix.system.hive.dao.WarehouseDao; +import com.matrix.system.hive.plugin.util.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 公司管理 + * + * @author JIANGYOUYAO + * @email 935090232@qq.com + * @date Dec 11, 2017 + */ +@Service +public class SysCompanyServiceImpl implements SysCompanyService { + + @Autowired + private SysCompanyDao sysCompanyDao; + @Autowired + private SysRoleDao sysRoleDao; + @Autowired + private SysRolePwoerFnDao rolePwoerFnDao; + + @Autowired + private SysShopInfoDao shopInfoDao; + + + @Autowired + private InitCustomerDataDictionaryService initCustomerDataDictionaryService; + + + @Autowired + private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService; + + + @Autowired + private InitRolePowerService initRolePowerService; + + @Autowired + private InitGoodsTypeService initGoodsTypeService; + + @Autowired + private InitShopProductCateService initShopProductCateService; + + @Autowired + private InitBusParameterSettingService initBusParameterSettingService; + + + @Transactional + @Override + public int add(SysCompany sysCompany) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + sysCompany.setCreateBy(user.getSuName()); + sysCompany.setUpdateBy(user.getSuName()); + int i = sysCompanyDao.insert(sysCompany); + SysShopInfo zbShop = addZbShop(sysCompany); + initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany); + initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany, zbShop); + initRolePowerService.initRolePower(sysCompany); + initGoodsTypeService.initRolePower(sysCompany); + initShopProductCateService.initShopProductCate(sysCompany); + initBusParameterSettingService.initBusParameterSetting(sysCompany); + initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany); + + return i; + + } + + + @Autowired + private WarehouseDao warehouseDao; + + /** + * 为新公司创建一个总部 + * + * @param sysCompany + */ + private SysShopInfo addZbShop(SysCompany sysCompany) { + SysShopInfo zbShopInfo = new SysShopInfo(); + zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU); + zbShopInfo.setShopName(sysCompany.getComName() + "(总部)"); + zbShopInfo.setCompanyId(sysCompany.getComId()); + zbShopInfo.setShopTel(sysCompany.getComTel()); + zbShopInfo.setShopShortName("总部"); + zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET); + zbShopInfo.setShopNo(StringUtils.getRandomString(10)); + shopInfoDao.insert(zbShopInfo); + + //新增一个总部仓库 + Warehouse warehouse = new Warehouse(); + warehouse.setCompanyId(sysCompany.getComId()); + warehouse.setName("总部仓库"); + warehouse.setShopId(zbShopInfo.getId()); + warehouse.setSort("1"); + warehouseDao.insert(warehouse); + return zbShopInfo; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + newSysCompany.setUpdateBy(user.getSuName()); + + updatePower(newSysCompany); + Map<String, Object> modifyMap = null; + try { + if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) { + return MatrixConstance.DML_SUCCESSS; + } + + modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany); + } catch (Exception e) { + throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName()); + } + if (modifyMap.size() > 0) { + modifyMap.put("comId", oldSysCompany.getComId()); + return sysCompanyDao.updateByMap(modifyMap); + } + return MatrixConstance.DML_SUCCESSS; + } + + /** + * 更新公司员工权限 + * + * @param newSysCompany + * @author JIANGYOUYAO + * @email 935090232@qq.com + * @date 2017年12月5日 + */ + private void updatePower(SysCompany newSysCompany) { + List<String> oldFunctions = null; + String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(); + if (functions == null || functions.equals("")) { + oldFunctions = new ArrayList<>(); + } else { + oldFunctions = StringUtils + .strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ","); + } + List<String> newFunctions = new ArrayList<>(); + if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) { + newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ","); + } + + Collections.sort(newFunctions); + Collections.sort(oldFunctions); + if (Objects.equals(JSONUtil.toJsonStr(newFunctions), JSONUtil.toJsonStr(oldFunctions))) { + //没有更新的权限 + return; + } + + List<String> finalNewFunctions = newFunctions; + List<String> deletedFn = oldFunctions.stream().map(old -> { + if (finalNewFunctions.stream().noneMatch(newFn -> Objects.equals(newFn, old))) { + return old; + } else { + return ""; + } + }).filter(item->StringUtils.isNotBlank(item)).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(deletedFn)){ + rolePwoerFnDao.deleteByFns(newSysCompany.getComId(),deletedFn); + //有更新权限清空缓存 + SysUsers sysUsers = new SysUsers(); + sysUsers.setCompanyId(newSysCompany.getComId()); + sysUsers.setSuValid(AppConstance.RECORD_VALID); + List<SysUsers> users = sysUsersService.findByModel(sysUsers); + users.forEach(user -> { + String userKey = SecureUtil.md5(user.getSuId() + ""); + LocalCache.remove(DefaultAuthorityManager.USER_POWER_REDISKEY_PC + userKey); + LocalCache.remove(AppAuthorityManager.USER_POWER_REDISKEY_APP + userKey); + }); + } + + + +/* for (String old : oldFunctions) { + // 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限 + if (!newFunctions.contains(old)) { + SysRole role = new SysRole(); + role.setCompanyId(newSysCompany.getComId()); + List<SysRole> roles = sysRoleDao.selectByModel(role); + // 获取该公司下所有的权限信息 + List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>(); + for (SysRole tempRole : roles) { + SysRolePwoerFn r = new SysRolePwoerFn(); + r.setRoleId(tempRole.getRoleId()); + compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r)); + } + // 记录要删除的id + List<String> delRolePwoer = new ArrayList<>(); + for (SysRolePwoerFn rolePwoer : compalyRolePwoer) { + // 如果有一个老权限则删除这个权限 + if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) { + delRolePwoer.add(rolePwoer.getRpfId() + ""); + } + } + // 如果获取到了就删除 + if (!delRolePwoer.isEmpty()) { + rolePwoerFnDao.deleteByIds(delRolePwoer); + } + } + }*/ + + + + } + + @Autowired + SysUsersService sysUsersService; + + @Override + public int modifyByModel(SysCompany sysCompany) { + + return sysCompanyDao.updateByModel(sysCompany); + + } + + @Override + public int remove(List<String> list) { + + return sysCompanyDao.deleteByIds(list); + + } + + @Override + public int removeById(String comId) { + + return sysCompanyDao.deleteById(Long.parseLong(comId)); + + } + + @Override + public int removeByModel(SysCompany sysCompany) { + + return sysCompanyDao.deleteByModel(sysCompany); + + } + + @Override + public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) { + + return sysCompanyDao.selectInPage(sysCompany, pageVo); + + } + + @Override + public List<SysCompany> findByModel(SysCompany sysCompany) { + + return sysCompanyDao.selectByModel(sysCompany); + + } + + @Override + public int findTotal(SysCompany sysCompany) { + + return sysCompanyDao.selectTotalRecord(sysCompany); + + } + + @Override + public SysCompany findById(String comId) { + + return sysCompanyDao.selectById(Long.parseLong(comId)); + + } + + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java index 3771598..2d14f86 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java @@ -270,4 +270,14 @@ public List<AppVersion> findAppVersion() { return sysUsersDao.selectAppVersion(); } + + @Override + public SysUsers findByOpenId(String openId, Long companyId) { + return sysUsersDao.selectUserByOpenId(openId, companyId); + } + + @Override + public int modifyUserOpenId(String openId, Long suId) { + return sysUsersDao.updateUserOpenId(openId, suId); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/common/tools/DataAuthUtil.java b/zq-erp/src/main/java/com/matrix/system/common/tools/DataAuthUtil.java index 9e0a932..60dd23f 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/tools/DataAuthUtil.java +++ b/zq-erp/src/main/java/com/matrix/system/common/tools/DataAuthUtil.java @@ -20,7 +20,7 @@ */ public static boolean hasAllShopAuth() { SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); - return user.getShopRole().equals(Dictionary.FLAG_YES_Y) || user.getSuUserType().equals(AppConstance.USER_TYPE_ADMIN); + return Dictionary.FLAG_YES_Y.equals(user.getShopRole()) || AppConstance.USER_TYPE_ADMIN.equals(user.getSuUserType()); } @@ -31,7 +31,7 @@ */ public static boolean hasAllCustomerAuth() { SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); - return user.getShopRole().equals(Dictionary.FLAG_YES_Y) || user.getSuUserType().equals(AppConstance.USER_TYPE_ADMIN); + return Dictionary.FLAG_YES_Y.equals(user.getShopRole()) || AppConstance.USER_TYPE_ADMIN.equals(user.getSuUserType()); } } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java index e2c6ea7..09274b6 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java @@ -116,6 +116,10 @@ @RequestMapping(value = "/showCardFlowList") public @ResponseBody AjaxResult showCardFlowList(MoneyCardUseFlow moneyCardUseFlow, PaginationVO pageVo) { + MoneyCardUse vipCard = cardUseService.findByVipId(moneyCardUseFlow.getVipId()); + if (vipCard != null) { + moneyCardUseFlowDao.updateVipCardId(moneyCardUseFlow.getVipId(), vipCard.getId()); + } List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectInPage(moneyCardUseFlow, pageVo); return AjaxResult.buildSuccessInstance(dataList, moneyCardUseFlowDao.selectTotalRecord(moneyCardUseFlow)); } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java index a60adcd..68cd634 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java @@ -239,7 +239,7 @@ public @ResponseBody ModelAndView printOrder(SysOrder order) throws GlobleException { ModelAndView mv = new ModelAndView("admin/hive/beautySalon/print-order"); - SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + SysUsers user = getMe(); String comRegisterCode = companyDao.selectById(user.getCompanyId()).getComRegisterCode(); if (StringUtils.isNotBlank(comRegisterCode)) { mv.addObject("page", comRegisterCode); 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 86db596..020b110 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 @@ -1,5 +1,6 @@ package com.matrix.system.hive.action; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.matrix.core.anotations.RemoveRequestToken; @@ -26,17 +27,16 @@ import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; +import com.matrix.system.hive.dto.ServiceOrderTimeDto; import com.matrix.system.hive.service.*; +import com.matrix.system.hive.vo.ServiceOrderInfoVo; 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; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; @@ -124,9 +124,28 @@ List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(id); if (CollUtil.isNotEmpty(beauticianStateList)) { for (SysBeauticianState sysBeauticianState : beauticianStateList) { + SysProjUse item = sysBeauticianState.getProjUse(); + + // 若项目/套餐无效,则打印时,不显示余次 + if (!"无效".equals(item.getStatus())) { + item.setRemainCount(item.getSurplusCount()); + } else { + item.setRemainCount(null); + } + if (sysBeauticianState.getProjUse().getTaocanId() != null) { SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId()); + if (!"无效".equals(sysProjUse.getStatus())) { + item.setRemainCount(sysProjUse.getSurplusCount()); + } else { + item.setRemainCount(null); + } + sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName()); + if ("Y".equals(sysProjUse.getIsCourse()) && "Y".equals(sysProjUse.getIsInfinite())) { + int count = projUseService.findTaocanCountForCourseAndInfinite(sysBeauticianState.getProjUse().getTaocanId(), projServices.getVipId()); + item.setRemainCount(count); + } } } } @@ -143,6 +162,20 @@ result.setStatus(AjaxResult.STATUS_SUCCESS); return result; + } + + /** + * 根据id查询服务单简单信息 + */ + @RequestMapping(value = "/findServiceOrderInfoVo/{id}") + public @ResponseBody + AjaxResult findServiceOrderInfoVo(@PathVariable Long id) { + // 获取服务单信息 + SysProjServices projServices = sysProjServicesService.findById(id); + + ServiceOrderInfoVo serviceOrderInfoVo= BeanUtil.copyProperties(projServices,ServiceOrderInfoVo.class); + + return AjaxResult.buildSuccessInstance(serviceOrderInfoVo); } @@ -429,13 +462,12 @@ */ @RequestMapping(value = "/updateOrderTime") public @ResponseBody - AjaxResult updateOrderTime(SysProjServices serviceQuery) { - SysProjServices services = sysProjServicesDao.selectById(serviceQuery.getId()); - sysProjServicesDao.updateOrderTime(serviceQuery.getConsumeTime(), serviceQuery.getId()); + AjaxResult updateOrderTime(@RequestBody ServiceOrderTimeDto serviceOrderTimeDto) { + sysProjServicesDao.updateOrderTime(serviceOrderTimeDto); // 更新业绩时间 AchieveNew achieveNew = new AchieveNew(); - achieveNew.setServiceOrderId(serviceQuery.getId()); - achieveNew.setDatatime(serviceQuery.getConsumeTime()); + achieveNew.setServiceOrderId(serviceOrderTimeDto.getId()); + achieveNew.setDatatime(serviceOrderTimeDto.getConsumeTime()); achieveNewService.modifyAchieveTime(achieveNew); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java index 5fe5d27..106ecd6 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java @@ -435,7 +435,7 @@ String title = "商品资料"; orderSheet.setSheetName(title); orderSheet.setTitle(title); - String[] header = {"商品名称", "商品编号", "售价/(本金)", "参考价/(赠送金额)", "真实销量", "状态", "是否赠送", "类型", "分类", "是否固定套餐", "产品归属"}; + String[] header = {"商品名称", "商品编号", "售价/(本金)", "参考价/(赠送金额)", "真实销量", "状态", "是否赠送", "类型", "分类", "是否固定套餐", "产品归属","时长"}; orderSheet.setHeaders(header); List<ShoppingGoods> dataList = shoppingGoodsService.findAll(shoppingGoods); List<List<Object>> list = new ArrayList<>(); @@ -453,6 +453,7 @@ temp.add(item.getCateName()); temp.add(item.getIsCourse()); temp.add(item.getHeadquarters() == 1 ? "总部产品" : "本店产品"); + temp.add(item.getTimeLength()); list.add(temp); } } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java index 9edf94f..fed9f78 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java @@ -261,6 +261,7 @@ vips.get(0).setLabels(sysVipLabelDao.selectByVipId(vips.get(0).getId())); vips.get(0).setAge(DateUtil.getAgeForBirthDay(vips.get(0).getBirthday1())); vips.get(0).setBalance(moneyCardUseDao.selectVipCardTotalMoney(vips.get(0).getId())); + vips.get(0).setArrears(sysOrderService.findVipArrearsByVipId(vips.get(0).getId())); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0); return result; } else { diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java index 8f498a0..3c68bcd 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java @@ -1,5 +1,7 @@ package com.matrix.system.hive.bean; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.anotations.Extend; import com.matrix.core.tools.DateUtil; @@ -13,9 +15,9 @@ */ public class AchieveNew extends EntityDTOExt { @Extend - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - + @TableId(type = IdType.AUTO) private Long id; diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java index 789b879..7eae13c 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java @@ -449,6 +449,19 @@ */ private String payMethods; + /** + * 是否合作项目 + */ + private Integer isCooperate; + + public Integer getIsCooperate() { + return isCooperate; + } + + public void setIsCooperate(Integer isCooperate) { + this.isCooperate = isCooperate; + } + public String getAchieveRuleName() { return achieveRuleName; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java index 8c8cc65..41b23ab 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java @@ -1,7 +1,9 @@ package com.matrix.system.hive.bean; import com.fasterxml.jackson.annotation.JsonFormat; +import com.matrix.core.anotations.Extend; import com.matrix.core.tools.DateUtil; +import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; @@ -11,6 +13,7 @@ * @author wzy * @date 2021-01-07 **/ +@Data public class SysOrderFlow implements Serializable { private static final long serialVersionUID = 7519131902836023680L; @@ -53,6 +56,11 @@ private Long vipId; private Long cardId; + /** + * 扩展字段-支付卡名称 + */ + @Extend + private String cardName; private String isGift; @@ -62,139 +70,5 @@ private Long companyId; - public String getOrderNo() { - return orderNo; - } - public void setOrderNo(String orderNo) { - this.orderNo = orderNo; - } - - public Long getCardId() { - return cardId; - } - - public void setCardId(Long cardId) { - this.cardId = cardId; - } - - public String getIsGift() { - return isGift; - } - - public void setIsGift(String isGift) { - this.isGift = isGift; - } - - public String getCreateBy() { - return createBy; - } - - public void setCreateBy(String createBy) { - this.createBy = createBy; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public String getUpdateBy() { - return updateBy; - } - - public void setUpdateBy(String updateBy) { - this.updateBy = updateBy; - } - - public Date getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getFlowNo() { - return flowNo; - } - - public void setFlowNo(String flowNo) { - this.flowNo = flowNo; - } - - public Long getOrderId() { - return orderId; - } - - public void setOrderId(Long orderId) { - this.orderId = orderId; - } - - public String getFlowContent() { - return flowContent; - } - - public void setFlowContent(String flowContent) { - this.flowContent = flowContent; - } - - public String getFlowType() { - return flowType; - } - - public void setFlowType(String flowType) { - this.flowType = flowType; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getPayMethod() { - return payMethod; - } - - public void setPayMethod(String payMethod) { - this.payMethod = payMethod; - } - - public Long getVipId() { - return vipId; - } - - public void setVipId(Long vipId) { - this.vipId = vipId; - } - - public Long getShopId() { - return shopId; - } - - public void setShopId(Long shopId) { - this.shopId = shopId; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java index 94b8b15..a019374 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java @@ -143,6 +143,18 @@ @Extend private String updateRemark; + /** + * 套餐/项目剩余次数 + */ + private Integer remainCount; + + public Integer getRemainCount() { + return remainCount; + } + + public void setRemainCount(Integer remainCount) { + this.remainCount = remainCount; + } public Long getOrderId() { return orderId; diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java index 72f4119..09224d4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java @@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -437,8 +438,7 @@ private String name; + private BigDecimal arrears; - - } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java index 482ad02..ec7c010 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java @@ -10,6 +10,7 @@ import com.matrix.system.hive.bean.AchieveNew; import com.matrix.system.hive.dto.AchieveNewStatisticsDto; import com.matrix.system.hive.vo.AchieveNewStatisticsVo; +import com.matrix.system.hive.vo.DailyBeautyListVo; import org.apache.ibatis.annotations.Param; import java.util.ArrayList; @@ -91,4 +92,11 @@ IPage<AchieveNewStatisticsVo> achieveNewStatistics(Page<AchieveNewStatisticsVo> page, @Param("record")AchieveNewStatisticsDto queryDto); void setPayMethod(@Param("paymethod") String paymethod, @Param("list") ArrayList<Long> ids); + + List<RankingVo> selectNumOfPeopleAchieveRanking(@Param("record") AchieveNew achieveNew); + + List<DailyBeautyListVo> selectDailyBeautyList(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo); + int selectDailyBeautyListTotal(@Param("record") AchieveNew achieveNew); + + String selectPlInfoByVipIdAndDate(@Param("datatime") Date datatime, @Param("vipId") Long vipId); } \ No newline at end of file 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 597762f..7a26149 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 @@ -33,5 +33,7 @@ public int selectTotalRecord(@Param("record") MoneyCardUseFlow moneyCardUseFlow); public MoneyCardUseFlow selectById(Long id); + + int updateVipCardId(@Param("vipId") Long vipId, @Param("cardId") Long cardId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java index c052f28..22ef160 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java @@ -9,6 +9,7 @@ import com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -54,4 +55,6 @@ List<ErpOrderDetailVo> selectErpOrderList(ErpOrderListDto erpOrderListDto); ErpOrderDetailVo findUserOrderById(Long orderId); + + BigDecimal selectArrearsByVipId(Long vipId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java index 4266fb8..588612c 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java @@ -4,6 +4,7 @@ import com.matrix.system.app.dto.ServiceOrderListDto; import com.matrix.system.app.vo.ServiceOrderListVo; import com.matrix.system.hive.bean.SysProjServices; +import com.matrix.system.hive.dto.ServiceOrderTimeDto; import com.matrix.system.shopXcx.api.dto.ErpServiceOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo; import org.apache.ibatis.annotations.Param; @@ -36,7 +37,7 @@ public SysProjServices selectById(Long id); - public void updateOrderTime(@Param("consumeTime") Date createTime, @Param("id") Long id); + public void updateOrderTime(@Param("serviceOrderTimeDto") ServiceOrderTimeDto serviceOrderTimeDto); List<ServiceOrderListVo> selectApiServiceOrderListInPage(@Param("record") ServiceOrderListDto serviceOrderListDto, @Param("pageVo") PaginationVO pageVo); diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java index 6eac36c..cd19d3d 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java @@ -134,4 +134,6 @@ Integer selectProjUseFlowTotal(@Param("record") SysProjUseFlow projUseFlow); List<SysProjUse> selectTaoCanListWithProj(@Param("record") SysProjUse sysProjUse); + + int selectTaocanCountForCourseAndInfinite(@Param("taocanId") Long taocanId, @Param("vipId") Long vipId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java index 747dc87..fd8fba7 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** @@ -214,4 +215,8 @@ int unbundlingSaleMan(Long userId); int bindingRecommend(@Param("recommendId") Long recommendId,@Param("userId") Long userId); + + List<Map<String, Object>> selectVipArrearsStatistics(@Param("record") SysVipInfo sysVipInfo, @Param("pageVo") PaginationVO pageVo); + + Integer selectVipArrearsStatisticsTotal(@Param("record") SysVipInfo sysVipInfo); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java b/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java new file mode 100644 index 0000000..bedaf81 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java @@ -0,0 +1,34 @@ +package com.matrix.system.hive.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.matrix.core.tools.DateUtil; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class ServiceOrderTimeDto { + + /** + * 服务单id + */ + private Long id; + /** + * 预约时间 + */ + @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) + private Date yyTime; + + /** + * 订单创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Date createTime; + /** + * 订单划扣时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Date consumeTime; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java index bdf9228..0698dac 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java @@ -6,6 +6,7 @@ import com.matrix.system.hive.bean.SysOrder; import com.matrix.system.hive.bean.SysProjServices; import com.matrix.system.hive.plugin.util.BaseServices; +import com.matrix.system.hive.vo.DailyBeautyListVo; import java.util.List; import java.util.Map; @@ -117,4 +118,7 @@ public List<AchieveNew> findOrderItemAchieve(Long orderid); + List<DailyBeautyListVo> findDailyBeautyList(AchieveNew achieveNew, PaginationVO pageVo); + int findDailyBeautyListTotal(AchieveNew achieveNew); + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java index 6e0e060..2be2912 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java @@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpSession; +import java.math.BigDecimal; import java.util.List; /** @@ -142,4 +143,6 @@ List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder); + BigDecimal findVipArrearsByVipId(Long vipId); + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java index 0bf893a..ed21be0 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java @@ -143,4 +143,6 @@ public List<SysProjUse> selectTaocanProjUse(Long id, String status); public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse); + + int findTaocanCountForCourseAndInfinite(Long taocanId, Long vipId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java index dd21bc1..cd93e2d 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Map; /** * @@ -205,4 +206,8 @@ public int setToBeAnSalesman(Long userId,Long invitationId,long gradeId); SysVipInfo findByOpenId(String openId); + + List<Map<String, Object>> findVipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo); + + Integer findVipArrearsStatisticsTotal(SysVipInfo sysVipInfo); } \ 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..1aa4621 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java @@ -0,0 +1,126 @@ +/** + * 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.common.service.BusParameterSettingService; +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; + + BusParameterSettingService busParameterSettingService; + /** + * 预约成功短信提醒 + * + * @param services + */ + @Async + public void sendYycgNotice(SysProjServices services) { + //短信接口为肽妍公司定制,暂时写死 + if (chackSetting(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 + */ + @Async + public void sendHkNotice(SysProjServices services) { + if (chackSetting(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); + } + + } + } + + + } + + private boolean chackSetting(SysProjServices services) { + //短信接口为肽妍公司定制,暂时写死 + if (services.getCompanyId() != 17L) { + return true; + } + if (!busParameterSettingService.isSettingOpen(AppConstance.OPEN_SMS_NOTICE, services.getCompanyId())) { + return true; + } + return false; + } + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java index afec062..f32259e 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java @@ -21,6 +21,7 @@ import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.service.AchieveNewService; import com.matrix.system.hive.service.SysProjServicesService; +import com.matrix.system.hive.vo.DailyBeautyListVo; import com.matrix.system.hiveErp.pojo.AchieveRuleItem; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -174,8 +175,7 @@ boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE); - - + Set<Long> beautyIds = new HashSet<>(); for (SysBeauticianState beauticianState : beauticianStateList) { // 是否第一次计算改美疗师 boolean isFirst = true; @@ -222,13 +222,13 @@ // } } - List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date()); - if (CollUtil.isEmpty(beautyList)) { - achieveNew.setNumberOfPeople(1D / size); - } else { - achieveNew.setNumberOfPeople(1D / (size + beautyList.size())); - achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople()); - } +// List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date()); +// if (CollUtil.isEmpty(beautyList)) { +// achieveNew.setNumberOfPeople(1D / size); +// } else { +// achieveNew.setNumberOfPeople(1D / (size + beautyList.size())); +// achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople()); +// } achieveNew.setProjNum(1); if (StringUtils.isNotBlank(beauticianState.getExtract())) { @@ -244,11 +244,14 @@ achieveNew.setProjTime(beauticianState.getExcTime()); isFirst = false; } + + beautyIds.add(achieveNew.getBeaultId()); achieveNewList.add(achieveNew); } if (CollectionUtils.isNotEmpty(achieveNewList)) { achieveNewDao.batchInsert(achieveNewList); + achieveNumOfPeople(beautyIds, projServices.getVipId()); } } @@ -297,9 +300,33 @@ } } + /** + * + * 合并订单与服务单人头逻辑,即每一个客户对美疗师/顾问来说,每一天同一个客户只算一个人头。 + * 如若A给客户X下订单,并给客户X服务,对A来说只算一个人头 + */ + private void achieveNumOfPeople(Set<Long> beautyIds, Long vipId) { + for (Long userId : beautyIds) { + double num; + List<AchieveNew> achieveNewList = achieveNewDao.selectBeautyManAchieveList(userId, vipId, new Date()); + + if (CollUtil.isEmpty(achieveNewList)) { + num = 1D; + } else { + num = 1D / achieveNewList.size(); + } + + if (CollUtil.isNotEmpty(achieveNewList)) { + achieveNewDao.updateAchieveNumOfPeople(achieveNewList, num); + } + } + + } + @Override public void addAchaeveByOrder(SysOrder pageOrder) { List<AchieveNew> achieveNewList = new ArrayList<>(); + Set<Long> beautyIds = new HashSet<>(); if (CollectionUtils.isNotEmpty(pageOrder.getItems())) { for (SysOrderItem orderItem : pageOrder.getItems()) { @@ -309,13 +336,19 @@ if (achieveNew !=null && achieveNew.getGoodsCash()!=null) { buildAchieve(pageOrder, orderItem, achieveNew); achieveNewList.add(achieveNew); + + beautyIds.add(achieveNew.getBeaultId()); } } } } } + if (CollectionUtils.isNotEmpty(achieveNewList)) { achieveNewDao.batchInsert(achieveNewList); + if (!beautyIds.isEmpty()) { + achieveNumOfPeople(beautyIds, pageOrder.getVipId()); + } } } @@ -354,7 +387,7 @@ } // 设置顾问人头业绩 - saleAchieveNumOfPeople(achieveNew); +// saleAchieveNumOfPeople(achieveNew); achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL); achieveNew.setOrderId(pageOrder.getId()); @@ -439,4 +472,21 @@ public List<AchieveNew> findOrderItemAchieve(Long orderId) { return achieveNewDao.selectOrderItemAchieveByOrderId(orderId); } + + @Override + public List<DailyBeautyListVo> findDailyBeautyList(AchieveNew achieveNew, PaginationVO pageVo) { + List<DailyBeautyListVo> list = achieveNewDao.selectDailyBeautyList(achieveNew, pageVo); + if (CollUtil.isNotEmpty(list)) { + for (DailyBeautyListVo item : list) { + String pl = achieveNewDao.selectPlInfoByVipIdAndDate(item.getDatatime(), item.getVipId()); + item.setProjInfo(pl); + } + } + return list; + } + + @Override + public int findDailyBeautyListTotal(AchieveNew achieveNew) { + return achieveNewDao.selectDailyBeautyListTotal(achieveNew); + } } \ No newline at end of file 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 f569ace..879b5ba 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 @@ -1520,6 +1520,7 @@ moneyCardUseFlow.setCreateTime(new Date()); moneyCardUseFlow.setOperationId(user.getSuId()); moneyCardUseFlow.setBalance(cardUser.getGiftMoney() + cardUser.getRealMoney()); + moneyCardUseFlow.setCarUseId(cardUser.getId()); moneyCardUseFlowDao.insert(moneyCardUseFlow); order.setFlows(czVo.getFlows()); @@ -1853,4 +1854,9 @@ sysInstoreInfoService.check(instoreInfo); } + + @Override + public BigDecimal findVipArrearsByVipId(Long vipId) { + return sysOrderDao.selectArrearsByVipId(vipId); + } } 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 2001275..51fea08 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 @@ -1,10 +1,10 @@ package com.matrix.system.hive.service.imp; import cn.hutool.core.collection.CollUtil; +import com.google.common.collect.Lists; import com.matrix.component.asyncmessage.AsyncMessageManager; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; -import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.pojo.VerifyResult; import com.matrix.core.tools.DateUtil; @@ -18,6 +18,7 @@ import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; +import com.matrix.system.common.service.BusParameterSettingService; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; @@ -68,7 +69,8 @@ private SysOutStoreItemDao sysOutStoreItemDao; @Autowired private SysBedInfoDao sysBedInfoDao; - + @Autowired + TaiYanAliyunSmsService taiYanAliyunSmsService; @Autowired private SysStoreInfoDao storeInfoDao; @@ -119,12 +121,17 @@ BusParameterSettingsDao busParameterSettingsDao; @Autowired + BusParameterSettingService busParameterSettingService; + + @Autowired ScoreVipDetailService scoreVipDetailService; @Autowired SysVipInfoDao sysVipInfoDao; + @Autowired + ShoppingGoodsAssembleDao goodsAssembleDao; /** * 新增服务单 jyy @@ -260,7 +267,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() + "项目已经失效"); } @@ -450,7 +457,54 @@ lastList.add(lastWork); } LastestWorkBeatuistaffDao.batchInsert(lastList); - return sysProjServicesDao.update(projServices); + int i = sysProjServicesDao.update(projServices); + + //根据配置是否完成自动配料 + if (busParameterSettingService.isSettingOpen(AppConstance.OPEN_SERVICE_ORDER_AUTO_BATCHING, checkProjServices.getCompanyId())){ + autoBatching(projServices); + } + + + return i; + } + + + /** + * 根据配置是否完成自动配料 + * + * @param projServices + */ + private void autoBatching(SysProjServices projServices) { + + //获取最新的服务单信息 + projServices=findById(projServices.getId()); + List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(projServices.getId()); + + + List<SysOutStoreItem> outStoreItemList = Lists.newLinkedList(); + beauticianStateList.stream().forEach(item -> { + + List<ShoppingGoodsAssemble> shoppingGoodsAssembles = goodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(item.getProjId(), ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP); + + if (CollUtil.isNotEmpty(shoppingGoodsAssembles)) { + outStoreItemList.addAll(shoppingGoodsAssembles.stream().map(assemble -> { + SysOutStoreItem outStoreItem = new SysOutStoreItem(); + outStoreItem.setSkuId(assemble.getAssembleGoodId()); + outStoreItem.setAmount(Double.parseDouble(assemble.getTotal()+"")); + outStoreItem.setRemark("自动配料"); + return outStoreItem; + }).collect(Collectors.toList())); + } + }); + //组合配料参数 + projServices.setOutStoreItem(outStoreItemList); + //调用配料出库方法 + try { + modifyPLProjServices(projServices); + }catch (GlobleException e){ + LogUtil.debug("配料失败:{}",e.getMessage()); + } + } @@ -663,7 +717,9 @@ //发送微信公众号提醒 UniformMsgParam uniformMsgParam = new UniformMsgParam(projServices.getCompanyId(), UniformMsgParam.GZH_FWWC); uniformMsgParam.put("serviceId", projServices.getId()); - asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); + asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam); + //发送划扣短信提醒 + taiYanAliyunSmsService.sendHkNotice(projServices); return result; } @@ -1054,6 +1110,7 @@ return flag; } + @Override public int confirmServiceOrder(Long id) { SysProjServices services = new SysProjServices(); @@ -1062,12 +1119,17 @@ 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); + 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/hive/service/imp/SysProjUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java index 2764267..b30f76c 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java @@ -608,4 +608,9 @@ public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse) { return sysProjUseDao.selectTaoCanListWithProj(sysProjUse); } + + @Override + public int findTaocanCountForCourseAndInfinite(Long taocanId, Long vipId) { + return sysProjUseDao.selectTaocanCountForCourseAndInfinite(taocanId, vipId); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java index 8980936..0515e39 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java @@ -79,6 +79,9 @@ @Autowired ScoreVipDetailService scoreVipDetailService; + @Autowired + private SysOrderDao sysOrderDao; + /** * 新增会员储值卡 @@ -440,7 +443,9 @@ @Override public com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id) { - return sysVipInfoDao.selectVipInfoById(id); + com.matrix.system.app.vo.VipInfoVo result = sysVipInfoDao.selectVipInfoById(id); + result.setArrears(sysOrderDao.selectArrearsByVipId(id)); + return result; } @Override @@ -669,5 +674,13 @@ } + @Override + public List<Map<String, Object>> findVipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo) { + return sysVipInfoDao.selectVipArrearsStatistics(sysVipInfo, pageVo); + } + @Override + public Integer findVipArrearsStatisticsTotal(SysVipInfo sysVipInfo) { + return sysVipInfoDao.selectVipArrearsStatisticsTotal(sysVipInfo); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java index 354a30d..9901970 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java @@ -272,5 +272,20 @@ } } + @RequestMapping(value = "/findDailyBeautyList") + @ResponseBody + public AjaxResult findDailyBeautyList(@RequestBody AchieveNew achieveNew) { + SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + achieveNew.setCompanyId(sysUsers.getCompanyId()); + if (!DataAuthUtil.hasAllShopAuth()) { + achieveNew.setShopId(sysUsers.getShopId()); + } + PaginationVO pageVo = new PaginationVO(); + + pageVo.setOffset(achieveNew.getOffset()); + pageVo.setLimit(achieveNew.getLimit()); + return AjaxResult.buildSuccessInstance(achieveNewService.findDailyBeautyList(achieveNew, pageVo), achieveNewService.findDailyBeautyListTotal(achieveNew)); + } + } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java index a3ad197..c77023d 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java @@ -107,7 +107,7 @@ orderSheet.setSheetName("交易流水"); orderSheet.setTitle("交易流水"); String[] header = new String[]{"订单编号", "交易内容", "交易时间", "交易类型", "交易金额", "会员姓名", - "支付方式", "支付流水号", "操作人", "门店名称"}; + "支付方式","储值卡名称", "支付流水号", "操作人", "门店名称"}; orderSheet.setHeaders(header); List<List<Object>> body = new ArrayList<>(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); @@ -120,6 +120,7 @@ bodyItem.add(flowVo.getAmount()); bodyItem.add(flowVo.getVipName()); bodyItem.add(flowVo.getPayMethod()); + bodyItem.add(flowVo.getCardName()); bodyItem.add(flowVo.getFlowNo()); bodyItem.add(flowVo.getStaffName()); bodyItem.add(flowVo.getShopName()); diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java index 317206f..5439672 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java @@ -53,8 +53,8 @@ public void exportShowList(@RequestParam Map<String, Object> param, HttpServletResponse response) throws Exception { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); String title = "产品销售明细统计"; - String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价", "健康顾问", "支付方式", "状态"}; - String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "su_name", "pay_method", "status"}; + String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价","小计", "健康顾问", "支付方式", "状态"}; + String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "total","su_name", "pay_method", "statu"}; if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java index 955fba1..75a215f 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java @@ -46,8 +46,8 @@ public void exportShowList( @RequestParam Map<String , Object> param, HttpServletResponse response) throws Exception { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); String title = "项目剩余次数明细"; - String[] header = {"客户名", "服务名称", "到期日期", "剩余次数", "单价", "项目类型", "套餐类型", "是否使用完成", "备注", "来源", "订单号"}; - String[] column = {"VIP_NAME", "PROJ_NAME", "FAIL_TIME", "SURPLUS_COUNT", "PRICE", "TYPE_NAME", "type", "IS_OVER", "remark", "SOURCE", "ORDER_NO"}; + String[] header = {"客户名", "客户所属门店", "服务名称", "到期日期", "剩余次数", "单价", "项目类型", "套餐类型", "是否使用完成", "备注", "来源", "订单号"}; + String[] column = {"VIP_NAME", "SHOP_NAME", "PROJ_NAME", "FAIL_TIME", "SURPLUS_COUNT", "PRICE", "TYPE_NAME", "type", "IS_OVER", "remark", "SOURCE", "ORDER_NO"}; if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java index 52abb4e..94aad6a 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java @@ -7,7 +7,9 @@ import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.hive.bean.AchieveNew; +import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.service.AchieveNewService; +import com.matrix.system.hive.service.SysVipInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,6 +31,9 @@ @Autowired private AchieveNewService achieveNewService; + @Autowired + private SysVipInfoService sysVipInfoService; + @RequestMapping(value = "/vipConsumeStatistics") @ResponseBody public AjaxResult vipConsumeStatistics(AchieveNew achieveNew, PaginationVO pageVo) { @@ -40,4 +45,16 @@ int total = achieveNewService.findVipConsumeStatisticsTotal(achieveNew); return AjaxResult.buildSuccessInstance(list, total); } + + @RequestMapping(value = "/vipArrearsStatistics") + @ResponseBody + public AjaxResult vipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo) { + SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + if (!DataAuthUtil.hasAllShopAuth()) { + sysVipInfo.setShopId(sysUsers.getShopId()); + } + + int total = sysVipInfoService.findVipArrearsStatisticsTotal(sysVipInfo); + return AjaxResult.buildSuccessInstance(sysVipInfoService.findVipArrearsStatistics(sysVipInfo, pageVo), total); + } } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java new file mode 100644 index 0000000..37a969d --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java @@ -0,0 +1,50 @@ +package com.matrix.system.hive.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class DailyBeautyListVo { + + @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") + private Date datatime; + + private String beautyName; + + private String vipName; + + private Long vipId; + + private int isAppoint; + + private String arrivalWay; + + private int orderCnt; + + private int arriveCnt; + + private String payMethods; + + private BigDecimal teamPay; + + private BigDecimal tcAndProjCash; + + private BigDecimal productCash; + + private BigDecimal cardCash; + + private BigDecimal cardPay; + + private BigDecimal cashPay; + + private BigDecimal consume; + + private Integer projCnt; + + private BigDecimal ticheng; + + private String projInfo; +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java index 78ce807..2a0c4f4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java @@ -2,18 +2,18 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; -import com.matrix.system.app.vo.OrderDetailItemVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import java.math.BigDecimal; import java.util.Date; -import java.util.List; /** * @author jyy * @date 2021-01-27 **/ +@Data @ApiModel(value = "OrderFlowVo", description = "订单流水返回参数类") public class OrderFlowVo { @@ -26,10 +26,10 @@ @ApiModelProperty(value = "订单号") private String orderNo; - @ApiModelProperty(value ="交易类型") + @ApiModelProperty(value = "交易类型") private String flowType; - @ApiModelProperty(value ="支付方式") + @ApiModelProperty(value = "支付方式") private String payMethod; @ApiModelProperty(value = "会员姓名") @@ -50,103 +50,11 @@ @ApiModelProperty(value = "门店名称") private String shopName; + @ApiModelProperty(value = "支付卡名称") + private String cardName; + @JsonFormat(pattern = DateUtil.DATE_FORMAT_SS, timezone = "GMT+8") @ApiModelProperty(value = "创建时间") private Date createTime; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getOrderId() { - return orderId; - } - - public void setOrderId(String orderId) { - this.orderId = orderId; - } - - public String getOrderNo() { - return orderNo; - } - - public void setOrderNo(String orderNo) { - this.orderNo = orderNo; - } - - public String getFlowType() { - return flowType; - } - - public void setFlowType(String flowType) { - this.flowType = flowType; - } - - public String getPayMethod() { - return payMethod; - } - - public void setPayMethod(String payMethod) { - this.payMethod = payMethod; - } - - public String getVipName() { - return vipName; - } - - public void setVipName(String vipName) { - this.vipName = vipName; - } - - public String getFlowContent() { - return flowContent; - } - - public void setFlowContent(String flowContent) { - this.flowContent = flowContent; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getStaffName() { - return staffName; - } - - public void setStaffName(String staffName) { - this.staffName = staffName; - } - - public String getFlowNo() { - return flowNo; - } - - public void setFlowNo(String flowNo) { - this.flowNo = flowNo; - } - - public String getShopName() { - return shopName; - } - - public void setShopName(String shopName) { - this.shopName = shopName; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } } + diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java new file mode 100644 index 0000000..a43e901 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java @@ -0,0 +1,69 @@ +package com.matrix.system.hive.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.matrix.core.tools.DateUtil; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 简单服务单信息展示对象不含明细 + */ +@Data +public class ServiceOrderInfoVo { + + /** + * id + */ + private Long id; + + /** + * 编号 + */ + private String serviceNo; + + /** + * 服务单金额 + */ + private Double money; + /** + * 预约时间 + */ + @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) + private Date yyTime; + + /** + * 订单创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Date createTime; + /** + * 订单划扣时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Date consumeTime; + + /** + * 开始时间 + */ + @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) + private Date startTime; + /** + * 结束时间 + */ + @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) + private Date endTime; + /** + * 超时时间 + */ + private String isOverTime; + + /** + * 服务状态 0.待预约 1.预约失败,2预约成功待处理,3需配料,4配料中,5配料完成,6,服务中,7服务完成 + */ + private String state; + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java b/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java index befc7c8..546bb82 100644 --- a/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java @@ -8,134 +8,193 @@ import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; +import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.ModelUtils; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; +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.common.bean.SysUsers; +import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.oa.bean.OaFixedAssets; import com.matrix.system.oa.dao.OaFixedAssetsDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.List; import java.util.Map; /** + * @author * @description 固定资产 - * @author * @date 2019-12-13 07:19 */ @Controller @RequestMapping(value = "admin/oaFixedAssets") public class OaFixedAssetsAction { - @Autowired - private OaFixedAssetsDao oaFixedAssetsDao; - - //记录编辑前的值Before_Edit_Value - public static final String BEV="OaFixedAssets_BEV"; - - - /** - * 列表显示 - */ - @RequestMapping(value = "/showList") - public @ResponseBody AjaxResult showList(OaFixedAssets oaFixedAssets, PaginationVO pageVo) { - SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - oaFixedAssets.setCompanyId(user.getCompanyId()); - List<OaFixedAssets> dataList = oaFixedAssetsDao.selectInPage(oaFixedAssets, pageVo); - AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, - oaFixedAssetsDao.selectTotalRecord(oaFixedAssets)); - return result; - } - - /** - * 新增 - */ - @RemoveRequestToken - @RequestMapping(value = "/addOaFixedAssets") - public @ResponseBody AjaxResult addOaFixedAssets(OaFixedAssets oaFixedAssets) { - SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - oaFixedAssets.setCreateBy(user.getSuName()); - oaFixedAssets.setUpdateBy(user.getSuName()); - oaFixedAssets.setCompanyId(user.getCompanyId()); - int i=oaFixedAssetsDao.insert(oaFixedAssets); - if(i > 0){ - return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "固定资产"); - }else { - throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); - } - } - - - - - - /** - * 修改 - */ - @RemoveRequestToken - @RequestMapping(value = "/modifyOaFixedAssets") - public @ResponseBody AjaxResult modifyOaFixedAssets(OaFixedAssets newOaFixedAssets) { - OaFixedAssets oldOaFixedAssets = WebUtil.getSessionAttribute(BEV); - int i = 0; - Map<String, Object> modifyMap = null; - try { - if (!ModelUtils.isModified(oldOaFixedAssets, newOaFixedAssets)) { - i = MatrixConstance.DML_SUCCESSS; - } - modifyMap = ModelUtils.comparePojo2Map(oldOaFixedAssets, newOaFixedAssets); - } catch (Exception e) { - throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newOaFixedAssets); - } - if (modifyMap.size() > 0) { - modifyMap.put("id", oldOaFixedAssets.getId()); - oaFixedAssetsDao.updateByMap(modifyMap); - } - i = MatrixConstance.DML_SUCCESSS; - WebUtil.removeSessionAttribute(BEV); - if (i > 0) { - return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "固定资产"); - } else { - throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL); - } - } - - - - - /** - * 进入修改界面 - */ - @SaveRequestToken - @RequestMapping(value = "/editForm") - public ModelAndView editForm(String id) { - OaFixedAssets oaFixedAssets = new OaFixedAssets(); - ModelAndView modelAndView = new ModelAndView("admin/oa/assets/fixeAssets-form"); - if (id != null) { - oaFixedAssets = oaFixedAssetsDao.selectById(id); - WebUtil.setSessionAttribute(BEV, oaFixedAssets); - } - modelAndView.addObject("obj",oaFixedAssets); - return modelAndView; - } - - - /** - * 删除 - */ - @RequestMapping(value = "/del") - public @ResponseBody AjaxResult del(String keys) { - List<String> ids = StringUtils.strToCollToString(keys, ","); - int i = oaFixedAssetsDao.deleteByIds(ids); - if (i > 0) { - return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i); - } else { - throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL); - } - } - + @Autowired + private OaFixedAssetsDao oaFixedAssetsDao; + + //记录编辑前的值Before_Edit_Value + public static final String BEV = "OaFixedAssets_BEV"; + + + /** + * 列表显示 + */ + @RequestMapping(value = "/showList") + public @ResponseBody + AjaxResult showList(OaFixedAssets oaFixedAssets, PaginationVO pageVo) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + oaFixedAssets.setCompanyId(user.getCompanyId()); + List<OaFixedAssets> dataList = oaFixedAssetsDao.selectInPage(oaFixedAssets, pageVo); + AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, + oaFixedAssetsDao.selectTotalRecord(oaFixedAssets)); + return result; + } + + /** + * 新增 + */ + @RemoveRequestToken + @RequestMapping(value = "/addOaFixedAssets") + public @ResponseBody + AjaxResult addOaFixedAssets(OaFixedAssets oaFixedAssets) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + oaFixedAssets.setCreateBy(user.getSuName()); + oaFixedAssets.setUpdateBy(user.getSuName()); + oaFixedAssets.setCompanyId(user.getCompanyId()); + int i = oaFixedAssetsDao.insert(oaFixedAssets); + if (i > 0) { + return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "固定资产"); + } else { + throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); + } + } + + + /** + * 修改 + */ + @RemoveRequestToken + @RequestMapping(value = "/modifyOaFixedAssets") + public @ResponseBody + AjaxResult modifyOaFixedAssets(OaFixedAssets newOaFixedAssets) { + OaFixedAssets oldOaFixedAssets = WebUtil.getSessionAttribute(BEV); + int i = 0; + Map<String, Object> modifyMap = null; + try { + if (!ModelUtils.isModified(oldOaFixedAssets, newOaFixedAssets)) { + i = MatrixConstance.DML_SUCCESSS; + } + modifyMap = ModelUtils.comparePojo2Map(oldOaFixedAssets, newOaFixedAssets); + } catch (Exception e) { + throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newOaFixedAssets); + } + if (modifyMap.size() > 0) { + modifyMap.put("id", oldOaFixedAssets.getId()); + oaFixedAssetsDao.updateByMap(modifyMap); + } + i = MatrixConstance.DML_SUCCESSS; + WebUtil.removeSessionAttribute(BEV); + if (i > 0) { + return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "固定资产"); + } else { + throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL); + } + } + + + /** + * 进入修改界面 + */ + @SaveRequestToken + @RequestMapping(value = "/editForm") + public ModelAndView editForm(String id) { + OaFixedAssets oaFixedAssets = new OaFixedAssets(); + ModelAndView modelAndView = new ModelAndView("admin/oa/assets/fixeAssets-form"); + if (id != null) { + oaFixedAssets = oaFixedAssetsDao.selectById(id); + WebUtil.setSessionAttribute(BEV, oaFixedAssets); + } + modelAndView.addObject("obj", oaFixedAssets); + return modelAndView; + } + + + /** + * 删除 + */ + @RequestMapping(value = "/del") + public @ResponseBody + AjaxResult del(String keys) { + List<String> ids = StringUtils.strToCollToString(keys, ","); + int i = oaFixedAssetsDao.deleteByIds(ids); + if (i > 0) { + return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i); + } else { + throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL); + } + } + + /** + * 总部导出服务单导出,不限门店 + */ + @RequestMapping(value = "/exportExcel") + public void erpExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, OaFixedAssets oaFixedAssets) throws Exception { + + + doExportServiceOrder(response, oaFixedAssets); + } + + + private void doExportServiceOrder(HttpServletResponse response, OaFixedAssets oaFixedAssets) throws IOException { + + List<ExcelSheetPO> res = new ArrayList<>(); + ExcelSheetPO orderSheet = new ExcelSheetPO(); + String title = "固定资产明细"; + orderSheet.setSheetName(title); + orderSheet.setTitle(title); + String[] header = {"资产类型", "资产编号", "资产型号", "所在部门", "成本价", "数量", "往来单位", "使用人"}; + orderSheet.setHeaders(header); + + List<OaFixedAssets> dataList = oaFixedAssetsDao.selectByModel(oaFixedAssets); + List<List<Object>> list = new ArrayList<>(); + if (dataList.size() > 0) { + for (OaFixedAssets item : dataList) { + List<Object> temp = new ArrayList<>(); + temp.add(item.getAssetsType()); + temp.add(item.getName()); + temp.add(item.getNumber()); + temp.add(item.getModel()); + temp.add(item.getDepartment()); + temp.add(item.getPrice()); + temp.add(item.getCount()); + temp.add(item.getSupplier()); + temp.add(item.getUser()); + list.add(temp); + } + } + orderSheet.setDataList(list); + res.add(orderSheet); + response = ResponseHeadUtil.setExcelHead(response); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); + OutputStream os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); + } + + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java index 5befb86..e055e95 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java @@ -47,7 +47,22 @@ */ public String getXcxLoginUrl(String code,Long companyId) { String wechatLoginUrl = PropertiesUtil.getString(WECHAT_LOGIN_URL); + return String.format(wechatLoginUrl, getAppid(companyId), getSecret(companyId), code); + } + + /** + * 获取管理端小程序登录地址 + * + * @param code + * @return + */ + public String getManagerXcxLoginUrl(String code) { + String wechatLoginUrl = PropertiesUtil.getString(WECHAT_LOGIN_URL); + String appId = PropertiesUtil.getString(AppConstance.MINI_PROGRAM_MANAGER_APP_ID); + String secret = PropertiesUtil.getString(AppConstance.MINI_PROGRAM_MANAGER_SECRET); + + return String.format(wechatLoginUrl, appId, secret, code); } /** @@ -67,8 +82,6 @@ BusParameterSettings secret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINIPROGRAM_SECRET, companyId); return secret.getParamValue(); } - - /** * 清空token diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java index 0b0eaac..e07d511 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java @@ -2,6 +2,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.init.UserCacheManager; import com.matrix.component.tools.HttpCurlUtil; import com.matrix.core.pojo.AjaxResult; 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 7982cf2..dee24d6 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 @@ -152,12 +152,23 @@ shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS); List<ShopOrderDetails> details = new ArrayList<>(); + // 是否包含实物商品 + boolean hasRealGoods = false; + Integer orderCount = 0; for (OrderItemDto orderItemDto : shopOrderDto.getOrderItemList()) { ShopOrderDetails shopOrderDetails = new ShopOrderDetails(); shopOrderDetails.setCreateBy(AppConstance.SYSTEM_USER); shopOrderDetails.setUpdateBy(AppConstance.SYSTEM_USER); shopOrderDetails.setpId(orderItemDto.getProductId()); + + if (!hasRealGoods) { + ShopProduct shopProduct = shopProductDao.selectById(orderItemDto.getProductId()); + if (shopProduct.getIsUnrealProduct() == 2) { + hasRealGoods = true; + } + } + shopOrderDetails.setsId(orderItemDto.getSkuId()); shopOrderDetails.setCount(orderItemDto.getCount()); if(ShopOrderDetails.PAYTYPE_MICRO==orderItemDto.getPayType()){ @@ -198,6 +209,10 @@ shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS); //购买方式 shopOrder.setShippingMethod(shopOrderDto.getDeliverySelect()); + // 客户选择的物流配送,且没有实物产品(全是虚拟产品), 则直接门店自提,无需填写配送单 + if (ShopOrder.SHIPPING_METHOD_WL == shopOrderDto.getDeliverySelect() && !hasRealGoods) { + shopOrder.setShippingMethod(ShopOrder.SHIPPING_METHOD_MDZT); + } //生成订单号 shopOrder.setOrderNo(WxUtils.getOrderNum()); //设置支付状态 diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java index 440cac1..73ef54d 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java @@ -272,6 +272,9 @@ private Long companyId; - + /** + * 是否虚拟产品 1/是 2/否 + */ + private Integer isUnrealProduct; } \ No newline at end of file diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties index d2d049e..ee23831 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_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?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 + +#spring.datasource.username=hive +#spring.datasource.password=hive123!@# +#spring.datasource.url=jdbc:mysql://124.70.222.34/hive_prd?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 +26,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/config/mdprd/system.properties b/zq-erp/src/main/resources/config/mdprd/system.properties index b601be1..30d25c6 100644 --- a/zq-erp/src/main/resources/config/mdprd/system.properties +++ b/zq-erp/src/main/resources/config/mdprd/system.properties @@ -59,7 +59,8 @@ wechar_login_url =https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code xcx_appid =wx3836ab3c1490ff29 xcx_secret =39a3687ec5b2666ed68e7c8b83b26b47 - +xcx_manager_appid=wx2948b3b914a9722e +xcx_manager_secret=1685dfd99a43e213ed8be07870b898ba #微信支付调试开关 wx_pay_debug_onoff = false diff --git a/zq-erp/src/main/resources/config/prd/system.properties b/zq-erp/src/main/resources/config/prd/system.properties index 9290b39..475b515 100644 --- a/zq-erp/src/main/resources/config/prd/system.properties +++ b/zq-erp/src/main/resources/config/prd/system.properties @@ -59,7 +59,8 @@ wechar_login_url =https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code xcx_appid =wx3836ab3c1490ff29 xcx_secret =39a3687ec5b2666ed68e7c8b83b26b47 - +xcx_manager_appid=wx2948b3b914a9722e +xcx_manager_secret=1685dfd99a43e213ed8be07870b898ba #微信支付调试开关 wx_pay_debug_onoff = false diff --git a/zq-erp/src/main/resources/config/system.properties b/zq-erp/src/main/resources/config/system.properties index 9355c08..e2c8614 100644 --- a/zq-erp/src/main/resources/config/system.properties +++ b/zq-erp/src/main/resources/config/system.properties @@ -51,6 +51,8 @@ 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 +xcx_manager_appid=wx2948b3b914a9722e +xcx_manager_secret=1685dfd99a43e213ed8be07870b898ba #公众号 gzh_appid=wx57e6335559bdbda6 diff --git a/zq-erp/src/main/resources/config/test/application.properties b/zq-erp/src/main/resources/config/test/application.properties index cc4b62c..cd48b66 100644 --- a/zq-erp/src/main/resources/config/test/application.properties +++ b/zq-erp/src/main/resources/config/test/application.properties @@ -6,7 +6,7 @@ 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.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=chuhuan #spring.datasource.password=chuhuan diff --git a/zq-erp/src/main/resources/config/test/system.properties b/zq-erp/src/main/resources/config/test/system.properties index 2a201f8..3f4c0ac 100644 --- a/zq-erp/src/main/resources/config/test/system.properties +++ b/zq-erp/src/main/resources/config/test/system.properties @@ -48,6 +48,8 @@ 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 +xcx_manager_appid=wx2948b3b914a9722e +xcx_manager_secret=1685dfd99a43e213ed8be07870b898ba gzh_appid=wx57e6335559bdbda6 gzh_secret=ecb408af170e3890e6544290cad33760 diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml index 6c01dba..5c612dd 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml @@ -231,6 +231,9 @@ <if test="_parameter.containsKey('comPlats')"> com_plats = #{comPlats}, </if> + <if test="_parameter.containsKey('comCode')"> + com_code = #{comCode}, + </if> </set> WHERE com_id=#{comId} </update> @@ -694,7 +697,8 @@ com_logo, com_valid, com_functions, - com_plats + com_plats, + com_code from sys_company where com_id=#{comId} </select> @@ -757,7 +761,8 @@ com_logo, com_valid, com_functions, - com_plats + com_plats, + com_code from sys_company <where> <if test="record!=null"> @@ -846,9 +851,13 @@ and com_functions = #{record.comFunctions} </if> <if - test="(record.comPlats!=null and record.comPlats!='') or (record.comPlats!='' and record.comPlats==0)"> + test="(record.comPlats!=null and record.comPlats!='') or (record.comPlats!='' and record.comPlats==0)"> and com_plats = #{record.comPlats} </if> + <if + test="(record.comCode!=null and record.comCode!='') or (record.comCode!='' and record.comCode==0)"> + and com_code = #{record.comCode} + </if> </if> </where> </select> diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml index 3c5c8b8..a1b0ef2 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml @@ -150,10 +150,21 @@ </if> </where> </delete> - - - - <!-- 分页查询 --> + <delete id="deleteByFns"> + DELETE a + FROM + sys_role_pwoer_fn a , sys_role b + WHERE + a.role_id = b.role_id + and b.company_id=#{companyId} + and a.fn_id in <foreach collection="list" index="index" item="item" open="(" + separator="," close=")"> + #{item} + </foreach> + </delete> + + + <!-- 分页查询 --> <select id="selectInPage" resultMap="SysRolePwoerFnMap"> select rpf_id, diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml index 615593d..5027633 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml @@ -486,6 +486,9 @@ <if test="signDate != null and signDate !='' "> sign_date = #{signDate} </if> + <if test="openIds != null and openIds !='' "> + open_ids = #{openIds} + </if> </set> WHERE su_id=#{suId} @@ -1328,4 +1331,19 @@ <select id="selectAppVersion" resultType="com.matrix.system.hive.bean.AppVersion"> select * from app_version </select> + + <select id="selectUserByOpenId" resultMap="SysUsersMap"> + select *, + (select GROUP_CONCAT(role_name separator ',') from sys_role where find_in_set(role_id,role_ids) ) roleName + from sys_users where find_in_set(#{openId}, open_ids) + <if test="companyId != null"> + and company_id=#{companyId} + </if> + </select> + + <update id="updateUserOpenId"> + update sys_users + set open_ids=#{openId} + where su_id=#{suId} + </update> </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml index 99190d7..0e05a28 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml @@ -989,6 +989,9 @@ <if test='record.t1 == "3" and record.datatime != null'> and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') </if> + <if test='record.t1 == "4" and record.datatime != null'> + and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') + </if> </where> group by a.shop_id order by amount desc, a.shop_id @@ -1020,6 +1023,9 @@ </if> <if test='record.t1 == "3" and record.datatime != null'> and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') + </if> + <if test='record.t1 == "4" and record.datatime != null'> + and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') </if> </where> group by a.beault_id @@ -1066,6 +1072,9 @@ <if test='record.type == "3" and record.datatime != null'> and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') </if> + <if test='record.t1 == "4" and record.datatime != null'> + and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') + </if> </where> group by b.su_id order by amount desc, b.su_id @@ -1092,6 +1101,9 @@ </if> <if test='record.t1 == "3" and record.datatime != null'> and date_format(a.create_time, '%Y') = date_format(#{record.datatime}, '%Y') + </if> + <if test='record.t1 == "4" and record.datatime != null'> + and date_format(a.create_time, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') </if> </where> group by a.shop_id @@ -1193,4 +1205,171 @@ </update> + + <select id="selectNumOfPeopleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo"> + select + b.su_name name, + b.su_id id, + b.su_photo photo, + sum(number_of_people) amount, + c.shop_short_name shopName + from achieve_new a + inner join sys_users b on a.beault_id=b.su_id + left join sys_shop_info c on a.shop_id=c.ID + <where> + <if test="record.companyId != null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId != null"> + and a.shop_id=#{record.shopId} + </if> + <if test='record.t1 == "1" and record.datatime != null'> + and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d') + </if> + <if test='record.t1 == "2" and record.datatime != null'> + and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m') + </if> + <if test='record.t1 == "3" and record.datatime != null'> + and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') + </if> + <if test='record.t1 == "4" and record.datatime != null'> + and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') + </if> + </where> + group by a.beault_id + order by amount desc + </select> + + <select id="selectDailyBeautyList" resultType="com.matrix.system.hive.vo.DailyBeautyListVo"> + select + date_format(b.datatime, '%Y-%m-%d') datatime, + a.su_id, + a.su_name beautyName, + c.id vipId, + c.VIP_NAME, + c.arrival_way, + case when c.BEATUY_ID=a.su_id then 1 else 0 end isAppoint, + (select count(distinct date_format(n.datatime, '%Y-%m-%d')) from achieve_new n + where date_format(b.datatime, '%Y-%m') = date_format(n.datatime, '%Y-%m') and n.vip_id=c.ID + group by date_format(n.datatime, '%Y-%m'))arriveCnt, + (select count(1) from sys_order o where o.statu in ('欠款', '已付款') and o.VIP_ID=c.id) orderCnt, + (select group_concat(distinct q.pay_method) payMethod from sys_order p + inner join sys_order_flow q on p.ID=q.ORDER_ID + inner join achieve_new o on o.order_id=p.id + where date_format(pay_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') and o.beault_id=a.su_id and c.ID=q.vip_id and p.STATU in ('欠款', '已付款') + group by p.VIP_ID) payMethods, + (select sum(amount) from sys_order_flow x + inner join achieve_new y on x.order_id=y.order_id + where x.pay_method='团购' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and y.beault_id=a.su_id and x.vip_id=c.id ) teamPay, + (select sum(m.ZK_PRICE) from sys_order_item m + inner join achieve_new n on n.ORDER_ID=m.order_id + where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and m.type in ('套餐', '项目') and n.beault_id=a.su_id) tcAndProjCash, + (select sum(m.ZK_PRICE) from sys_order_item m + inner join achieve_new n on n.ORDER_ID=m.order_id + where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and m.type in ('家居产品') and n.beault_id=a.su_id) productCash, + (select sum(m.ZK_PRICE) from sys_order_item m + inner join achieve_new n on n.ORDER_ID=m.order_id + where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and m.type in ('充值卡') and n.beault_id=a.su_id) cardCash, + (select sum(amount) from sys_order_flow x + inner join achieve_new y on x.order_id=y.order_id + where x.pay_method='储值卡' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and y.beault_id=a.su_id and x.vip_id=c.id) cardPay, + (select sum(amount) from sys_order_flow x + inner join achieve_new y on x.order_id=y.order_id + where x.pay_method not in ('储值卡','欠款') and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and y.beault_id=a.su_id and x.vip_id=c.id) cashPay, + (select sum(e.goods_cash) from achieve_new e + inner join shopping_goods f on e.shopping_goods_id=f.id and f.is_cooperate=1 + where e.order_type='订单' and date_format(e.datatime, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') + and e.beault_id=a.su_id and e.vip_id=c.id) cooperateProj, + sum(proj_percentage) ticheng, + sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume, + (select count(1) from achieve_new z where z.beault_id=a.su_id and c.id=z.vip_id and z.order_type='服务单' group by z.beault_id,z.vip_id) projCnt + from sys_users a + left join achieve_new b on a.su_id=b.beault_id + left join sys_vip_info c on b.vip_id=c.ID + where 1=1 + <if test="record.companyId != null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId != null"> + and a.shop_id=#{record.shopId} + </if> + <if test="record.beginTime != null"> + and date_format(b.datatime, '%Y-%m-%d') > date_format(#{record.beginTime}, '%Y-%m-%d') + </if> + <if test="record.endTime != null"> + and date_format(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d') + </if> + <if test="record.beaultId != null"> + and a.su_id=#{record.beaultId} + </if> + <if test="record.vipQueryKey != null and record.vipQueryKey != ''"> + and c.vip_name like concat('%', #{record.vipQueryKey}, '%') + </if> + <if test="record.beginTime == null and record.endTime == null"> + and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m') + </if> + group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID + <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> + order by date_format(b.datatime, '%Y-%m-%d') desc, a.su_id + <if test="pageVo.offset >=0 and pageVo.limit >0"> + limit + #{pageVo.offset},#{pageVo.limit} + </if> + </if> + </select> + + <select id="selectDailyBeautyListTotal" resultType="java.lang.Integer"> + select count(1) from ( + select + date_format(b.datatime, '%Y-%m-%d') datatime, + a.su_id, + a.su_name, + c.id vipId, + c.VIP_NAME, + c.arrival_way, + sum(proj_percentage) ticheng, + sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume + from sys_users a + left join achieve_new b on a.su_id=b.beault_id + left join sys_vip_info c on b.vip_id=c.ID + where 1=1 + <if test="record.companyId != null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId != null"> + and a.shop_id=#{record.shopId} + </if> + <if test="record.beginTime != null"> + and date_format(b.datatime, '%Y-%m-%d') > date_format(#{record.beginTime}, '%Y-%m-%d') + </if> + <if test="record.endTime != null"> + and date_format(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d') + </if> + <if test="record.beaultId != null"> + and a.su_id=#{record.beaultId} + </if> + <if test="record.vipQueryKey != null and record.vipQueryKey != ''"> + and c.vip_name like concat('%', #{record.vipQueryKey}, '%') + </if> + <if test="record.beginTime == null and record.endTime == null"> + and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m') + </if> + group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID + ) a + </select> + + <select id="selectPlInfoByVipIdAndDate" resultType="java.lang.String"> + select group_concat(concat(name,'*', bb)) + from (select l.name name, 0+CAST(sum(n.amount) as char) bb from sys_out_store m + inner join sys_out_store_item n on m.id=n.OUT_STORE_ID + inner join shopping_goods l on n.SKU_ID=l.id + where m.SERVICE_ID in (select distinct service_order_id from achieve_new where date_format(datatime, '%Y-%m-%d') = date_format(#{datatime}, '%Y-%m-%d') and vip_id=#{vipId}) + group by l.id) a + </select> </mapper> \ No newline at end of file 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 d9d505a..96da104 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml @@ -360,6 +360,12 @@ </where> order by create_time desc </select> + + <update id="updateVipCardId"> + update money_card_use_flow + set car_use_id=#{cardId} + where vip_id=#{vipId} and type='会员充值' + </update> </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml index 30fa7f3..42b4adc 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml @@ -308,8 +308,8 @@ invalid_time, pay_methods, is_infinite, - achieve_rule_id - + achieve_rule_id, + is_cooperate ) VALUES ( #{id}, @@ -371,8 +371,8 @@ #{invalidTime}, #{payMethods}, #{isInfinite}, - #{achieveRuleId} - + #{achieveRuleId}, + #{isCooperate} ) </insert> diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml index a9ba0be..955e108 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml @@ -494,7 +494,7 @@ MAX(pay_time) payTime, GROUP_CONCAT(DISTINCT t2.shop_short_name) shopName from sys_order t1 - left join sys_order_flow b on t1.id=b.ORDER_ID and pay_method!='储值卡' + left join sys_order_flow b on t1.id=b.ORDER_ID and pay_method!='储值卡' and pay_method!='欠款' left join sys_shop_info t2 on t1.SHOP_ID=t2.ID where t1.VIP_ID=#{vipId} and STATU='已付款'; </select> @@ -690,4 +690,8 @@ </select> + <select id="selectArrearsByVipId" resultType="java.math.BigDecimal"> + select sum(arrears) from sys_order + where vip_id=#{vipId} and statu='欠款' + </select> </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml index 5c56a95..55817bf 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml @@ -16,6 +16,7 @@ <result property="vipId" column="vip_id" /> <result property="payMethod" column="pay_method" /> <result property="cardId" column="card_id" /> + <result property="cardName" column="card_name" /> <result property="isGift" column="is_gift" /> <result property="orderNo" column="order_no" /> @@ -70,8 +71,9 @@ </delete> <select id="selectByOrderId" resultMap="SysOrderFlowMap"> - select a.*, b.order_no from sys_order_flow a + select a.*, b.order_no,c.card_name from sys_order_flow a left join sys_order b on a.order_id=b.id + left join money_card_use c on a.card_id=c.id where order_id=#{orderId} </select> @@ -97,12 +99,15 @@ a.pay_method as payMethod, a.flow_no as flowNo, d.shop_short_name as shopName, + f.card_name as cardName, e.su_name as staffName from sys_order_flow a LEFT JOIN sys_order b on a.order_id=b.ID LEFT JOIN sys_vip_info c on a.vip_id=c.ID LEFT JOIN sys_shop_info d on a.shop_id=d.ID LEFT JOIN sys_users e on e.su_id=b.STAFF_ID + left join money_card_use f on a.card_id=f.id + <where> and a.company_id=#{record.companyId} diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml index a3b0cd3..2e2de04 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml @@ -353,11 +353,12 @@ c.name as goodsName, g.name as cateName, a.COUNT, + a.COUNT * a.ZK_PRICE as total, a.refundCount, a.ZK_PRICE, a.IS_FREE, a.pay_method, - a.status + b.statu from sys_order_item a left join sys_order b on a.ORDER_ID=b.ID left join shopping_goods c on a.goods_id=c.id @@ -397,8 +398,8 @@ <if test="guwenId != null and guwenId != '' "> and b.STAFF_ID=#{guwenId} </if> - <if test="status != null and status != '' "> - and a.status=#{status} + <if test="statu != null and statu != '' "> + and b.statu=#{statu} </if> </where> @@ -449,8 +450,8 @@ <if test="guwenId != null and guwenId != '' "> and b.STAFF_ID=#{guwenId} </if> - <if test="status != null and status != '' "> - and a.status=#{status} + <if test="statu != null and statu != '' "> + and b.statu=#{statu} </if> </where> </select> diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml index e6ed5bb..558112d 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml @@ -140,7 +140,11 @@ <!-- 根据id更新 部分更新 --> <update id="updateOrderTime"> - UPDATE sys_proj_services set consume_time=#{consumeTime} WHERE id=#{id} + UPDATE sys_proj_services set + consume_time=#{serviceOrderTimeDto.consumeTime}, + yy_time=#{serviceOrderTimeDto.yyTime}, + create_time=#{serviceOrderTimeDto.createTime} + WHERE id=#{serviceOrderTimeDto.id} </update> <!-- 设置服务单为已通知 --> diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml index 957d259..335a873 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml @@ -728,13 +728,16 @@ a.type, a.SOURCE, e.ORDER_NO, - a.remark + a.remark, + s.SHOP_NAME from sys_proj_use a left join shopping_goods b on a.proj_id = b.id left join sys_vip_info c on c.ID = a.VIP_ID + left join sys_shop_info s on c.SHOP_ID=s.id left join sys_order_item d on d.id = a.ORDER_ITEM_ID left join sys_order e on e.id = d.ORDER_ID left join shopping_goods_category f on f.id = b.cate_id + <where> @@ -892,6 +895,8 @@ <collection property="taocanProjUse" ofType="com.matrix.system.hive.bean.SysProjUse"> <id property="id" column="proj_info_id" /> <result property="projName" column="proj_proj_name"/> + <result property="source" column="proj_source"/> + <result property="price" column="proj_price"/> <result property="failTime" column="proj_FAIL_TIME"/> <result property="surplusCount" column="proj_SURPLUS_COUNT"/> <result property="timeLength" column="proj_time_length"/> @@ -913,6 +918,8 @@ e.SURPLUS_COUNT proj_SURPLUS_COUNT, e.id proj_info_id, e.proj_id proj_projId, + e.source proj_source, + e.price proj_price, e.status proj_status, f.time_length proj_time_length, f.img proj_img @@ -937,4 +944,8 @@ </if> </select> + <select id="selectTaocanCountForCourseAndInfinite" resultType="java.lang.Integer"> + select count(1) from sys_proj_use + where taocan_id=#{taocanId} and vip_id=#{vipId} + </select> </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml index 4c304c9..ae9ebb7 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml @@ -1461,7 +1461,7 @@ c.LEVEL_NAME vipLevel, a.POINT_ALL integral, e.shop_short_name shopName, - sum(IFNULL(b.gift_money, 0) + IFNULL(b.real_money, 0)) totalBalance, + sum(IFNULL(b.real_money, 0)) totalBalance, sum(IFNULL(b.gift_money, 0)) giftBalance, (select sum(IFNULL(d.goods_cash, 0) + IFNULL(d.proj_cash, 0) + IFNULL(d.card_cash, 0)) from achieve_new d where d.vip_id=a.id) totalShopping from sys_vip_info a @@ -1473,8 +1473,68 @@ + <select id="selectVipArrearsStatistics" resultType="java.util.Map"> + select + a.VIP_NAME vipName, + a.PHONE phone, + c.shop_short_name shopName, + sum(b.arrears) arrears, + count(1) cnt, + d.su_name staffName + from sys_vip_info a + inner join sys_order b on a.ID=b.VIP_ID + inner join sys_shop_info c on a.SHOP_ID=c.ID + left join sys_users d on a.STAFF_ID=d.su_id + where b.STATU='欠款' and b.arrears!=0 + <if test="record.companyId!=null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId!=null"> + and a.shop_id=#{record.shopId} + </if> + <if test='record.vipName!=null and record.vipName!="" '> + and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%')) + </if> + group by a.id + <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> + <if test="pageVo.sort !=null and pageVo.order !=null"> + order by + ${pageVo.sort} ${pageVo.order} + </if> + <if test="pageVo.offset >=0 and pageVo.limit >0"> + limit + #{pageVo.offset},#{pageVo.limit} + </if> + </if> + </select> + <select id="selectVipArrearsStatisticsTotal" resultType="java.lang.Integer"> + select count(1) from ( + select + a.VIP_NAME vipName, + a.PHONE phone, + c.shop_short_name shopName, + sum(b.arrears) arrears, + count(1) cnt, + d.su_name staffName + from sys_vip_info a + inner join sys_order b on a.ID=b.VIP_ID + inner join sys_shop_info c on a.SHOP_ID=c.ID + left join sys_users d on a.STAFF_ID=d.su_id + where b.STATU='欠款' and b.arrears!=0 + <if test="record.companyId!=null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId!=null"> + and a.shop_id=#{record.shopId} + </if> + <if test='record.vipName!=null and record.vipName!="" '> + and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%')) + </if> + group by a.id + ) a + </select> </mapper> diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml index 91c105d..b0061e1 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml @@ -45,6 +45,7 @@ <result property="ableScorePay" column="able_score_pay"/> <result property="ableSales" column="able_sales"/> <result property="scoreCategoryId" column="score_category_id"/> + <result property="isUnrealProduct" column="is_unreal_product"/> <association property="shopCoupon" select="com.matrix.system.shopXcx.dao.ShopCouponDao.selectById" column="{id=couponId}"></association> @@ -123,6 +124,7 @@ company_id, able_score_pay, able_sales, + is_unreal_product, score_category_id </sql> @@ -161,7 +163,8 @@ #{item.shopIds}, #{item.companyId}, #{item.ableScorePay}, - #{item.ableSales}, + #{item.ableSales}, + #{item.isUnrealProduct}, #{item.scoreCategoryId} </sql> @@ -552,7 +555,10 @@ able_sales = #{record.ableSales}, </if> <if test="record.scoreCategoryId != null and record.scoreCategoryId "> - score_category_id = #{record.scoreCategoryId}, + score_category_id = #{record.scoreCategoryId}, + </if> + <if test="record.isUnrealProduct != null and record.isUnrealProduct"> + is_unreal_product = #{record.isUnrealProduct}, </if> </set> @@ -909,6 +915,7 @@ a.able_score_pay, a.able_sales, a.score_category_id, + a.is_unreal_product, (SELECT SUM(s.stock) from shop_sku s where s.p_id = a.id) as stockNum, (SELECT ROUND(SUM(s.stock),2) from shop_sku s where s.p_id = a.id) as stockNum, shop_ids diff --git a/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/index.html b/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/index.html index e106d1a..76758d7 100644 --- a/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/index.html +++ b/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/index.html @@ -11,7 +11,7 @@ .iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap} .iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word} </style> -<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script> +<script type="text/javascript" src="https://api.map.baidu.com/api?key=&v=1.1&services=true"></script> </head> <body onload="initMap();"> diff --git a/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/map.html b/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/map.html index b65ea1d..7029c94 100644 --- a/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/map.html +++ b/zq-erp/src/main/resources/static/js/plugin/kindeditor/plugins/baidumap/map.html @@ -7,7 +7,7 @@ html { height: 100% } body { height: 100%; margin: 0; padding: 0; background-color: #FFF } </style> - <script charset="utf-8" src="http://api.map.baidu.com/api?v=1.3"></script> + <script charset="utf-8" src="https://api.map.baidu.com/api?v=1.3"></script> <script> var map, geocoder; function initialize() { diff --git a/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js b/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js index ef97725..878dd39 100644 --- a/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js +++ b/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js @@ -121,6 +121,10 @@ var MTools = { + closeIframe: function () { + parent.layer.close(parent.layer.getFrameIndex(window.name)); + }, + /** 返回一个随机字符串 */ uuid : function() { diff --git a/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/map.html b/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/map.html index 8bf8afe..f457982 100644 --- a/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/map.html +++ b/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/map.html @@ -4,7 +4,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript" src="../internal.js"></script> - <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script> + <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.1&services=true"></script> <style type="text/css"> .content{width:530px; height: 350px;margin: 10px auto;} .content table{width: 100%} diff --git a/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/show.html b/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/show.html index 329cfeb..929fdd8 100644 --- a/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/show.html +++ b/zq-erp/src/main/resources/static/plugin/beditor/dialogs/map/show.html @@ -14,7 +14,7 @@ overflow: hidden; } </style> - <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script> + <script type="text/javascript" src="https://api.map.baidu.com/api?key=&v=1.1&services=true"></script> </head> <body onload="initMap();"> diff --git a/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/index.html b/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/index.html index 313bc61..664bc4b 100644 --- a/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/index.html +++ b/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/index.html @@ -12,7 +12,7 @@ .iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap} .iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word} </style> -<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script> +<script type="text/javascript" src="https://api.map.baidu.com/api?key=&v=1.1&services=true"></script> </head> <body onload="initMap();"> diff --git a/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/map.html b/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/map.html index b65ea1d..7029c94 100644 --- a/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/map.html +++ b/zq-erp/src/main/resources/static/plugin/kindeditor/plugins/baidumap/map.html @@ -7,7 +7,7 @@ html { height: 100% } body { height: 100%; margin: 0; padding: 0; background-color: #FFF } </style> - <script charset="utf-8" src="http://api.map.baidu.com/api?v=1.3"></script> + <script charset="utf-8" src="https://api.map.baidu.com/api?v=1.3"></script> <script> var map, geocoder; function initialize() { diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html index d3566c6..c047688 100644 --- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html +++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html @@ -52,6 +52,10 @@ <body> <div class="panel-body" id="app" v-cloak> <el-row> + <el-card class="box-card" style="background-color: #0a628f;"> + <div style="padding:10px;font-size: 20px;">¥{{basicdetail.balance}}</div> + <div>订单总金额</div> + </el-card > <el-card class="box-card" style="background-color: #0f9aef;"> <div style="padding:10px;font-size: 20px;">¥{{basicdetail.balance}}</div> <div>待计算金额</div> @@ -148,6 +152,7 @@ </el-form-item> <el-button type="primary" @click="search" >搜索</el-button> <el-button @click="resetForm('form')">重置</el-button> + <el-button>导出</el-button> </el-form> </el-col> </el-row> diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html index 888cad5..48bbaef 100644 --- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html +++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html @@ -343,7 +343,9 @@ } _this.shfs = data.mapInfo.shfs; _this.sqtj = data.mapInfo.sqtj; - _this.order = data.mapInfo.order; + if (!data.mapInfo.order && data.mapInfo.order != null) { + _this.order = data.mapInfo.order; + } } }); }, @@ -356,7 +358,7 @@ this.pushToSelectGoods(row); }, pushToSelectGoods(goods) { - + console.log(this.order) //判断是否被选中 let selected = false; for(let i = 0; i < this.order.length; i++){ diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html index 021105c..70680aa 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html @@ -408,6 +408,10 @@ label="支付方式"> </el-table-column> <el-table-column + prop="cardName" + label="储值卡名称"> + </el-table-column> + <el-table-column prop="flowNo" label="流水号"> </el-table-column> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/shop/shopInfo-form.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/shop/shopInfo-form.html index 6f50cb3..8eeeea3 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/shop/shopInfo-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/shop/shopInfo-form.html @@ -13,7 +13,7 @@ th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> - <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=Oego4OzlvPRPNyjCPTctXtuVNsSissOX"></script> + <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=Oego4OzlvPRPNyjCPTctXtuVNsSissOX"></script> </head> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html index 01cda5f..f7fe57f 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html @@ -168,7 +168,7 @@ achieveRulsList : [], shopList : [], achieveUsers : [], - years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021], + years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,2022], months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"], days : [], form : { diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html index c3b2a39..5ca688e 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html @@ -150,6 +150,11 @@ label="支付方式"> </el-table-column> <el-table-column + prop="cardName" + sortable="custom" + label="储值卡名称"> + </el-table-column> + <el-table-column prop="flowNo" label="支付流水号"> </el-table-column> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html index 9f946dd..62a5048 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html @@ -27,7 +27,7 @@ </div> <div class="form-group mr-20"> <label >订单状态</label> - <select class="form-control " name="status" > + <select class="form-control " name="statu" > <option value=''>--请选择订单状态--</option> <option value='欠款'>欠款</option> <option value='待付款'>待付款</option> @@ -92,9 +92,10 @@ <th data-field="VIP_NAME" >客户名</th> <th data-field="COUNT" data-sortable="true" >购买数量</th> <th data-field="ZK_PRICE" data-sortable="true" >单价</th> + <th data-field="total" >小计</th> <th data-field="su_name" >健康顾问</th> <th data-field="pay_method" >支付方式</th> - <th data-field="status" >状态</th> + <th data-field="statu" >状态</th> </tr> </thead> </table> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html index 02bf9f9..46bd288 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html @@ -43,6 +43,14 @@ <input autocomplete="off" placeholder="姓名/编号/电话" name="vipQueryKey" type="text" class="form-control" > </div> + <div class="form-group mr-20"> + <label >所属门店</label> <select + class="form-control autoFull" + data-url="/admin/shopInfo/findShops" data-value="id" + data-filed="shopName" name="shopId"> + <option value="">--请选择所属门店--</option> + </select> + </div> <div class="form-group mr-20"> <label>到期时间</label><!-- 入库时间的查询增加一个查询的其实时间两个字段 --> @@ -58,6 +66,7 @@ <tr> <th data-formatter="MGrid.indexfn" data-align="center" data-width="30px" >序号</th> <th data-field="VIP_NAME" >客户名</th> + <th data-field="SHOP_NAME" >客户门店</th> <th data-field="PROJ_NAME" >服务名称</th> <th data-field="FAIL_TIME" data-formatter="MGrid.getTime" data-sortable="true" >到期日期</th> <th data-field="SURPLUS_COUNT" data-sortable="true" >剩余次数</th> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html index 962a224..174a386 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html @@ -218,6 +218,7 @@ userList: [], treeSelect : [], payMoneys : [], + order:{}, printPaper : false, }, created : function() { @@ -324,8 +325,19 @@ data: _this.cardInfo, url: url, callback: function (data) { + _this.order.id = data.mapInfo.orderId; + if (_this.printPaper) { + _this.$message.success(data.info); _this.print(); + } else { + _this.$message.success({ + message : data.info, + duration : 1000, + onClose() { + _this.closeFrame(); + } + }); } if(parent.myGrid) { @@ -336,7 +348,7 @@ parent.app.vipInfoFn(); } - _this.closeFrame(); + // _this.closeFrame(); } }); } @@ -354,7 +366,7 @@ maxmin: true, content: [basePath + '/admin/order/printOrder?id=' + this.order.id], cancel: function (index, layero) { - _this.closeFram(); + _this.closeFrame(); } }); } else { diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html index 6a86a31..fb3829a 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html @@ -911,7 +911,7 @@ this.achieveList.push({ orderItem: item, staff: this.loginUser, - saleId: this.loginUser.suId, + saleId: _this.loginUser.suUserType === 'admin' ? '' : this.loginUser.suId, goodsCash: item.payMoney, achieveType : _this.achieveTypeList[0].value, commission: 0, @@ -1103,6 +1103,7 @@ //结算打印提示 if (submitType == 1) { if (_this.printPaper) { + _this.$message.success(data.info); _this.print(); } else { _this.$message.success({ diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html index 5ace9ce..2e3cc8b 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html @@ -421,6 +421,10 @@ label="支付方式"> </el-table-column> <el-table-column + prop="cardName" + label="储值卡名称"> + </el-table-column> + <el-table-column prop="flowNo" label="流水号"> </el-table-column> 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 106f1be..6f356c3 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 @@ -218,7 +218,7 @@ title: "修改订单时间", maxmin: true, area: [MUI.SIZE_L, '500px'], - content: [basePath + '/admin/projService/toServiceOrderUpdateTime?id=' + id] + content: [basePath + '/admin/redirect/hive/beautySalon/updateServiceOrderTimeV2?id=' +id] }); } diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html index 867bbc2..1287221 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html @@ -1,9 +1,4 @@ - - - - - -<!DOCTYPE HTML> +<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html new file mode 100644 index 0000000..5f36762 --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html @@ -0,0 +1,126 @@ +<!DOCTYPE HTML> +<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> +<head> + <meta charset="utf-8"> + <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> + <meta name="renderer" content="webkit|ie-comp|ie-stand"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> + <meta http-equiv="Cache-Control" content="no-siteapp"/> + <!-- 本框架基本脚本和样式 --> + <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script> + <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}"> + <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> + +</head> +<body> +<div class="ibox-content" id="app" v-cloak > + <el-form :model="serviceOrder" ref="form" label-width="100px" class="demo-form"> + + + <el-form-item label="创建时间"> + <el-date-picker v-model="serviceOrder.createTime" type="datetime"></el-date-picker> + </el-form-item> + + + <el-form-item label="预约时间"> + <el-date-picker v-model="serviceOrder.yyTime" type="datetime"></el-date-picker> + </el-form-item> + + + <el-form-item label="划扣时间"> + <el-date-picker v-model="serviceOrder.consumeTime" type="datetime" ></el-date-picker> + <span>修改划扣时间才会同步修改服务单业绩</span> + </el-form-item> + + <el-form-item> + <el-button type="primary" @click="submitForm('form')" >保存</el-button> + <el-button @click="closeFram()">关闭</el-button> + </el-form-item> + + </el-form> +</div> +</body> +<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> +<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script> +<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script> +<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script> +<script src="https://cdn.jsdelivr.net/npm/@riophae/vue-treeselect@^0.4.0/dist/vue-treeselect.umd.min.js"></script> +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@riophae/vue-treeselect@^0.4.0/dist/vue-treeselect.min.css"> + + +<script> + var id = $.query.get("id"); + + + var app = new Vue({ + el: '#app', + data: { + + //表单数据 + serviceOrder:{} + + }, + + /** + * 初始化数据表 + */ + created: function () { + this.loadData() + }, + + methods: { + loadData(){ + let _this=this; + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/projService/findServiceOrderInfoVo/'+id, + callback: function (data) { + _this.serviceOrder = data.data; + } + }); + }, + submitForm(){ + let _this=this; + let data={ + id:this.serviceOrder.id, + yyTime:this.serviceOrder.yyTime, + createTime:this.serviceOrder.createTime, + consumeTime:this.serviceOrder.consumeTime + } + AjaxProxy.requst({ + app: _this, + data: data, + contentType: 'application/json', + url: basePath + '/admin/projService/updateOrderTime', + callback: function (data) { + + _this.$message.success("修改成功"); + if(parent.myGrid){ + parent.myGrid.serchData() + } + if(parent.app){ + parent.app.serviceOrderQuery(); + } + setInterval(MTools.closeIframe(), 1000); + + } + }); + + }, + closeFram: function () { + + parent.layer.close(parent.layer.getFrameIndex(window.name)); + + }, + + } + + }) +</script> + +</body> +</html> + diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html index c2b4cda..cd96811 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html @@ -124,10 +124,12 @@ </el-col> </el-col> <el-col :span="8" style="float: right; margin-right: 20px;"> + <el-button type="primary" plain @click="recharge">充值</el-button> <el-button type="warning" plain @click="addOrder">开单</el-button> <el-button type="success" plain @click="addServiceOrder">开服务单</el-button> <el-button type="info" plain @click="exportExcel">导出项目</el-button> + <el-button type="primary" plain @click="openAdd">会员注册</el-button> </el-col> </el-header> <el-container> @@ -150,6 +152,7 @@ <el-row style="padding: 10px 20px;"> <p>余额:<span v-if="vipInfo.balance != null">{{vipInfo.balance}}元</span></p> <p>积分:<span v-if="vipInfo.pointAll != null">{{vipInfo.pointAll}}</span></p> + <p>欠款金额:<span v-if="vipInfo.arrears != null">{{vipInfo.arrears}} 元</span></p> <p>累计消费金额:<span v-if="vipInfo.totalMoney != null">{{vipInfo.totalMoney.toFixed(2)}} 元</span></p> <p>累计消费次数:<span v-if="vipInfo.totalTimes != null">{{vipInfo.totalTimes}} 次</span></p> <p>上次消费时间:<span v-if="vipInfo.payTime">{{vipInfo.payTime}}</span></p> @@ -819,6 +822,14 @@ } }, methods : { + openAdd(){ + layer.full(layer.open({ + type : 2, + title : "添加会员信息", + area : [ MUI.SIZE_L, '450px' ], + content : [ basePath+'/admin/vipInfo/editForm' ] + })); + }, //打开订单详情页面 openOrder(index,row){ layer.full(layer.open({ @@ -1106,7 +1117,7 @@ title : "充值卡变更记录", area : MUI.SIZE_M, maxmin : true, - content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId ] + content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId + "&cardId=" + row.id ] }); }, @@ -1242,7 +1253,7 @@ title: "修改订单时间", maxmin: true, area: [MUI.SIZE_L, '500px'], - content: [basePath + '/admin/projService/toServiceOrderUpdateTime?id=' + row.id] + content: [basePath + '/admin/redirect/hive/beautySalon/updateServiceOrderTimeV2?id=' + row.id] }); }, /********* 服务单tab end ***********/ diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/orgment/shopInfo-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/orgment/shopInfo-form.html index 1b8cfba..d9702b7 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/orgment/shopInfo-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/orgment/shopInfo-form.html @@ -13,7 +13,7 @@ th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> - <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=Oego4OzlvPRPNyjCPTctXtuVNsSissOX"></script> + <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=Oego4OzlvPRPNyjCPTctXtuVNsSissOX"></script> </head> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html index 22c1c0a..b760539 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html @@ -32,7 +32,7 @@ <h1 style="text-align: center;font-size: 18px;margin: 20px auto;"> {{order.shopName}} </h1> - <table style="width: 100%; font-size:12px;line-height: 20px;"> + <table style="width: 100%; font-size:12px;"> <tr> <td colspan="2"> @@ -56,7 +56,7 @@ </tr> </table> <p>--------------------------------</p> - <table style="width: 80%;font-size:12px;margin-top: 20px;text-align: left"> + <table style="width: 80%;font-size:12px;margin-top: 10px;text-align: left; margin-bottom: 5px;"> <tr> <th style="text-align: left;" colspan="4">产品</th> @@ -89,7 +89,7 @@ </tr> </table> <p>--------------------------------</p> - <table style="width: 100%;font-size: 10px;line-height: 30px;"> + <table style="width: 100%;font-size: 10px; margin-bottom: 5px;"> <tr > <td> <b >储值卡余额:</b><span >{{totalMoney}}</span> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html index f56a3dc..62f8f07 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html @@ -30,7 +30,7 @@ <h1 style="text-align: center;font-size:18px;margin: 20px auto;"> {{projService.shopName}} </h1> - <table style="width: 100%; font-size:10px;line-height: 20px;"> + <table style="width: 100%; font-size:10px;"> <tr> <td colspan="2"> @@ -53,7 +53,7 @@ </td> </tr> </table> - <table style="width: 80%;font-size:10px;margin-top: 20px;text-align: left"> + <table style="width: 80%;font-size:10px;margin-top: 10px;text-align: left; margin-bottom: 5px;"> <tr> <th style="text-align: left;" colspan="4">产品</th> </tr> @@ -70,12 +70,12 @@ <tr > <td>{{item.count }}</td> <td>{{item.projUse.price }}</td> - <td >{{item.projUse.surplusCount }}</td> + <td >{{item.projUse.remainCount == null ? "-" : item.projUse.remainCount}}</td> <td>{{item.beautiStaffInfo?item.beautiStaffInfo.suName:''}}</td> </tr> </template> </table> - <table style="width: 100%;font-size: 10px;line-height: 30px;"> + <table style="width: 100%;font-size: 10px; margin-bottom: 5px;"> <tr> <td> <b>本次划扣:</b> <span >{{projService.money}}</span> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html index 224cacb..82445c2 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html @@ -234,6 +234,17 @@ </el-col> </el-row> + <el-row> + <el-col :span="10"> + <el-form-item label="是否合作项目"> + <el-radio-group v-model="form.isCooperate"> + <el-radio label="2">否</el-radio> + <el-radio label="1">是</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + <p class="el-big-title">销售设置</p> @@ -1145,6 +1156,7 @@ //表单数据 form: { isPresent: '否', + isCooperate: '2', staus: '上架', //产品组合 assembleGoods: [], diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html new file mode 100644 index 0000000..809c75c --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html @@ -0,0 +1,223 @@ + +<!DOCTYPE HTML> +<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> +<head> + <meta charset="utf-8"> + <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> + <meta name="renderer" content="webkit|ie-comp|ie-stand"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> + <meta http-equiv="Cache-Control" content="no-siteapp" /> + <LINK rel="Bookmark" href="../images/favicon.ico"> + <!-- 本框架基本脚本和样式 --> + <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script> + <script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> + <script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script> + <script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> + <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}"> + <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> + <script type="text/javascript" th:src="@{/js/function/public.js}"></script> +</head> +<style> + .table-style { + margin: 20px 0; + padding: 20px 10px; + border: 1px solid #DCDFE6; + background-color: white; + } + .search-form { + background-color: white; + padding-top: 10px; + padding-left: 20px; + padding-bottom: 10px; + } +</style> +<body> +<div id="app" style=""> + <el-row class="search-form"> + <el-form ref="form" :model="form" inline> + <el-form-item label="日期范围"> + <el-date-picker v-model="form.timeRange" + type="datetimerange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期"> + </el-date-picker> + </el-form-item> + <el-form-item label="业绩归属人"> + <el-select v-model="form.beaultId" placeholder="请选择"> + <el-option v-for="item in achieveUsers" + :key="item.suId" + :label="item.suName" + :value="item.suId"></el-option> + </el-select> + </el-form-item> + <el-form-item label="会员"> + <el-input v-model="form.vipQueryKey"></el-input> + </el-form-item> + + <el-form-item label="门店"> + <el-select v-model="form.shopId" placeholder="请选择所属门店"> + <el-option v-for="item in shopList" + :key="item.id" + :label="item.shopName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-button type="primary" @click="search" >搜索</el-button> + <el-button @click="resetForm('form')">重置</el-button> + <!-- <el-button type="warning" @click="exportExcel">导出</el-button>--> + </el-form> + </el-row> + <el-row class="table-style"> + <el-table :data="tableData" style="width: 100%"> + <el-table-column type="index" width="30" fixed="left"></el-table-column> + <el-table-column prop="datatime" width="150" label="时间" fixed="left"></el-table-column> + <el-table-column prop="beautyName" label="美疗师" fixed="left"></el-table-column> + <el-table-column prop="vipName" label="客户" fixed="left"></el-table-column> + <el-table-column prop="isAppoint" label="是否指定客" width="100"> + <template slot-scope="scope"> + <span v-if="scope.row.isAppoint ==1 ">是</span> + <span v-else>否</span> + </template> + </el-table-column> + <el-table-column label="客流" align="center"> + <el-table-column prop="orderCnt" label="是否会员"> + <template slot-scope="scope"> + <span v-if="scope.row.orderCnt > 0">是</span> + <span v-else>否</span> + </template> + </el-table-column> + <el-table-column prop="arrivalWay" label="到店途径"></el-table-column> + <el-table-column prop="arriveCnt" label="当月到店次数" width="120"></el-table-column> + </el-table-column> + <el-table-column label="实操业绩" align="center"> + <el-table-column prop="projInfo" label="项目->消耗产品" width="230"></el-table-column> + <el-table-column prop="projCnt" label="项目数量"></el-table-column> + <el-table-column prop="ticheng" label="手工费"></el-table-column> + <el-table-column prop="consume" label="耗卡"></el-table-column> + </el-table-column> + <el-table-column label="现金业绩" align="center"> + <el-table-column prop="payMethods" label="消费类型" width="200"></el-table-column> + <el-table-column prop="orderType" label="特色项目"></el-table-column> + <el-table-column prop="teamPay" label="团购销售"></el-table-column> + <el-table-column prop="tcAndProjCash" label="卡项销售"></el-table-column> + <el-table-column prop="productCash" label="产品销售"></el-table-column> + <el-table-column prop="cardCash" label="会员充值"></el-table-column> + <el-table-column prop="cashPay" label="总业绩"></el-table-column> + <el-table-column prop="cardPay" label="划卡"></el-table-column> + </el-table-column> + </el-table> + <el-row style="margin-top: 10px;"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="page.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="page.size" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total"> + </el-pagination> + </el-row> + </el-row> +</div> +<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script> +<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script> +<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script> +<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> +<script type="text/javascript"> + var vue = new Vue({ + el : "#app", + data : { + tableData : [], + shopList : [], + form : { + timeRange : '', + vipQueryKey : '', + beaultId : '', + shopId : '' + }, + page : { + currentPage : 1, + size : 10, + total : 0 + } + }, + created : function() { + this.queryTableData(); + }, + methods : { + queryTableData() { + let _this = this; + let params = {}; + let page = _this.page; + let form = _this.form; + + if (form.timeRange) { + params.beginTime = form.timeRange?moment(form.timeRange[0]).format("YYYY-MM-DD HH:mm"):''; + params.endTime = form.timeRange?moment(form.timeRange[1]).format("YYYY-MM-DD HH:mm"):''; + } + params.vipQueryKey=form.vipQueryKey; + params.beaultId=form.beaultId; + params.limit = page.size; + params.offset = (page.currentPage - 1) * page.size; + AjaxProxy.requst({ + app: _this, + data: params, + url: basePath + "/admin/achieve/findDailyBeautyList", + callback: function (loj) { + _this.tableData = loj.rows; + _this.page.total = loj.total; + + _this.queryAchieveUsers(); + _this.queryShops(); + } + }); + }, + queryAchieveUsers() { + let _this = this; + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/getShopStaffByRoleName', + callback: function (data) { + _this.achieveUsers = data.rows; + } + }); + }, + resetForm(formName) { + // this.$refs[formName].resetFields(); + this.form = { + timeRange : '', + vipQueryKey : '', + beaultId : '' + } + }, + search() { + this.queryTableData(); + }, + queryShops() { + let _this = this; + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/shopInfo/findAllWithPermi', + callback: function (data) { + _this.shopList = data.rows; + } + }); + }, + handleSizeChange(val) { + this.page.size = val; + this.queryTableData(); + }, + handleCurrentChange(val) { + this.page.currentPage = val; + this.queryTableData(); + }, + } + }) +</script> +</body> +</html> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html index 01cda5f..e1eed9a 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html @@ -168,7 +168,7 @@ achieveRulsList : [], shopList : [], achieveUsers : [], - years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021], + years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"], days : [], form : { diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html index 130f97d..b77076e 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html @@ -137,6 +137,11 @@ label="支付方式"> </el-table-column> <el-table-column + prop="cardName" + sortable="custom" + label="储值卡名称"> + </el-table-column> + <el-table-column prop="flowNo" label="支付流水号"> </el-table-column> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html index 1a3af24..b714909 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html @@ -27,7 +27,7 @@ </div> <div class="form-group mr-20"> <label >订单状态</label> - <select class="form-control " name="status" > + <select class="form-control " name="statu" > <option value=''>--请选择订单状态--</option> <option value='欠款'>欠款</option> <option value='待付款'>待付款</option> @@ -84,9 +84,10 @@ <th data-field="VIP_NAME" >客户名</th> <th data-field="COUNT" data-sortable="true" >购买数量</th> <th data-field="ZK_PRICE" data-sortable="true" >单价</th> + <th data-field="total" >小计</th> <th data-field="su_name" >健康顾问</th> <th data-field="pay_method" >支付方式</th> - <th data-field="status" >状态</th> + <th data-field="statu" >状态</th> </tr> </thead> </table> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html index ab0f0cb..0df5c9d 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html @@ -42,7 +42,14 @@ <label>会员</label> <input autocomplete="off" placeholder="姓名/编号/电话" name="vipQueryKey" type="text" class="form-control" > </div> - + <div class="form-group mr-20"> + <label >所属门店</label> <select + class="form-control autoFull" + data-url="/admin/shopInfo/findShops" data-value="id" + data-filed="shopName" name="shopId"> + <option value="">--请选择所属门店--</option> + </select> + </div> <div class="form-group mr-20"> <label>到期时间</label><!-- 入库时间的查询增加一个查询的其实时间两个字段 --> @@ -58,6 +65,7 @@ <tr> <th data-formatter="MGrid.indexfn" data-align="center" data-width="30px" >序号</th> <th data-field="VIP_NAME" >客户名</th> + <th data-field="SHOP_NAME" >客户所属门店</th> <th data-field="PROJ_NAME" >服务名称</th> <th data-field="FAIL_TIME" data-formatter="MGrid.getTime" data-sortable="true" >到期日期</th> <th data-field="SURPLUS_COUNT" data-sortable="true" >剩余次数</th> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html new file mode 100644 index 0000000..5798f72 --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html @@ -0,0 +1,79 @@ + +<!DOCTYPE HTML> +<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> +<head> +<meta charset="utf-8"> +<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> +<meta name="renderer" content="webkit|ie-comp|ie-stand"> +<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> +<meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> +<meta http-equiv="Cache-Control" content="no-siteapp" /> +<LINK rel="Bookmark" href="../images/favicon.ico"> +<!-- 本框架基本脚本和样式 --> +<script type="text/javascript" + th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> +</head> +<body class="gray-bg"> + <div class="ibox-content"> + <!-- 搜索框部分start --> + <form class="form-inline" id="serchform"> + <div class="row mb-10"> + <div class="col-sm-8"> + <button onclick="myGrid.serchData()" type="button" class="btn btn-info btn-sm"><i class="fa fa-search" ></i> 搜索</button> + <button onclick="myGrid.resetForm()" type="button" class="btn btn-default btn-sm"><i class="fa fa-refresh " ></i> 重置</button> + </div> + </div> + <div class="form-group mr-20"> + <input autocomplete="off" placeholder="会员姓名/手机/编号" name="vipName" type="text" class="form-control" /> + </div> + <div class="form-group mr-20"> + <label for="staffId">健康顾问</label> + <select class="form-control autoFull select2" + th:data-url="@{/admin/shopAll}" + data-value="suId" + id="staffId" + data-filed="suName" + name="staffId"> + <option value="">--请选择顾问--</option> + </select> + </div> + </form> + <div id="option-bar" > + <button matrix:btn="bedList-exportExcel" onclick="exportExcel()" type="button" class="btn btn-default btn-sm"><i class="fa fa-download" ></i> 导出</button> + </div> + <table id="mgrid" data-url="" > + <thead> + <tr> + <th data-formatter="MGrid.indexfn" data-align="center" data-width="30px" >序号</th> + <th data-field="vipName">会员名称</th> + <th data-field="phone">手机号码</th> + <th data-field="shopName">所属门店</th> + <th data-field="arrears" data-sortable="true">欠款金额</th> + <th data-field="cnt" data-sortable="true">欠款订单</th> + <th data-field="staffName">所属顾问</th> + </tr> + </thead> + </table> + </div> + <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript"> + var myGrid; + $(function(){ + //初始化项目属性搜索列表 + MTools.autoFullSelect(); + $(".select2").select2(); + + myGrid=MGrid.initGrid({ + url:basePath+"/admin/vipStatistics/vipArrearsStatistics" + }); + }); + + // function exportExcel(){ + // var param=MForm.toUrlParam("#serchform"); + // window.location.href=basePath+"/admin/moneyCardUseStatistics/exportSummaryItemDetail?"+param; + // } + + </script> +</body> +</html> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html index f3a0475..67062b7 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html @@ -21,6 +21,7 @@ <form class="form-inline" id="serchform2"> <!-- 用于套餐的查询 --> <input autocomplete="off" type="hidden" name="vipId" th:value="${param.vipId}" class="vipId"> + <input autocomplete="off" type="hidden" name="carUseId" th:value="${param.cardId}" /> </form> </div> <div class="row mt-10"> diff --git a/zq-erp/src/main/resources/templates/views/admin/index.html b/zq-erp/src/main/resources/templates/views/admin/index.html index 219d21a..1e6217d 100644 --- a/zq-erp/src/main/resources/templates/views/admin/index.html +++ b/zq-erp/src/main/resources/templates/views/admin/index.html @@ -89,7 +89,7 @@ <i class="fa fa-user" ></i> <span style="line-height: 35px; color: #333; " th:utext="${session.userInfo.suName}+' | '"> </span> - <a style="line-height: 35px; color: #333; " target="_blank" href="https://www.yuque.com/books/share/70c39d28-6aac-4763-ae92-899ea5822a0d" > + <a style="line-height: 35px; color: #333; " target="_blank" href="https://www.yuque.com/books/share/7b10c3aa-f289-4f36-b402-5031fbd7f038" > <i class="fa fa-book" aria-hidden="true"></i> 帮助手册</a> </div> diff --git a/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html b/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html index e55eed3..35684c2 100644 --- a/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html @@ -55,6 +55,7 @@ <button matrix:btn="oaFixedAssets-add" onclick="openAdd()" type="button" class="btn btn-info btn-sm"><i class="fa fa-plus" ></i> 新增</button> <button matrix:btn="oaFixedAssets-edit" onclick="openEdit()" type="button" class="btn btn-info btn-sm"><i class="fa fa-edit" ></i> 编辑</button> <button matrix:btn="oaFixedAssets-dels" onclick="myGrid.delItems('id')" type="button" class="btn btn-danger btn-sm"><i class="fa fa-trash" ></i>批量删除</button> + <button onclick="exportExcel()" type="button" class="btn btn-info btn-sm"><i class="fa fa-download" ></i> 导出</button> </div> <!-- 数据表格部分 --> <table id="mgrid"> @@ -115,6 +116,12 @@ content: [basePath + '/admin/oaFixedAssets/editForm?id=' + id] }); } + + function exportExcel(){ + var param=MForm.toUrlParam("#serchform"); + window.location.href=basePath+"/admin/oaFixedAssets/exportExcel?"+param; + } + </script> </body> 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/main/resources/templates/views/admin/shop/shopAdvertisType-list.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html index 911708e..000a29b 100644 --- a/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html @@ -92,6 +92,34 @@ .drawer { overflow: scroll; } + + .assembly-style .el-form-item__content{ + margin-left: 0px !important; + display: flex; + align-items: center; + } + .assembly-style .el-input{ + width: 100px !important; + } + .assembly-style i{ + font-size: 30px; + } + .assembly-style .active{ + color: #409eff; + } + + .module-property{ + display: flex; + flex-wrap: wrap; + } + .module-property .el-form-item__content{ + margin-left: 0px !important; + display: flex; + align-items: center; + } + .module-property .el-input{ + width: 100px !important; + } </style> </head> <body> @@ -320,12 +348,36 @@ </el-col>--> </el-form-item> - <el-form-item label="CSS样式"> - <el-input v-model="currentNode.nodeStyleStr"></el-input> +<!-- <el-form-item label="CSS样式">--> +<!-- <el-input v-model="currentNode.nodeStyleStr"></el-input>--> +<!-- </el-form-item>--> + <el-form-item label="组件宽高" class="assembly-style"> + <el-input v-model="zjwidth" v-on:input="widthChange"></el-input> + <i :class="selected ? 'el-icon-link active' : 'el-icon-link'" @click="fixedProportion"></i> + <el-input v-model="zjheight" v-on:input="heightChange"></el-input> </el-form-item> - <el-form-item label="节点属性"> - <el-input v-model="currentNode.nodeAttribute"></el-input> +<!-- <el-form-item label="节点属性">--> +<!-- <el-input v-model="currentNode.nodeAttribute"></el-input>--> +<!-- </el-form-item>--> + <el-form-item label="组件属性"> +<!-- 1.图片--> +<!-- 6.滑块--> +<!-- 3.轮播图--> +<!-- 4.视频--> +<!-- 5.跑马灯文字--> + <el-from class="module-property" > + <el-form-item label="自动切换时间间隔(毫秒)"> + <el-input v-model="interval"></el-input> + </el-form-item> + <el-form-item label="前边距"> + <el-input v-model="previousMargin"></el-input> + </el-form-item> + <el-form-item label="后边距"> + <el-input v-model="nextMargin"></el-input> + </el-form-item> + </el-from> </el-form-item> + <el-form-item label="页面组"> <el-input v-model="currentNode.pageCode"></el-input> @@ -366,7 +418,6 @@ <script> - var id = $.query.get("id"); @@ -390,6 +441,14 @@ pageList:[], //当前编辑页面 currentPage:{}, + zjwidth:'', + zjheight:'', + selected:false, + //宽高比 + aspectRatio:'', + interval:'', + previousMargin:'', + nextMargin:'', }, created: function () { @@ -414,8 +473,17 @@ mounted: function () { }, - methods: { + widthChange(){ + if(this.selected){ + this.zjheight = parseInt(this.zjwidth/this.aspectRatio) + } + }, + heightChange(){ + if(this.selected){ + this.zjwidth = parseInt(this.zjheight*this.aspectRatio) + } + }, getHeight() { this.height = window.innerHeight - 40 + 'px'; }, @@ -431,15 +499,32 @@ spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.7)' }); + let f = e.target.files[0]; + let reader = new FileReader(); + reader.onload = function (e) { + let data = e.target.result; + //加载图片获取图片真实宽度和高度 + let image = new Image(); + image.onload=function(){ + let width = image.width; + let height = image.height; + _this.aspectRatio= width/height + }; + image.src= data; + }; + reader.readAsDataURL(f); + uploadForImage( basePath + "/admin/multipleUploadFile/doUpload", e.target.files[0], function (d, result) { + _this.process = d + "%"; if (d == 100) { if (result) { if (result.status == 200) { + loading.close(); _this.currentNode.ads[index].imgUrl = result.path; } else { @@ -512,8 +597,38 @@ }, clickNode(node) { + console.log(node) + var _this = this; this.currentNode = node; this.drawer = !this.drawer; + this.zjwidth = node.nodeStyle.width.substring(0,node.nodeStyle.width.length-2); + this.zjheight = node.nodeStyle.height.substring(0,node.nodeStyle.height.length-2); + let nodeAttribute = JSON.parse(node.nodeAttribute) + console.log(1111) + console.log(nodeAttribute) + if(nodeAttribute.interval){ + _this.interval = nodeAttribute['interval']; + _this.previousMargin = nodeAttribute['previous-margin']; + _this.nextMargin = nodeAttribute['next-margin']; + } + + + + + let image = new Image(); + image.onload = function() { + let width = image.width; // 宽 px + let height = image.height; // 高 px + _this.aspectRatio = width/height; + console.log(1111); + console.log(_this.aspectRatio); + } + if(node.ads){ + image.src = node.ads[0].imgUrl; + }else { + image.src = node.nodeValue; + } + }, //改变编辑页面,切换页面元素 @@ -521,7 +636,6 @@ this.currentPage=this.pageList[index]; this.currentPageCode=this.pageList[index].code; - console.log(this.currentPageCode); this.loadPageAds(); }, loadPageAds() { @@ -537,6 +651,8 @@ if (node.nodeStyle != null && node.nodeStyle.length > 1) { node.nodeStyleStr = node.nodeStyle; node.nodeStyle = JSON.parse(node.nodeStyle); + _this.zjwidth = node.nodeStyle.width.substring(0,node.nodeStyle.width.length-2); + _this.zjheight = node.nodeStyle.height.substring(0,node.nodeStyle.height.length-2); } } _this.adNodes = data.rows; @@ -601,9 +717,18 @@ if (!this.validation(cNode)) { return false; } + let zjw = this.zjwidth; + let zjh = this.zjheight; + if(zjw != null && zjh != null){ + cNode.nodeStyleStr = '{"width":"'+zjw+'px","height":"'+zjh+'px"}'; + } + if(this.interval != null && this.previousMargin != null && this.nextMargin != null && this.interval != '' && this.previousMargin != '' && this.nextMargin != ''){ + cNode.nodeAttribute = '{\"interval\":'+this.interval+',\"previous-margin\":'+this.previousMargin+',\"next-margin\":'+this.nextMargin+'}'; + } if (cNode.nodeStyleStr != null && cNode.nodeStyleStr.length > 1) { cNode.nodeStyle = JSON.parse(cNode.nodeStyleStr); + } let data = { @@ -673,7 +798,14 @@ "1" ); }, - + fixedProportion(){ + let _this = this; + _this.selected = !_this.selected + if(_this.selected){ + _this.zjwidth = 0 + _this.zjheight = 0 + } + }, }, destroyed() { diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html index d8ed383..d3ad1c5 100644 --- a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html @@ -196,6 +196,22 @@ </div> + + <div class="form-group"> + <label class="col-sm-2 control-label">是否虚拟产品 + </label> + <div class="col-sm-4"> + <select th:field="${obj.isUnrealProduct}" class="form-control select2 " size="1" + name="isUnrealProduct" + style="width: 100%"> + <option value="2" th:selected="${obj.isUnrealProduct == '2'}">否</option> + <option value="1" th:selected="${obj.isUnrealProduct == '1'}">是</option> + </option> + + </select> + </div> + + </div> </div> </div> </div> @@ -807,13 +823,22 @@ sku.sort = sort; //推广提成 var selfPrice = tds.eq(length - 5).find("input").val(); + if(selfPrice == ""){ + selfPrice = 0; + } sku.selfPrice = selfPrice; //推广提成 var sealesPrice = tds.eq(length - 4).find("input").val(); + if(sealesPrice == ""){ + sealesPrice = 0; + } sku.sealesPrice = sealesPrice; //邀请提成 var invitationPrice = tds.eq(length - 3).find("input").val(); + if(invitationPrice == ""){ + invitationPrice = 0; + } sku.invitationPrice = invitationPrice; //兑换所需金额 diff --git a/zq-erp/src/main/resources/templates/views/common/login.html b/zq-erp/src/main/resources/templates/views/common/login.html index 3ae470b..5bc7de7 100644 --- a/zq-erp/src/main/resources/templates/views/common/login.html +++ b/zq-erp/src/main/resources/templates/views/common/login.html @@ -271,9 +271,9 @@ href="https://pubstorage-bucket.oss-cn-shenzhen.aliyuncs.com/tools/xp/49.0.2623.112_chrome_installer.exe " target="_blank">谷歌浏览器(推荐)</a><span>|</span><strong>打印控件:</strong><a href="https://pubstorage-bucket.oss-cn-shenzhen.aliyuncs.com/tools/CLodop_Setup_for_Win32NT_https_3.056Extend.exe" - target="_blank">下载控件</a><span>|</span><strong>APP:</strong><a + target="_blank">下载控件</a><span>|</span><!--<strong>APP:</strong><a href="http://testfile.hive.jyymatrix.cc/mobile/download.html" - target="_blank">下载APP客户端</a> + target="_blank">下载APP客户端</a>--> </p> </div> </div> diff --git a/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html b/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html index a393e47..6ef40ca 100644 --- a/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html +++ b/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html @@ -1,199 +1,199 @@ <!DOCTYPE HTML> <html> <head> -<meta charset="utf-8"> -<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> -<meta name="renderer" content="webkit|ie-comp|ie-stand"> -<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> -<meta name="viewport" - content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> -<meta http-equiv="Cache-Control" content="no-siteapp" /> -<!-- 本框架基本脚本和样式 --> -<script type="text/javascript" - th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> -<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> + <meta charset="utf-8"> + <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> + <meta name="renderer" content="webkit|ie-comp|ie-stand"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> + <meta http-equiv="Cache-Control" content="no-siteapp" /> + <!-- 本框架基本脚本和样式 --> + <script type="text/javascript" + th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> + <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> -<!-- 界面单独引入的其他样式和脚本 --> -<link rel="stylesheet" - th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" type="text/css"> -<script type="text/javascript" - th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script> -<script type="text/javascript" - th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script> + <!-- 界面单独引入的其他样式和脚本 --> + <link rel="stylesheet" + th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" type="text/css"> + <script type="text/javascript" + th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script> + <script type="text/javascript" + th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script> <style> - #treeDemo{ - height: 500px; - overflow: scroll; - width: 300px; - } + #treeDemo{ + height: 500px; + overflow: scroll; + width: 300px; + } </style> </head> <body> - <div class="ibox-content"> - <form class="form-horizontal" id="dataform" - onsubmit="javascripr:return false;"> - <input type="hidden" name="tokenUrl" th:value="${tokenUrl}"> <input - type="hidden" name="token" th:value="${token}"> <input - type="hidden" name="comId" th:value="${obj.comId }"> - <div class="form-group"> - <label class="col-sm-2 control-label">公司名称<span +<div class="ibox-content"> + <form class="form-horizontal" id="dataform" + onsubmit="javascripr:return false;"> + <input type="hidden" name="tokenUrl" th:value="${tokenUrl}"> <input + type="hidden" name="token" th:value="${token}"> <input + type="hidden" name="comId" th:value="${obj.comId }"> + <div class="form-group"> + <label class="col-sm-2 control-label">公司名称<span class="text-danger">*</span></label> - <div class="col-sm-4"> - <input type="text" dataType="*1-100" class="form-control" - name="comName" th:value="${obj.comName }" - nullmsg="公司名称不能为空"> - <div class="Validform_checktip"></div> - </div> - <label class="col-sm-2 control-label">联系人<span - class="text-danger">*</span></label> - <div class="col-sm-4"> - <input type="text" dataType="*1-50" class="form-control" - th:value="${obj.comBoss }" name="comBoss" nullmsg="联系人不能为空"> - <div class="Validform_checktip"></div> - </div> + <div class="col-sm-4"> + <input type="text" dataType="*1-100" class="form-control" + name="comName" th:value="${obj.comName }" + nullmsg="公司名称不能为空"> + <div class="Validform_checktip"></div> </div> - <div class="form-group"> - <label class="col-sm-2 control-label">联系电话</label> - <div class="col-sm-4"> - <input type="text" dataType="*11-11" class="form-control" - name="comBossTel" ignore="ignore" th:value="${obj.comBossTel }" + <label class="col-sm-2 control-label">联系人<span + class="text-danger">*</span></label> + <div class="col-sm-4"> + <input type="text" dataType="*1-50" class="form-control" + th:value="${obj.comBoss }" name="comBoss" nullmsg="联系人不能为空"> + <div class="Validform_checktip"></div> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">联系电话</label> + <div class="col-sm-4"> + <input type="text" dataType="*11-11" class="form-control" + name="comBossTel" ignore="ignore" th:value="${obj.comBossTel }" nullmsg="联系电话不能为空"> - <div class="Validform_checktip"></div> - </div> - <label class="col-sm-2 control-label">地址</label> - <div class="col-sm-4"> - <input type="text" dataType="*1-510" class="form-control" - ignore="ignore" th:value="${obj.comAddress }" name="comAddress" - nullmsg="地址不能为空"> - <div class="Validform_checktip"></div> - </div> + <div class="Validform_checktip"></div> </div> - <div class="form-group"> - <label class="col-sm-2 control-label">网站地址</label> - <div class="col-sm-4"> - <input type="text" class="form-control" - th:value="${obj.comWebUrl }" name="comWebUrl" - nullmsg="网站不能为空"> - <div class="Validform_checktip"></div> - </div> - <label class="col-sm-2 control-label">企业可以用店铺数</label> - <div class="col-sm-4"> - <input type="text" dataType="n" class="form-control" - ignore="ignore" th:value="${obj.comAge}" name="comAge" - nullmsg="企业可以用店铺数不能为空"> - <div class="Validform_checktip"></div> - </div> + <label class="col-sm-2 control-label">地址</label> + <div class="col-sm-4"> + <input type="text" dataType="*1-510" class="form-control" + ignore="ignore" th:value="${obj.comAddress }" name="comAddress" + nullmsg="地址不能为空"> + <div class="Validform_checktip"></div> </div> - <div class="form-group"> - <label class="col-sm-2 control-label">企业功能</label> - <div class=" ztree col-sm-9" id="treeDemo"></div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">网站地址</label> + <div class="col-sm-4"> + <input type="text" class="form-control" + th:value="${obj.comWebUrl }" name="comWebUrl" + nullmsg="网站不能为空"> + <div class="Validform_checktip"></div> </div> - <div class="form-group "> - <div class="col-sm-12 text-center"> - <a href="javascript:;" onclick="myForm.submit()" - class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a> - <a class="btn btn-danger radius" href="javascript:;" - onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a> - </div> + <label class="col-sm-2 control-label">企业可以用店铺数</label> + <div class="col-sm-4"> + <input type="text" dataType="n" class="form-control" + ignore="ignore" th:value="${obj.comAge}" name="comAge" + nullmsg="企业可以用店铺数不能为空"> + <div class="Validform_checktip"></div> </div> - </form> - </div> - <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> - <script th:inline="javascript"> - var invokeUrl = basePath+"/admin/sysCompany/addCompany"; - /*<![CDATA[*/ - var obj=/*[[${obj}]]*/ - /*]]>*/ + </div> + <div class="form-group"> + <label class="col-sm-2 control-label">企业功能</label> + <div class=" ztree col-sm-9" id="treeDemo"></div> + </div> + <div class="form-group "> + <div class="col-sm-12 text-center"> + <a href="javascript:;" onclick="myForm.submit()" + class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a> + <a class="btn btn-danger radius" href="javascript:;" + onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a> + </div> + </div> + </form> +</div> +<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> +<script th:inline="javascript"> + var invokeUrl = basePath+"/admin/sysCompany/addCompany"; + /*<![CDATA[*/ + var obj=/*[[${obj}]]*/ + /*]]>*/ + if(obj.comId!=null){ + invokeUrl = basePath+"/admin/sysCompany/modifyCompany"; + } + + var myForm = null; + var tree = null; + $(function() { + MTools.autoFullSelect(); + $(".select2").select2({ + 'width' : '100%' + }); + myForm = MForm.initForm({ + invokeUrl : invokeUrl, + beforeSubmit : function() { + var items = tree.getCheckedNodes(); + var keys = ""; + for (var i = 0; i < items.length; i++) { + keys += items[i]["id"] + ","; + } + myForm.initParam.extendParam = { + "comFunctions" : keys + }; + }, + afterSubmit : function() { + parent.myGrid.serchData(); + }, + }); + initFunctionList(); + }); + + function initFunctionList() { + var zNodes = new Array(); + $.AjaxProxy().invoke( + basePath+"/admin/sysFunction/all", + function(loj) { + for (var i = 0; i < loj.getRowCount(); i++) { + zNodes[i] = createNode(loj.getString(i, "fnId"), + loj.getString(i, "fnParentId"), loj + .getString(i, "fnName")); + } + initTree(zNodes); + }); + } + + function initTree(zNodes) { + var setting = { + check : { + enable : true, + chkStyle : "checkbox", + radioType : "level", + chkboxType : { + "Y" : "ps", + "N" : "ps" + } + }, + view : { + dblClickExpand : false, + showLine : true, + }, + data : { + simpleData : { + enable : true, + idKey : "id", + pIdKey : "pId", + rootPId : "" + } + }, + + }; + tree = $.fn.zTree.init($("#treeDemo"), setting, zNodes); + } + + function createNode(id, parentId, name) { + var o = new Object(); + o.id = id; + o.pId = parentId; + o.name = name; + o.open = true; + //如果是编辑则设置节点选中 if(obj.comId!=null){ - invokeUrl = basePath+"/admin/sysCompany/modifyCompany"; + //var fns = "${obj.comFunctions}"; + var fns = obj.comFunctions; + if (fns.indexOf(id) != -1) { + o.checked = true; + } } - var myForm = null; - var tree = null; - $(function() { - MTools.autoFullSelect(); - $(".select2").select2({ - 'width' : '100%' - }); - myForm = MForm.initForm({ - invokeUrl : invokeUrl, - beforeSubmit : function() { - var items = tree.getCheckedNodes(); - var keys = ""; - for (var i = 0; i < items.length; i++) { - keys += items[i]["id"] + ","; - } - myForm.initParam.extendParam = { - "comFunctions" : keys - }; - }, - afterSubmit : function() { - parent.myGrid.serchData(); - }, - }); - initFunctionList(); - }); - - function initFunctionList() { - var zNodes = new Array(); - $.AjaxProxy().invoke( - basePath+"/admin/sysFunction/all", - function(loj) { - for (var i = 0; i < loj.getRowCount(); i++) { - zNodes[i] = createNode(loj.getString(i, "fnId"), - loj.getString(i, "fnParentId"), loj - .getString(i, "fnName")); - } - initTree(zNodes); - }); - } - - function initTree(zNodes) { - var setting = { - check : { - enable : true, - chkStyle : "checkbox", - radioType : "level", - chkboxType : { - "Y" : "ps", - "N" : "ps" - } - }, - view : { - dblClickExpand : false, - showLine : true, - }, - data : { - simpleData : { - enable : true, - idKey : "id", - pIdKey : "pId", - rootPId : "" - } - }, - - }; - tree = $.fn.zTree.init($("#treeDemo"), setting, zNodes); - } - - function createNode(id, parentId, name) { - var o = new Object(); - o.id = id; - o.pId = parentId; - o.name = name; - o.open = true; - //如果是编辑则设置节点选中 - if(obj.comId!=null){ - //var fns = "${obj.comFunctions}"; - var fns = obj.comFunctions; - if (fns.indexOf(id) != -1) { - o.checked = true; - } - } - - return o; - } - </script> + return o; + } +</script> </body> </html> \ No newline at end of file diff --git a/zq-erp/src/main/resources/templates/views/super/sysCompany-list.html b/zq-erp/src/main/resources/templates/views/super/sysCompany-list.html index 9717af5..635c5fb 100644 --- a/zq-erp/src/main/resources/templates/views/super/sysCompany-list.html +++ b/zq-erp/src/main/resources/templates/views/super/sysCompany-list.html @@ -82,6 +82,7 @@ <th data-field="comBossTel">联系电话</th> <th data-field="comAddress">地址</th> <th data-field="comWebUrl" data-formatter="MGrid.getUrl">网站</th> + <th data-field="comCode">公司编码</th> <th data-align="center" data-width="150px" data-field="comId" data-formatter="buidOperate">操作 </th> diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java index a3fab25..d261d4e 100644 --- a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java +++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java @@ -105,14 +105,32 @@ 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); + + ParameterSettings newSetting11=new ParameterSettings(); + newSetting11.setCode(AppConstance.OPEN_SERVICE_ORDER_AUTO_BATCHING); + newSetting11.setName("开启服务单自动配料"); + newSetting11.setType(1); + newSetting11.setCategory("店务配置"); + newSettings.add(newSetting11); for (ParameterSettings newSetting : newSettings) { List<ParameterSettings> parameterSettings = parameterSettingsDao.selectByModel(newSetting); if(CollectionUtil.isEmpty(parameterSettings)){ parameterSettingsDao.insert(newSetting); System.out.println("新增配置"+newSetting.getName()); - }else { - System.out.println("配置"+newSetting.getName()+"已经存在"); } addSettingsTOAllCompany(newSetting); } @@ -131,8 +149,6 @@ busParameterSettings.setParamValue(""); busParameterSettingsDao.insert(busParameterSettings); System.out.println(sysCompany.getComName()+"新增成功"); - }else{ - System.out.println("公司"+sysCompany.getComName()+"已经存在配置"+newSetting.getName()); } } 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