From a47d73cafbf2031ea93d9b414c34398f5d0e54d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Fri, 14 Feb 2025 13:42:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9C=B0=E5=9D=80=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/controller/AddressController.java | 82 +++++++++++++++++ .../java/io/modules/item/dao/AddressDao.java | 17 ++++ .../java/io/modules/item/dto/AddressDTO.java | 53 +++++++++++ .../io/modules/item/entity/AddressEntity.java | 58 ++++++++++++ .../modules/item/service/AddressService.java | 16 ++++ .../item/service/impl/AddressServiceImpl.java | 34 +++++++ .../item/service/impl/ItemServiceImpl.java | 4 + .../java/io/controller/AddressController.java | 89 +++++++++++++++++++ .../java/io/controller/ItemController.java | 6 +- 9 files changed, 357 insertions(+), 2 deletions(-) create mode 100644 admin-ui/admin/src/main/java/io/modules/sys/controller/AddressController.java create mode 100644 admin-ui/common/src/main/java/io/modules/item/dao/AddressDao.java create mode 100644 admin-ui/common/src/main/java/io/modules/item/dto/AddressDTO.java create mode 100644 admin-ui/common/src/main/java/io/modules/item/entity/AddressEntity.java create mode 100644 admin-ui/common/src/main/java/io/modules/item/service/AddressService.java create mode 100644 admin-ui/common/src/main/java/io/modules/item/service/impl/AddressServiceImpl.java create mode 100644 admin-ui/front/src/main/java/io/controller/AddressController.java diff --git a/admin-ui/admin/src/main/java/io/modules/sys/controller/AddressController.java b/admin-ui/admin/src/main/java/io/modules/sys/controller/AddressController.java new file mode 100644 index 0000000..106e013 --- /dev/null +++ b/admin-ui/admin/src/main/java/io/modules/sys/controller/AddressController.java @@ -0,0 +1,82 @@ +package io.modules.sys.controller; + +import io.common.constant.Constant; +import io.common.page.PageData; +import io.common.utils.Result; +import io.common.validator.AssertUtils; +import io.common.validator.ValidatorUtils; +import io.common.validator.group.AddGroup; +import io.common.validator.group.DefaultGroup; +import io.common.validator.group.UpdateGroup; +import io.modules.item.dto.AddressDTO; +import io.modules.item.service.AddressService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * 收货地址表 + */ +@RestController +@RequestMapping("sys/address") +@Tag(name="收货地址表") +public class AddressController { + @Autowired + private AddressService addressService; + + @GetMapping("page") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref="int") , + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY,required = true, ref="int") , + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref="String") , + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String") + }) + public Result> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = addressService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + @Operation(summary = "信息") + public Result get(@PathVariable("id") Long id){ + AddressDTO data = addressService.get(id); + return new Result().ok(data); + } + + @PostMapping + @Operation(summary = "保存") + public Result save(@RequestBody AddressDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + addressService.save(dto); + return new Result(); + } + + @PutMapping + @Operation(summary = "修改") + public Result update(@RequestBody AddressDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + addressService.update(dto); + return new Result(); + } + + @DeleteMapping("{id}") + @Operation(summary = "删除") + public Result delete(@PathVariable Long id) { + Long[] ids = new Long[]{id}; + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + addressService.delete(ids); + return new Result(); + } + + +} diff --git a/admin-ui/common/src/main/java/io/modules/item/dao/AddressDao.java b/admin-ui/common/src/main/java/io/modules/item/dao/AddressDao.java new file mode 100644 index 0000000..e300122 --- /dev/null +++ b/admin-ui/common/src/main/java/io/modules/item/dao/AddressDao.java @@ -0,0 +1,17 @@ +package io.modules.item.dao; + + +import io.common.dao.BaseDao; +import io.modules.item.entity.AddressEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 收货地址表 + * + * @author Mark # + * @since 1.0.0 2025-02-14 + */ +@Mapper +public interface AddressDao extends BaseDao { + +} \ No newline at end of file diff --git a/admin-ui/common/src/main/java/io/modules/item/dto/AddressDTO.java b/admin-ui/common/src/main/java/io/modules/item/dto/AddressDTO.java new file mode 100644 index 0000000..ce8e41f --- /dev/null +++ b/admin-ui/common/src/main/java/io/modules/item/dto/AddressDTO.java @@ -0,0 +1,53 @@ +package io.modules.item.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.SchemaProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 收货地址表 + * + * @author Mark # + * @since 1.0.0 2025-02-14 + */ +@Data +@Schema(name = "收货地址表") +public class AddressDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @SchemaProperty(name = "编号") + private Long id; + + @SchemaProperty(name = "用户编号") + private Long userId; + + @SchemaProperty(name = "收货人姓名") + private String recipientName; + + @SchemaProperty(name = "详细地址") + private String address; + + @SchemaProperty(name = "省份") + private String province; + + @SchemaProperty(name = "城市") + private String city; + + @SchemaProperty(name = "区域/街道") + private String area; + + @SchemaProperty(name = "收货人联系电话") + private String phone; + + @SchemaProperty(name = "是否是默认地址") + private Integer isDefault; + + @SchemaProperty(name = "创建时间") + private Date createTime; + + +} diff --git a/admin-ui/common/src/main/java/io/modules/item/entity/AddressEntity.java b/admin-ui/common/src/main/java/io/modules/item/entity/AddressEntity.java new file mode 100644 index 0000000..6201550 --- /dev/null +++ b/admin-ui/common/src/main/java/io/modules/item/entity/AddressEntity.java @@ -0,0 +1,58 @@ +package io.modules.item.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * 收货地址表 + * + * @author Mark # + * @since 1.0.0 2025-02-14 + */ +@Data +@TableName("tb_address") +public class AddressEntity { + + /** + * 编号 + */ + private Long id; + /** + * 用户编号 + */ + private Long userId; + /** + * 收货人姓名 + */ + private String recipientName; + /** + * 详细地址 + */ + private String address; + /** + * 省份 + */ + private String province; + /** + * 城市 + */ + private String city; + /** + * 区域/街道 + */ + private String area; + /** + * 收货人联系电话 + */ + private String phone; + /** + * 是否是默认地址 + */ + private Integer isDefault; + /** + * 创建时间 + */ + private Date createTime; +} \ No newline at end of file diff --git a/admin-ui/common/src/main/java/io/modules/item/service/AddressService.java b/admin-ui/common/src/main/java/io/modules/item/service/AddressService.java new file mode 100644 index 0000000..9736cc1 --- /dev/null +++ b/admin-ui/common/src/main/java/io/modules/item/service/AddressService.java @@ -0,0 +1,16 @@ +package io.modules.item.service; + + +import io.common.service.CrudService; +import io.modules.item.dto.AddressDTO; +import io.modules.item.entity.AddressEntity; + +/** + * 收货地址表 + * + * @author Mark # + * @since 1.0.0 2025-02-14 + */ +public interface AddressService extends CrudService { + +} \ No newline at end of file diff --git a/admin-ui/common/src/main/java/io/modules/item/service/impl/AddressServiceImpl.java b/admin-ui/common/src/main/java/io/modules/item/service/impl/AddressServiceImpl.java new file mode 100644 index 0000000..36af9fd --- /dev/null +++ b/admin-ui/common/src/main/java/io/modules/item/service/impl/AddressServiceImpl.java @@ -0,0 +1,34 @@ +package io.modules.item.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.util.StrUtil; +import io.common.service.impl.CrudServiceImpl; +import io.modules.item.dao.AddressDao; +import io.modules.item.dto.AddressDTO; +import io.modules.item.entity.AddressEntity; +import io.modules.item.service.AddressService; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * 收货地址表 + * + * @author Mark # + * @since 1.0.0 2025-02-14 + */ +@Service +public class AddressServiceImpl extends CrudServiceImpl implements AddressService { + + @Override + public QueryWrapper getWrapper(Map params){ + String id = (String)params.get("id"); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(id), "id", id); + + return wrapper; + } + + +} \ No newline at end of file diff --git a/admin-ui/common/src/main/java/io/modules/item/service/impl/ItemServiceImpl.java b/admin-ui/common/src/main/java/io/modules/item/service/impl/ItemServiceImpl.java index 138bd57..e1c25ee 100644 --- a/admin-ui/common/src/main/java/io/modules/item/service/impl/ItemServiceImpl.java +++ b/admin-ui/common/src/main/java/io/modules/item/service/impl/ItemServiceImpl.java @@ -40,6 +40,7 @@ public class ItemServiceImpl extends CrudServiceImpl getWrapper(Map params){ String title = (String)params.get("title"); String status = (String)params.get("status"); + String view = (String)params.get("view"); QueryWrapper wrapper = new QueryWrapper<>(); @@ -61,6 +62,9 @@ public class ItemServiceImpl extends CrudServiceImpl> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = addressService.page(params); + + return new Result>().ok(page); + } + + @GetMapping("{id}") + @Operation(summary = "信息") + public Result get(@PathVariable("id") Long id){ + AddressDTO data = addressService.get(id); + + return new Result().ok(data); + } + + @PostMapping + @Operation(summary = "保存") + public Result save(@RequestBody AddressDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + + addressService.save(dto); + + return new Result(); + } + + @PutMapping + @Operation(summary = "修改") + public Result update(@RequestBody AddressDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + addressService.update(dto); + return new Result(); + } + + @DeleteMapping("{id}") + @Operation(summary = "删除") + public Result delete(@PathVariable Long id) { + Long[] ids = new Long[]{id}; + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + addressService.delete(ids); + return new Result(); + } + + +} diff --git a/admin-ui/front/src/main/java/io/controller/ItemController.java b/admin-ui/front/src/main/java/io/controller/ItemController.java index 6a6290e..9459420 100644 --- a/admin-ui/front/src/main/java/io/controller/ItemController.java +++ b/admin-ui/front/src/main/java/io/controller/ItemController.java @@ -49,7 +49,8 @@ public class ItemController { @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY,required = true, ref="int") , @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref="String") , @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String"), - @Parameter(name = "status", description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String") + @Parameter(name = "status", description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String"), + @Parameter(name = "view", description = "预览排序", in = ParameterIn.QUERY, ref="String"), }) public Result> page(@Parameter(hidden = true) @RequestParam Map params){ PageData page = itemService.page(params); @@ -87,7 +88,6 @@ public class ItemController { List list = itemService.score(); List res = list.stream().map(e -> { e.setImage(uploadUrl + e.getImage()); - return e; }).collect(Collectors.toList()); return new Result>().ok(res); @@ -112,6 +112,8 @@ public class ItemController { ItemDTO data = itemService.get(id); data.setImage(uploadUrl + data.getImage()); + data.setView(data.getView() + 1); + itemService.update(data); // data.setIsFavorite(userBehaviorService.getIsFavorite(data.getId(),1)); return new Result().ok(data); }