From c0dc765ad93846078718bb15976905c34db7584c Mon Sep 17 00:00:00 2001 From: jyy <935090232@qq.com> Date: Sat, 16 Jan 2021 14:57:23 +0800 Subject: [PATCH] 小程序端服务单评论 --- zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailItemVo.java | 63 +++ zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java | 6 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml | 52 ++ zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml | 138 ++++++- zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceOrderListDto.java | 50 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java | 73 +- zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java | 134 +++++++ zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java | 19 + zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailFlowVo.java | 37 + zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java | 3 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListVo.java | 147 +++++++ zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml | 12 zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListProjVo.java | 45 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailVo.java | 158 ++++++++ zq-erp/src/main/java/com/matrix/system/app/dto/ServiceOrderListDto.java | 9 zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java | 26 + zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceCommentDto.java | 41 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpOrderListDto.java | 78 ++++ 18 files changed, 1,027 insertions(+), 64 deletions(-) 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 5b2679d..1c0a500 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 @@ -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; diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java index 70cd5a4..dd76b14 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java +++ b/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; 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 b0c55ff..8be75a3 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 @@ -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); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java index 2ff8371..5446b22 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java +++ b/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); } \ 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 825d86e..845b2e5 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 @@ -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); + + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java new file mode 100644 index 0000000..5f06f91 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java @@ -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; + } + + + + +} 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 ec285b8..1c07d32 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 @@ -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)); - } } diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpOrderListDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpOrderListDto.java new file mode 100644 index 0000000..a3dea39 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpOrderListDto.java @@ -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; + } + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceCommentDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceCommentDto.java new file mode 100644 index 0000000..25dbf57 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceCommentDto.java @@ -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; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceOrderListDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceOrderListDto.java new file mode 100644 index 0000000..ceba6b0 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ErpServiceOrderListDto.java @@ -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; + } + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailFlowVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailFlowVo.java new file mode 100644 index 0000000..c2787f7 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailFlowVo.java @@ -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; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailItemVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailItemVo.java new file mode 100644 index 0000000..a9980f3 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailItemVo.java @@ -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; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailVo.java new file mode 100644 index 0000000..05189d6 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpOrderDetailVo.java @@ -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; + } + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListProjVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListProjVo.java new file mode 100644 index 0000000..dc2ddd9 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListProjVo.java @@ -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; + } + } + + + diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListVo.java new file mode 100644 index 0000000..b33ca23 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ErpServiceOrderListVo.java @@ -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; + } + + +} 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 c7c1561..bd84983 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml +++ b/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> \ No newline at end of file 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 f532adf..6be411c 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml +++ b/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> \ No newline at end of file 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 8092043..f5b7550 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml +++ b/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> -- Gitblit v1.9.1