zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java
@@ -16,8 +16,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; @@ -28,13 +26,6 @@ @ApiModelProperty(value = "客户ID") private Long vipId; public String getVipStatus() { return vipStatus; } public void setVipStatus(String vipStatus) { this.vipStatus = vipStatus; } public Long getVipId() { return vipId; zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java
@@ -232,6 +232,14 @@ * 床位名称 */ private String bedName; /** * 评价 */ private String comment; /** * 评价回复 */ private String reply; /** * 商机 */ @@ -241,6 +249,8 @@ * 服务预计时长 */ private Integer totalTime; @@ -256,6 +266,22 @@ */ private SysShopInfo shopInfo; public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getReply() { return reply; } public void setReply(String reply) { this.reply = reply; } @Extend private String shopName; zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -5,6 +5,8 @@ import com.matrix.system.app.vo.OrderDetailVo; import com.matrix.system.app.vo.RankingVo; import com.matrix.system.hive.bean.SysOrder; import com.matrix.system.shopXcx.api.dto.ErpOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -48,4 +50,8 @@ List<RankingVo> selectShopAchieveRanking(@Param("record") SysOrder sysOrder); List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") SysOrder sysOrder); List<ErpOrderDetailVo> selectErpOrderList(ErpOrderListDto erpOrderListDto); ErpOrderDetailVo findUserOrderById(Long orderId); } zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java
@@ -3,6 +3,7 @@ import com.matrix.core.pojo.PaginationVO; import com.matrix.system.app.vo.OrderDetailItemVo; import com.matrix.system.hive.bean.SysOrderItem; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -61,4 +62,6 @@ public int deleteByOrderId(Long id); List<OrderDetailItemVo> selectApiOrderDetailItemsByOrderId(@Param("orderId") Long orderId); List<ErpOrderDetailItemVo> selectErpOrderItemByOrderId(String orderId); } zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
@@ -3,6 +3,9 @@ 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.shopXcx.api.dto.ErpServiceOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo; import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo; import org.apache.ibatis.annotations.Param; import com.matrix.core.pojo.PaginationVO; @@ -41,4 +44,20 @@ List<ServiceOrderListVo> selectApiServiceOrderListInPage(@Param("record") ServiceOrderListDto serviceOrderListDto, @Param("pageVo") PaginationVO pageVo); int selectApiServiceOrderListTotal(@Param("record") ServiceOrderListDto serviceOrderListDto); /** * 小程序端查询客户预约单 * @param orderListDto * @return */ List<ErpServiceOrderListVo> findWxServiceOrderList(ErpServiceOrderListDto orderListDto); /** * 小程序端查询客户预约单详情 * @param id * @return */ ErpServiceOrderListVo findWxServiceOrderById(Long id); } zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java
New file @@ -0,0 +1,134 @@ package com.matrix.system.shopXcx.api.action; import com.alibaba.fastjson.JSONObject; import com.matrix.biz.bean.BizUser; import com.matrix.component.redis.RedisClient; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.UUIDUtil; import com.matrix.system.app.authority.AppAuthorityManager; import com.matrix.system.app.dto.LoginDto; import com.matrix.system.app.dto.PwdResetDto; import com.matrix.system.app.dto.SmsCodeDto; import com.matrix.system.app.dto.UploadPhotoDto; 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.SysUsers; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.tools.PasswordUtil; import com.matrix.system.hive.bean.AppVersion; import com.matrix.system.hive.bean.SysOrderFlow; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.dao.SysOrderDao; import com.matrix.system.hive.dao.SysOrderFlowDao; import com.matrix.system.hive.dao.SysOrderItemDao; import com.matrix.system.hive.dao.SysVipInfoDao; 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.dto.ErpOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailFlowVo; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.File; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; /** * @author wzy * @date 2020-12-21 **/ @Api(value = "WxErpOrderAction", tags = "小程序端Erp订单查询接口") @RestController @RequestMapping(value = "/wxapi/erpOrder") public class WxErpOrderAction { @Autowired private SysUsersService sysUsersService; @Autowired private SysShopInfoService sysShopInfoService; @Autowired private AppAuthorityManager authorityManager; @Autowired private RedisClient redisClient; @Autowired private SysVipInfoDao vipInfoDao; @Autowired RedisUserLoginUtils redisUserLoginUtils; @Autowired private SysOrderDao sysOrderDao; @Autowired private SysOrderItemDao orderItemDao; @Autowired private SysOrderFlowDao orderFlowDao; @Value("${file_storage_path}") private String fileStoragePath; @Value("${static_resource_url}") private String nginxUrl; @ApiOperation(value = "查询用户所有在ERP中产生的订单" ) @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ErpOrderListDto.class) }) @PostMapping(value = "/findUserOrderList") public AjaxResult findUserOrderList(@RequestBody @Validated ErpOrderListDto erpOrderListDto) { BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); SysVipInfo vipInfo = vipInfoDao.selectByPhone(bizUser.getPhoneNumber()); erpOrderListDto.setVipId(vipInfo.getId()); List<ErpOrderDetailVo> rows=sysOrderDao.selectErpOrderList(erpOrderListDto); rows.forEach(item->{ item.setItems(orderItemDao.selectErpOrderItemByOrderId(item.getOrderId())); }); return AjaxResult.buildSuccessInstance(rows,"查询成功"); } @ApiOperation(value = "查询用户在ERP中的订单详情" ) @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ErpOrderListDto.class) }) @GetMapping(value = "/findUserOrderById/{orderId}") public AjaxResult findUserOrderList(@PathVariable Long orderId) { ErpOrderDetailVo order=sysOrderDao.findUserOrderById(orderId); order.setItems(orderItemDao.selectErpOrderItemByOrderId(order.getOrderId())); List<SysOrderFlow> sysOrderFlows = orderFlowDao.selectPayMethodsAmountByOrderId(orderId); List<ErpOrderDetailFlowVo> flowVos=new ArrayList<>(); sysOrderFlows.forEach(item->{ ErpOrderDetailFlowVo erpOrderDetailFlowVo = new ErpOrderDetailFlowVo(); BeanUtils.copyProperties(item,erpOrderDetailFlowVo); flowVos.add(erpOrderDetailFlowVo); }); order.setFlow(flowVos); AjaxResult result = AjaxResult.buildSuccessInstance("查询成功"); result.putInMap("order",order); return result; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
@@ -10,6 +10,7 @@ import com.matrix.core.pojo.PaginationVO; import com.matrix.core.pojo.VerifyResult; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.ServiceOrderListDto; @@ -27,12 +28,17 @@ import com.matrix.system.hive.dao.*; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.service.*; import com.matrix.system.shopXcx.api.dto.ErpServiceCommentDto; import com.matrix.system.shopXcx.api.dto.ErpServiceOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo; import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo; 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 io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -266,17 +272,13 @@ public @ResponseBody AjaxResult createServiceOrder(@RequestBody Onlinebooking onlinebooking) { BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); bizUser = bizUserDao.findByOpenId(bizUser.getOpenId()); 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()); @@ -325,6 +327,10 @@ * @param id * @return */ @ApiOperation(value = " 根据id查询预约订单的详情", notes = " 根据id查询预约订单的详情") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = ErpServiceOrderListVo.class) }) @RequestMapping(value = "/getServiceOrderById/{id}") public @ResponseBody AjaxResult getServiceOrderById(@PathVariable("id") Long id) { @@ -332,13 +338,9 @@ if (projServices == null) { return AjaxResult.buildFailInstance("服务单不存在"); } ServiceOrderDetailVo detailVo = SysProjServiceMapper.INSTANCE.projServiceToDetailVo(projServices); List<SysBeauticianState> beauticianStates = sysBeauticianStateService.findBySerId(projServices.getId()); List<ServiceOrderDetailItemVo> items = SysBeauticianStateMapper.INSTANCE.entitiesToDetailItemsVo(beauticianStates); detailVo.setItems(items); ErpServiceOrderListVo serviceOrder = projServicesDao.findWxServiceOrderById(id); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); ajaxResult.putInMap("detail", detailVo); ajaxResult.putInMap("shopInfo", shopInfoDao.selectById(projServices.getShopId())); ajaxResult.putInMap("detail", serviceOrder); return ajaxResult; } @@ -349,20 +351,18 @@ * @param orderListDto * @return */ @ApiOperation(value = "查询服务单列表", notes = "查询服务单列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = ErpServiceOrderListVo.class) }) @PostMapping(value = "/getServiceOrderList") @ResponseBody public AjaxResult findServiceOrderList(@RequestBody @Validated ServiceOrderListDto orderListDto) { public AjaxResult findServiceOrderList(@RequestBody @Validated ErpServiceOrderListDto orderListDto) { BizUser bizUser = redisUserLoginUtils.getLoginUser(BizUser.class); 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)); List<ErpServiceOrderListVo> apiServiceOrderListInPage = projServicesDao.findWxServiceOrderList(orderListDto); return AjaxResult.buildSuccessInstance(apiServiceOrderListInPage,"查询成功"); } /** @@ -371,10 +371,10 @@ * @param * @return */ @RequestMapping(value = "/cancelOrderById/{id}") @ApiOperation(value = "取消预约", notes = "取消预约") @GetMapping(value = "/cancelOrderById/{id}") public @ResponseBody AjaxResult cancelOrderById(@PathVariable("id") Long id) { AjaxResult cancelOrderById(@PathVariable Long id) { SysProjServices services = new SysProjServices(); services.setId(id); int i = projServicesService.modifyCancelProjServices(services); @@ -383,25 +383,26 @@ } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败"); } } @ApiOperation(value = "服务单评论", notes = "服务单评论") @PostMapping(value = "/commentService") public @ResponseBody AjaxResult commentService(@RequestBody @Validated ErpServiceCommentDto commentDto) { SysProjServices services = new SysProjServices(); services.setId(commentDto.getId()); services.setComment(commentDto.getComment()); int i = projServicesDao.update(services); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "评论成功"); } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "评论失败"); } } private UserProjInfo coversion(SysProjUse pUse) { UserProjInfo projInfo = new UserProjInfo(); projInfo.setId(pUse.getId()); projInfo.setName(shoppingGoodsDao.selectById(pUse.getProjId()).getName()); projInfo.setSurplusCount(pUse.getSurplusCount() + ""); projInfo.setType(pUse.getType()); return projInfo; } private int dateToCodeInt(Date date) { return Integer.parseInt(DateUtil.dateToString(date, DateUtil.HHmm)); } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpOrderListDto.java
New file @@ -0,0 +1,78 @@ package com.matrix.system.shopXcx.api.dto; import com.matrix.core.pojo.PaginationDto; import com.matrix.system.app.dto.BasePageDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /** * @author jyy * @date 2020-12-23 **/ @ApiModel(value = "ErpOrderListDto", description = "订单列表接收参数类") public class ErpOrderListDto extends PaginationDto { @ApiModelProperty(value = "订单状态 0-全部 1-待付款 2-已付款 3-欠款 4-已取消 全部默认传空字符串", example = "1") private Integer orderStatus; @ApiModelProperty(hidden = true) private String status; @ApiModelProperty(value = "查询字段") private String queryKey; @ApiModelProperty(hidden = true) private Long vipId; public Long getVipId() { return vipId; } public void setVipId(Long vipId) { this.vipId = vipId; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getQueryKey() { return queryKey; } public void setQueryKey(String queryKey) { this.queryKey = queryKey; } public Integer getOrderStatus() { return orderStatus; } public void setOrderStatus(Integer orderStatus) { this.orderStatus = orderStatus; switch (orderStatus) { case 0 : this.status = ""; break; case 1: this.status = "待付款"; break; case 2: this.status = "已付款"; break; case 3: this.status = "欠款"; break; case 4: this.status = "已取消"; break; default: this.status = ""; break; } } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceCommentDto.java
New file @@ -0,0 +1,41 @@ package com.matrix.system.shopXcx.api.dto; import com.matrix.core.pojo.PaginationDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.NotNull; /** * @author jyy * @date 2020-12-23 **/ @ApiModel(value = "ErpServiceCommentDto", description = "服务评价") public class ErpServiceCommentDto { @NotNull(message = "评论内容不能为空") @ApiModelProperty(value = "评论内容") private String comment; @NotNull(message = "服务单id不能为空") @ApiModelProperty(value = "服务单id") private Long id; public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceOrderListDto.java
New file @@ -0,0 +1,50 @@ package com.matrix.system.shopXcx.api.dto; import com.matrix.core.pojo.PaginationDto; import com.matrix.system.app.dto.BasePageDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /** * @author jyy * @date 2020-12-24 **/ @ApiModel(value = "ErpServiceOrderListDto", description = "服务单列表参数接收类") public class ErpServiceOrderListDto extends PaginationDto { @ApiModelProperty(value = "查询参数") private String queryKey; @ApiModelProperty(value = "客户视角状态 0/全部 1/待确认 2进行中(待排班/待配料/待服务/服务中) 3/待评价(已完成/服务结束) 4/已评价 5/已取消 ") private String vipStatus; @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 String getQueryKey() { return queryKey; } public void setQueryKey(String queryKey) { this.queryKey = queryKey; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailFlowVo.java
New file @@ -0,0 +1,37 @@ package com.matrix.system.shopXcx.api.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.math.BigDecimal; /** * @author jyy * @date 2020-12-23 **/ @ApiModel(value = "ErpOrderDetailFlowVo", description = "订单支付方式") public class ErpOrderDetailFlowVo { @ApiModelProperty(value = "支付方式") private String payMethod; @ApiModelProperty(value = "支付金额") private BigDecimal amount; public String getPayMethod() { return payMethod; } public void setPayMethod(String payMethod) { this.payMethod = payMethod; } public BigDecimal getAmount() { return amount; } public void setAmount(BigDecimal amount) { this.amount = amount; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailItemVo.java
New file @@ -0,0 +1,63 @@ package com.matrix.system.shopXcx.api.vo; import com.matrix.system.app.vo.OrderDetailAchieveItemVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.math.BigDecimal; import java.util.List; /** * @author jyy * @date 2020-12-23 **/ @ApiModel(value = "ErpOrderDetailItemVo", description = "订单详情明细表") public class ErpOrderDetailItemVo { @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "数量") private String count; @ApiModelProperty(value = "原价") private BigDecimal price; @ApiModelProperty(value = "折扣价格") private BigDecimal zkPrice; public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName; } public String getCount() { return count; } public void setCount(String count) { this.count = count; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public BigDecimal getZkPrice() { return zkPrice; } public void setZkPrice(BigDecimal zkPrice) { this.zkPrice = zkPrice; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailVo.java
New file @@ -0,0 +1,158 @@ package com.matrix.system.shopXcx.api.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; import com.matrix.system.app.vo.OrderDetailItemVo; import com.matrix.system.hive.bean.SysOrderFlow; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * @author jyy * @date 2020-12-23 **/ @ApiModel(value = "ErpOrderDetailVo", description = "订单详情返回参数类") public class ErpOrderDetailVo { @ApiModelProperty(value = "订单ID") private String orderId; @ApiModelProperty(value = "门店名称") private String shopName; @ApiModelProperty(value = "订单号") private String orderNo; @ApiModelProperty(value = "顾问姓名") private String staffName; @ApiModelProperty(value = "应付金额") private BigDecimal needPay; @ApiModelProperty(value = "实付金额") private BigDecimal realPay; @ApiModelProperty(value = "优惠金额") private BigDecimal discount; @ApiModelProperty(value = "订单明细") private List<ErpOrderDetailItemVo> items; @ApiModelProperty(value = "支付流水") private List<ErpOrderDetailFlowVo> flow; @ApiModelProperty(value = "订单状态") private String orderStatus; @ApiModelProperty(value = "欠款") private BigDecimal arrears; @JsonFormat(pattern = DateUtil.DATE_FORMAT_SS, timezone = "GMT+8") @ApiModelProperty(value = "下单时间") private Date orderTime; public List<ErpOrderDetailFlowVo> getFlow() { return flow; } public void setFlow(List<ErpOrderDetailFlowVo> flow) { this.flow = flow; } public String getShopName() { return shopName; } public void setShopName(String shopName) { this.shopName = shopName; } 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 getStaffName() { return staffName; } public void setStaffName(String staffName) { this.staffName = staffName; } public BigDecimal getNeedPay() { return needPay; } public void setNeedPay(BigDecimal needPay) { this.needPay = needPay; } public BigDecimal getRealPay() { return realPay; } public void setRealPay(BigDecimal realPay) { this.realPay = realPay; } public BigDecimal getDiscount() { return discount; } public void setDiscount(BigDecimal discount) { this.discount = discount; } public List<ErpOrderDetailItemVo> getItems() { return items; } public void setItems(List<ErpOrderDetailItemVo> items) { this.items = items; } public String getOrderStatus() { return orderStatus; } public void setOrderStatus(String orderStatus) { this.orderStatus = orderStatus; } public BigDecimal getArrears() { return arrears; } public void setArrears(BigDecimal arrears) { this.arrears = arrears; } public Date getOrderTime() { return orderTime; } public void setOrderTime(Date orderTime) { this.orderTime = orderTime; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListProjVo.java
New file @@ -0,0 +1,45 @@ package com.matrix.system.shopXcx.api.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @ApiModel(value = "ErpServiceOrderListProjVo", description = "服务单列表项目返回参数类") public class ErpServiceOrderListProjVo { @ApiModelProperty(value = "项目名称") private String projName; @ApiModelProperty(value = "项目图片") private String imgMobile; @ApiModelProperty(value = "美疗师") private String beautyName=""; public String getImgMobile() { return imgMobile; } public void setImgMobile(String imgMobile) { this.imgMobile = imgMobile; } public String getProjName() { return projName; } public void setProjName(String projName) { this.projName = projName; } public String getBeautyName() { return beautyName; } public void setBeautyName(String beautyName) { this.beautyName = beautyName; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListVo.java
New file @@ -0,0 +1,147 @@ package com.matrix.system.shopXcx.api.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; import com.matrix.system.app.vo.ServiceOrderListProjVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; import java.util.List; /** * @author wzy * @date 2020-12-24 **/ @ApiModel(value = "ServiceOrderListVo", description = "服务单列表返回参数类") public class ErpServiceOrderListVo { @ApiModelProperty(value = "服务单Id") private Long id; @ApiModelProperty(value = "服务单编号") private String serviceNo; @JsonFormat(pattern = DateUtil.DATE_FORMAT_MM, timezone = "GMT+8") @ApiModelProperty(value = "预约时间") private Date time; @ApiModelProperty(value = "服务时长") private Integer timeLength; @ApiModelProperty(value = "状态 待预约 待派单 待配料 待服务 服务中 服务完成 服务单结束") private String status; @ApiModelProperty(value = "门店名称") private String shopName; @ApiModelProperty(value = "门店地址") private String shopAddr; @ApiModelProperty(value = "床位") private String bed; @ApiModelProperty(value = "客户评论") private String comment=""; @ApiModelProperty(value = "员工回复") private String reply; @ApiModelProperty(value = "服务项目信息") private List<ErpServiceOrderListProjVo> projs; public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getReply() { return reply; } public void setReply(String reply) { this.reply = reply; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getServiceNo() { return serviceNo; } public void setServiceNo(String serviceNo) { this.serviceNo = serviceNo; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public String getShopName() { return shopName; } public void setShopName(String shopName) { this.shopName = shopName; } public String getShopAddr() { return shopAddr; } public void setShopAddr(String shopAddr) { this.shopAddr = shopAddr; } public Integer getTimeLength() { return timeLength; } public void setTimeLength(Integer timeLength) { this.timeLength = timeLength; } public String getBed() { return bed; } public void setBed(String bed) { this.bed = bed; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public List<ErpServiceOrderListProjVo> getProjs() { return projs; } public void setProjs(List<ErpServiceOrderListProjVo> projs) { this.projs = projs; } } zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -611,4 +611,56 @@ group by b.su_id order by amount desc, b.su_id </select> <select id="selectErpOrderList" resultType="com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo"> select a.id orderId, a.ORDER_NO orderNo, a.ORDER_TIME orderTime, a.STATU orderStatus, a.ZK_TOTAL needPay, a.TOTAL - a.ZK_TOTAL discount, (a.card_Pay + a.cash_Pay) realPay, a.arrears arrears, b.su_name staffName, d.shop_name as shopName from sys_order a left join sys_users b on a.STAFF_ID = b.su_id left join sys_vip_info c on c.id = a.VIP_ID left join sys_shop_info d on d.id=a.shop_id <where> <if test="queryKey != null and queryKey != ''"> and instr(a.order_no, #{queryKey}) </if> <if test="status != null and status != ''"> and a.statu = #{status} </if> <if test="vipId != null"> and a.vip_id=#{vipId} </if> </where> order by a.order_time desc limit #{offset},#{limit} </select> <select id="findUserOrderById" resultType="com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo"> select a.id orderId, a.ORDER_NO orderNo, a.ORDER_TIME orderTime, a.STATU orderStatus, a.ZK_TOTAL needPay, a.TOTAL - a.ZK_TOTAL discount, (a.card_Pay + a.cash_Pay) realPay, a.arrears arrears, b.su_name staffName, d.shop_name as shopName from sys_order a left join sys_users b on a.STAFF_ID = b.su_id left join sys_vip_info c on c.id = a.VIP_ID left join sys_shop_info d on d.id=a.shop_id where a.id=#{orderId} </select> </mapper> zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
@@ -535,4 +535,16 @@ where a.ORDER_ID=#{orderId}; </select> <select id="selectErpOrderItemByOrderId" resultType="com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo"> select b.name goodsName, a.COUNT count, a.PRICE price, a.ZK_PRICE zkPrice from sys_order_item a inner join shopping_goods b on a.goods_id=b.id where a.ORDER_ID=#{orderId} </select> </mapper> zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
@@ -38,6 +38,8 @@ <result property="oldShopId" column="OLD_SHOP_ID"/> <result property="consumeTime" column="consume_time"/> <result property="companyId" column="company_id"/> <result property="comment" column="comment"/> <result property="reply" column="reply"/> <result property="beautiName" column="beautiName"/> @@ -87,7 +89,9 @@ CHANGE_ID, OLD_SHOP_ID, consume_time, company_id company_id, comment, reply ) VALUES ( #{id}, @@ -122,7 +126,9 @@ #{changeId}, #{oldShopId}, #{consumeTime}, #{companyId} #{companyId}, #{comment}, #{reply} ) </insert> @@ -228,8 +234,18 @@ <if test="consumeTime != null "> consume_time = #{consumeTime} </if> <if test="reply != null "> reply = #{reply} </if> <if test="comment != null "> comment = #{comment} </if> </set> WHERE id=#{id} </update> <update id="comment"> </update> <!-- 批量删除 --> @@ -516,23 +532,7 @@ <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 @@ -567,4 +567,104 @@ </if> </where> </select> <resultMap id="ErpServiceOrderListVoMap" type="com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo"> <id column="id" property="id" /> <result column="serviceNo" property="serviceNo"/> <result property="time" column="time"/> <result property="bed" column="bed" /> <result property="timeLength" column="timeLength" /> <result property="status" column="status" /> <result property="shopName" column="shopName" /> <result property="shopAddr" column="shopAddr" /> <result property="comment" column="comment" /> <result property="reply" column="reply" /> <collection property="projs" ofType="com.matrix.system.shopXcx.api.vo.ErpServiceOrderListProjVo"> <result property="projName" column="projName" /> <result property="beautyName" column="beautyName" /> <result property="imgMobile" column="imgMobile" /> </collection> </resultMap> <select id="findWxServiceOrderList" resultMap="ErpServiceOrderListVoMap"> select a.id id, a.SERVICE_NO serviceNo, a.YY_TIME time, a.TOTAL_TIME timeLength, a.state status, d.BED_NAME bed, f.su_name beautyName, g.proj_name projName, h.shop_short_name as shopName, h.shop_addr as shopAddr, m.img as imgMobile 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 left join sys_bed_info d on c.BED_ID=d.ID 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 left join shopping_goods m on g.proj_id=m.id <where> <if test="queryKey != null and queryKey != ''"> and instr(a.SERVICE_NO, #{queryKey}) </if> <if test="vipId != null and vipId != ''"> and a.vip_id = #{vipId} </if> <if test="vipStatus != null and vipStatus != '' and vipStatus!=0 "> <if test="vipStatus == 1"> and a.state = '待确认' </if> <if test="vipStatus == 2"> and a.state in ( '预约成功待处理' ,'需配料','配料完成','服务中') </if> <if test="vipStatus == 3"> and ( a.state in ( '服务完成' ,'服务单结束') and a.comment is null) </if> <if test="vipStatus == 4"> and a.comment is not null </if> <if test="vipStatus == 5"> and a.state = '预约取消' </if> </if> </where> order by a.yy_time desc limit #{offset}, #{limit} </select> <select id="findWxServiceOrderById" resultMap="ErpServiceOrderListVoMap"> select a.id id, a.SERVICE_NO serviceNo, a.YY_TIME time, a.TOTAL_TIME timeLength, a.state status, a.comment, a.reply, d.BED_NAME bed, f.su_name beautyName, g.proj_name projName, h.shop_short_name as shopName, h.shop_addr as shopAddr, m.img as imgMobile 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 left join sys_bed_info d on c.BED_ID=d.ID 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 left join shopping_goods m on g.proj_id=m.id where a.id=#{id} </select> </mapper>