diff --git a/src/main/java/com/gxwebsoft/cms/controller/MpMenuController.java b/src/main/java/com/gxwebsoft/cms/controller/MpMenuController.java index f0da4de..99a8405 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/MpMenuController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/MpMenuController.java @@ -38,7 +38,6 @@ public class MpMenuController extends BaseController { @Resource private RedisUtil redisUtil; - @PreAuthorize("hasAuthority('cms:mpMenu:list')") @ApiOperation("分页查询小程序端菜单") @GetMapping("/page") public ApiResult> page(MpMenuParam param) { @@ -46,14 +45,12 @@ public class MpMenuController extends BaseController { return success(mpMenuService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:mpMenu:list')") @ApiOperation("查询全部小程序端菜单") @GetMapping() public ApiResult> list(MpMenuParam param) { return success(mpMenuService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:mpMenu:list')") @ApiOperation("根据id查询小程序端菜单") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/WechatDepositController.java b/src/main/java/com/gxwebsoft/shop/controller/WechatDepositController.java new file mode 100644 index 0000000..f02b517 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/WechatDepositController.java @@ -0,0 +1,121 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.WechatDepositService; +import com.gxwebsoft.shop.entity.WechatDeposit; +import com.gxwebsoft.shop.param.WechatDepositParam; +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-03 15:50:28 + */ +@Api(tags = "押金管理") +@RestController +@RequestMapping("/api/shop/wechat-deposit") +public class WechatDepositController extends BaseController { + @Resource + private WechatDepositService wechatDepositService; + + @ApiOperation("分页查询押金") + @GetMapping("/page") + public ApiResult> page(WechatDepositParam param) { + // 使用关联查询 + return success(wechatDepositService.pageRel(param)); + } + + @ApiOperation("查询全部押金") + @GetMapping() + public ApiResult> list(WechatDepositParam param) { + // 使用关联查询 + return success(wechatDepositService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:list')") + @ApiOperation("根据id查询押金") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(wechatDepositService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:list')") + @ApiOperation("添加押金") + @PostMapping() + public ApiResult save(@RequestBody WechatDeposit wechatDeposit) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // wechatDeposit.setUserId(loginUser.getUserId()); + // } + if (wechatDepositService.save(wechatDeposit)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:update')") + @ApiOperation("修改押金") + @PutMapping() + public ApiResult update(@RequestBody WechatDeposit wechatDeposit) { + if (wechatDepositService.updateById(wechatDeposit)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:remove')") + @ApiOperation("删除押金") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (wechatDepositService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:save')") + @ApiOperation("批量添加押金") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (wechatDepositService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:update')") + @ApiOperation("批量修改押金") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(wechatDepositService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:wechatDeposit:remove')") + @ApiOperation("批量删除押金") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (wechatDepositService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/WechatDeposit.java b/src/main/java/com/gxwebsoft/shop/entity/WechatDeposit.java new file mode 100644 index 0000000..108a9c0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/WechatDeposit.java @@ -0,0 +1,67 @@ +package com.gxwebsoft.shop.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.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 押金 + * + * @author 科技小王子 + * @since 2024-05-03 15:50:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "WechatDeposit对象", description = "押金") +@TableName("shop_wechat_deposit") +public class WechatDeposit implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "订单id") + private Integer oid; + + @ApiModelProperty(value = "用户id") + private Integer uid; + + @ApiModelProperty(value = "场地订单号") + private String orderNum; + + @ApiModelProperty(value = "付款订单号") + private String wechatOrder; + + @ApiModelProperty(value = "退款订单号 ") + private String wechatReturn; + + @ApiModelProperty(value = "场馆名称") + private String siteName; + + @ApiModelProperty(value = "微信昵称") + private String username; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "物品名称") + private String name; + + @ApiModelProperty(value = "押金金额") + private BigDecimal price; + + @ApiModelProperty(value = "押金状态,1已付款,2未付款,已退押金") + private Integer status; + + private Integer createTime; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/WechatDepositMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/WechatDepositMapper.java new file mode 100644 index 0000000..b341473 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/WechatDepositMapper.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.WechatDeposit; +import com.gxwebsoft.shop.param.WechatDepositParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 押金Mapper + * + * @author 科技小王子 + * @since 2024-05-03 15:50:28 + */ +public interface WechatDepositMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") WechatDepositParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") WechatDepositParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/WechatDepositMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/WechatDepositMapper.xml new file mode 100644 index 0000000..b80b478 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/WechatDepositMapper.xml @@ -0,0 +1,71 @@ + + + + + + + SELECT a.* + FROM shop_wechat_deposit a + + + AND a.id = #{param.id} + + + AND a.oid = #{param.oid} + + + AND a.uid = #{param.uid} + + + AND a.order_num LIKE CONCAT('%', #{param.orderNum}, '%') + + + AND a.wechat_order LIKE CONCAT('%', #{param.wechatOrder}, '%') + + + AND a.wechat_return LIKE CONCAT('%', #{param.wechatReturn}, '%') + + + AND a.site_name LIKE CONCAT('%', #{param.siteName}, '%') + + + AND a.username LIKE CONCAT('%', #{param.username}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.price = #{param.price} + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.oid = #{param.keywords} + OR a.order_num = #{param.keywords} + OR a.phone = #{param.keywords} + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java index 33b492e..c21a911 100644 --- a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java @@ -103,19 +103,19 @@ public class OrderParam extends BaseParam { @ApiModelProperty(value = "1微信支付,2积分,3支付宝,4现金,5POS机,6VIP月卡,7VIP年卡,8VIP次卡,9IC月卡,10IC年卡,11IC次卡,12免费,13VIP充值卡,14IC充值卡,15积分支付,16VIP季卡,17IC季卡") @QueryField(type = QueryType.EQ) - private Boolean payType; + private Integer payType; @ApiModelProperty(value = "1已付款,2未付款") @QueryField(type = QueryType.EQ) - private Boolean payStatus; + private Integer payStatus; @ApiModelProperty(value = "1已完成,2未使用,3已取消,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款") @QueryField(type = QueryType.EQ) - private Boolean orderStatus; + private Integer orderStatus; @ApiModelProperty(value = "优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡") @QueryField(type = QueryType.EQ) - private Boolean type; + private Integer type; @ApiModelProperty(value = "二维码地址,保存订单号,支付成功后才生成") private String qrcode; @@ -136,7 +136,7 @@ public class OrderParam extends BaseParam { @ApiModelProperty(value = "是否已开具发票:1已开发票,2未开发票,3不能开具发票") @QueryField(type = QueryType.EQ) - private Boolean isInvoice; + private Integer isInvoice; @ApiModelProperty(value = "付款时间") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/shop/param/WechatDepositParam.java b/src/main/java/com/gxwebsoft/shop/param/WechatDepositParam.java new file mode 100644 index 0000000..e16b4cf --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/WechatDepositParam.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-03 15:50:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "WechatDepositParam对象", description = "押金查询参数") +public class WechatDepositParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "订单id") + @QueryField(type = QueryType.EQ) + private Integer oid; + + @ApiModelProperty(value = "用户id") + @QueryField(type = QueryType.EQ) + private Integer uid; + + @ApiModelProperty(value = "场地订单号") + private String orderNum; + + @ApiModelProperty(value = "付款订单号") + private String wechatOrder; + + @ApiModelProperty(value = "退款订单号 ") + private String wechatReturn; + + @ApiModelProperty(value = "场馆名称") + private String siteName; + + @ApiModelProperty(value = "微信昵称") + private String username; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "物品名称") + private String name; + + @ApiModelProperty(value = "押金金额") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @ApiModelProperty(value = "押金状态,1已付款,2未付款,已退押金") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/WechatDepositService.java b/src/main/java/com/gxwebsoft/shop/service/WechatDepositService.java new file mode 100644 index 0000000..f77d831 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/WechatDepositService.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.WechatDeposit; +import com.gxwebsoft.shop.param.WechatDepositParam; + +import java.util.List; + +/** + * 押金Service + * + * @author 科技小王子 + * @since 2024-05-03 15:50:28 + */ +public interface WechatDepositService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(WechatDepositParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(WechatDepositParam param); + + /** + * 根据id查询 + * + * @param id + * @return WechatDeposit + */ + WechatDeposit getByIdRel(Integer id); + +} 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 1d1b4b5..7093321 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -12,6 +12,7 @@ import com.gxwebsoft.shop.param.OrderParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.List; @@ -37,16 +38,19 @@ public class OrderServiceImpl extends ServiceImpl implements 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()); - final List orderInfoList = orderInfoService.list(new LambdaQueryWrapper().in(OrderInfo::getOid, orderIds)); - final Map> orderInfo = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOid)); - list.forEach(d -> { - if (!orderInfo.isEmpty()) { - final List orderInfos = orderInfo.get(d.getOrderId()); - if (!orderInfos.isEmpty()) { - d.setOrderInfoList(orderInfos); + // 查询订单信息表 + if (!CollectionUtils.isEmpty(orderIds)) { + final List orderInfoList = orderInfoService.list(new LambdaQueryWrapper().in(OrderInfo::getOid, orderIds)); + final Map> orderInfo = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOid)); + list.forEach(d -> { + if (!orderInfo.isEmpty()) { + final List orderInfos = orderInfo.get(d.getOrderId()); + if (!orderInfos.isEmpty()) { + d.setOrderInfoList(orderInfos); + } } - } - }); + }); + } return new PageResult<>(list, page.getTotal()); } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/WechatDepositServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/WechatDepositServiceImpl.java new file mode 100644 index 0000000..77a6ec7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/WechatDepositServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.WechatDepositMapper; +import com.gxwebsoft.shop.service.WechatDepositService; +import com.gxwebsoft.shop.entity.WechatDeposit; +import com.gxwebsoft.shop.param.WechatDepositParam; +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-03 15:50:28 + */ +@Service +public class WechatDepositServiceImpl extends ServiceImpl implements WechatDepositService { + + @Override + public PageResult pageRel(WechatDepositParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(WechatDepositParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public WechatDeposit getByIdRel(Integer id) { + WechatDepositParam param = new WechatDepositParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index 17efae2..19c41d9 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -69,7 +69,8 @@ public class ShopGenerator { // "shop_user_collection", // "shop_mp_menu" // "shop_order_info", -// "shop_order_info_log" +// "shop_order_info_log", + "shop_wechat_deposit" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{