From a9f950c0d11a687a7a940443b8c765f6d87ae4f1 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 20 Apr 2021 00:26:22 +0800
Subject: [PATCH] 合并新的修改
---
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java | 330 ++++++++++++++++++++++++++++++------------------------
1 files changed, 183 insertions(+), 147 deletions(-)
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 05fc425..5b50cda 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,42 +1,51 @@
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.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.pojo.VerifyResult;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.StringUtils;
+import com.matrix.system.app.mapper.SysProjUseMapper;
+import com.matrix.system.app.vo.ServiceProductListVo;
+import com.matrix.system.app.vo.ServiceProjVo;
+import com.matrix.system.app.vo.ServiceTcVo;
+import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.common.interceptor.HostInterceptor;
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.system.hive.plugin.util.DateUtils;
-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.shopXcx.bean.ShopProduct;
+import com.matrix.system.hive.service.*;
+import com.matrix.system.score.constant.ScoreSettingConstant;
+import com.matrix.system.score.entity.ScoreVipDetail;
+import com.matrix.system.score.service.ScoreVipDetailService;
+import com.matrix.system.shopXcx.api.dto.ErpServiceCommentDto;
+import com.matrix.system.shopXcx.api.dto.ErpServiceOrderListDto;
+import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo;
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 io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
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;
import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
* @author jiangyouyao
@@ -52,10 +61,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;
@@ -67,18 +84,27 @@
SysUsersDao staffInfoDao;
@Autowired
- BizUserDao bizUserDao;
+ SysVipInfoDao sysVipInfoDao;
@Autowired
RabiitMqTemplate rabiitMqTemplate;
+ @Autowired
+ SysProjUseDao projUseDao;
+ @Autowired
+ ShopSkuDao skuDao;
@Autowired
ShoppingGoodsAssembleDao shoppingGoodsAssembleDao;
@Autowired
ShoppingGoodsDao shoppingGoodsDao;
+ @Autowired
+ ScoreVipDetailService scoreVipDetailService;
+
+ @Autowired
+ private BusParameterSettingsDao busParameterSettingsDao;
@Value("${evn}")
private String evn;
@@ -194,48 +220,45 @@
* @return
*/
@RequestMapping(value = "/getUserPro/{phone}")
- public @ResponseBody
+ @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).getPlatformFlag();
- 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());
- taocan.setType(pru.getType());
- 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,HostInterceptor.getCompanyId());
+
+ 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(), queryUse.getStatus());
+ 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;
}
@@ -251,23 +274,60 @@
@RequestMapping(value = "/createServiceOrder")
public @ResponseBody
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 sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+ SysVipInfo vipInfo = vipInfoDao.selectByPhone(sysVipInfo.getPhone(),HostInterceptor.getCompanyId());
+ 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) {
+
+ //添加用户积分
+ BusParameterSettings parameterSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.RESERVATION_SERVICE_SHOP, sysVipInfo.getCompanyId());
+ scoreVipDetailService.addScoreByParamSetting(sysVipInfo.getId(), null,null, newSysProjServices.getId(),
+ ScoreVipDetail.SCORE_VIP_TYPE_JOIN_ACTIVE,"预约送积分", parameterSetting);
+
+
+ return AjaxResult.buildSuccessInstance("下单成功");
+ } else {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "下单失败!");
+ }
}
@@ -277,52 +337,43 @@
* @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 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;
-
+ ErpServiceOrderListVo serviceOrder = projServicesDao.findWxServiceOrderById(id);
+ AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+ ajaxResult.putInMap("detail", serviceOrder);
+ return ajaxResult;
}
+
+
/**
- * 订单列表查询
- *
+ * 查询服务单
+ * @param orderListDto
* @return
*/
- @RequestMapping(value = "/getServiceOrderList")
- public @ResponseBody
- AjaxResult getServiceOrderList(@RequestBody Onlinebooking onlinebooking) {
- 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;
+ @ApiOperation(value = "查询服务单列表", notes = "查询服务单列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "ok", response = ErpServiceOrderListVo.class)
+ })
+ @PostMapping(value = "/getServiceOrderList")
+ @ResponseBody
+ public AjaxResult findServiceOrderList(@RequestBody @Validated ErpServiceOrderListDto orderListDto) {
+ SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+ SysVipInfo vipInfo= vipInfoDao.selectByPhone(sysVipInfo.getPhone(),HostInterceptor.getCompanyId());
+ orderListDto.setVipId(vipInfo.getId());
+ List<ErpServiceOrderListVo> apiServiceOrderListInPage = projServicesDao.findWxServiceOrderList(orderListDto);
+ return AjaxResult.buildSuccessInstance(apiServiceOrderListInPage,"查询成功");
}
-
/**
* 取消预约订单
@@ -330,53 +381,38 @@
* @param
* @return
*/
- @RequestMapping(value = "/cancelOrderById")
+ @ApiOperation(value = "取消预约", notes = "取消预约")
+ @GetMapping(value = "/cancelOrderById/{id}")
public @ResponseBody
- AjaxResult cancelOrderById(@RequestBody Onlinebooking onlinebooking) {
-
- AjaxResult result = new AjaxResult();
- if (onlinebooking.getId() == null) {
- result.setStatus(AjaxResult.STATUS_FAIL);
- result.setInfo("请求参数错误");
+ AjaxResult cancelOrderById(@PathVariable Long id) {
+ 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}")
+
+ @ApiOperation(value = "服务单评论", notes = "服务单评论")
+ @PostMapping(value = "/commentService")
public @ResponseBody
- AjaxResult removeOrderById(@PathVariable Long id) {
- onlinebookingDao.deleteById(id);
- AjaxResult result = new AjaxResult();
- result.setStatus(AjaxResult.STATUS_SUCCESS);
- result.setInfo("删除成功");
- return result;
+ 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(DateUtils.dateToString(date, DateUtils.HHmm));
- }
}
--
Gitblit v1.9.1