From f86f00d325149b3412b9ab88d3cdaf513bbe5496 Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Mon, 27 May 2024 01:23:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=95=86=E5=93=81=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserCardController.java | 115 ++++++++++++ .../controller/UserCouponController.java | 2 +- .../controller/UserInvoiceController.java | 2 +- .../gxwebsoft/booking/entity/UserCard.java | 150 ++++++++++++++++ .../gxwebsoft/booking/entity/UserCoupon.java | 4 +- .../gxwebsoft/booking/entity/UserInvoice.java | 6 +- .../booking/mapper/UserCardMapper.java | 37 ++++ .../booking/mapper/UserCouponMapper.java | 2 +- .../booking/mapper/UserInvoiceMapper.java | 2 +- .../booking/mapper/xml/UserCardMapper.xml | 150 ++++++++++++++++ .../booking/mapper/xml/UserInvoiceMapper.xml | 2 +- .../booking/param/UserCardParam.java | 165 ++++++++++++++++++ .../booking/param/UserCouponParam.java | 8 +- .../booking/param/UserInvoiceParam.java | 5 +- .../booking/service/UserCardService.java | 42 +++++ .../booking/service/UserCouponService.java | 2 +- .../booking/service/UserInvoiceService.java | 2 +- .../service/impl/UserCardServiceImpl.java | 47 +++++ .../service/impl/UserCouponServiceImpl.java | 2 +- .../service/impl/UserInvoiceServiceImpl.java | 2 +- .../shop/controller/OrderController.java | 49 ++++-- .../shop/controller/OrderGoodsController.java | 115 ++++++++++++ .../controller/UserAddressController.java | 119 +++++++++++++ .../java/com/gxwebsoft/shop/entity/Goods.java | 7 +- .../java/com/gxwebsoft/shop/entity/Order.java | 13 +- .../com/gxwebsoft/shop/entity/OrderGoods.java | 107 ++++++++++++ .../gxwebsoft/shop/entity/UserAddress.java | 71 ++++++++ .../shop/mapper/OrderGoodsMapper.java | 37 ++++ .../shop/mapper/UserAddressMapper.java | 37 ++++ .../gxwebsoft/shop/mapper/xml/GoodsMapper.xml | 4 +- .../shop/mapper/xml/OrderGoodsMapper.xml | 96 ++++++++++ .../gxwebsoft/shop/mapper/xml/OrderMapper.xml | 5 +- .../shop/mapper/xml/UserAddressMapper.xml | 69 ++++++++ .../com/gxwebsoft/shop/param/GoodsParam.java | 4 +- .../gxwebsoft/shop/param/OrderGoodsParam.java | 103 +++++++++++ .../com/gxwebsoft/shop/param/OrderParam.java | 8 + .../shop/param/UserAddressParam.java | 66 +++++++ .../shop/service/OrderGoodsService.java | 42 +++++ .../shop/service/UserAddressService.java | 42 +++++ .../service/impl/OrderGoodsServiceImpl.java | 47 +++++ .../shop/service/impl/OrderServiceImpl.java | 56 ++++-- .../service/impl/UserAddressServiceImpl.java | 48 +++++ .../gxwebsoft/generator/BookingGenerator.java | 6 +- .../gxwebsoft/generator/ShopGenerator.java | 10 +- 44 files changed, 1845 insertions(+), 63 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/booking/controller/UserCardController.java create mode 100644 src/main/java/com/gxwebsoft/booking/entity/UserCard.java create mode 100644 src/main/java/com/gxwebsoft/booking/mapper/UserCardMapper.java create mode 100644 src/main/java/com/gxwebsoft/booking/mapper/xml/UserCardMapper.xml create mode 100644 src/main/java/com/gxwebsoft/booking/param/UserCardParam.java create mode 100644 src/main/java/com/gxwebsoft/booking/service/UserCardService.java create mode 100644 src/main/java/com/gxwebsoft/booking/service/impl/UserCardServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java create mode 100644 src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/UserAddress.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/UserAddressService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/booking/controller/UserCardController.java b/src/main/java/com/gxwebsoft/booking/controller/UserCardController.java new file mode 100644 index 0000000..486e61d --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/controller/UserCardController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.booking.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.booking.service.UserCardService; +import com.gxwebsoft.booking.entity.UserCard; +import com.gxwebsoft.booking.param.UserCardParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 会员卡控制器 + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +@Api(tags = "会员卡管理") +@RestController +@RequestMapping("/api/booking/user-card") +public class UserCardController extends BaseController { + @Resource + private UserCardService userCardService; + + @ApiOperation("分页查询会员卡") + @GetMapping("/page") + public ApiResult> page(UserCardParam param) { + // 使用关联查询 + return success(userCardService.pageRel(param)); + } + + @ApiOperation("查询全部会员卡") + @GetMapping() + public ApiResult> list(UserCardParam param) { + // 使用关联查询 + return success(userCardService.listRel(param)); + } + + @PreAuthorize("hasAuthority('booking:userCard:list')") + @ApiOperation("根据id查询会员卡") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(userCardService.getByIdRel(id)); + } + + @ApiOperation("添加会员卡") + @PostMapping() + public ApiResult save(@RequestBody UserCard userCard) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + userCard.setUserId(loginUser.getUserId()); + } + if (userCardService.save(userCard)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改会员卡") + @PutMapping() + public ApiResult update(@RequestBody UserCard userCard) { + if (userCardService.updateById(userCard)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除会员卡") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (userCardService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加会员卡") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (userCardService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改会员卡") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userCardService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除会员卡") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (userCardService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java b/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java index 06f4800..09c46ed 100644 --- a/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java +++ b/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java @@ -24,7 +24,7 @@ import java.util.List; * 我的优惠券控制器 * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ @Api(tags = "我的优惠券管理") @RestController diff --git a/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java b/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java index 40e9dd7..9e3f919 100644 --- a/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java +++ b/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java @@ -22,7 +22,7 @@ import java.util.List; * 发票控制器 * * @author 科技小王子 - * @since 2024-05-23 16:27:08 + * @since 2024-05-25 17:20:15 */ @Api(tags = "发票管理") @RestController diff --git a/src/main/java/com/gxwebsoft/booking/entity/UserCard.java b/src/main/java/com/gxwebsoft/booking/entity/UserCard.java new file mode 100644 index 0000000..a5d9dd6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/entity/UserCard.java @@ -0,0 +1,150 @@ +package com.gxwebsoft.booking.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 会员卡 + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "UserCard对象", description = "会员卡") +@TableName("booking_user_card") +public class UserCard implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "用户id") + private Integer userId; + + @ApiModelProperty(value = "sid场馆id集合,适用的场馆") + private String sid; + + @ApiModelProperty(value = "用户id(旧)") + private Integer uid; + + @ApiModelProperty(value = "vip卡id") + private Integer vid; + + @ApiModelProperty(value = "开卡人id") + private Integer aid; + + @ApiModelProperty(value = "微信订单号") + private String wechatOrder; + + @ApiModelProperty(value = "卡号") + private String code; + + @ApiModelProperty(value = "会员卡名称") + private String name; + + @ApiModelProperty(value = "真实姓名") + private String username; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "vip购卡价格") + private BigDecimal price; + + @ApiModelProperty(value = "会员卡介绍") + private String desc; + + @ApiModelProperty(value = "会员卡说明") + private String info; + + @ApiModelProperty(value = "vip卡折扣率") + private BigDecimal discount; + + @ApiModelProperty(value = "使用次数") + private Integer count; + + @ApiModelProperty(value = "每使用一次减少的金额") + private BigDecimal eachMoney; + + @ApiModelProperty(value = "剩余金额") + private BigDecimal remainingMoney; + + @ApiModelProperty(value = "续费累加次数") + private Integer number; + + @ApiModelProperty(value = "剩余次数") + private Integer num; + + @ApiModelProperty(value = "付款状态,1已付款,2未付款") + private Integer status; + + @ApiModelProperty(value = "会员卡年限") + private Integer term; + + @ApiModelProperty(value = "月限") + private Integer month; + + @ApiModelProperty(value = "IC卡类型:1年卡,2次卡,3月卡,4会员IC卡,5充值卡 ") + private Integer type; + + @ApiModelProperty(value = "卡类型:1成人卡,2儿童卡") + private Integer cardType; + + @ApiModelProperty(value = "vip卡等级类型:1特殊vip卡,2普通vip卡") + private Integer vipType; + + @ApiModelProperty(value = "特殊卡开发凭证图") + private String pic; + + @ApiModelProperty(value = "价格组") + private String prices; + + @ApiModelProperty(value = "1微信支付,2支付宝支付,3现金,4POS机刷卡,15平安健康卡") + private Integer payType; + + @ApiModelProperty(value = "是否赠送积分:1赠送,2不赠送") + private Integer isIntegral; + + @ApiModelProperty(value = "是否已开具发票:1已开发票,2未开发票") + private Integer isInvoice; + + @ApiModelProperty(value = "vip卡到期时间") + private Integer expireTime; + + @ApiModelProperty(value = "紧急联系人") + private String urgentName; + + @ApiModelProperty(value = "紧急联系人号码") + private String urgentPhone; + + @ApiModelProperty(value = "卡号") + private String cardNum; + + @ApiModelProperty(value = "密码") + private String password; + + @ApiModelProperty(value = "使用时间") + private Integer useTime; + + @ApiModelProperty(value = "创建时间") + private Integer createTime; + + private Integer updateTime; + + @ApiModelProperty(value = "身份证号码") + @TableField("IDCard") + private String idcard; + + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/src/main/java/com/gxwebsoft/booking/entity/UserCoupon.java b/src/main/java/com/gxwebsoft/booking/entity/UserCoupon.java index 05833de..71e82b1 100644 --- a/src/main/java/com/gxwebsoft/booking/entity/UserCoupon.java +++ b/src/main/java/com/gxwebsoft/booking/entity/UserCoupon.java @@ -1,6 +1,7 @@ package com.gxwebsoft.booking.entity; import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; @@ -17,11 +18,12 @@ import lombok.EqualsAndHashCode; * 我的优惠券 * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ @Data @EqualsAndHashCode(callSuper = false) @ApiModel(value = "UserCoupon对象", description = "我的优惠券") +@TableName("booking_user_coupon") public class UserCoupon implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java b/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java index 53853a2..9ecd4e7 100644 --- a/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java +++ b/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java @@ -1,5 +1,6 @@ package com.gxwebsoft.booking.entity; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; @@ -16,11 +17,12 @@ import lombok.EqualsAndHashCode; * 发票 * * @author 科技小王子 - * @since 2024-05-23 16:27:08 + * @since 2024-05-25 17:20:15 */ @Data @EqualsAndHashCode(callSuper = false) @ApiModel(value = "UserInvoice对象", description = "发票") +@TableName("booking_user_invoice") public class UserInvoice implements Serializable { private static final long serialVersionUID = 1L; @@ -34,7 +36,7 @@ public class UserInvoice implements Serializable { @ApiModelProperty(value = "发票名称") private String name; - @ApiModelProperty(value = "开票类型(0铺票 1专票)") + @ApiModelProperty(value = "开票类型(0普票 1专票)") private Integer invoiceType; @ApiModelProperty(value = "税号") diff --git a/src/main/java/com/gxwebsoft/booking/mapper/UserCardMapper.java b/src/main/java/com/gxwebsoft/booking/mapper/UserCardMapper.java new file mode 100644 index 0000000..6662128 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/UserCardMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.booking.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.booking.entity.UserCard; +import com.gxwebsoft.booking.param.UserCardParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 会员卡Mapper + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +public interface UserCardMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserCardParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserCardParam param); + +} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/UserCouponMapper.java b/src/main/java/com/gxwebsoft/booking/mapper/UserCouponMapper.java index 60a5a74..2a87f3f 100644 --- a/src/main/java/com/gxwebsoft/booking/mapper/UserCouponMapper.java +++ b/src/main/java/com/gxwebsoft/booking/mapper/UserCouponMapper.java @@ -12,7 +12,7 @@ import java.util.List; * 我的优惠券Mapper * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ public interface UserCouponMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java b/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java index 3c93ff7..3ad3265 100644 --- a/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java +++ b/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java @@ -12,7 +12,7 @@ import java.util.List; * 发票Mapper * * @author 科技小王子 - * @since 2024-05-23 16:27:08 + * @since 2024-05-25 17:20:15 */ public interface UserInvoiceMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCardMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCardMapper.xml new file mode 100644 index 0000000..8307550 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCardMapper.xml @@ -0,0 +1,150 @@ + + + + + + + SELECT a.* + FROM booking_user_card a + + + AND a.id = #{param.id} + + + AND a.user_id = #{param.userId} + + + AND a.sid LIKE CONCAT('%', #{param.sid}, '%') + + + AND a.uid = #{param.uid} + + + AND a.vid = #{param.vid} + + + AND a.aid = #{param.aid} + + + AND a.wechat_order LIKE CONCAT('%', #{param.wechatOrder}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.username LIKE CONCAT('%', #{param.username}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.price = #{param.price} + + + AND a.desc LIKE CONCAT('%', #{param.desc}, '%') + + + AND a.info LIKE CONCAT('%', #{param.info}, '%') + + + AND a.discount = #{param.discount} + + + AND a.count = #{param.count} + + + AND a.each_money = #{param.eachMoney} + + + AND a.remaining_money = #{param.remainingMoney} + + + AND a.number = #{param.number} + + + AND a.num = #{param.num} + + + AND a.status = #{param.status} + + + AND a.term = #{param.term} + + + AND a.month = #{param.month} + + + AND a.type = #{param.type} + + + AND a.card_type = #{param.cardType} + + + AND a.vip_type = #{param.vipType} + + + AND a.pic LIKE CONCAT('%', #{param.pic}, '%') + + + AND a.prices LIKE CONCAT('%', #{param.prices}, '%') + + + AND a.pay_type = #{param.payType} + + + AND a.is_integral = #{param.isIntegral} + + + AND a.is_invoice = #{param.isInvoice} + + + AND a.expire_time = #{param.expireTime} + + + AND a.urgent_name LIKE CONCAT('%', #{param.urgentName}, '%') + + + AND a.urgent_phone LIKE CONCAT('%', #{param.urgentPhone}, '%') + + + AND a.card_num LIKE CONCAT('%', #{param.cardNum}, '%') + + + AND a.password LIKE CONCAT('%', #{param.password}, '%') + + + AND a.use_time = #{param.useTime} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND a.IDCard LIKE CONCAT('%', #{param.idcard}, '%') + + + AND a.remark LIKE CONCAT('%', #{param.remark}, '%') + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml index ea66284..87c3d54 100644 --- a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml @@ -5,7 +5,7 @@ SELECT a.* - FROM user_invoice a + FROM booking_user_invoice a AND a.id = #{param.id} diff --git a/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java b/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java new file mode 100644 index 0000000..52da1e3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java @@ -0,0 +1,165 @@ +package com.gxwebsoft.booking.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 会员卡查询参数 + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "UserCardParam对象", description = "会员卡查询参数") +public class UserCardParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "用户id") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "sid场馆id集合,适用的场馆") + private String sid; + + @ApiModelProperty(value = "用户id(旧)") + @QueryField(type = QueryType.EQ) + private Integer uid; + + @ApiModelProperty(value = "vip卡id") + @QueryField(type = QueryType.EQ) + private Integer vid; + + @ApiModelProperty(value = "开卡人id") + @QueryField(type = QueryType.EQ) + private Integer aid; + + @ApiModelProperty(value = "微信订单号") + private String wechatOrder; + + @ApiModelProperty(value = "卡号") + private String code; + + @ApiModelProperty(value = "会员卡名称") + private String name; + + @ApiModelProperty(value = "真实姓名") + private String username; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "vip购卡价格") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @ApiModelProperty(value = "会员卡介绍") + private String desc; + + @ApiModelProperty(value = "会员卡说明") + private String info; + + @ApiModelProperty(value = "vip卡折扣率") + @QueryField(type = QueryType.EQ) + private BigDecimal discount; + + @ApiModelProperty(value = "使用次数") + @QueryField(type = QueryType.EQ) + private Integer count; + + @ApiModelProperty(value = "每使用一次减少的金额") + @QueryField(type = QueryType.EQ) + private BigDecimal eachMoney; + + @ApiModelProperty(value = "剩余金额") + @QueryField(type = QueryType.EQ) + private BigDecimal remainingMoney; + + @ApiModelProperty(value = "续费累加次数") + @QueryField(type = QueryType.EQ) + private Integer number; + + @ApiModelProperty(value = "剩余次数") + @QueryField(type = QueryType.EQ) + private Integer num; + + @ApiModelProperty(value = "付款状态,1已付款,2未付款") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "会员卡年限") + @QueryField(type = QueryType.EQ) + private Integer term; + + @ApiModelProperty(value = "月限") + @QueryField(type = QueryType.EQ) + private Integer month; + + @ApiModelProperty(value = "IC卡类型:1年卡,2次卡,3月卡,4会员IC卡,5充值卡 ") + @QueryField(type = QueryType.EQ) + private Integer type; + + @ApiModelProperty(value = "卡类型:1成人卡,2儿童卡") + @QueryField(type = QueryType.EQ) + private Integer cardType; + + @ApiModelProperty(value = "vip卡等级类型:1特殊vip卡,2普通vip卡") + @QueryField(type = QueryType.EQ) + private Integer vipType; + + @ApiModelProperty(value = "特殊卡开发凭证图") + private String pic; + + @ApiModelProperty(value = "价格组") + private String prices; + + @ApiModelProperty(value = "1微信支付,2支付宝支付,3现金,4POS机刷卡,15平安健康卡") + @QueryField(type = QueryType.EQ) + private Integer payType; + + @ApiModelProperty(value = "是否赠送积分:1赠送,2不赠送") + @QueryField(type = QueryType.EQ) + private Integer isIntegral; + + @ApiModelProperty(value = "是否已开具发票:1已开发票,2未开发票") + @QueryField(type = QueryType.EQ) + private Integer isInvoice; + + @ApiModelProperty(value = "vip卡到期时间") + @QueryField(type = QueryType.EQ) + private Integer expireTime; + + @ApiModelProperty(value = "紧急联系人") + private String urgentName; + + @ApiModelProperty(value = "紧急联系人号码") + private String urgentPhone; + + @ApiModelProperty(value = "卡号") + private String cardNum; + + @ApiModelProperty(value = "密码") + private String password; + + @ApiModelProperty(value = "使用时间") + @QueryField(type = QueryType.EQ) + private Integer useTime; + + @ApiModelProperty(value = "身份证号码") + private String idcard; + + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/src/main/java/com/gxwebsoft/booking/param/UserCouponParam.java b/src/main/java/com/gxwebsoft/booking/param/UserCouponParam.java index 02f1b52..fba17fd 100644 --- a/src/main/java/com/gxwebsoft/booking/param/UserCouponParam.java +++ b/src/main/java/com/gxwebsoft/booking/param/UserCouponParam.java @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; * 我的优惠券查询参数 * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ @Data @EqualsAndHashCode(callSuper = false) @@ -59,12 +59,10 @@ public class UserCouponParam extends BaseParam { private Integer expireDay; @ApiModelProperty(value = "有效期开始时间") - @QueryField(type = QueryType.EQ) - private Integer startTime; + private String startTime; @ApiModelProperty(value = "有效期结束时间") - @QueryField(type = QueryType.EQ) - private Integer endTime; + private String endTime; @ApiModelProperty(value = "适用范围(10全部商品 20指定商品)") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java b/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java index 7fa6645..a6f2b54 100644 --- a/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java +++ b/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; * 发票查询参数 * * @author 科技小王子 - * @since 2024-05-23 16:27:07 + * @since 2024-05-25 17:20:15 */ @Data @EqualsAndHashCode(callSuper = false) @@ -34,7 +34,8 @@ public class UserInvoiceParam extends BaseParam { @ApiModelProperty(value = "发票名称") private String name; - @ApiModelProperty(value = "开票类型(0铺票 1专票)") + @ApiModelProperty(value = "开票类型(0普票 1专票)") + @QueryField(type = QueryType.EQ) private Integer invoiceType; @ApiModelProperty(value = "税号") diff --git a/src/main/java/com/gxwebsoft/booking/service/UserCardService.java b/src/main/java/com/gxwebsoft/booking/service/UserCardService.java new file mode 100644 index 0000000..7fd4cd7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/UserCardService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.booking.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.booking.entity.UserCard; +import com.gxwebsoft.booking.param.UserCardParam; + +import java.util.List; + +/** + * 会员卡Service + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +public interface UserCardService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserCardParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserCardParam param); + + /** + * 根据id查询 + * + * @param id + * @return UserCard + */ + UserCard getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/UserCouponService.java b/src/main/java/com/gxwebsoft/booking/service/UserCouponService.java index 3c4c506..324ddb3 100644 --- a/src/main/java/com/gxwebsoft/booking/service/UserCouponService.java +++ b/src/main/java/com/gxwebsoft/booking/service/UserCouponService.java @@ -11,7 +11,7 @@ import java.util.List; * 我的优惠券Service * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ public interface UserCouponService extends IService { diff --git a/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java b/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java index 425a060..92fb328 100644 --- a/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java +++ b/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java @@ -11,7 +11,7 @@ import java.util.List; * 发票Service * * @author 科技小王子 - * @since 2024-05-23 16:27:08 + * @since 2024-05-25 17:20:15 */ public interface UserInvoiceService extends IService { diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/UserCardServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/UserCardServiceImpl.java new file mode 100644 index 0000000..abc0d09 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/impl/UserCardServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.booking.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.booking.mapper.UserCardMapper; +import com.gxwebsoft.booking.service.UserCardService; +import com.gxwebsoft.booking.entity.UserCard; +import com.gxwebsoft.booking.param.UserCardParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 会员卡Service实现 + * + * @author 科技小王子 + * @since 2024-05-25 17:20:15 + */ +@Service +public class UserCardServiceImpl extends ServiceImpl implements UserCardService { + + @Override + public PageResult pageRel(UserCardParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserCardParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public UserCard getByIdRel(Integer id) { + UserCardParam param = new UserCardParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/UserCouponServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/UserCouponServiceImpl.java index ab78a1d..cfffd00 100644 --- a/src/main/java/com/gxwebsoft/booking/service/impl/UserCouponServiceImpl.java +++ b/src/main/java/com/gxwebsoft/booking/service/impl/UserCouponServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; * 我的优惠券Service实现 * * @author 科技小王子 - * @since 2024-05-22 22:41:17 + * @since 2024-05-25 17:20:15 */ @Service public class UserCouponServiceImpl extends ServiceImpl implements UserCouponService { diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java index 8a52a72..59a9519 100644 --- a/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java +++ b/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; * 发票Service实现 * * @author 科技小王子 - * @since 2024-05-23 16:27:08 + * @since 2024-05-25 17:20:15 */ @Service public class UserInvoiceServiceImpl extends ServiceImpl implements UserInvoiceService { diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java index a8c2761..d5fb3ae 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.shop.entity.OrderInfo; +import com.gxwebsoft.shop.service.OrderGoodsService; import com.gxwebsoft.shop.service.OrderInfoService; import com.gxwebsoft.shop.service.OrderService; import com.gxwebsoft.shop.entity.Order; @@ -22,6 +23,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.aspectj.weaver.ast.Or; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -42,6 +44,8 @@ public class OrderController extends BaseController { private OrderService orderService; @Resource private OrderInfoService orderInfoService; + @Resource + private OrderGoodsService orderGoodsService; @ApiOperation("分页查询订单") @GetMapping("/page") @@ -112,20 +116,39 @@ public class OrderController extends BaseController { order.setPhone(loginUser.getPhone()); order.setUserId(loginUser.getUserId()); order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.MINUTE, 10)); -// List collect = order.getOrderInfoList().stream().map(OrderInfo::getStartTime).collect(Collectors.toList()); -// OrderInfo orderInfo = order.getOrderInfoList().get(0); -// order.setStartTime(DateUtil.formatTime(orderInfo.getStartTime())); -// order.setVersion(10); + if (order.getOrderInfoList() != null) { + order.setTotalNum(order.getOrderInfoList().size()); + } + if (order.getGoodsList() != null) { + order.setTotalNum(order.getGoodsList().size()); + } + if (orderService.save(order)) { - order.getOrderInfoList().forEach(d -> { - d.setOrderId(order.getOrderId()); - d.setTimeFlag(timeMillis); - d.setVersion(10); - d.setUserId(getLoginUser().getUserId()); - d.setDateTime(d.getDateTime()); - d.setExpirationTime(order.getExpirationTime()); - }); - orderInfoService.saveBatch(order.getOrderInfoList()); + // 预定订单 + if (!CollectionUtils.isEmpty(order.getOrderInfoList())) { + order.getOrderInfoList().forEach(d -> { + d.setOrderId(order.getOrderId()); + d.setTimeFlag(timeMillis); + d.setVersion(10); + d.setUserId(getLoginUser().getUserId()); + d.setDateTime(d.getDateTime()); + d.setExpirationTime(order.getExpirationTime()); + }); + orderInfoService.saveBatch(order.getOrderInfoList()); + } + // 商城订单 + if (!CollectionUtils.isEmpty(order.getGoodsList())) { + order.getGoodsList().forEach(d -> { + d.setOrderId(order.getOrderId()); + d.setTimeFlag(timeMillis); + d.setVersion(10); + d.setDateTime(DateUtil.date()); + d.setUserId(getLoginUser().getUserId()); + d.setExpirationTime(order.getExpirationTime()); + }); + orderGoodsService.saveBatch(order.getGoodsList()); + } + // 微信统一下单接口 if (order.getPayType().equals(1)) { return success("下单成功", orderService.createWxOrder(order)); diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java new file mode 100644 index 0000000..86246aa --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.OrderGoodsService; +import com.gxwebsoft.shop.entity.OrderGoods; +import com.gxwebsoft.shop.param.OrderGoodsParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 商品信息控制器 + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +@Api(tags = "商品信息管理") +@RestController +@RequestMapping("/api/shop/order-goods") +public class OrderGoodsController extends BaseController { + @Resource + private OrderGoodsService orderGoodsService; + + @ApiOperation("分页查询商品信息") + @GetMapping("/page") + public ApiResult> page(OrderGoodsParam param) { + // 使用关联查询 + return success(orderGoodsService.pageRel(param)); + } + + @ApiOperation("查询全部商品信息") + @GetMapping() + public ApiResult> list(OrderGoodsParam param) { + // 使用关联查询 + return success(orderGoodsService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:orderGoods:list')") + @ApiOperation("根据id查询商品信息") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(orderGoodsService.getByIdRel(id)); + } + + @ApiOperation("添加商品信息") + @PostMapping() + public ApiResult save(@RequestBody OrderGoods orderGoods) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + orderGoods.setUserId(loginUser.getUserId()); + } + if (orderGoodsService.save(orderGoods)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改商品信息") + @PutMapping() + public ApiResult update(@RequestBody OrderGoods orderGoods) { + if (orderGoodsService.updateById(orderGoods)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除商品信息") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (orderGoodsService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加商品信息") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (orderGoodsService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改商品信息") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(orderGoodsService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除商品信息") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (orderGoodsService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java b/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java new file mode 100644 index 0000000..6b1e077 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java @@ -0,0 +1,119 @@ +package com.gxwebsoft.shop.controller; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.UserAddressService; +import com.gxwebsoft.shop.entity.UserAddress; +import com.gxwebsoft.shop.param.UserAddressParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 收货地址控制器 + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +@Api(tags = "收货地址管理") +@RestController +@RequestMapping("/api/shop/user-address") +public class UserAddressController extends BaseController { + @Resource + private UserAddressService userAddressService; + + @ApiOperation("分页查询收货地址") + @GetMapping("/page") + public ApiResult> page(UserAddressParam param) { + // 使用关联查询 + return success(userAddressService.pageRel(param)); + } + + @ApiOperation("查询全部收货地址") + @GetMapping() + public ApiResult> list(UserAddressParam param) { + // 使用关联查询 + return success(userAddressService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:userAddress:list')") + @ApiOperation("根据id查询收货地址") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(userAddressService.getByIdRel(id)); + } + + @ApiOperation("添加收货地址") + @PostMapping() + public ApiResult save(@RequestBody UserAddress userAddress) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + userAddress.setUserId(loginUser.getUserId()); + } + if (userAddressService.save(userAddress)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改收货地址") + @PutMapping() + public ApiResult update(@RequestBody UserAddress userAddress) { + if (userAddress.getIsDefault() != null && userAddress.getIsDefault().equals(true)) { + final boolean update = userAddressService.update(new LambdaUpdateWrapper().eq(UserAddress::getUserId, getLoginUserId()).set(UserAddress::getIsDefault, 0)); + } + if (userAddressService.updateById(userAddress)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除收货地址") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (userAddressService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加收货地址") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (userAddressService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改收货地址") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userAddressService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除收货地址") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (userAddressService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/Goods.java b/src/main/java/com/gxwebsoft/shop/entity/Goods.java index c0de124..13c99b0 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Goods.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Goods.java @@ -37,8 +37,8 @@ public class Goods implements Serializable { @ApiModelProperty(value = "商品编码") private String code; - @ApiModelProperty(value = "商品标题") - private String title; + @ApiModelProperty(value = "商品名称") + private String goodsName; @ApiModelProperty(value = "商品封面图") private String image; @@ -100,6 +100,9 @@ public class Goods implements Serializable { @ApiModelProperty(value = "商户ID") private Integer merchantId; + @ApiModelProperty(value = "商户名称") + private String merchantName; + @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic private Integer deleted; diff --git a/src/main/java/com/gxwebsoft/shop/entity/Order.java b/src/main/java/com/gxwebsoft/shop/entity/Order.java index f91788d..439af11 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Order.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Order.java @@ -8,6 +8,8 @@ import java.io.Serializable; import java.util.Date; import java.util.List; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -49,7 +51,6 @@ public class Order implements Serializable { private String merchantCode; @ApiModelProperty(value = "商户名称") - @TableField(exist = false) private String merchantName; @ApiModelProperty(value = "商户图标") @@ -95,6 +96,10 @@ public class Order implements Serializable { @ApiModelProperty(value = "退款金额") private BigDecimal refundMoney; + @ApiModelProperty(value = "共几件") + @QueryField(type = QueryType.EQ) + private Integer totalNum; + @ApiModelProperty(value = "教练价格") private BigDecimal coachPrice; @@ -182,8 +187,12 @@ public class Order implements Serializable { @TableField(exist = false) private String openid; - @ApiModelProperty(value = "订单详情") + @ApiModelProperty(value = "预定信息") @TableField(exist = false) private List orderInfoList; + @ApiModelProperty(value = "商品信息") + @TableField(exist = false) + private List goodsList; + } diff --git a/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java b/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java new file mode 100644 index 0000000..873fa75 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java @@ -0,0 +1,107 @@ +package com.gxwebsoft.shop.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.time.LocalDate; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 商品信息 + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "OrderGoods对象", description = "商品信息") +@TableName("shop_order_goods") +public class OrderGoods implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "关联订单表id") + private Integer orderId; + + @ApiModelProperty(value = "订单标识") + private String orderCode; + + @ApiModelProperty(value = "关联商户ID") + private Integer merchantId; + + @ApiModelProperty(value = "商户名称") + private String merchantName; + + @ApiModelProperty(value = "商品封面图") + private String image; + + @ApiModelProperty(value = "关联商品id") + private Integer goodsId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "单价") + private BigDecimal price; + + @ApiModelProperty(value = "购买数量") + private Integer totalNum; + + @ApiModelProperty(value = "0 未付款 1已付款,2无需付款或占用状态") + private Integer payStatus; + + @ApiModelProperty(value = "0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款") + private Integer orderStatus; + + @ApiModelProperty(value = "是否免费:0收费、1免费") + private Boolean isFree; + + @ApiModelProperty(value = "系统版本 0当前版本 其他版本") + private Integer version; + + @ApiModelProperty(value = "预约时间段") + private String timePeriod; + + @ApiModelProperty(value = "预定日期") + private Date dateTime; + + @ApiModelProperty(value = "开场时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "毫秒时间戳") + private Long timeFlag; + + @ApiModelProperty(value = "过期时间") + private Date expirationTime; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "用户id") + private Integer userId; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java b/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java new file mode 100644 index 0000000..370b059 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.shop.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 收货地址 + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "UserAddress对象", description = "收货地址") +@TableName("shop_user_address") +public class UserAddress implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "所在国家") + private String country; + + @ApiModelProperty(value = "所在省份") + private String province; + + @ApiModelProperty(value = "所在城市") + private String city; + + @ApiModelProperty(value = "所在辖区") + private String region; + + @ApiModelProperty(value = "收货地址") + private String address; + + @ApiModelProperty(value = "1先生 2女士") + private Integer gender; + + @ApiModelProperty(value = "家、公司、学校") + private String type; + + @ApiModelProperty(value = "默认收货地址") + private Boolean isDefault; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java new file mode 100644 index 0000000..9e2abfb --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.OrderGoods; +import com.gxwebsoft.shop.param.OrderGoodsParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 商品信息Mapper + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +public interface OrderGoodsMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") OrderGoodsParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") OrderGoodsParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java new file mode 100644 index 0000000..1a1bc29 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.UserAddress; +import com.gxwebsoft.shop.param.UserAddressParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 收货地址Mapper + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +public interface UserAddressMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserAddressParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserAddressParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml index a4b2721..8676bd0 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml @@ -16,8 +16,8 @@ AND a.code LIKE CONCAT('%', #{param.code}, '%') - - AND a.title LIKE CONCAT('%', #{param.title}, '%') + + AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') AND a.content LIKE CONCAT('%', #{param.content}, '%') diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml new file mode 100644 index 0000000..d4661de --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml @@ -0,0 +1,96 @@ + + + + + + + SELECT a.* + FROM shop_order_goods a + + + AND a.id = #{param.id} + + + AND a.order_id = #{param.orderId} + + + AND a.order_code LIKE CONCAT('%', #{param.orderCode}, '%') + + + AND a.merchant_id = #{param.merchantId} + + + AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') + + + AND a.image LIKE CONCAT('%', #{param.image}, '%') + + + AND a.goods_id = #{param.goodsId} + + + AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') + + + AND a.price = #{param.price} + + + AND a.pay_status = #{param.payStatus} + + + AND a.order_status = #{param.orderStatus} + + + AND a.is_free = #{param.isFree} + + + AND a.version = #{param.version} + + + AND a.time_period LIKE CONCAT('%', #{param.timePeriod}, '%') + + + AND a.date_time LIKE CONCAT('%', #{param.dateTime}, '%') + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.time_flag LIKE CONCAT('%', #{param.timeFlag}, '%') + + + AND a.expiration_time LIKE CONCAT('%', #{param.expirationTime}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml index c04650e..d63dc53 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml @@ -4,13 +4,16 @@ - SELECT a.*,b.merchant_name,b.image as merchantAvatar + SELECT a.*,b.image as merchantAvatar FROM shop_order a LEFT JOIN shop_merchant b ON a.merchant_id = b.merchant_id AND a.order_id = #{param.orderId} + + AND a.type = #{param.type} + AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%') diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml new file mode 100644 index 0000000..472bf6f --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml @@ -0,0 +1,69 @@ + + + + + + + SELECT a.* + FROM shop_user_address a + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.country LIKE CONCAT('%', #{param.country}, '%') + + + AND a.province LIKE CONCAT('%', #{param.province}, '%') + + + AND a.city LIKE CONCAT('%', #{param.city}, '%') + + + AND a.region LIKE CONCAT('%', #{param.region}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.gender = #{param.gender} + + + AND a.type LIKE CONCAT('%', #{param.type}, '%') + + + AND a.is_default = #{param.isDefault} + + + AND a.user_id = #{param.userId} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java index 4af83bb..70ff9ec 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java @@ -34,8 +34,8 @@ public class GoodsParam extends BaseParam { @ApiModelProperty(value = "商品编码") private String code; - @ApiModelProperty(value = "商品标题") - private String title; + @ApiModelProperty(value = "商品名称") + private String goodsName; @ApiModelProperty(value = "商品详情") private String content; diff --git a/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java b/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java new file mode 100644 index 0000000..bcaaf2f --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java @@ -0,0 +1,103 @@ +package com.gxwebsoft.shop.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 商品信息查询参数 + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "OrderGoodsParam对象", description = "商品信息查询参数") +public class OrderGoodsParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "关联订单表id") + @QueryField(type = QueryType.EQ) + private Integer orderId; + + @ApiModelProperty(value = "订单标识") + private String orderCode; + + @ApiModelProperty(value = "关联商户ID") + @QueryField(type = QueryType.EQ) + private Integer merchantId; + + @ApiModelProperty(value = "商户名称") + private String merchantName; + + @ApiModelProperty(value = "商品封面图") + private String image; + + @ApiModelProperty(value = "关联商品id") + @QueryField(type = QueryType.EQ) + private Integer goodsId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "单价") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @ApiModelProperty(value = "购买数量") + @QueryField(type = QueryType.EQ) + private Integer totalNum; + + @ApiModelProperty(value = "0 未付款 1已付款,2无需付款或占用状态") + @QueryField(type = QueryType.EQ) + private Integer payStatus; + + @ApiModelProperty(value = "0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款") + @QueryField(type = QueryType.EQ) + private Integer orderStatus; + + @ApiModelProperty(value = "是否免费:0收费、1免费") + @QueryField(type = QueryType.EQ) + private Boolean isFree; + + @ApiModelProperty(value = "系统版本 0当前版本 其他版本") + @QueryField(type = QueryType.EQ) + private Integer version; + + @ApiModelProperty(value = "预约时间段") + private String timePeriod; + + @ApiModelProperty(value = "预定日期") + private String dateTime; + + @ApiModelProperty(value = "开场时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "毫秒时间戳") + private Long timeFlag; + + @ApiModelProperty(value = "过期时间") + private String expirationTime; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "用户id") + @QueryField(type = QueryType.EQ) + private Integer userId; + +} diff --git a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java index 97aacb3..2ec3b49 100644 --- a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java @@ -46,6 +46,10 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer merchantId; + @ApiModelProperty(value = "商户名称") + @QueryField(type = QueryType.EQ) + private String merchantName; + @ApiModelProperty(value = "商户编号") @QueryField(type = QueryType.EQ) private String merchantCode; @@ -90,6 +94,10 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private BigDecimal price; + @ApiModelProperty(value = "共几件") + @QueryField(type = QueryType.EQ) + private Integer totalNum; + @ApiModelProperty(value = "价钱,用于积分赠送") @QueryField(type = QueryType.EQ) private BigDecimal money; diff --git a/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java b/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java new file mode 100644 index 0000000..be97407 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java @@ -0,0 +1,66 @@ +package com.gxwebsoft.shop.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 收货地址查询参数 + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "UserAddressParam对象", description = "收货地址查询参数") +public class UserAddressParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "所在国家") + private String country; + + @ApiModelProperty(value = "所在省份") + private String province; + + @ApiModelProperty(value = "所在城市") + private String city; + + @ApiModelProperty(value = "所在辖区") + private String region; + + @ApiModelProperty(value = "收货地址") + private String address; + + @ApiModelProperty(value = "1先生 2女士") + @QueryField(type = QueryType.EQ) + private Integer gender; + + @ApiModelProperty(value = "家、公司、学校") + private String type; + + @ApiModelProperty(value = "默认收货地址") + @QueryField(type = QueryType.EQ) + private Boolean isDefault; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java b/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java new file mode 100644 index 0000000..bdd58a7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.OrderGoods; +import com.gxwebsoft.shop.param.OrderGoodsParam; + +import java.util.List; + +/** + * 商品信息Service + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +public interface OrderGoodsService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(OrderGoodsParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(OrderGoodsParam param); + + /** + * 根据id查询 + * + * @param id 自增ID + * @return OrderGoods + */ + OrderGoods getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java b/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java new file mode 100644 index 0000000..8944668 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.UserAddress; +import com.gxwebsoft.shop.param.UserAddressParam; + +import java.util.List; + +/** + * 收货地址Service + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +public interface UserAddressService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserAddressParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserAddressParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return UserAddress + */ + UserAddress getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java new file mode 100644 index 0000000..ef4d6aa --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.OrderGoodsMapper; +import com.gxwebsoft.shop.service.OrderGoodsService; +import com.gxwebsoft.shop.entity.OrderGoods; +import com.gxwebsoft.shop.param.OrderGoodsParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 商品信息Service实现 + * + * @author 科技小王子 + * @since 2024-05-26 15:42:03 + */ +@Service +public class OrderGoodsServiceImpl extends ServiceImpl implements OrderGoodsService { + + @Override + public PageResult pageRel(OrderGoodsParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(OrderGoodsParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public OrderGoods getByIdRel(Integer id) { + OrderGoodsParam param = new OrderGoodsParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java index d288841..a246160 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gxwebsoft.common.core.config.ConfigProperties; import com.gxwebsoft.common.core.utils.RedisUtil; import com.gxwebsoft.common.system.service.SettingService; +import com.gxwebsoft.shop.entity.OrderGoods; import com.gxwebsoft.shop.entity.OrderInfo; import com.gxwebsoft.shop.entity.Payment; import com.gxwebsoft.shop.mapper.OrderMapper; import com.gxwebsoft.shop.param.OrderInfoParam; +import com.gxwebsoft.shop.service.OrderGoodsService; import com.gxwebsoft.shop.service.OrderInfoService; import com.gxwebsoft.shop.service.OrderService; import com.gxwebsoft.shop.entity.Order; @@ -51,6 +53,8 @@ public class OrderServiceImpl extends ServiceImpl implements @Resource private OrderInfoService orderInfoService; @Resource + private OrderGoodsService orderGoodsService; + @Resource private ConfigProperties config; @Resource private SettingService settingService; @@ -66,23 +70,45 @@ public class OrderServiceImpl extends ServiceImpl implements PageParam page = new PageParam<>(param); page.setDefaultOrder("sort_number asc, create_time desc"); List list = baseMapper.selectPageRel(page, param); - final Set orderIds = list.stream().map(Order::getOrderId).collect(Collectors.toSet()); - // 查询订单信息表 - if (!CollectionUtils.isEmpty(orderIds)) { - final List orderInfoList = orderInfoService.list(new LambdaQueryWrapper().in(OrderInfo::getOrderId, orderIds)); - final Map> orderInfo = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOrderId)); - list.forEach(d -> { - final DateTime date = DateUtil.date(d.getExpirationTime()); - final DateTime now = DateUtil.date(); - d.setTimestamp(date.getTime() - now.getTime()); - if (!orderInfo.isEmpty()) { - final List orderInfos = orderInfo.get(d.getOrderId()); - if (!CollectionUtils.isEmpty(orderInfos)) { - d.setOrderInfoList(orderInfos); - } + + if(param.getSceneType() != null){ + final Set orderIds = list.stream().map(Order::getOrderId).collect(Collectors.toSet()); + if (!CollectionUtils.isEmpty(orderIds)) { + // 查询预定订单信息 + if (param.getSceneType().equals("showOrderInfo")) { + final List orderInfoList = orderInfoService.list(new LambdaQueryWrapper().in(OrderInfo::getOrderId, orderIds)); + final Map> collect = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOrderId)); + list.forEach(d -> { + final DateTime date = DateUtil.date(d.getExpirationTime()); + final DateTime now = DateUtil.date(); + d.setTimestamp(date.getTime() - now.getTime()); + if (!collect.isEmpty()) { + final List orderInfos = collect.get(d.getOrderId()); + if (!CollectionUtils.isEmpty(orderInfos)) { + d.setOrderInfoList(orderInfos); + } + } + }); } - }); + // 查询商品信息 + if (param.getSceneType().equals("showOrderGoods")) { + final List goodsList = orderGoodsService.list(new LambdaQueryWrapper().in(OrderGoods::getOrderId, orderIds)); + final Map> collect = goodsList.stream().collect(Collectors.groupingBy(OrderGoods::getOrderId)); + list.forEach(d -> { + final DateTime date = DateUtil.date(d.getExpirationTime()); + final DateTime now = DateUtil.date(); + d.setTimestamp(date.getTime() - now.getTime()); + if (!collect.isEmpty()) { + final List goods = collect.get(d.getOrderId()); + if (!CollectionUtils.isEmpty(goods)) { + d.setGoodsList(goods); + } + } + }); + } + } } + return new PageResult<>(list, page.getTotal()); } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java new file mode 100644 index 0000000..3ba085a --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java @@ -0,0 +1,48 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.UserAddressMapper; +import com.gxwebsoft.shop.service.UserAddressService; +import com.gxwebsoft.shop.entity.UserAddress; +import com.gxwebsoft.shop.param.UserAddressParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 收货地址Service实现 + * + * @author 科技小王子 + * @since 2024-05-26 10:58:37 + */ +@Service +public class UserAddressServiceImpl extends ServiceImpl implements UserAddressService { + + @Override + public PageResult pageRel(UserAddressParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("is_default desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserAddressParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("is_default desc"); + return page.sortRecords(list); + } + + @Override + public UserAddress getByIdRel(Integer id) { + UserAddressParam param = new UserAddressParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java index 52033ad..39f9739 100644 --- a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java @@ -57,9 +57,9 @@ public class BookingGenerator { // "booking_integral_log" // "booking_order" // "booking_emergency", -// "user_coupon", -// "user_invoice" - "user_card" +// "booking_user_coupon", +// "booking_user_invoice", +// "booking_user_card", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index f66bd0d..0684a38 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -67,11 +67,13 @@ public class ShopGenerator { // "shop_chat_conversation" // "shop_user_collection", // "shop_mp_menu" - "shop_order", - "shop_order_info", - "shop_order_info_log", +// "shop_order", +// "shop_order_info", +// "shop_order_info_log", + "shop_order_goods", // "shop_wechat_deposit" -// "shop_users" +// "shop_users", +// "shop_user_address" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{