From cbbc18e79cb498901290451ecf5b9fdbd2a212aa Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期二, 24 九月 2024 18:43:47 +0800 Subject: [PATCH] 1.合伙人-手机号修改 --- src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java | 3 src/main/java/com/mzl/flower/service/payment/OrderService.java | 79 ++++++++++++++++++- src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java | 15 +++ src/main/java/com/mzl/flower/service/partner/PartnerService.java | 25 ++++++ src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java | 3 src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java | 7 + src/main/java/com/mzl/flower/dto/request/partner/UpdatePhoneDTO.java | 24 ++++++ src/main/java/com/mzl/flower/web/partner/PartnerController.java | 37 +++++++++ src/main/resources/mapper/partner/PartnerMapper.xml | 11 ++ 9 files changed, 199 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java b/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java index 94cee52..21184cd 100644 --- a/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java @@ -37,4 +37,7 @@ @ApiModelProperty("启用/禁用(USER_ENABLED_OR_DISABLED)") private Integer isEnabled; + + @ApiModelProperty("注册手机号") + private String loginName; } diff --git a/src/main/java/com/mzl/flower/dto/request/partner/UpdatePhoneDTO.java b/src/main/java/com/mzl/flower/dto/request/partner/UpdatePhoneDTO.java new file mode 100644 index 0000000..4486540 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/partner/UpdatePhoneDTO.java @@ -0,0 +1,24 @@ +package com.mzl.flower.dto.request.partner; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UpdatePhoneDTO { + + @ApiModelProperty(value = "用户名/手机号码", required = true) + private String username; + + @ApiModelProperty(value = "短信验证码") + private String smsCode; + + @ApiModelProperty(value = "图形验证码") + private String code; + + @ApiModelProperty(value = "图形验证码id") + private String codeId; + + @ApiModelProperty(value = "用户id") + private String id; + +} diff --git a/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java b/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java index b71392a..ec9c2bc 100644 --- a/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java @@ -71,4 +71,7 @@ @ApiModelProperty("头像") private String cover; + @ApiModelProperty("注册手机号") + private String loginName; + } diff --git a/src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java b/src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java index 131ee9a..cef30f4 100644 --- a/src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java @@ -74,4 +74,11 @@ @ApiModelProperty(value = "真实成交总价格") private BigDecimal realTotal; + + @ApiModelProperty(value = "商品ID") + private Long flowerId;//商品id + + @ApiModelProperty(value = "供应商ID") + private Long supplierId;//商品id + } diff --git a/src/main/java/com/mzl/flower/service/partner/PartnerService.java b/src/main/java/com/mzl/flower/service/partner/PartnerService.java index 69a2141..5461de7 100644 --- a/src/main/java/com/mzl/flower/service/partner/PartnerService.java +++ b/src/main/java/com/mzl/flower/service/partner/PartnerService.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +52,10 @@ @Resource private BaseService baseService; + + @Autowired + private UserService userService; + public PartnerService(PartnerMapper partnerMapper, UserMapper userMapper, WxMaService maService, UploadService uploadService) { this.partnerMapper = partnerMapper; @@ -257,4 +262,24 @@ partnerMapper.updateById(partner); } + @Transactional + public void phoneUpdate(UpdatePhoneDTO dto) { + Partner partner = partnerMapper.selectById(dto.getId()); + if(partner==null){ + throw new ValidationException("合伙人信息未登记"); + } + User user = userService.getUserById(partner.getUserId()); + if(user == null){ + throw new ValidationException("用户不存在"); + } + partner.setContactTel(dto.getUsername()); + partner.update(SecurityUtils.getUserId()); + partnerMapper.updateById(partner); + + user.setTel(dto.getUsername()); + user.setLoginName(dto.getUsername()); + user.update(SecurityUtils.getUserId()); + userMapper.updateById(user); + + } } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index 34d6b5b..3b76438 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -68,10 +68,8 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; @Service @Transactional @@ -1614,4 +1612,77 @@ } + + @Transactional + public String copyOrder(String id) { + List<OrderItem> ls = orderItemMapper.selectList( + new QueryWrapper<OrderItem>().eq("order_id", id)); + StringBuilder sb=new StringBuilder(); + ls.stream().forEach(orderItem -> { + Cart cart = null; + final Long flowerId = orderItem.getFlowerId(); + final Integer num = orderItem.getNum(); + final String userId=orderItem.getCreateBy(); + // 查看当前的花是否已经下架 + Flower flower = flowerMapper.selectById(flowerId); + // 查看当前的花的限购 + final Integer limited = flower.getLimited(); + + // 查看当前购物车里面是否已经存在当前花 + cart = cartMapper.selectOne(new QueryWrapper<Cart>() + .eq("create_by", orderItem.getCreateBy()).eq("flower_id",flowerId)); + + if(null==cart){ + cart = new Cart(); + cart.setFlowerId(flowerId); + cart.setNum(0); + cart.create(orderItem.getCreateBy()); + } + + if (!flower.getStatus().equals(Constants.FLOWER_STATUS.UP.name())) { + sb.append(flower.getName() + "已下架"); + }else if(flower.getStatus().equals(Constants.FLOWER_STATUS.UP.name())){ + // 未下架库存逻辑控制 + Integer tmpNum=cart.getNum()+num; + //查看当前的库存 + if (null!=flower.getStock() && flower.getStock() > 0 && flower.getStock().compareTo(tmpNum) >= 0) { + // 库存充足 + cart.setNum(tmpNum); + } else if (null!=flower.getStock() && flower.getStock() > 0 && flower.getStock().compareTo(tmpNum) < 0) { + // 库存不足,剩多少给多少 + cart.setNum(flower.getStock()); + sb.append(flower.getName() + "购物车的总数超过库存,已调整成库存数!"); + }else { + sb.append(flower.getName() + "已无库存"); + } + + // 限购控制,如果当前的购物车的数量大于限购的话,则需要控制 + if(null!=limited && limited>0){ + Integer buyedNum= getFlowerCompleteNumToday(userId,flowerId); + Integer todayNum=cart.getNum()+buyedNum; + // + if(todayNum>limited){ + cart.setNum(limited-buyedNum<=0?0:limited-buyedNum); + sb.append(flower.getName() + "购物车的总数超过限购,已调整成未限购数!"); + } + } + + } + + if(null!=cart){ + // 插入购物车 + if(null!=cart.getId()){ + // 新增 + cartMapper.updateById(cart); + }else{ + // 更新 + cartMapper.insert(cart); + } + } + + }); + + return sb.toString(); + + } } diff --git a/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java b/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java index f76374b..a18d47f 100644 --- a/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java +++ b/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java @@ -148,4 +148,19 @@ orderService.deleteOrder(id); return returnData(R.SUCCESS.getCode(), null); } + + + + + + @GetMapping(value = "/copyOrder") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query"), + }) + @ApiOperation(value = "再来一单") + public ResponseEntity<ReturnDataDTO> copyOrder(String id) { + String message=orderService.copyOrder(id); + return returnData(R.SUCCESS.getCode(),null, message); + } + } diff --git a/src/main/java/com/mzl/flower/web/partner/PartnerController.java b/src/main/java/com/mzl/flower/web/partner/PartnerController.java index 5e0fce5..61874dc 100644 --- a/src/main/java/com/mzl/flower/web/partner/PartnerController.java +++ b/src/main/java/com/mzl/flower/web/partner/PartnerController.java @@ -4,12 +4,19 @@ import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; +import com.mzl.flower.base.cache.StringCacheClient; +import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.partner.*; import com.mzl.flower.dto.response.partner.PartnerDTO; +import com.mzl.flower.entity.system.User; import com.mzl.flower.service.partner.PartnerService; +import com.mzl.flower.service.system.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -24,6 +31,13 @@ public class PartnerController extends BaseController { private final PartnerService partnerService; + + @Autowired + private StringCacheClient stringCacheClient; + public static final String SMS_CODE_KEY = "SMS-CODE-KEY"; + public static final String TOKEN_KEY = "TOKEN-KEY"; + + public static final String SEPARATOR = ":"; public PartnerController(PartnerService partnerService) { this.partnerService = partnerService; @@ -92,4 +106,27 @@ return returnData(R.SUCCESS.getCode(),null); } + + @PostMapping("/phone/update") + @ApiOperation(value = "合伙人注册手机号修改", notes = "合伙人注册手机号修改") + public ResponseEntity<ReturnDataDTO> phoneUpdate(@Validated @RequestBody UpdatePhoneDTO dto) { + // TODO + String tel = dto.getUsername(); + String smsCode = dto.getSmsCode(); + if (StringUtils.isBlank(tel)) { + throw new ValidationException("手机号码不能为空"); + } + if (StringUtils.isBlank(smsCode)) { + throw new ValidationException("手机验证码不能为空"); + } + //从缓存中获取验证码 + String smsCacheCode = stringCacheClient.get(SMS_CODE_KEY + SEPARATOR + Constants.USER_TYPE.admin.name() + SEPARATOR + tel); + if (!StringUtils.equals(smsCode, smsCacheCode)) { + throw new ValidationException("手机验证码不正确"); + } + + partnerService.phoneUpdate(dto); + return returnData(R.SUCCESS.getCode(),null); + } + } diff --git a/src/main/resources/mapper/partner/PartnerMapper.xml b/src/main/resources/mapper/partner/PartnerMapper.xml index 232cb24..7a33c98 100644 --- a/src/main/resources/mapper/partner/PartnerMapper.xml +++ b/src/main/resources/mapper/partner/PartnerMapper.xml @@ -3,13 +3,22 @@ <mapper namespace="com.mzl.flower.mapper.partner.PartnerMapper"> <select id="queryPartner" resultType="com.mzl.flower.dto.response.partner.PartnerDTO"> - select * from t_partner_info t where t.deleted= 0 + select t.* ,u.login_name + from t_partner_info t + left join t_user u + on t.user_id=u.id + and u.type='partner' + where t.deleted= 0 <if test="dto.name!=null and dto.name!=''"> AND t.name LIKE CONCAT('%',#{dto.name}, '%') </if> <if test="dto.tel!=null and dto.tel!=''"> AND t.contact_tel LIKE CONCAT('%',#{dto.tel}, '%') </if> + <if test="dto.loginName!=null and dto.loginName!=''"> + AND u.login_name LIKE CONCAT('%',#{dto.loginName}, '%') + </if> + <if test="dto.status!=null and dto.status!=''"> AND t.status = #{dto.status} </if> -- Gitblit v1.9.3