From 9847a03743734b4500ef0678bd2cb0b753fa4f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sat, 27 Jul 2024 12:44:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=99=E9=A2=9D=E5=85=85?= =?UTF-8?q?=E5=80=BCbug=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/MpController.java | 43 +++- .../shop/controller/GoodsController.java | 1 - .../controller/RechargeOrderController.java | 187 ++++++++++++++++++ .../shop/controller/UsersController.java | 2 +- .../gxwebsoft/shop/entity/RechargeOrder.java | 104 ++++++++++ .../shop/mapper/RechargeOrderMapper.java | 37 ++++ .../gxwebsoft/shop/mapper/xml/OrderMapper.xml | 2 +- .../shop/mapper/xml/RechargeOrderMapper.xml | 99 ++++++++++ .../shop/param/RechargeOrderParam.java | 105 ++++++++++ .../shop/service/RechargeOrderService.java | 42 ++++ .../shop/service/impl/GoodsServiceImpl.java | 2 +- .../impl/RechargeOrderServiceImpl.java | 47 +++++ .../shop/service/impl/UsersServiceImpl.java | 1 + .../gxwebsoft/shop/task/OrderInfoTask.java | 2 +- .../com/gxwebsoft/shop/task/OrderTask.java | 10 +- .../gxwebsoft/generator/ShopGenerator.java | 3 +- 16 files changed, 671 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/shop/controller/RechargeOrderController.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/RechargeOrder.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/RechargeOrderMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/RechargeOrderMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/param/RechargeOrderParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/RechargeOrderService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/RechargeOrderServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/cms/controller/MpController.java b/src/main/java/com/gxwebsoft/cms/controller/MpController.java index f2987c8..c3c0cba 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/MpController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/MpController.java @@ -14,7 +14,11 @@ import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.KVEntity; import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.Goods; +import com.gxwebsoft.shop.param.GoodsParam; +import com.gxwebsoft.shop.service.GoodsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -22,9 +26,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -49,6 +51,8 @@ public class MpController extends BaseController { @Resource private MpFieldService mpFieldService; @Resource + private GoodsService goodsService; + @Resource private RedisUtil redisUtil; @ApiOperation("获取小程序信息") @@ -67,7 +71,7 @@ public class MpController extends BaseController { } // 获取小程序信息 - if (mpService.count(new LambdaUpdateWrapper().eq(Mp::getDeleted,0)) == 0) { + if (mpService.count(new LambdaUpdateWrapper().eq(Mp::getDeleted, 0)) == 0) { // 创建小程序 createMp(); } @@ -126,7 +130,7 @@ public class MpController extends BaseController { serverTime.put("afterDay", afterDay); // 2024-07-20 serverTime.put("nextWeek", nextWeek); // 2024-07-25 22:06:36 serverTime.put("week", week); // 5 - map.put("serverTime",serverTime); + map.put("serverTime", serverTime); redisUtil.set(key, map, 1L, TimeUnit.DAYS); return success(map); } @@ -204,12 +208,37 @@ public class MpController extends BaseController { mpFieldService.save(field); } + @ApiOperation("获取首页数据") + @GetMapping("/index") + public ApiResult index(GoodsParam param) { + // 使用关联查询 + final HashMap layout = new HashMap<>(); + // 瀑布流商品数据 + final List goods = goodsService.list(new LambdaQueryWrapper().ne(Goods::getCategoryParent, "外卖").last("limit 10")); + final List foods = goodsService.list(new LambdaQueryWrapper().eq(Goods::getCategoryParent, "外卖").last("limit 10")); +// List evenNumbers = new ArrayList<>(); +// List oddNumbers = new ArrayList<>(); +// for (Goods g : goods) { +// final int index = goods.indexOf(g); +// if (index % 2 == 0) { +// evenNumbers.add(g); +// } else { +// oddNumbers.add(g); +// } +// } + + layout.put("goods",goods); + layout.put("foods", foods); + + return success(layout); + } + @PreAuthorize("hasAuthority('cms:mp:remove')") @ApiOperation("清除缓存") @DeleteMapping("/clearSiteInfo/{key}") public ApiResult clearSiteInfo(@PathVariable("key") String key) { final String siteInfo = redisUtil.get(key); - if(StrUtil.isNotBlank(siteInfo)){ + if (StrUtil.isNotBlank(siteInfo)) { redisUtil.delete(key); // 选择支付方式 redisUtil.delete("SelectPayment:".concat(getTenantId().toString())); @@ -261,7 +290,7 @@ public class MpController extends BaseController { public ApiResult update(@RequestBody Mp mp) { // 只允许一个主账号 if (mp.getType().equals(1)) { - mpService.update(new LambdaUpdateWrapper().eq(Mp::getType,1).set(Mp::getType,0)); + mpService.update(new LambdaUpdateWrapper().eq(Mp::getType, 1).set(Mp::getType, 0)); } if (mpService.updateById(mp)) { return success("修改成功"); diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java index 323761f..14566d9 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java @@ -81,7 +81,6 @@ public class GoodsController extends BaseController { return success(goodsService.listRel(param)); } - @PreAuthorize("hasAuthority('shop:goods:list')") @ApiOperation("根据id查询商品记录表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/RechargeOrderController.java b/src/main/java/com/gxwebsoft/shop/controller/RechargeOrderController.java new file mode 100644 index 0000000..c850190 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/RechargeOrderController.java @@ -0,0 +1,187 @@ +package com.gxwebsoft.shop.controller; + +import cn.hutool.core.util.IdUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.UserBalanceLog; +import com.gxwebsoft.shop.service.RechargeOrderService; +import com.gxwebsoft.shop.entity.RechargeOrder; +import com.gxwebsoft.shop.param.RechargeOrderParam; +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 com.gxwebsoft.shop.service.UserBalanceLogService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static com.gxwebsoft.common.core.constants.BalanceConstants.BALANCE_ADMIN; + +/** + * 会员充值订单表控制器 + * + * @author 科技小王子 + * @since 2024-07-26 23:18:48 + */ +@Api(tags = "会员充值订单表管理") +@RestController +@RequestMapping("/api/shop/recharge-order") +public class RechargeOrderController extends BaseController { + @Resource + private RechargeOrderService rechargeOrderService; + @Resource + private UserService userService; + @Resource + private UserBalanceLogService userBalanceLogService; + + @PreAuthorize("hasAuthority('shop:rechargeOrder:save')") + @ApiOperation("会员充值") + @PostMapping("/recharge") + @Transactional(rollbackFor = {Exception.class}) + public ApiResult recharge(@RequestBody RechargeOrder rechargeOrder) { + // 充值 + User user = userService.getById(rechargeOrder.getUserId()); + BigDecimal balance = user.getBalance().add(rechargeOrder.getPayPrice()); + user.setBalance(balance); + userService.updateById(user); + // 保存充值记录 + rechargeOrder.setOrderNo(Long.toString(IdUtil.getSnowflakeNextId())); + rechargeOrder.setBalance(balance); + if (rechargeOrderService.save(rechargeOrder)) { + // 记录余额明细 + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(rechargeOrder.getUserId()); + userBalanceLog.setScene(BALANCE_ADMIN); + userBalanceLog.setMoney(rechargeOrder.getPayPrice()); + userBalanceLog.setBalance(balance); + userBalanceLog.setComments("操作人:" + getLoginUser().getNickname()); + userBalanceLog.setRemark(rechargeOrder.getComments()); + userBalanceLog.setMerchantCode(rechargeOrder.getMerchantCode()); + userBalanceLogService.save(userBalanceLog); + return success("充值成功", user); + } + return fail("充值失败"); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:list')") + @ApiOperation("分页查询会员充值订单表") + @GetMapping("/page") + public ApiResult> page(RechargeOrderParam param) { + // 使用关联查询 + return success(rechargeOrderService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:list')") + @ApiOperation("查询全部会员充值订单表") + @GetMapping() + public ApiResult> list(RechargeOrderParam param) { + // 使用关联查询 + return success(rechargeOrderService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:list')") + @ApiOperation("根据id查询会员充值订单表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(rechargeOrderService.getByIdRel(id)); + } + + @ApiOperation("添加会员充值订单表") + @PostMapping() + public ApiResult save(@RequestBody RechargeOrder rechargeOrder) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + rechargeOrder.setUserId(loginUser.getUserId()); + } + if (rechargeOrderService.save(rechargeOrder)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改会员充值订单表") + @PutMapping() + public ApiResult update(@RequestBody RechargeOrder rechargeOrder) { + if (rechargeOrderService.updateById(rechargeOrder)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除会员充值订单表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (rechargeOrderService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:save')") + @ApiOperation("批量充值") + @PostMapping("/batchRecharge") + @Transactional(rollbackFor = {Exception.class}) + public ApiResult batchRecharge(@RequestBody List list) { + if (rechargeOrderService.saveBatch(list)) { + String nickname = getLoginUser().getNickname(); + ArrayList users = new ArrayList<>(list.size()); + ArrayList logs = new ArrayList<>(list.size()); + + list.forEach(d -> { + User user = userService.getByIdRel(d.getUserId()); + BigDecimal balance = user.getBalance().add(d.getPayPrice()); + user.setBalance(balance); + users.add(user); + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(d.getUserId()); + userBalanceLog.setScene(BALANCE_ADMIN); + userBalanceLog.setMoney(d.getPayPrice()); + userBalanceLog.setBalance(balance); + userBalanceLog.setComments("操作人:" + nickname); + userBalanceLog.setRemark(d.getComments()); + userBalanceLog.setMerchantCode(d.getMerchantCode()); + logs.add(userBalanceLog); + }); + + // 批量充值 + userService.updateBatchById(users); + // 记录余额明细 + userBalanceLogService.saveBatch(logs); + return success("充值成功"); + } + return fail("充值失败"); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:update')") + @ApiOperation("批量修改会员充值订单表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(rechargeOrderService, "order_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:rechargeOrder:remove')") + @ApiOperation("批量删除会员充值订单表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (rechargeOrderService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/UsersController.java b/src/main/java/com/gxwebsoft/shop/controller/UsersController.java index 2786f8e..db6d2f6 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/UsersController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/UsersController.java @@ -61,7 +61,7 @@ public class UsersController extends BaseController { return success(usersService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:users:list')") + @PreAuthorize("hasAnyAuthority('sys:auth:user')") @ApiOperation("根据手机查询用户") @GetMapping("/getByPhone") public ApiResult getByPhone(UsersParam param) { diff --git a/src/main/java/com/gxwebsoft/shop/entity/RechargeOrder.java b/src/main/java/com/gxwebsoft/shop/entity/RechargeOrder.java new file mode 100644 index 0000000..fde3d45 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/RechargeOrder.java @@ -0,0 +1,104 @@ +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.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +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-07-26 23:18:48 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "RechargeOrder对象", description = "会员充值订单表") +@TableName("shop_recharge_order") +public class RechargeOrder implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单ID") + @TableId(value = "order_id", type = IdType.AUTO) + private Integer orderId; + + @ApiModelProperty(value = "订单号") + private String orderNo; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "充值方式(10自定义金额 20套餐充值)") + private Integer rechargeType; + + @ApiModelProperty(value = "机构id") + private Integer organizationId; + + @ApiModelProperty(value = "充值套餐ID") + private Integer planId; + + @ApiModelProperty(value = "用户支付金额") + private BigDecimal payPrice; + + @ApiModelProperty(value = "赠送金额") + private BigDecimal giftMoney; + + @ApiModelProperty(value = "实际到账金额") + private BigDecimal actualMoney; + + @ApiModelProperty(value = "用户可用余额") + private BigDecimal balance; + + @ApiModelProperty(value = "支付方式(微信/支付宝)") + private String payMethod; + + @ApiModelProperty(value = "支付状态(10待支付 20已支付)") + private Integer payStatus; + + @ApiModelProperty(value = "付款时间") + private Integer payTime; + + @ApiModelProperty(value = "第三方交易记录ID") + private Integer tradeId; + + @ApiModelProperty(value = "来源客户端 (APP、H5、小程序等)") + private String platform; + + @ApiModelProperty(value = "所属门店ID") + private Integer shopId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "商户编码") + private String merchantCode; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/RechargeOrderMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/RechargeOrderMapper.java new file mode 100644 index 0000000..c27a982 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/RechargeOrderMapper.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.RechargeOrder; +import com.gxwebsoft.shop.param.RechargeOrderParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 会员充值订单表Mapper + * + * @author 科技小王子 + * @since 2024-07-26 23:18:48 + */ +public interface RechargeOrderMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") RechargeOrderParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") RechargeOrderParam param); + +} 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 9210759..cdd9b8d 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml @@ -183,7 +183,7 @@ diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/RechargeOrderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/RechargeOrderMapper.xml new file mode 100644 index 0000000..24c88e3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/RechargeOrderMapper.xml @@ -0,0 +1,99 @@ + + + + + + + SELECT a.* + FROM shop_recharge_order a + + + AND a.order_id = #{param.orderId} + + + AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.recharge_type = #{param.rechargeType} + + + AND a.organization_id = #{param.organizationId} + + + AND a.plan_id = #{param.planId} + + + AND a.pay_price = #{param.payPrice} + + + AND a.gift_money = #{param.giftMoney} + + + AND a.actual_money = #{param.actualMoney} + + + AND a.balance = #{param.balance} + + + AND a.pay_method LIKE CONCAT('%', #{param.payMethod}, '%') + + + AND a.pay_status = #{param.payStatus} + + + AND a.pay_time = #{param.payTime} + + + AND a.trade_id = #{param.tradeId} + + + AND a.platform LIKE CONCAT('%', #{param.platform}, '%') + + + AND a.shop_id = #{param.shopId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.merchant_code LIKE CONCAT('%', #{param.merchantCode}, '%') + + + 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/RechargeOrderParam.java b/src/main/java/com/gxwebsoft/shop/param/RechargeOrderParam.java new file mode 100644 index 0000000..a16ead4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/RechargeOrderParam.java @@ -0,0 +1,105 @@ +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-07-26 23:18:48 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "RechargeOrderParam对象", description = "会员充值订单表查询参数") +public class RechargeOrderParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单ID") + @QueryField(type = QueryType.EQ) + private Integer orderId; + + @ApiModelProperty(value = "订单号") + private String orderNo; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "充值方式(10自定义金额 20套餐充值)") + @QueryField(type = QueryType.EQ) + private Integer rechargeType; + + @ApiModelProperty(value = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "充值套餐ID") + @QueryField(type = QueryType.EQ) + private Integer planId; + + @ApiModelProperty(value = "用户支付金额") + @QueryField(type = QueryType.EQ) + private BigDecimal payPrice; + + @ApiModelProperty(value = "赠送金额") + @QueryField(type = QueryType.EQ) + private BigDecimal giftMoney; + + @ApiModelProperty(value = "实际到账金额") + @QueryField(type = QueryType.EQ) + private BigDecimal actualMoney; + + @ApiModelProperty(value = "用户可用余额") + @QueryField(type = QueryType.EQ) + private BigDecimal balance; + + @ApiModelProperty(value = "支付方式(微信/支付宝)") + private String payMethod; + + @ApiModelProperty(value = "支付状态(10待支付 20已支付)") + @QueryField(type = QueryType.EQ) + private Integer payStatus; + + @ApiModelProperty(value = "付款时间") + @QueryField(type = QueryType.EQ) + private Integer payTime; + + @ApiModelProperty(value = "第三方交易记录ID") + @QueryField(type = QueryType.EQ) + private Integer tradeId; + + @ApiModelProperty(value = "来源客户端 (APP、H5、小程序等)") + private String platform; + + @ApiModelProperty(value = "所属门店ID") + @QueryField(type = QueryType.EQ) + private Integer shopId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "商户编码") + private String merchantCode; + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/RechargeOrderService.java b/src/main/java/com/gxwebsoft/shop/service/RechargeOrderService.java new file mode 100644 index 0000000..94a7dc2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/RechargeOrderService.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.RechargeOrder; +import com.gxwebsoft.shop.param.RechargeOrderParam; + +import java.util.List; + +/** + * 会员充值订单表Service + * + * @author 科技小王子 + * @since 2024-07-26 23:18:48 + */ +public interface RechargeOrderService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(RechargeOrderParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(RechargeOrderParam param); + + /** + * 根据id查询 + * + * @param orderId 订单ID + * @return RechargeOrder + */ + RechargeOrder getByIdRel(Integer orderId); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java index c24ad37..17d3348 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java @@ -53,7 +53,7 @@ public class GoodsServiceImpl extends ServiceImpl implements if (!CollectionUtils.isEmpty(goodsSpecs)) { d.setGoodsSpec(goodsSpecs.get(0)); } - d.setGoodsSkus(collectSkus.get(d.getGoodsId())); +// d.setGoodsSkus(collectSkus.get(d.getGoodsId())); }); } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/RechargeOrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/RechargeOrderServiceImpl.java new file mode 100644 index 0000000..b7fefd3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/RechargeOrderServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.RechargeOrderMapper; +import com.gxwebsoft.shop.service.RechargeOrderService; +import com.gxwebsoft.shop.entity.RechargeOrder; +import com.gxwebsoft.shop.param.RechargeOrderParam; +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-07-26 23:18:48 + */ +@Service +public class RechargeOrderServiceImpl extends ServiceImpl implements RechargeOrderService { + + @Override + public PageResult pageRel(RechargeOrderParam 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(RechargeOrderParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public RechargeOrder getByIdRel(Integer orderId) { + RechargeOrderParam param = new RechargeOrderParam(); + param.setOrderId(orderId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UsersServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UsersServiceImpl.java index 29cd89f..8a22f91 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/UsersServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UsersServiceImpl.java @@ -71,6 +71,7 @@ public class UsersServiceImpl extends ServiceImpl implements integralLog.setOldMoney(old); integralLog.setNewMoney(news); integralLog.setCreateTime(DateUtil.currentSeconds()); + integralLog.setInfo("消费获取积分"); if (order.getType().equals(1)) { integralLog.setInfo("预订场地获得积分"); } diff --git a/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java b/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java index 5344637..02983b6 100644 --- a/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java +++ b/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java @@ -42,7 +42,7 @@ public class OrderInfoTask extends BaseController { final int minute = DateUtil.minute(DateUtil.date()); final int second = DateUtil.second(DateUtil.date()); final String startTime = String.format("%02d", hour).concat(":").concat(String.format("%02d", minute)).concat(":").concat(String.format("%02d", second)); - final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getTenantId,10150).eq(OrderInfo::getOrderStatus, 0).ne(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,startTime)); + final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getOrderStatus, 0).ne(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,startTime)); list.forEach(d -> { d.setOrderStatus(1); order.setOrderId(d.getOrderId()); diff --git a/src/main/java/com/gxwebsoft/shop/task/OrderTask.java b/src/main/java/com/gxwebsoft/shop/task/OrderTask.java index 7a4a1e8..941c64e 100644 --- a/src/main/java/com/gxwebsoft/shop/task/OrderTask.java +++ b/src/main/java/com/gxwebsoft/shop/task/OrderTask.java @@ -9,6 +9,7 @@ import com.gxwebsoft.shop.service.OrderService; import io.swagger.annotations.Api; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -32,17 +33,20 @@ public class OrderTask extends BaseController { /** * 自动处理过期订单任务 */ -// @Scheduled(fixedDelay = 2000, initialDelay = 2000) + @Scheduled(fixedDelay = 2000, initialDelay = 2000) @Transactional(rollbackFor = {Exception.class}) public void settledExpirationOrder() { final OrderParam p = new OrderParam(); p.setOrderStatus(0); p.setExpirationTime(DateUtil.date()); final List list = orderMapper.selectExpirationOrder(p); + System.out.println("自动处理过期订单list = " + list); list.forEach(d -> { d.setOrderStatus(2); }); - orderService.updateBatchById(list); - System.out.println("自动处理过期订单 = " + list.size()); + if (!CollectionUtils.isEmpty(list)) { + orderService.updateBatchById(list); + System.out.println("自动处理过期订单 = " + list.size()); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index 03a839e..45821a2 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -52,7 +52,7 @@ public class ShopGenerator { // "shop_spec_value", // "shop_goods", // "shop_goods_spec", - "shop_goods_sku", +// "shop_goods_sku", // "shop_goods_category", // "shop_goods_coupon", // "shop_goods_description", @@ -77,6 +77,7 @@ public class ShopGenerator { // "shop_users", // "shop_user_address", // "shop_user_balance_log" + "shop_recharge_order" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{