diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index 0c87980a..dc2150c5 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -354,6 +354,7 @@ public class OrderMasterController extends BaseController { // 编辑返回属性 orderListResponse.setOrderMasterId(master.getId()); + orderListResponse.setGoods(goods); orderListResponse.setGoodsName(goods.getGoodsName()); orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); @@ -624,6 +625,10 @@ public class OrderMasterController extends BaseController { @PostMapping("/list") @ResponseBody public TableDataInfo list(OrderMaster orderMaster) { + if (orderMaster.getSearchAfterList() !=null && orderMaster.getSearchAfterList()) { + return this.afterList(orderMaster); + } + startPage(); if (this.getSysUser().getDept().getParentId() != 101) { orderMaster.setDeptId(this.getSysUser().getDept().getParentId()); @@ -897,8 +902,8 @@ public class OrderMasterController extends BaseController { @GetMapping("/differentStatus/count") @ResponseBody - public AjaxResult differentStatusOrderCount() { - return AjaxResult.success(orderMasterService.differentStatusOrderCount()); + public AjaxResult differentStatusOrderCount(OrderMaster orderMaster) { + return AjaxResult.success(orderMasterService.differentStatusOrderCount(orderMaster)); } @GetMapping("/count") diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/system/SysDeptController.java b/ghy-admin/src/main/java/com/ghy/web/controller/system/SysDeptController.java index b78fc5aa..049d51b3 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/system/SysDeptController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/system/SysDeptController.java @@ -26,7 +26,7 @@ import com.ghy.system.service.ISysDeptService; /** * 部门信息 - * + * * @author clunt */ @Controller @@ -45,7 +45,7 @@ public class SysDeptController extends BaseController return prefix + "/dept"; } - @RequiresPermissions("system:dept:list") +// @RequiresPermissions("system:dept:list") @PostMapping("/list") @ResponseBody public List list(SysDept dept) @@ -160,7 +160,7 @@ public class SysDeptController extends BaseController /** * 选择部门树 - * + * * @param deptId 部门ID * @param excludeId 排除ID */ diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/system/SysRegisterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/system/SysRegisterController.java index eb5b8d14..3d730ac6 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/system/SysRegisterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/system/SysRegisterController.java @@ -1,5 +1,6 @@ package com.ghy.web.controller.system; +import com.ghy.common.core.domain.dto.SysUserAddDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -12,9 +13,11 @@ import com.ghy.common.utils.StringUtils; import com.ghy.framework.shiro.service.SysRegisterService; import com.ghy.system.service.ISysConfigService; +import javax.validation.Valid; + /** * 注册验证 - * + * * @author clunt */ @Controller @@ -34,13 +37,13 @@ public class SysRegisterController extends BaseController @PostMapping("/register") @ResponseBody - public AjaxResult ajaxRegister(SysUser user) + public AjaxResult ajaxRegister(@Valid SysUserAddDTO userAddDTO) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return error("当前系统没有开启注册功能!"); } - String msg = registerService.register(user); + String msg = registerService.register(userAddDTO); return StringUtils.isEmpty(msg) ? success() : error(msg); } } diff --git a/ghy-admin/src/main/resources/static/ruoyi/register.js b/ghy-admin/src/main/resources/static/ruoyi/register.js index 9887b4b1..ee660d10 100644 --- a/ghy-admin/src/main/resources/static/ruoyi/register.js +++ b/ghy-admin/src/main/resources/static/ruoyi/register.js @@ -5,6 +5,41 @@ $(function() { var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random(); $(".imgcode").attr("src", url); }); + + $.ajax({ + type: "POST", + dataType:"json", + url: ctx + "system/dept/list", + data: { parentId: 100 }, + success: function (data) { + $.each(data, function (index, value) { + $('#deptId').append(""); + }); + } + }) +// $('#deptId').select2({ +// placeholder: '请选择公司编码', +// minimumResultsForSearch: -1, +// ajax: { +// type: "POST", +// dataType:"json", +// url: ctx + "system/dept/list", +// data: { parentId: 100 }, +// processResults: function (data) { +// var processedData = []; +// $.each(data, function (index, value) { +// processedData.push({ +// id: value.deptId, +// text: value.deptName +// }) +// }); +// return { +// results: processedData +// }; +// }, +// cache: true +// } +// }); }); $.validator.setDefaults({ @@ -16,6 +51,8 @@ $.validator.setDefaults({ function register() { $.modal.loading($("#btnSubmit").data("loading")); var username = $.common.trim($("input[name='username']").val()); + var phonenumber = $.common.trim($("input[name='phonenumber']").val()); + var deptId = $.common.trim($('#deptId').val()); var password = $.common.trim($("input[name='password']").val()); var validateCode = $("input[name='validateCode']").val(); $.ajax({ @@ -23,6 +60,8 @@ function register() { url: ctx + "register", data: { "loginName": username, + "phonenumber": phonenumber, + "deptId": deptId, "password": password, "validateCode": validateCode }, @@ -49,15 +88,23 @@ function register() { function validateRule() { var icon = " "; + $.validator.addMethod("checkPhone",function(value,element,params){ + var regex = /^1[345678]\d{9}$/; + return regex.test(value); + }, "请输入正确的手机号码"); $("#registerForm").validate({ rules: { username: { required: true, - minlength: 2 + rangelength: [2,20] + }, + phonenumber: { + required: true, + checkPhone: true }, password: { required: true, - minlength: 5 + rangelength: [5,20] }, confirmPassword: { required: true, @@ -66,15 +113,18 @@ function validateRule() { }, messages: { username: { - required: icon + "请输入您的用户名", - minlength: icon + "用户名不能小于2个字符" + required: icon + "请输入用户名", + rangelength: icon + "账户长度必须在2到20个字符之间" + }, + phonenumber: { + required: icon + "请输入手机号码" }, password: { - required: icon + "请输入您的密码", - minlength: icon + "密码不能小于5个字符", + required: icon + "请输入密码", + rangelength: icon + "密码长度必须在5到20个字符之间" }, confirmPassword: { - required: icon + "请再次输入您的密码", + required: icon + "请再次输入密码", equalTo: icon + "两次密码输入不一致" } } diff --git a/ghy-admin/src/main/resources/templates/order/master.html b/ghy-admin/src/main/resources/templates/order/master.html index c5f19b32..00dcac59 100644 --- a/ghy-admin/src/main/resources/templates/order/master.html +++ b/ghy-admin/src/main/resources/templates/order/master.html @@ -254,7 +254,7 @@ 接单超时 - (0) + (0) 约单超时 @@ -284,7 +284,7 @@ 客诉中 (0) - + 审核中 (0) diff --git a/ghy-admin/src/main/resources/templates/order/orderManager.html b/ghy-admin/src/main/resources/templates/order/orderManager.html index a47a366d..e46accc5 100644 --- a/ghy-admin/src/main/resources/templates/order/orderManager.html +++ b/ghy-admin/src/main/resources/templates/order/orderManager.html @@ -80,16 +80,18 @@ 已发布 (0) - - 已接单 - (0) + + + + + + 未约时 + (0) + + + 未排班 + (0) - - - - - - 待上门 (0) @@ -100,7 +102,7 @@ 确认审核 - (0) + (0) 完成 @@ -118,14 +120,22 @@ 明日待上门 (0) - + 售后 - (0) + (0) 急报中 (0) + + 退单 + (0) + + + 售后纠纷 + (0) +
@@ -137,6 +147,42 @@
+
+ 创建时间: +
+ + +
+ 至 +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
类别筛选:
@@ -146,17 +192,118 @@
+ + + + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + + + + + + + +
+ + + + +
+
+ + +
- +
-  搜索 +  搜索  重置 + class="fa fa-refresh"> 重置
+
+ + 新订单 + (0) + + + 接单超时 + (0) + + + 约单超时 + (0) + + + 排单超时 + (0) + + + 无法排单 + (0) + + + 待上门超时 + (0) + + + 进行超时 + (0) + + + 售后超时 + (0) + + + 客诉中 + (0) + + + 审核中 + (0) + + + 一票价未改价 + (0) + +
@@ -265,9 +412,11 @@ url: prefix + '/differentStatus/count', success: function (result) { if (result.code == web_status.SUCCESS) { - $('#acceptedOrderNum').text(result.data.acceptedOrderNum); + $('#newOrderNum').text(result.data.newOrderNum); + $('#notAppointedOrderNum').text(result.data.notAppointedOrderNum); + $('#notArrangedOrderNum').text(result.data.notArrangedOrderNum); $('#canceledOrderNum').text(result.data.canceledOrderNum); - $('#confirmingOrderNum').text(result.data.confirmingOrderNum); + $('.confirmingOrderNum').text(result.data.confirmingOrderNum); $('#finishedOrderNum').text(result.data.finishedOrderNum); $('#servingOrderNum').text(result.data.servingOrderNum); $('#waitForDoorOrderNum').text(result.data.waitForDoorOrderNum); @@ -277,6 +426,25 @@ } }) + + $.ajax({ + type: "GET", + dataType:"json", + url: prefix + '/differentStatus/count', + data: {timeout: 1}, + success: function (result) { + if (result.code == web_status.SUCCESS) { + $('#newTimeoutOrderNum').text(result.data.newOrderNum); + $('#notAppointedTimeoutOrderNum').text(result.data.notAppointedOrderNum); + $('#notArrangedTimeoutOrderNum').text(result.data.notArrangedOrderNum); + $('#servingTimeoutOrderNum').text(result.data.servingOrderNum); + $('#waitForDoorTimeoutOrderNum').text(result.data.waitForDoorOrderNum); + } else { + $.modal.msgError("数据加载错误,请重试!") + } + } + }) + $.ajax({ type: "GET", @@ -343,6 +511,22 @@ } } }) + + + $.ajax({ + type: "POST", + dataType:"json", + url: prefix + '/after/count', + contentType: 'application/json', + data: JSON.stringify({}), + success: function (result) { + if (result.code == web_status.SUCCESS) { + $('#afterServiceOrderNum').text(result.data); + } else { + $.modal.msgError("数据加载错误,请重试!") + } + } + }) }); function changeOrderMode(orderMode) { @@ -596,6 +780,25 @@ $.table.search(); } + function searchByForm() { + let params = { + createTimeStart: $('#createTimeStart').val() ? $('#createTimeStart').val() + " 00:00:00" : undefined, + createTimeEnd: $('#createTimeEnd').val() ? $('#createTimeEnd').val() + " 23:59:59" : undefined, + + + + + storeName: $('#storeName').val(), + storePhone: $('#storePhone').val(), + workerName: $('#workerName').val(), + workerPhone: $('#workerPhone').val(), + keyWords: $('#keyWords').val() + } + + customParams = Object.assign(customParams, params); + $.table.search(); + } + function resetForm() { $.form.reset(); customParams = {}; diff --git a/ghy-admin/src/main/resources/templates/register.html b/ghy-admin/src/main/resources/templates/register.html index 14bf79b4..fec87425 100644 --- a/ghy-admin/src/main/resources/templates/register.html +++ b/ghy-admin/src/main/resources/templates/register.html @@ -15,25 +15,22 @@ - + +
@@ -41,9 +38,13 @@

注册:

你若不离不弃,我必生死相依

- - - + + + + +
@@ -54,17 +55,18 @@
-
- - 使用条款 -
+ + + +
@@ -76,5 +78,6 @@ + diff --git a/ghy-common/src/main/java/com/ghy/common/core/domain/dto/SysUserAddDTO.java b/ghy-common/src/main/java/com/ghy/common/core/domain/dto/SysUserAddDTO.java new file mode 100644 index 00000000..b8ece7f6 --- /dev/null +++ b/ghy-common/src/main/java/com/ghy/common/core/domain/dto/SysUserAddDTO.java @@ -0,0 +1,32 @@ +package com.ghy.common.core.domain.dto; + +import com.ghy.common.core.domain.BaseEntity; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * @description: + * @author: yangdanqi + * @date: 2023/7/1 + */ +@Data +public class SysUserAddDTO extends BaseEntity { + @NotNull(message = "公司编码不能为空") + private Long deptId; + + @NotBlank(message = "账号不能为空") + @Length(min = 2, max = 20, message = "账户长度必须在2到20个字符之间") + private String loginName; + + @NotBlank(message = "手机号码不能为空") + @Pattern(regexp = "^1[345678]\\d{9}$", message = "手机号码格式不正确") + private String phonenumber; + + @NotBlank(message = "密码不能为空") + @Length(min = 5, max = 20, message = "密码长度必须在5到20个字符之间") + private String password; +} diff --git a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java index f630da88..4fcfac1d 100644 --- a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java +++ b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java @@ -287,6 +287,7 @@ public class ShiroConfig filterChainDefinitionMap.put("/tool/**", "anon"); filterChainDefinitionMap.put("/adapay/**", "anon"); filterChainDefinitionMap.put("/system/area/**", "anon"); + filterChainDefinitionMap.put("/system/dept/list", "anon"); filterChainDefinitionMap.put("/customer/address/**", "anon"); filterChainDefinitionMap.put("/customer/place/app/**", "anon"); filterChainDefinitionMap.put("/customer/selection/app/**", "anon"); diff --git a/ghy-framework/src/main/java/com/ghy/framework/shiro/service/SysRegisterService.java b/ghy-framework/src/main/java/com/ghy/framework/shiro/service/SysRegisterService.java index 5294d004..6a5e5f1b 100644 --- a/ghy-framework/src/main/java/com/ghy/framework/shiro/service/SysRegisterService.java +++ b/ghy-framework/src/main/java/com/ghy/framework/shiro/service/SysRegisterService.java @@ -1,5 +1,7 @@ package com.ghy.framework.shiro.service; +import com.ghy.common.core.domain.dto.SysUserAddDTO; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ghy.common.constant.Constants; @@ -10,14 +12,14 @@ import com.ghy.common.utils.DateUtils; import com.ghy.common.utils.MessageUtils; import com.ghy.common.utils.ServletUtils; import com.ghy.common.utils.ShiroUtils; -import com.ghy.common.utils.StringUtils; import com.ghy.framework.manager.AsyncManager; import com.ghy.framework.manager.factory.AsyncFactory; import com.ghy.system.service.ISysUserService; +import org.springframework.transaction.annotation.Transactional; /** * 注册校验方法 - * + * * @author clunt */ @Component @@ -32,50 +34,30 @@ public class SysRegisterService /** * 注册 */ - public String register(SysUser user) - { - String msg = "", loginName = user.getLoginName(), password = user.getPassword(); + @Transactional(rollbackFor = Exception.class) + public String register(SysUserAddDTO userAddDTO) { + String msg = ""; + SysUser sysUser = new SysUser(); + BeanUtils.copyProperties(userAddDTO, sysUser); - if (ShiroConstants.CAPTCHA_ERROR.equals(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA))) - { + if (ShiroConstants.CAPTCHA_ERROR.equals(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA))) { msg = "验证码错误"; - } - else if (StringUtils.isEmpty(loginName)) - { - msg = "用户名不能为空"; - } - else if (StringUtils.isEmpty(password)) - { - msg = "用户密码不能为空"; - } - else if (password.length() < UserConstants.PASSWORD_MIN_LENGTH - || password.length() > UserConstants.PASSWORD_MAX_LENGTH) - { - msg = "密码长度必须在5到20个字符之间"; - } - else if (loginName.length() < UserConstants.USERNAME_MIN_LENGTH - || loginName.length() > UserConstants.USERNAME_MAX_LENGTH) - { - msg = "账户长度必须在2到20个字符之间"; - } - else if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(loginName))) - { - msg = "保存用户'" + loginName + "'失败,注册账号已存在"; - } - else - { - user.setPwdUpdateDate(DateUtils.getNowDate()); - user.setUserName(loginName); - user.setSalt(ShiroUtils.randomSalt()); - user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); - boolean regFlag = userService.registerUser(user); - if (!regFlag) - { + } else if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(sysUser.getLoginName()))) { + msg = "保存用户'" + userAddDTO.getLoginName() + "'失败,注册账号已存在"; + } else if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkPhoneUnique(sysUser))) { + msg = "保存手机号码'" + userAddDTO.getPhonenumber() + "'失败,该手机号码已被注册"; + } else { + sysUser.setPwdUpdateDate(DateUtils.getNowDate()); + sysUser.setUserName(userAddDTO.getLoginName()); + sysUser.setSalt(ShiroUtils.randomSalt()); + sysUser.setPassword(passwordService.encryptPassword(sysUser.getLoginName(), sysUser.getPassword(), sysUser.getSalt())); + boolean regFlag = userService.registerUser(sysUser); + SysUser registeredUserInfo = userService.selectUserByLoginName(sysUser.getLoginName()); + userService.insertUserAuth(registeredUserInfo.getUserId(), new Long[]{101l}); + if (!regFlag) { msg = "注册失败,请联系系统管理人员"; - } - else - { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginName, Constants.REGISTER, MessageUtils.message("user.register.success"))); + } else { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userAddDTO.getLoginName(), Constants.REGISTER, MessageUtils.message("user.register.success"))); } } return msg; diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index e7f7be28..6e2b2596 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -11,8 +11,10 @@ import com.ghy.payment.domain.FinancialMaster; import com.ghy.worker.domain.Worker; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -150,4 +152,12 @@ public class OrderMaster extends BaseEntity { private String isCall; private BigDecimal serverMoney; + + private Boolean searchAfterList; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTimeStart; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTimeEnd; } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMasterCount.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMasterCount.java index 812295cf..8a7ee044 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMasterCount.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMasterCount.java @@ -9,4 +9,7 @@ import lombok.Data; */ @Data public class OrderMasterCount extends OrderCount { + private Integer notAppointedOrderNum; + + private Integer notArrangedOrderNum; } diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java index ee2b86ef..f1ecd051 100644 --- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderMasterMapper.java @@ -109,5 +109,5 @@ public interface OrderMasterMapper { */ int removeWorker(Long id); - OrderMasterCount differentStatusOrderCount(); + OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster); } diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java index 027b6a20..98d9f5fe 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java @@ -167,5 +167,5 @@ public interface OrderMasterService { int reject(OrderMaster orderMaster); - OrderMasterCount differentStatusOrderCount(); + OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster); } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 64710219..7a25e627 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -113,12 +113,20 @@ public class OrderDetailServiceImpl implements OrderDetailService { @Transactional(rollbackFor = Exception.class) public int updateOrderDetail(OrderDetail orderDetail) { if (orderDetail.getOrderStatus() == null) { + // 修改预约时间的时候需要清除超时状态 + if (orderDetail.getExpectTimeStart() != null && orderDetail.getExpectTimeStart().compareTo(new Date()) > 0) { + orderDetail.setTimeout(0); + } return orderDetailMapper.updateOrderDetail(orderDetail); } int orderStatus = orderDetail.getOrderStatus(); boolean flag = Boolean.TRUE; // 查子单信息 OrderDetail originOrderDetail = this.orderDetailMapper.selectById(orderDetail.getId()); + if (!Objects.equals(originOrderDetail.getOrderStatus(), orderDetail.getOrderStatus())) { + // 修改状态的时候需要清除超时状态 + orderDetail.setTimeout(0); + } int result = orderDetailMapper.updateOrderDetail(orderDetail); // 查询主单关联商品 List masterOrderGoodsList = orderGoodsService.selectByOrderMasterId(originOrderDetail.getOrderMasterId()); @@ -161,6 +169,10 @@ public class OrderDetailServiceImpl implements OrderDetailService { boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId()); if (flag && allAssign) { OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId()); + if (!Objects.equals(orderMaster.getOrderStatus(), orderStatus)) { + // 修改状态的时候需要清除超时状态 + orderMaster.setTimeout(0); + } if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) { orderMaster.setOrderStatus(orderStatus); orderMasterMapper.updateOrderMaster(orderMaster); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index 7f3f6662..f54d0851 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -98,6 +98,12 @@ public class OrderMasterServiceImpl implements OrderMasterService { @Override public int updateOrderMaster(OrderMaster orderMaster) { + OrderMaster oldOrder = this.selectById(orderMaster.getId()); + if ((orderMaster.getOrderStatus() != null && !Objects.equals(oldOrder.getOrderStatus(), orderMaster.getOrderStatus())) + || orderMaster.getExpectTimeStart() != null && orderMaster.getExpectTimeStart().compareTo(new Date()) > 0) { + // 状态变更或者预约时间大于当前时间便清除超时状态 + orderMaster.setTimeout(0); + } return orderMasterMapper.updateOrderMaster(orderMaster); } @@ -560,7 +566,7 @@ public class OrderMasterServiceImpl implements OrderMasterService { } @Override - public OrderMasterCount differentStatusOrderCount() { - return orderMasterMapper.differentStatusOrderCount(); + public OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster) { + return orderMasterMapper.differentStatusOrderCount(orderMaster); } } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 0a620a2b..07f3c449 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -336,6 +336,7 @@ remark = #{remark}, update_by = #{updateBy}, ledger_account_status = #{ledgerAccountStatus}, + timeout_ = #{timeout}, update_time = SYSDATE() WHERE id = #{id} diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 2440f324..07066b4a 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -163,7 +163,7 @@ AND om.create_time >= #{createTimeStart} - AND om.create_time < #{createTimeEnd} + AND om.create_time <= #{createTimeEnd} AND om.id in (${orderMasterIds}) @@ -315,6 +315,7 @@ all_self_assigned = null, has_dispatched_all = #{hasDispatchedAll}, is_call = #{isCall}, + timeout_ = #{timeout}, update_time = SYSDATE() WHERE id = #{id} @@ -423,15 +424,25 @@ WHERE id = #{id} - select + count(case when om.order_status = 0 then 1 else null end) as newOrderNum, count(case when om.order_status = 1 then 1 else null end) as acceptedOrderNum, + count(case when om.order_status = 1 and om.is_call = '01' then 1 else null end) as notAppointedOrderNum, + count(case when om.order_status = 1 and om.is_call = '02' then 1 else null end) as notArrangedOrderNum, count(case when om.order_status = 2 then 1 else null end) as waitForDoorOrderNum, count(case when om.order_status = 3 then 1 else null end) as servingOrderNum, count(case when om.order_status = 4 then 1 else null end) as confirmingOrderNum, count(case when om.order_status = 5 then 1 else null end) as finishedOrderNum, count(case when om.order_status = 6 then 1 else null end) as canceledOrderNum from order_master om + where 1 = 1 + + AND om.timeout_ = #{timeout} + + + AND om.is_call = #{isCall} + diff --git a/ghy-system/src/main/resources/mapper/system/SysUserMapper.xml b/ghy-system/src/main/resources/mapper/system/SysUserMapper.xml index 609876a1..a08ef2bd 100644 --- a/ghy-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ghy-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select u.user_id, u.dept_id, u.login_name, u.user_name, u.user_type, u.email, u.avatar, u.phonenumber, u.sex, u.password, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_time, u.remark, d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status, @@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id - + - + - + - + - + - + - + - + - + - + - + update sys_user set del_flag = '2' where user_id = #{userId} - + update sys_user set del_flag = '2' where user_id in #{userId} - + - + update sys_user @@ -188,7 +188,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + insert into sys_user( user_id, @@ -226,5 +226,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sysdate() ) - - \ No newline at end of file + +