From fa215acbed2974de77844a0749a68d27076e920b Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 16 Jan 2021 13:53:47 +0800 Subject: [PATCH] Merge branch 'api' of https://gitee.com/jyyforjava/zq-erp into api --- zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml | 27 +++ zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java | 2 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 16 + zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java | 275 ++++++++++++++++++--------------- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java | 1 zq-erp/src/main/java/com/matrix/core/pojo/PaginationDto.java | 75 +++++++++ zq-erp/src/main/java/com/matrix/core/pojo/PaginationVO.java | 2 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml | 9 zq-erp/src/main/java/com/matrix/system/app/dto/ServiceVipProjDto.java | 2 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListProjVo.java | 2 zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java | 3 zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java | 24 ++ zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListVo.java | 11 + zq-erp/src/main/resources/templates/views/admin/shop/templateMsg-form.html | 13 + zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopWxtemplateMsgDao.xml | 15 + 15 files changed, 333 insertions(+), 144 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/core/pojo/PaginationDto.java b/zq-erp/src/main/java/com/matrix/core/pojo/PaginationDto.java new file mode 100644 index 0000000..90f6c88 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/core/pojo/PaginationDto.java @@ -0,0 +1,75 @@ +package com.matrix.core.pojo; + +/** + * @author 姜友瑶 E-mail:<935090232@qq.com> + * @date 2021年1月15日 + * @description 分页信息类 + */ +public class PaginationDto { + + /** + * 起点 + */ + private Integer offset = 0; + /** + * 查询条数 + */ + private Integer limit =15; + + /** + * 排序方式 + */ + private String order; + /** + * 排序字段 + */ + private String sort; + + public Integer getOffset() { + return offset; + } + + public void setOffset(Integer offset) { + this.offset = offset; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } + + public String getSort() { + return propertyToColumn(sort); + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String propertyToColumn(String property) { + if(property==null){ + return null; + } + StringBuffer columnName = new StringBuffer(property); + for (int i = 0; i < columnName.length(); i++) { + if (columnName.charAt(i) >= 'A' && columnName.charAt(i) <= 'Z') { + String upcase = "_" + (columnName.charAt(i) + "").toLowerCase(); + columnName.replace(i, i + 1, upcase); + } + } + return columnName.toString(); + } + + +} diff --git a/zq-erp/src/main/java/com/matrix/core/pojo/PaginationVO.java b/zq-erp/src/main/java/com/matrix/core/pojo/PaginationVO.java index 43bee19..8c11a72 100644 --- a/zq-erp/src/main/java/com/matrix/core/pojo/PaginationVO.java +++ b/zq-erp/src/main/java/com/matrix/core/pojo/PaginationVO.java @@ -5,7 +5,7 @@ * @date 2016年6月24日 * @description 分页信息类 */ -public class PaginationVO extends EntityDTO{ +public class PaginationVO { /** * 起点 diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java index 8fb17d1..f82587d 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java @@ -175,6 +175,9 @@ if (balanceverifyResult.isError()) { return new AjaxResult(AjaxResult.STATUS_FAIL, balanceverifyResult.getMsg()); } + + // 设置状态为待预约 + sysProjServices.setState(Dictionary.SERVICE_STATU_DYY); SysProjServices newSysProjServices = projServicesService.addSysProjServices(sysProjServices); if (newSysProjServices != null) { return AjaxResult.buildSuccessInstance("下单成功"); diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java index 4a405f6..5b2679d 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java @@ -13,8 +13,11 @@ @ApiModelProperty(value = "查询参数") private String queryKey; - @ApiModelProperty(value = "状态 0/全部 1/待确认 2/待排班 3/待配料 4/待服务 5/服务中 6/已完成") + @ApiModelProperty(value = "状态 0/全部 1/待确认 2/待排班 3/待配料 4/待服务 5/服务中 6/已完成 ") private String status; + + @ApiModelProperty(value = "客户视角状态 0/全部 1/待确认 2进行中(待排班/待配料/待服务/服务中) 3/待评价(已完成/服务结束) 4/已评价 5/已取消 ") + private String vipStatus; @ApiModelProperty(hidden = true) private Long shopId; @@ -22,6 +25,25 @@ @ApiModelProperty(hidden = true) private Long userId; + @ApiModelProperty(value = "客户ID") + private Long vipId; + + public String getVipStatus() { + return vipStatus; + } + + public void setVipStatus(String vipStatus) { + this.vipStatus = vipStatus; + } + + public Long getVipId() { + return vipId; + } + + public void setVipId(Long vipId) { + this.vipId = vipId; + } + public Long getUserId() { return userId; } diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceVipProjDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceVipProjDto.java index 9e42b01..24ae2a3 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceVipProjDto.java +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/ServiceVipProjDto.java @@ -19,7 +19,7 @@ @ApiModelProperty(value = "查询参数") private String queryKey; - @ApiModelProperty(value = "类型 0-全部 1-有效 2-有效 3-一个月内过期") + @ApiModelProperty(value = "类型 0-全部 1-有效 2-无效 3-一个月内过期") private String type; public Long getVipId() { diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListProjVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListProjVo.java index b1102ef..beb6247 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListProjVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListProjVo.java @@ -19,6 +19,8 @@ @ApiModelProperty(value = "美疗师") private String beautyName; + + public Long getId() { return id; } diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListVo.java index bf7e1ae..59561f0 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceOrderListVo.java @@ -34,6 +34,9 @@ @ApiModelProperty(value = "会员名称") private String vipName; + @ApiModelProperty(value = "门店名称") + private String shopName; + @ApiModelProperty(value = "服务时长") private Integer timeLength; @@ -122,6 +125,14 @@ return status; } + public String getShopName() { + return shopName; + } + + public void setShopName(String shopName) { + this.shopName = shopName; + } + public void setStatus(String status) { switch (status) { case "待预约" : diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java index f1b1260..18b77fa 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java +++ b/zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java @@ -139,9 +139,7 @@ SysUsers loginUser = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); loginUser.setCreateBy(loginUser.getSuName()); sysUsers.setCompanyId(loginUser.getCompanyId()); - sysUsers.setShopId(loginUser.getShopId()); int i = sysUsersService.addAdmin(sysUsers); - if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, AppVocabularyCode.ADMIN); } else { 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 805e295..d1aeb5f 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 @@ -119,13 +119,15 @@ public SysProjServices addSysProjServices(SysProjServices sysProjServices) throws GlobleException { //创建服务单 - SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); - sysProjServices.setCreateStaffId(user.getSuId()); - sysProjServices.setShopId(user.getShopId()); - sysProjServices.setCompanyId(user.getCompanyId()); + if(WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY)!=null){ + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + sysProjServices.setCreateStaffId(user.getSuId()); + sysProjServices.setShopId(user.getShopId()); + sysProjServices.setCompanyId(user.getCompanyId()); + } + + sysProjServices.setCreateTime(new Date()); - // 设置状态为待预约 - sysProjServices.setState(Dictionary.SERVICE_STATU_DQR); sysProjServices.setServiceNo(codeService.getServiceOrderCode()); Double hkPrice = 0.0; int i = sysProjServicesDao.insert(sysProjServices); @@ -209,7 +211,7 @@ //插入订单明细 sysBeauticianState.setProjId(sysProjInfo.getId()); sysBeauticianState.setServicesId(sysProjServices.getId()); - sysBeauticianState.setShopId(user.getShopId()); + sysBeauticianState.setShopId(sysProjServices.getShopId()); sysBeauticianState.setState(Dictionary.BEATUI_STATE_DYY); beauticianStateDao.insert(sysBeauticianState); } 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 75f839a..137935c 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 @@ -448,6 +448,7 @@ } SysVipInfo vipInfo = new SysVipInfo(); + vipInfo.setPhoto(addVipDto.getPhoto()); vipInfo.setVipName(addVipDto.getVipName()); vipInfo.setVipNo(addVipDto.getVipNo()); diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java index 8530bcd..ec285b8 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java @@ -1,37 +1,42 @@ package com.matrix.system.shopXcx.api.action; -import com.alibaba.fastjson.JSONObject; import com.matrix.biz.bean.BizUser; import com.matrix.biz.dao.BizUserDao; import com.matrix.component.rabbitmq.RabiitMqTemplate; import com.matrix.component.redis.RedisUserLoginUtils; +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; import com.matrix.core.tools.StringUtils; +import com.matrix.core.tools.WebUtil; +import com.matrix.system.app.dto.ServiceOrderListDto; +import com.matrix.system.app.mapper.SysBeauticianStateMapper; +import com.matrix.system.app.mapper.SysProjServiceMapper; +import com.matrix.system.app.mapper.SysProjUseMapper; +import com.matrix.system.app.vo.*; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.common.interceptor.HostInterceptor; +import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.common.tools.LocationUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; -import com.matrix.system.hive.plugin.message.StringUtil; import com.matrix.system.hive.plugin.util.CollectionUtils; -import com.matrix.core.tools.DateUtil; -import com.matrix.system.hive.service.CodeService; -import com.matrix.system.hive.service.SysProjUseService; -import com.matrix.system.hive.service.SysWorkBeatuistaffService; -import com.matrix.system.hive.service.SysWorktimeService; +import com.matrix.system.hive.service.*; import com.matrix.system.shopXcx.bean.ShopProduct; import com.matrix.system.shopXcx.dao.ShopProductDao; +import com.matrix.system.shopXcx.dao.ShopSkuDao; import com.matrix.system.shopXcx.dto.YYDayOfWeek; import com.matrix.system.shopXcx.dto.YYmonth; import com.matrix.system.shopXcx.mqTask.DTO.UserProjInfo; -import com.matrix.system.shopXcx.mqTask.MQTaskRouting; -import com.matrix.system.shopXcx.shopEnum.TemplateMsgType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -52,10 +57,18 @@ SysShopInfoDao shopInfoDao; @Autowired - private SysVipInfoDao vipDap; + private SysVipInfoDao vipInfoDao; @Autowired private OnlinebookingDao onlinebookingDao; + @Autowired + private SysProjServicesService projServicesService; + + @Autowired + private SysProjServicesDao projServicesDao; + + @Autowired + private SysBeauticianStateService sysBeauticianStateService; @Autowired RedisUserLoginUtils redisUserLoginUtils; @@ -72,7 +85,11 @@ @Autowired RabiitMqTemplate rabiitMqTemplate; + @Autowired + SysProjUseDao projUseDao; + @Autowired + ShopSkuDao skuDao; @Autowired ShoppingGoodsAssembleDao shoppingGoodsAssembleDao; @@ -197,45 +214,42 @@ @ResponseBody public AjaxResult getUserPro(@PathVariable String phone) { - SysVipInfo vipInfo = vipDap.selectByPhone(phone); - // 根据时间获取一段排班码 - Map<Object, Object> taocanProjMap = new HashMap<>(); - List<UserProjInfo> userProjInfoList = new ArrayList(); - SysProjUse sysProjUse = new SysProjUse(); - sysProjUse.setVipId(vipInfo.getId()); - sysProjUse.setIsOver(Dictionary.DELETED_N); - sysProjUse.setIsOver(Dictionary.DELETED_N); - sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); - // 查询出该会员的所有可消耗的选择 - List<SysProjUse> sysProjUseList = projUseService.findByModel(sysProjUse); - for (int i = 0; i < sysProjUseList.size(); i++) { - if (sysProjUseList.get(i).getTaocanId() != null) { - String flag = sysProjUseList.get(i).getOrderItemId()+""; - if (taocanProjMap.keySet().contains(flag)) { - ((UserProjInfo) taocanProjMap.get(flag)).getChildPro().add(coversion(sysProjUseList.get(i))); - } else { - SysProjUse pru = sysProjUseList.get(i); - UserProjInfo taocan = new UserProjInfo(); - taocan.setId(pru.getId()); - taocan.setName(pru.getProjName()); - if (pru.getSurplusCount() > 10000) { - taocan.setSurplusCount("不限"); - } else { - taocan.setSurplusCount(pru.getSurplusCount() + ""); - } - taocan.setChildPro(new ArrayList<UserProjInfo>()); - taocan.getChildPro().add(coversion(pru)); - taocanProjMap.put(flag, taocan); - } - } else { - userProjInfoList.add(coversion(sysProjUseList.get(i))); - } + SysVipInfo vipInfo = vipInfoDao.selectByPhone(phone); + + if (vipInfo == null) { + throw new GlobleException("会员不存在"); } - AjaxResult result = new AjaxResult(); - result.setStatus("200"); - result.setMapInfo(taocanProjMap); - result.setRows(userProjInfoList); - return result; + ServiceProductListVo productListVo = new ServiceProductListVo(); + productListVo.setName(vipInfo.getVipName()); + productListVo.setVipId(vipInfo.getId()); + + SysProjUse queryUse = new SysProjUse(); + queryUse.setVipId(vipInfo.getId()); + queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM); + queryUse.setTaocanId(-1L); + queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); + queryUse.setIsOver(Dictionary.FLAG_NO_N); + List<SysProjUse> projList = projUseService.findInPage(queryUse, null); + List<ServiceProjVo> serviceProjVos = SysProjUseMapper.INSTANCE.entityListToProjVoList(projList); + + queryUse.setTaocanId(null); + queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); + List<SysProjUse> taoCanList = projUseService.findInPage(queryUse, null); + List<ServiceTcVo> serviceTcVos = SysProjUseMapper.INSTANCE.entityListToTcVoList(taoCanList); + + if (CollectionUtils.isNotEmpty(serviceTcVos)) { + serviceTcVos.forEach(item -> { + List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId()); + List<ServiceProjVo> taocanProj = SysProjUseMapper.INSTANCE.entityListToProjVoList(sysProjUses); + item.setProj(taocanProj); + }); + } + + productListVo.setProj(serviceProjVos); + productListVo.setComposeProj(serviceTcVos); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); + ajaxResult.putInMap("proj", productListVo); + return ajaxResult; } @@ -253,21 +267,55 @@ AjaxResult createServiceOrder(@RequestBody Onlinebooking onlinebooking) { BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); bizUser = bizUserDao.findByOpenId(bizUser.getOpenId()); - SysVipInfo vipInfo = vipDap.selectByPhone(bizUser.getPhoneNumber()); - onlinebooking.setOrderNo(codeService.getServiceOrderCode()); - onlinebooking.setVipName(vipInfo.getVipName()); - onlinebooking.setVipId(vipInfo.getId()); - onlinebooking.setBizUserId(bizUser.getOpenId()); - onlinebooking.setStatus(Dictionary.ONLINEBOOKING_DFW); - onlinebooking.setCreateTime(new Date()); - onlinebooking.setTime(DateUtil.stringToDate(onlinebooking.getTimeStr(), DateUtil.DATE_FORMAT_MM)); - onlinebookingDao.insert(onlinebooking); - //发送消息通知 - JSONObject msg = new JSONObject(); - msg.put("templateMsgType", TemplateMsgType.APPOINTMENT_SUCCESS.getCode()); - msg.put("content", onlinebooking.getId()); - rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_TEMPLATE_MSG+evn, msg.toJSONString()); - return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(onlinebooking)); + SysVipInfo vipInfo = vipInfoDao.selectByPhone(bizUser.getPhoneNumber()); + + + SysProjUse sysProjUse = projUseDao.selectById(Long.parseLong(onlinebooking.getProductId() + "")); + Date yyTime = DateUtil.stringToDate(onlinebooking.getTimeStr(), DateUtil.DATE_FORMAT_MM); + SysProjServices sysProjServices = new SysProjServices(); + sysProjServices.setCompanyId(vipInfo.getCompanyId()); + sysProjServices.setShopId(onlinebooking.getShopId()); + sysProjServices.setVipId(vipInfo.getId()); + + sysProjServices.setYyTime(yyTime); + sysProjServices.setRemark(onlinebooking.getRemark()); + + List<SysBeauticianState> sysBeauticianStates = new ArrayList<>(); + + SysBeauticianState sysBeauticianState = new SysBeauticianState(); + sysBeauticianState.setPuseId(sysProjUse.getId()); + sysBeauticianState.setProjUse(sysProjUse); + sysBeauticianState.setCount(1); + sysBeauticianState.setBeginTime(yyTime); + int timeLength=30; + if(sysProjUse.getTimeLength()!=null){ + timeLength=sysProjUse.getTimeLength(); + } + sysBeauticianState.setEndTime(DateUtil.getDateAfterMinute(yyTime, timeLength)); + if(onlinebooking.getStaffId()!=null){ + sysBeauticianState.setStaffId(Long.parseLong(onlinebooking.getStaffId()+"")); + } + + sysBeauticianStates.add(sysBeauticianState); + sysProjServices.setServiceItems(sysBeauticianStates); + + //检测欠款 + VerifyResult arrearsVerifyResult = projServicesService.checkArrears(sysProjServices); + if (arrearsVerifyResult.isError()) { + return new AjaxResult(AjaxResult.STATUS_FAIL, arrearsVerifyResult.getMsg()); + } + //检测余次 + VerifyResult balanceverifyResult = projServicesService.checkBalance(sysProjServices); + if (balanceverifyResult.isError()) { + return new AjaxResult(AjaxResult.STATUS_FAIL, balanceverifyResult.getMsg()); + } + sysProjServices.setState(Dictionary.SERVICE_STATU_DQR); + SysProjServices newSysProjServices = projServicesService.addSysProjServices(sysProjServices); + if (newSysProjServices != null) { + return AjaxResult.buildSuccessInstance("下单成功"); + } else { + return new AjaxResult(AjaxResult.STATUS_FAIL, "下单失败!"); + } } @@ -279,50 +327,43 @@ */ @RequestMapping(value = "/getServiceOrderById/{id}") public @ResponseBody - AjaxResult getServiceOrderById(@PathVariable Long id) { - - Onlinebooking onlinebooking = onlinebookingDao.selectById(id); - ShopProduct shopProduct = productDao.selectById(onlinebooking.getProductId()); - onlinebooking.setShopProduct(shopProduct); - if (onlinebooking.getStaffId() != null) { - SysUsers shopstaffInfo = staffInfoDao.selectById(Long.parseLong(onlinebooking.getStaffId() + "")); - onlinebooking.setStaffInfo(shopstaffInfo); + AjaxResult getServiceOrderById(@PathVariable("id") Long id) { + SysProjServices projServices = projServicesService.findById(id); + if (projServices == null) { + return AjaxResult.buildFailInstance("服务单不存在"); } - SysShopInfo shopInfo = shopInfoDao.selectById(onlinebooking.getShopId()); - onlinebooking.setShopInfo(shopInfo); - AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, "查询成功"); - result.putInMap("serviceOrder", onlinebooking); - return result; - + ServiceOrderDetailVo detailVo = SysProjServiceMapper.INSTANCE.projServiceToDetailVo(projServices); + List<SysBeauticianState> beauticianStates = sysBeauticianStateService.findBySerId(projServices.getId()); + List<ServiceOrderDetailItemVo> items = SysBeauticianStateMapper.INSTANCE.entitiesToDetailItemsVo(beauticianStates); + detailVo.setItems(items); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); + ajaxResult.putInMap("detail", detailVo); + ajaxResult.putInMap("shopInfo", shopInfoDao.selectById(projServices.getShopId())); + return ajaxResult; } + + /** - * 订单列表查询 - * + * 查询服务单 + * @param orderListDto * @return */ - @RequestMapping(value = "/getServiceOrderList") - public @ResponseBody - AjaxResult getServiceOrderList(@RequestBody Onlinebooking onlinebooking) { + @PostMapping(value = "/getServiceOrderList") + @ResponseBody + public AjaxResult findServiceOrderList(@RequestBody @Validated ServiceOrderListDto orderListDto) { BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); - onlinebooking.setBizUserId(bizUser.getOpenId()); - List<Onlinebooking> list = onlinebookingDao.selectInPageForWx(onlinebooking); - //相关数据赋值 - list.stream().forEach(order -> { - ShopProduct shopProduct = productDao.selectById(order.getProductId()); - order.setShopProduct(shopProduct); - if (order.getStaffId() != null) { - SysUsers shopstaffInfo = staffInfoDao.selectById(Long.parseLong(order.getStaffId() + "")); - order.setStaffInfo(shopstaffInfo); - } - SysShopInfo shopInfo = shopInfoDao.selectById(order.getShopId()); - order.setShopInfo(shopInfo); - }); - AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, "查询成功"); - result.setRows(list); - return result; - } + SysVipInfo vipInfo= vipInfoDao.selectByPhone(bizUser.getPhoneNumber()); + PaginationVO pageVo = new PaginationVO(); + int offset = (orderListDto.getPageNum() - 1) * orderListDto.getPageSize(); + int limit = orderListDto.getPageSize(); + pageVo.setOffset(offset); + pageVo.setLimit(limit); + orderListDto.setVipId(vipInfo.getId()); + List<ServiceOrderListVo> apiServiceOrderListInPage = projServicesService.findApiServiceOrderListInPage(orderListDto, pageVo); + return AjaxResult.buildSuccessInstance(apiServiceOrderListInPage, projServicesService.findApiServiceOrderListTotal(orderListDto)); + } /** * 取消预约订单 @@ -330,38 +371,22 @@ * @param * @return */ - @RequestMapping(value = "/cancelOrderById") + @RequestMapping(value = "/cancelOrderById/{id}") public @ResponseBody - AjaxResult cancelOrderById(@RequestBody Onlinebooking onlinebooking) { + AjaxResult cancelOrderById(@PathVariable("id") Long id) { - AjaxResult result = new AjaxResult(); - if (onlinebooking.getId() == null) { - result.setStatus(AjaxResult.STATUS_FAIL); - result.setInfo("请求参数错误"); + SysProjServices services = new SysProjServices(); + services.setId(id); + int i = projServicesService.modifyCancelProjServices(services); + if (i > 0) { + return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功"); } else { - onlinebooking.setStatus(Dictionary.ONLINEBOOKING_YQX); - onlinebookingDao.update(onlinebooking); - result.setStatus(AjaxResult.STATUS_SUCCESS); - result.setInfo("订单取消成功"); + return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败"); } - return result; + } - /** - * 删除订单 - * - * @param - * @return - */ - @RequestMapping(value = "/removeOrderById/{id}") - public @ResponseBody - AjaxResult removeOrderById(@PathVariable Long id) { - onlinebookingDao.deleteById(id); - AjaxResult result = new AjaxResult(); - result.setStatus(AjaxResult.STATUS_SUCCESS); - result.setInfo("删除成功"); - return result; - } + private UserProjInfo coversion(SysProjUse pUse) { 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 736e68d..8092043 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml @@ -468,6 +468,7 @@ <result property="timeLength" column="timeLength" /> <result property="status" column="status" /> <result property="createStaffId" column="createStaffId" /> + <result property="shopName" column="shop_short_name" /> <collection property="projs" ofType="com.matrix.system.app.vo.ServiceOrderListProjVo"> <result property="projName" column="projName" /> <result property="beautyName" column="beautyName" /> @@ -489,7 +490,8 @@ e.id vipId, b.staff_id staffId, f.su_name beautyName, - g.proj_name projName + g.proj_name projName, + h.shop_short_name from sys_proj_services a left join sys_beautician_state b on a.ID=b.SERVICES_ID left join sys_bed_state c on a.ID = c.SERVICE_ID @@ -497,19 +499,40 @@ left join sys_vip_info e on a.VIP_ID=e.ID left join sys_users f on f.su_id=b.STAFF_ID left join sys_proj_use g on b.puse_id=g.ID + left join sys_shop_info h on a.SHOP_ID=h.ID <where> <if test="record.queryKey != null and record.queryKey != ''"> and (instr(a.SERVICE_NO, #{record.queryKey}) or instr(e.phone, #{record.queryKey}) or instr(e.vip_name, #{record.queryKey}) ) </if> + <if test="record.vipId != null and record.vipId != ''"> + and a.vip_id = #{record.vipId} + </if> <if test="record.status != null and record.status != ''"> and a.state = #{record.status} - </if> + </if> <if test="record.shopId != null"> and a.shop_id=#{record.shopId} </if> <if test="record.userId!=null"> and (a.create_staff_id=#{record.userId} or b.staff_id=#{record.userId}) </if> + <if test="record.vipStatus != null and record.vipStatus != '' and record.vipStatus!=0 "> + <if test="record.vipStatus == 1"> + and a.state = '待确认' + </if> + <if test="record.vipStatus == 2"> + and a.state in ( '预约成功待处理' ,'需配料','配料完成','服务中') + </if> + <if test="record.vipStatus == 3"> + and ( a.state in ( '服务完成' ,'服务单结束') and a.comment is null) + </if> + <if test="record.vipStatus == 4"> + and a.comment is not null + </if> + <if test="record.vipStatus == 5"> + and a.state = '预约取消' + </if> + </if> </where> <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> order by a.yy_time desc 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 99f36ef..4ec9f20 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml @@ -510,10 +510,13 @@ <!-- 根据id查询 --> <select id="selectById" resultMap="SysProjUseMap"> - select * - from sys_proj_use + select a.*, + b.TIME_LENGTH, + b.img + from sys_proj_use a + left join shopping_goods b on a.proj_id=b.id where - id=#{id} + a.id=#{id} </select> <!-- 根据id查询 --> diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopWxtemplateMsgDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopWxtemplateMsgDao.xml index e1aae99..d426cec 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopWxtemplateMsgDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopWxtemplateMsgDao.xml @@ -220,8 +220,19 @@ <!-- 分页查询 --> <select id="selectInPage" resultMap="ShopWxtemplateMsgMap"> - select - <include refid="columns" ></include> + select + create_by, + create_time, + update_by, + update_time, + id, + name, + uuid, + status, + remark, + company_id, + code, + temp_type from shop_wxtemplate_msg <where> <include refid="where_sql"></include> diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/templateMsg-form.html b/zq-erp/src/main/resources/templates/views/admin/shop/templateMsg-form.html index a48b207..27a2914 100644 --- a/zq-erp/src/main/resources/templates/views/admin/shop/templateMsg-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/shop/templateMsg-form.html @@ -36,6 +36,19 @@ th:value="${obj.uuid}"nullmsg="模板id不能为空"> </div> </div> + <div class="form-group"> + <label class="col-sm-2 control-label">类型 + <span class="text-danger">*</span> + </label> + <div class="col-sm-4"> + <select class="form-control" dataType="*" nullmsg="请选择状态" name="tempType"> + <option value='1' th:if="${obj.tempType == 1}" selected>公众号</option> + <option value='1' th:unless="${obj.tempType == 1}">公众号</option> + <option value='2' th:if="${obj.tempType == 2}" selected>小程序</option> + <option value='2' th:unless="${obj.tempType == 2}">小程序</option> + </select> + </div> + </div> <div class="form-group"> -- Gitblit v1.9.1