src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/dto/request/partner/UpdatePhoneDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/dto/response/payment/OrderItemListDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/partner/PartnerService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/payment/OrderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/web/partner/PartnerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/partner/PartnerMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } 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; } src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java
@@ -71,4 +71,7 @@ @ApiModelProperty("头像") private String cover; @ApiModelProperty("注册手机号") private String loginName; } 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 } 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); } } 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(); } } 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); } } 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); } } 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>