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