feat():新增商品列表查询接口

dev2
WeiRan 2024-08-21 22:39:38 +08:00
parent 75907ced24
commit ad39c86702
13 changed files with 381 additions and 61 deletions

View File

@ -1,12 +1,17 @@
package com.muyu.cloud.market.domin; package com.muyu.cloud.market.domin;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* @Authorweiran * @Authorweiran
* @Packagecom.muyu.cloud.market.domin * @Packagecom.muyu.cloud.market.domin
@ -24,7 +29,7 @@ public class Product extends BaseEntity {
/** /**
* *
*/ */
private String productId; private Integer productId;
/** /**
* *
*/ */
@ -32,7 +37,7 @@ public class Product extends BaseEntity {
/** /**
* *
*/ */
private String productPrice; private BigDecimal productPrice;
/** /**
* *
*/ */
@ -40,7 +45,7 @@ public class Product extends BaseEntity {
/** /**
* 0 1 * 0 1
*/ */
private String productState; private Integer productState;
/** /**
*/ */
*/ */
@ -48,15 +53,21 @@ public class Product extends BaseEntity {
/** /**
* *
*/ */
private String productInventory; private Integer productInventory;
/** /**
* *
*/ */
private String product_sales; private Integer productSales;
/**
*
*/
private String productType;
/** /**
* *
*/ */
private String product_shelvesdate; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "产品上架日期",defaultValue = "2024-8-9 10:47:57",type = "Date")
private Date productShelvesdate;

View File

@ -1,5 +1,7 @@
package com.muyu.cloud.market.domin.req; package com.muyu.cloud.market.domin.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -20,6 +22,8 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@Tag(name = "添加客户信息请求对象",description = "根据入参进行客户信息的添加") @Tag(name = "添加客户信息请求对象",description = "根据入参进行客户信息的添加")
public class CustomerAddReq { public class CustomerAddReq {
/** /**
* *
*/ */

View File

@ -0,0 +1,59 @@
package com.muyu.cloud.market.domin.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.domin.req
* @Projectcloud-market
* @nameCustomerUpdReq
* @Date2024/8/21 14:13
*/
@Data
@Builder
@AllArgsConstructor
@Tag(name = "修改客户信息请求对象",description = "根据入参进行客户信息的修改")
public class CustomerUpdReq {
/**
* Id
*/
@NotEmpty(message = "客户id不可为空")
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
*
*/
private String name;
/**
*
*/
private String gender;
/**
*
*/
private String idCard;
/**
*
*/
private String tel;
/**
*
*/
private String address;
/**
*
*/
private String credit;
/**
*
*/
private String email;
}

View File

@ -0,0 +1,52 @@
package com.muyu.cloud.market.domin.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.domin.req
* @Projectcloud-market
* @nameProductListReq
* @Date2024/8/21 15:15
*/
@Tag(name = "接口产品列表请求对象")
@Data
@AllArgsConstructor
@Builder
public class ProductListReq {
/**
*
*/
@Schema(description = "产品ID",defaultValue = "1",type = "Integer")
private Integer id;
/**
*
*/
@Schema(description = "产品名称",defaultValue = "根据身份证查询",type = "String")
private String productName;
/**
*
*/
@Schema(description = "客户状态 同数据字典-系统是否",defaultValue = "Y",type = "String")
private String status;
@Schema(description = "创建人",defaultValue = "muyu",type = "String")
private String createBy;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@Schema(description = "创建时间",defaultValue = "2024-07-31 14:30:29",type = "Date")
private Date createTime;
}

View File

@ -0,0 +1,74 @@
package com.muyu.cloud.market.domin.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.cloud.market.domin.Product;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.domin.resp
* @Projectcloud-market
* @nameProductListResp
* @Date2024/8/21 15:06
*/
@Data
@Builder
@AllArgsConstructor
@Tag(name="接口产品信息响应对象",description = "接口产品查询的响应结果")
public class ProductListResp {
/**
*
*/
private Integer productId;
/**
*
*/
private String productName;
/**
*
*/
private BigDecimal productPrice;
/**
*
*/
private String productContent;
/**
* 0 1
*/
private Integer productState;
@Schema(description = "创建人",defaultValue = "muyu",type = "String")
private String createBy;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@Schema(description = "创建时间",defaultValue = "2024-07-31 14:30:29",type = "Date")
private Date createTime;
/**
*
* @param product
* @return
*/
public static ProductListResp productListRespbuild(Product product){
return ProductListResp.builder()
.productId(product.getProductId())
.productName(product.getProductName())
.productPrice(product.getProductPrice())
.productContent(product.getProductContent())
.productState(product.getProductState())
.createBy(product.getCreateBy())
.createTime(product.getCreateTime())
.build();
}
}

View File

@ -0,0 +1,64 @@
package com.muyu.cloud.market.controller;
import com.muyu.cloud.market.domin.req.CustomerAddReq;
import com.muyu.cloud.market.domin.req.CustomerUpdReq;
import com.muyu.cloud.market.service.InsideCustomerMessageService;
import com.muyu.common.core.domain.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.controller
* @Projectcloud-market
* @nameInsideUseInterfaceController
* @Date2024/8/20 20:42
*/
@Log4j2
@RestController
@RequestMapping("InsideCostomerMessage")
@Tag(name = "内部使用控制层",description = "进行公司内部用户信息使用管理、增删改等相关操作")
public class InsideCustomerMessageController {
/**
* 使
*/
@Autowired
private InsideCustomerMessageService insideCustomerMessageService;
/**
*
* @return
*/
@PostMapping
@Operation(summary = "新增客户信息",description = "客户信息的添加操作")
public Result addCustomerMessage(@Validated @RequestBody CustomerAddReq customerAddReq){
insideCustomerMessageService.add(customerAddReq);
return Result.success(null,"操作成功");
}
/**
*
* @param id
* @param customerUpdReq
* @return
*/
@PutMapping("/{id}")
@Operation(summary = "客户信息修改", description = "通过ID修改客户信息")
public Result<String> update(
@Schema(title = "客户ID", type = "Integer", defaultValue = "1", description = "修改客户信息需要依据的唯一条件")
@PathVariable("id") Integer id,
@RequestBody @Validated CustomerUpdReq customerUpdReq) {
insideCustomerMessageService.updateBy(customerUpdReq);
return Result.success(null, "操作成功");
}
}

View File

@ -1,47 +0,0 @@
package com.muyu.cloud.market.controller;
import com.muyu.cloud.market.domin.req.CustomerAddReq;
import com.muyu.cloud.market.service.FindCustomerMeaasgeService;
import com.muyu.cloud.market.service.InsideUseInterfaceService;
import com.muyu.common.core.domain.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.controller
* @Projectcloud-market
* @nameInsideUseInterfaceController
* @Date2024/8/20 20:42
*/
@Log4j2
@RestController
@RequestMapping("InsideUse")
@Tag(name = "内部使用控制层",description = "进行公司内部接口使用管理、增删改等相关操作")
public class InsideUseInterfaceController {
/**
* 使
*/
@Autowired
private InsideUseInterfaceService insideUseInterfaceService;
/**
*
* @return
*/
@PostMapping
@Operation(summary = "新增客户信息",description = "客户信息的添加操作")
public Result addCustomerMessage(@Validated @RequestBody CustomerAddReq customerAddReq){
insideUseInterfaceService.add(customerAddReq);
return Result.success(null,"操作成功");
}
}

View File

@ -1,10 +1,22 @@
package com.muyu.cloud.market.controller; package com.muyu.cloud.market.controller;
import com.muyu.cloud.market.domin.Product;
import com.muyu.cloud.market.domin.req.ProductListReq;
import com.muyu.cloud.market.domin.resp.ProductListResp;
import com.muyu.cloud.market.service.ProductApiService;
import com.muyu.common.core.domain.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* @Authorweiran * @Authorweiran
* @Packagecom.muyu.cloud.market.controller * @Packagecom.muyu.cloud.market.controller
@ -18,6 +30,21 @@ import org.springframework.web.bind.annotation.RestController;
@Tag(name = "产品接口控制层",description = "进行产品接口管理、查看等相关操作") @Tag(name = "产品接口控制层",description = "进行产品接口管理、查看等相关操作")
public class ProductApiController { public class ProductApiController {
@Autowired
private ProductApiService productApiService;
/**
*
* @param productListReq
* @return
*/
@RequestMapping(path ="/list",method = RequestMethod.POST)
@Operation(summary = "产品列表",description = "查询全部产品信息")
public Result<List<ProductListResp>> selectList(@Validated @RequestBody ProductListReq productListReq){
return Result.success(productApiService.selectList(productListReq));
}
} }

View File

@ -3,7 +3,6 @@ package com.muyu.cloud.market.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.cloud.market.domin.Customer; import com.muyu.cloud.market.domin.Customer;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
/** /**
* @Authorweiran * @Authorweiran
@ -13,7 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
* @Date2024/8/20 20:51 * @Date2024/8/20 20:51
*/ */
@Mapper @Mapper
public interface InsideUseInterfaceMapper extends BaseMapper<Customer> { public interface InsideCustomerMessageMapper extends BaseMapper<Customer> {
} }

View File

@ -3,6 +3,7 @@ package com.muyu.cloud.market.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.cloud.market.domin.Customer; import com.muyu.cloud.market.domin.Customer;
import com.muyu.cloud.market.domin.req.CustomerAddReq; import com.muyu.cloud.market.domin.req.CustomerAddReq;
import com.muyu.cloud.market.domin.req.CustomerUpdReq;
/** /**
* @Authorweiran * @Authorweiran
@ -11,11 +12,17 @@ import com.muyu.cloud.market.domin.req.CustomerAddReq;
* @nameInsideUseInterfaceService * @nameInsideUseInterfaceService
* @Date2024/8/20 20:45 * @Date2024/8/20 20:45
*/ */
public interface InsideUseInterfaceService extends IService<Customer> { public interface InsideCustomerMessageService extends IService<Customer> {
/** /**
* *
* *
*/ */
void add(CustomerAddReq customerAddReq); void add(CustomerAddReq customerAddReq);
/**
*
* @param customerUpdReq
*/
void updateBy(CustomerUpdReq customerUpdReq);
} }

View File

@ -2,6 +2,10 @@ package com.muyu.cloud.market.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.cloud.market.domin.Product; import com.muyu.cloud.market.domin.Product;
import com.muyu.cloud.market.domin.req.ProductListReq;
import com.muyu.cloud.market.domin.resp.ProductListResp;
import java.util.List;
/** /**
* @Authorweiran * @Authorweiran
@ -11,4 +15,11 @@ import com.muyu.cloud.market.domin.Product;
* @Date2024/8/20 15:01 * @Date2024/8/20 15:01
*/ */
public interface ProductApiService extends IService<Product> { public interface ProductApiService extends IService<Product> {
/**
*
* @param productListReq
* @return
*/
List<ProductListResp> selectList(ProductListReq productListReq);
} }

View File

@ -3,8 +3,9 @@ package com.muyu.cloud.market.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.cloud.market.domin.Customer; import com.muyu.cloud.market.domin.Customer;
import com.muyu.cloud.market.domin.req.CustomerAddReq; import com.muyu.cloud.market.domin.req.CustomerAddReq;
import com.muyu.cloud.market.mapper.InsideUseInterfaceMapper; import com.muyu.cloud.market.domin.req.CustomerUpdReq;
import com.muyu.cloud.market.service.InsideUseInterfaceService; import com.muyu.cloud.market.mapper.InsideCustomerMessageMapper;
import com.muyu.cloud.market.service.InsideCustomerMessageService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,13 +21,13 @@ import java.util.Date;
* @Date2024/8/20 20:45 * @Date2024/8/20 20:45
*/ */
@Service @Service
public class InsideUseInterfaceServiceImpl extends ServiceImpl<InsideUseInterfaceMapper, Customer> implements InsideUseInterfaceService { public class InsideCustomerMessageServiceImpl extends ServiceImpl<InsideCustomerMessageMapper, Customer> implements InsideCustomerMessageService {
/** /**
* 使 * 使
*/ */
@Autowired @Autowired
private InsideUseInterfaceMapper insideUseInterfaceMapper; private InsideCustomerMessageMapper insideCustomerMessageMapper;
/** /**
* *
@ -56,6 +57,39 @@ public class InsideUseInterfaceServiceImpl extends ServiceImpl<InsideUseInterfac
customer.setAddress(customerAddReq.getAddress()); customer.setAddress(customerAddReq.getAddress());
customer.setCredit(customer.getCredit()); customer.setCredit(customer.getCredit());
customer.setEmail(customer.getEmail()); customer.setEmail(customer.getEmail());
insideUseInterfaceMapper.insert(customer); insideCustomerMessageMapper.insert(customer);
}
/**
*
* @param customerUpdReq
*/
@Override
public void updateBy(CustomerUpdReq customerUpdReq) {
Customer customer = new Customer();
//从身份证中截取出出生日期
if (customerUpdReq.getIdCard().length()!=18){
throw new RuntimeException();
}
String birthday = customerUpdReq.getIdCard().substring(6, 14);
String birthday1=birthday.substring(0, 4) + '-' + birthday.substring(4, 6) + '-' + birthday.substring(6);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//如果转化过程中出现异常需要捕捉ParseException并进行处理
try {
Date birthday2 = simpleDateFormat.parse(birthday1);
customer.setBirthday(birthday2);
}catch (ParseException e){
e.printStackTrace();
}
customer.setId(customerUpdReq.getId());
customer.setName(customerUpdReq.getName());
customer.setGender(customerUpdReq.getGender());
customer.setIdCard(customerUpdReq.getIdCard());
customer.setTel(customerUpdReq.getTel());
customer.setAddress(customerUpdReq.getAddress());
customer.setCredit(customerUpdReq.getCredit());
customer.setEmail(customerUpdReq.getEmail());
insideCustomerMessageMapper.updateById(customer);
} }
} }

View File

@ -1,11 +1,17 @@
package com.muyu.cloud.market.service.impl; package com.muyu.cloud.market.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.cloud.market.domin.Product; import com.muyu.cloud.market.domin.Product;
import com.muyu.cloud.market.domin.req.ProductListReq;
import com.muyu.cloud.market.domin.resp.ProductListResp;
import com.muyu.cloud.market.mapper.ProductApiMapper; import com.muyu.cloud.market.mapper.ProductApiMapper;
import com.muyu.cloud.market.service.ProductApiService; import com.muyu.cloud.market.service.ProductApiService;
import com.muyu.common.core.utils.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @Authorweiran * @Authorweiran
* @Packagecom.muyu.cloud.market.service.impl * @Packagecom.muyu.cloud.market.service.impl
@ -15,4 +21,23 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product> implements ProductApiService { public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product> implements ProductApiService {
/**
*
* @param productListReq
* @return
*/
@Override
public List<ProductListResp> selectList(ProductListReq productListReq) {
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(productListReq.getProductName()),
Product::getProductName,productListReq.getProductName());
queryWrapper.eq(StringUtils.isNotEmpty(productListReq.getStatus()),
Product::getProductState,productListReq.getStatus());
List<Product> productList = this.list(queryWrapper);
return productList.stream()
.map(product -> ProductListResp.productListRespbuild(product))
.toList();
}
} }