diff --git a/pz-common/src/main/java/com/pz/common/enums/UserType.java b/pz-common/src/main/java/com/pz/common/enums/UserType.java index c067846..3baaef6 100644 --- a/pz-common/src/main/java/com/pz/common/enums/UserType.java +++ b/pz-common/src/main/java/com/pz/common/enums/UserType.java @@ -25,7 +25,12 @@ public enum UserType { APP_USER("app_user"), /** - * 商家端 + * 商城商户 + */ + STORE_AMERCHANT_USER("store_merchant_user"), + + /** + * 商城商户 */ AMERCHANT_USER("merchant_user"); diff --git a/pz-system/src/main/java/com/pz/system/service/SysLoginService.java b/pz-system/src/main/java/com/pz/system/service/SysLoginService.java index 12e9750..0b24993 100644 --- a/pz-system/src/main/java/com/pz/system/service/SysLoginService.java +++ b/pz-system/src/main/java/com/pz/system/service/SysLoginService.java @@ -270,7 +270,8 @@ public class SysLoginService { private SysUser loadUserByUsername(String username) { SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() .select(SysUser::getUserName, SysUser::getStatus) - .eq(SysUser::getUserName, username)); + .eq(SysUser::getUserName, username) + .eq(SysUser::getUserType, UserType.SYS_USER.getUserType()).or().eq(SysUser::getUserType, UserType.STORE_AMERCHANT_USER.getUserType())); if (ObjectUtil.isNull(user)) { log.info("登录用户:{} 不存在.", username); throw new UserException("user.not.exists", username); diff --git a/pz-system/src/main/java/com/pz/system/service/impl/StoreApplyServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/StoreApplyServiceImpl.java index 6e8b5b6..fa8f908 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/StoreApplyServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/StoreApplyServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pz.common.enums.UserType; +import com.pz.common.exception.ServiceException; import com.pz.common.helper.LoginHelper; import com.pz.system.domain.StoreInfo; import com.pz.system.domain.SysUserRole; @@ -133,6 +134,7 @@ public class StoreApplyServiceImpl implements IStoreApplyService { @Transactional public Boolean updateByBo(StoreApplyBo bo) { StoreApply update = BeanUtil.toBean(bo, StoreApply.class); + //审核通过 if (bo.getStatus() == 1) { Optional.ofNullable(baseMapper.selectById(bo.getId())) @@ -142,20 +144,19 @@ public class StoreApplyServiceImpl implements IStoreApplyService { //记录至商户表 storeInfoMapper.insert(bean); - //创建系统用户 - SysUser sysUser = new SysUser(); - sysUser.setUserName(storeApply.getTel()); - sysUser.setNickName(storeApply.getName()); - sysUser.setEmail(storeApply.getEmail()); - sysUser.setUserType(UserType.AMERCHANT_USER.getUserType()); - sysUser.setPassword(BCrypt.hashpw("123456")); + Optional.ofNullable(sysUserMapper.selectUserByPhonenumber(bo.getTel())).ifPresent( + sysUser -> { + sysUser.setUserType(UserType.STORE_AMERCHANT_USER.getUserType()); + sysUser.setPassword(BCrypt.hashpw("123456")); + sysUserMapper.updateById(sysUser); - sysUserMapper.insert(sysUser); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRole.setRoleId(5L); + sysUserRoleMapper.insert(sysUserRole); + } + ); - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setUserId(sysUser.getUserId()); - sysUserRole.setRoleId(3L); - sysUserRoleMapper.insert(sysUserRole); }); } return baseMapper.updateById(update) > 0; diff --git a/pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java index efb12af..74362d1 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java @@ -1,9 +1,11 @@ package com.pz.system.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.TypeReference; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -18,7 +20,12 @@ import com.pz.common.config.KbProperties; import com.pz.common.core.domain.PageQuery; import com.pz.common.core.domain.model.LoginUser; import com.pz.common.core.page.TableDataInfo; +import com.pz.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pz.common.enums.CommonOrderStatus; +import com.pz.common.enums.DBMYOrderStatus; +import com.pz.common.enums.ShopOrderStatus; import com.pz.common.enums.TotalOrderStatus; import com.pz.common.exception.ServiceException; import com.pz.common.helper.LoginHelper; @@ -28,12 +35,14 @@ import com.pz.merchant.domain.Company; import com.pz.merchant.domain.Employees; import com.pz.merchant.domain.EmployeesDivide; import com.pz.merchant.domain.vo.EmployeesVo; +import com.pz.common.utils.JsonUtils; import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.mapper.CompanyMapper; import com.pz.merchant.mapper.EmployeesDivideMapper; import com.pz.merchant.mapper.EmployeesMapper; import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.impl.SonOrderServiceBuilder; +import com.pz.common.helper.LoginHelper; import com.pz.system.datastructure.OrderDelayQueue; import com.pz.system.datastructure.TotalOrderDelayOperator; import com.pz.system.domain.*; @@ -49,7 +58,11 @@ import com.pz.system.service.ITotalOrderService; import lombok.RequiredArgsConstructor; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.pz.system.domain.bo.TotalOrderBo; +import com.pz.system.domain.vo.TotalOrderVo; +import com.pz.system.service.ITotalOrderService; import org.springframework.transaction.annotation.Transactional; import java.security.MessageDigest; @@ -558,13 +571,19 @@ public class TotalOrderServiceImpl implements ITotalOrderService { } // 待办买药已接单 代发货下取消订单调用退款接口 - if (totalOrder.getBusinessId() == 5 && totalOrder.getStatus() == 1) { + if (totalOrder.getBusinessId() == 5 + && totalOrder.getStatus() == 1 + && sonOrderSimpleDataByTotalId.getOrderStatus() == 1 + ) { totalOrderBo.setIsRefund(0); return this.refundOrder(totalOrderBo); } // 已接单、待收货状态下等待药品到达后确认 - if (totalOrder.getBusinessId() == 5 && totalOrder.getStatus() == 2) { + if (totalOrder.getBusinessId() == 5 + && totalOrder.getStatus() == 2 + && sonOrderSimpleDataByTotalId.getOrderStatus() == 2 + && totalOrder.getRefundAmount() == 0) { totalOrderBo.setIsRefund(1); return this.refundOrder(totalOrderBo); } @@ -581,7 +600,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService { return this.refundOrder(totalOrderBo); } - if (sonOrderSimpleDataByTotalId.getOrderStatus() == 0 && totalOrder.getEmId() == 0 && totalOrder.getStatus() == 0) {// 预约陪诊 + //用户未付款 陪诊员为接单 和 用户未付款陪诊员已接单直接取消 + if ((sonOrderSimpleDataByTotalId.getOrderStatus() == 0 && totalOrder.getStatus() == 0) || (sonOrderSimpleDataByTotalId.getOrderStatus() == 1 && totalOrder.getStatus() == 0)) { // yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder)); totalOrder.setStatus(TotalOrderStatus.CANCEL.getCode()); if (totalOrder.getBusinessId() == 0) { @@ -721,8 +741,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService { // 修改子订单状态 boolean sonOrderFlag = orderService.switchSonOrderStatus(totalOrder.getId(), CommonOrderStatus.REFUND.getCode()); - // 除了商城订单和诊前挂号不需要给陪诊员和商户分成 - if (totalOrder.getBusinessId() != 0 && totalOrder.getBusinessId() != 6) { + //除了商城订单和诊前挂号不需要给陪诊员和商户分成 + if(totalOrder.getBusinessId() != 0 && totalOrder.getBusinessId() != 6 && totalOrder.getStatus() == 2) { Services services = servicesMapper.selectById(totalOrder.getServiceId()); if (services.getFenmo() != 0) { double money = 0; @@ -759,6 +779,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService { if (!sonOrderFlag) { throw new ServiceException("子订单状态修改出错,接单失败"); } + totalOrder.setSuborderStatus(CommonOrderStatus.REFUND.getCode()); if (baseMapper.updateById(totalOrder) > 0) { // 添加退款记录 PaymentRecord paymentRecord = new PaymentRecord(); @@ -785,11 +806,11 @@ public class TotalOrderServiceImpl implements ITotalOrderService { if (null == sonOrderSimpleDataByTotalId) { throw new ServiceException("子订单状态出错!"); } - + int IsRefund = getIsRefund(totalOrder.getBusinessId(),totalOrder.getStatus(),sonOrderSimpleDataByTotalId.getSonOrderId()); // 订单退款金额 double money = 0; - if (bo.getIsRefund() == 0) {// 陪诊员订单未完成用户主动退款 + if (IsRefund == 0) {// 陪诊员订单未完成用户主动退款直接退到账户 // 主订单必须为付款并且子订单为已接单 if (totalOrder.getStatus() != 1 && sonOrderSimpleDataByTotalId.getOrderStatus() != 1) { if (totalOrder.getStatus() == 1 && sonOrderSimpleDataByTotalId.getOrderStatus() == 0) { @@ -846,7 +867,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService { } totalOrder.setRefundAmount(money); - } else if (bo.getIsRefund() == 1) {// 陪诊员订单完成走审批流程 + } else if (IsRefund == 1) {// 陪诊员订单完成走审批流程 if (sonOrderSimpleDataByTotalId.getOrderStatus() != 2) { throw new ServiceException("订单状态错误"); } @@ -866,7 +887,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService { // 修改子订单状态 - boolean sonOrderFlag = orderService.switchSonOrderStatus(totalOrder.getId(), CommonOrderStatus.REFUND.getCode()); + boolean sonOrderFlag = orderService.switchSonOrderStatus(totalOrder.getId(), CommonOrderStatus.BEING_REFUND.getCode()); if (!sonOrderFlag) { throw new ServiceException("子订单状态修改出错"); @@ -878,6 +899,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService { .set(StoreOrder::getStatus, ShopOrderStatus.BEING_REFUND.getCode())); }*/ + totalOrder.setSuborderStatus(CommonOrderStatus.BEING_REFUND.getCode()); baseMapper.updateById(totalOrder); return true; } @@ -1145,7 +1167,6 @@ public class TotalOrderServiceImpl implements ITotalOrderService { } public long getHour(String date) { - LocalDateTime startTime = LocalDateTime.parse(date, FORMATTER); // 获取当前时间 @@ -1179,4 +1200,16 @@ public class TotalOrderServiceImpl implements ITotalOrderService { } return money; } + + public int getIsRefund(int businessId,int businessStatus,int ServiceStatus){ + int IsRefund = 0; + if((businessStatus == 1 && ServiceStatus == 0) || (businessStatus == 1 && ServiceStatus == 1)){ + IsRefund = 0; + }else if(businessStatus == 2 && ServiceStatus == 2){ + IsRefund = 1; + }else if(businessId == 3 && businessStatus == 1 && ServiceStatus == 2){ + IsRefund = 1; + } + return IsRefund; + } }