From 2573f2327a2046ec8545e80e4e56d1ee6c55bfae Mon Sep 17 00:00:00 2001 From: zhangmei <645025773@qq.com> Date: 星期六, 08 二月 2025 13:39:41 +0800 Subject: [PATCH] Merge branch 'xizang-changyun' of https://gitee.com/xiaochen991015/xizang into xizang-changyun --- ruoyi-common/src/main/java/com/ruoyi/common/constant/WxConstant.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/query/TItemQuery.java | 18 ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderResp.java | 23 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TInformationServiceImpl.java | 12 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java | 20 ruoyi-system/src/main/java/com/ruoyi/system/vo/TItemVO.java | 15 ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java | 10 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemServiceImpl.java | 13 ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml | 30 ruoyi-system/src/main/java/com/ruoyi/system/query/TBannerQuery.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java | 3 generator/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java | 16 generator/src/main/java/com/ruoyi/system/model/TPayOrder.java | 86 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java | 5 generator/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemMapper.java | 14 ruoyi-system/src/main/resources/mapper/system/TFaultAreaDicMapper.xml | 2 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java | 16 ruoyi-common/src/main/java/com/ruoyi/common/constant/AmountConstant.java | 15 ruoyi-system/src/main/java/com/ruoyi/system/service/TFaultAreaDicService.java | 7 generator/src/main/java/com/ruoyi/system/controller/TOrderBillController.java | 21 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBannerController.java | 104 +++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemController.java | 88 ++ ruoyi-system/src/main/java/com/ruoyi/system/model/TOrderBill.java | 54 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 12 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFaultAreaDicServiceImpl.java | 14 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java | 130 +++ ruoyi-system/src/main/resources/mapper/system/TItemTypeMapper.xml | 7 generator/src/main/java/com/ruoyi/system/model/TOrderBill.java | 47 + ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderDto.java | 38 + generator/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java | 20 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java | 29 ruoyi-system/src/main/java/com/ruoyi/system/service/TItemService.java | 9 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBillMapper.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java | 32 ruoyi-system/src/main/java/com/ruoyi/system/service/TPayOrderService.java | 19 generator/src/main/resources/mapping/TOrderBillMapper.xml | 19 ruoyi-system/src/main/java/com/ruoyi/system/model/TDept.java | 2 generator/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java | 20 ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/query/TItemTypeQuery.java | 10 ruoyi-system/src/main/resources/mapper/system/TFaultDescribeDicMapper.xml | 2 ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml | 29 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFaultAreaDicController.java | 28 generator/src/main/java/com/ruoyi/system/service/TPayOrderService.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/model/TInformation.java | 10 ruoyi-common/src/main/java/com/ruoyi/common/utils/OrderNos.java | 164 ++++ ruoyi-system/src/main/java/com/ruoyi/system/service/TItemTypeService.java | 15 ruoyi-system/src/main/resources/mapper/system/TInformationMapper.xml | 15 ruoyi-system/src/main/resources/mapper/system/TItemMapper.xml | 17 ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java | 76 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java | 87 ++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemTypeMapper.java | 12 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TInformationMapper.java | 12 ruoyi-system/src/main/java/com/ruoyi/system/dto/TBillDto.java | 17 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/query/TInformationQuery.java | 15 generator/src/main/resources/mapping/TPayOrderMapper.xml | 28 ruoyi-system/src/main/java/com/ruoyi/system/model/TBanner.java | 43 + generator/src/main/java/com/ruoyi/system/service/TOrderBillService.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderBillService.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemTypeServiceImpl.java | 26 ruoyi-system/src/main/java/com/ruoyi/system/model/TPayOrder.java | 88 ++ ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java | 18 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemTypeController.java | 119 +++ generator/src/main/java/com/ruoyi/system/controller/TPayOrderController.java | 21 ruoyi-system/src/main/java/com/ruoyi/system/service/TInformationService.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java | 24 68 files changed, 1,935 insertions(+), 28 deletions(-) diff --git a/generator/src/main/java/com/ruoyi/system/controller/TOrderBillController.java b/generator/src/main/java/com/ruoyi/system/controller/TOrderBillController.java new file mode 100644 index 0000000..4dab479 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/controller/TOrderBillController.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 订单表与账单的关联表 前端控制器 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@RestController +@RequestMapping("/t-order-bill") +public class TOrderBillController { + +} + diff --git a/generator/src/main/java/com/ruoyi/system/controller/TPayOrderController.java b/generator/src/main/java/com/ruoyi/system/controller/TPayOrderController.java new file mode 100644 index 0000000..906d0c2 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/controller/TPayOrderController.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 支付订单表 前端控制器 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@RestController +@RequestMapping("/t-pay-order") +public class TPayOrderController { + +} + diff --git a/generator/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java b/generator/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java new file mode 100644 index 0000000..b1ee709 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.model.TOrderBill; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * 订单表与账单的关联表 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TOrderBillMapper extends BaseMapper<TOrderBill> { + +} diff --git a/generator/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java b/generator/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java new file mode 100644 index 0000000..99f5e6a --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.model.TPayOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * 支付订单表 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TPayOrderMapper extends BaseMapper<TPayOrder> { + +} diff --git a/generator/src/main/java/com/ruoyi/system/model/TOrderBill.java b/generator/src/main/java/com/ruoyi/system/model/TOrderBill.java new file mode 100644 index 0000000..9c1bb9c --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/model/TOrderBill.java @@ -0,0 +1,47 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +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; + +/** + * <p> + * 订单表与账单的关联表 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_order_bill") +@ApiModel(value="TOrderBill对象", description="订单表与账单的关联表") +public class TOrderBill implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private String id; + + @ApiModelProperty(value = "订单号") + @TableField("order_no") + private String orderNo; + + @ApiModelProperty(value = "账单编号") + @TableField("bill_id") + private String billId; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/generator/src/main/java/com/ruoyi/system/model/TPayOrder.java b/generator/src/main/java/com/ruoyi/system/model/TPayOrder.java new file mode 100644 index 0000000..ea80bf8 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/model/TPayOrder.java @@ -0,0 +1,86 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +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; + +/** + * <p> + * 支付订单表 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_pay_order") +@ApiModel(value="TPayOrder对象", description="支付订单表") +public class TPayOrder implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单号") + @TableId("id") + private String id; + + @ApiModelProperty(value = "发起支付的用户ID") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "用户名称") + @TableField("user_name") + private String userName; + + @ApiModelProperty(value = "用户微信openid或支付宝userid") + @TableField("open_id") + private String openId; + + @ApiModelProperty(value = "用户手机号码") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "订单金额") + @TableField("amount") + private Long amount; + + @ApiModelProperty(value = "实付金额") + @TableField("act_pay_amount") + private Long actPayAmount; + + @ApiModelProperty(value = "支付时间") + @TableField("pay_time") + private LocalDateTime payTime; + + @ApiModelProperty(value = "支付方式") + @TableField("pay_type") + private String payType; + + @ApiModelProperty(value = "支付的回调信息") + @TableField("pay_info") + private String payInfo; + + @ApiModelProperty(value = "银行的支付流水编号") + @TableField("pay_no") + private String payNo; + + @ApiModelProperty(value = "支付的回调时间") + @TableField("callback_time") + private LocalDateTime callbackTime; + + @ApiModelProperty(value = "订单创建时间") + @TableField("create_time") + private LocalDateTime createTime; + + @ApiModelProperty(value = "订单更新时间") + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/generator/src/main/java/com/ruoyi/system/service/TOrderBillService.java b/generator/src/main/java/com/ruoyi/system/service/TOrderBillService.java new file mode 100644 index 0000000..38df822 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/service/TOrderBillService.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.model.TOrderBill; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 订单表与账单的关联表 服务类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TOrderBillService extends IService<TOrderBill> { + +} diff --git a/generator/src/main/java/com/ruoyi/system/service/TPayOrderService.java b/generator/src/main/java/com/ruoyi/system/service/TPayOrderService.java new file mode 100644 index 0000000..eed48ac --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/service/TPayOrderService.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.model.TPayOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 支付订单表 服务类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TPayOrderService extends IService<TPayOrder> { + +} diff --git a/generator/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java b/generator/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java new file mode 100644 index 0000000..5b67f76 --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.system.model.TOrderBill; +import com.ruoyi.system.mapper.TOrderBillMapper; +import com.ruoyi.system.service.TOrderBillService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 订单表与账单的关联表 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TOrderBillServiceImpl extends ServiceImpl<TOrderBillMapper, TOrderBill> implements TOrderBillService { + +} diff --git a/generator/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java b/generator/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java new file mode 100644 index 0000000..e7941bb --- /dev/null +++ b/generator/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.system.model.TPayOrder; +import com.ruoyi.system.mapper.TPayOrderMapper; +import com.ruoyi.system.service.TPayOrderService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 支付订单表 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TPayOrderServiceImpl extends ServiceImpl<TPayOrderMapper, TPayOrder> implements TPayOrderService { + +} diff --git a/generator/src/main/resources/mapping/TOrderBillMapper.xml b/generator/src/main/resources/mapping/TOrderBillMapper.xml new file mode 100644 index 0000000..a0338ce --- /dev/null +++ b/generator/src/main/resources/mapping/TOrderBillMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.TOrderBillMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TOrderBill"> + <id column="id" property="id" /> + <result column="order_no" property="orderNo" /> + <result column="bill_id" property="billId" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + </resultMap> + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, order_no, bill_id, create_time, update_time + </sql> + +</mapper> diff --git a/generator/src/main/resources/mapping/TPayOrderMapper.xml b/generator/src/main/resources/mapping/TPayOrderMapper.xml new file mode 100644 index 0000000..4f6a2e7 --- /dev/null +++ b/generator/src/main/resources/mapping/TPayOrderMapper.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.TPayOrderMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TPayOrder"> + <id column="id" property="id" /> + <result column="user_id" property="userId" /> + <result column="user_name" property="userName" /> + <result column="open_id" property="openId" /> + <result column="phone" property="phone" /> + <result column="amount" property="amount" /> + <result column="act_pay_amount" property="actPayAmount" /> + <result column="pay_time" property="payTime" /> + <result column="pay_type" property="payType" /> + <result column="pay_info" property="payInfo" /> + <result column="pay_no" property="payNo" /> + <result column="callback_time" property="callbackTime" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + </resultMap> + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, user_id, user_name, open_id, phone, amount, act_pay_amount, pay_time, pay_type, pay_info, pay_no, callback_time, create_time, update_time + </sql> + +</mapper> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBannerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBannerController.java new file mode 100644 index 0000000..8eb891f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBannerController.java @@ -0,0 +1,104 @@ +package com.ruoyi.web.controller.api; + + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.model.TBanner; +import com.ruoyi.system.query.TBannerQuery; +import com.ruoyi.system.service.TBannerService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * <p> + * 轮播图管理 前端控制器 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Api(tags = "轮播图管理") +@RestController +@RequestMapping("/t-banner") +public class TBannerController { + + private final TBannerService bannerService; + @Autowired + public TBannerController(TBannerService bannerService) { + this.bannerService = bannerService; + } + + /** + * 获取轮播图管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:banner:list')") + @ApiOperation(value = "获取轮播图分页列表") + @PostMapping(value = "/pageList") + public R<PageInfo<TBanner>> pageList(@RequestBody TBannerQuery query) { + return R.ok(bannerService.pageList(query)); + } + + /** + * 添加轮播图管理 + */ + @PreAuthorize("@ss.hasPermi('system:banner:add')") + @Log(title = "轮播图信息-新增轮播图", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加轮播图") + @PostMapping(value = "/add") + public R<Boolean> add(@Validated @RequestBody TBanner dto) { + return R.ok(bannerService.save(dto)); + } + + /** + * 修改轮播图 + */ + @PreAuthorize("@ss.hasPermi('system:banner:update')") + @Log(title = "轮播图信息-修改轮播图", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改轮播图") + @PostMapping(value = "/update") + public R<Boolean> update(@Validated @RequestBody TBanner dto) { + return R.ok(bannerService.updateById(dto)); + } + + /** + * 查看轮播图详情 + */ + @PreAuthorize("@ss.hasPermi('system:banner:detail')") + @ApiOperation(value = "查看轮播图详情") + @GetMapping(value = "/getDetailById") + public R<TBanner> getDetailById(@RequestParam String id) { + return R.ok(bannerService.getById(id)); + } + + /** + * 删除轮播图 + */ + @PreAuthorize("@ss.hasPermi('system:banner:delete')") + @Log(title = "轮播图信息-删除轮播图", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除轮播图") + @DeleteMapping(value = "/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + return R.ok(bannerService.removeById(id)); + } + + /** + * 批量删除轮播图 + */ + @PreAuthorize("@ss.hasPermi('system:banner:delete')") + @Log(title = "轮播图信息-删除轮播图", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除轮播图") + @DeleteMapping(value = "/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + return R.ok(bannerService.removeByIds(ids)); + } + +} + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java index 5b6b535..a922d24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java @@ -3,6 +3,7 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.dto.TBillDto; import com.ruoyi.system.model.TBill; import com.ruoyi.system.query.TBillQuery; import com.ruoyi.system.service.TBillService; @@ -28,8 +29,8 @@ TBillService tBillService; @PostMapping("list") - public R<PageInfo<TBill>> list(@RequestBody TBillQuery query){ - PageInfo<TBill> pageInfo = tBillService.queryPage(query); + public R<PageInfo<TBillDto>> list(@RequestBody TBillQuery query){ + PageInfo<TBillDto> pageInfo = tBillService.queryPage(query); return R.ok(pageInfo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFaultAreaDicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFaultAreaDicController.java index 7d8127e..612ca22 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFaultAreaDicController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFaultAreaDicController.java @@ -1,13 +1,18 @@ package com.ruoyi.web.controller.api; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.model.TFaultAreaDic; +import com.ruoyi.system.model.TFaultDescribeDic; +import com.ruoyi.system.model.TItem; +import com.ruoyi.system.model.TItemType; import com.ruoyi.system.query.TFaultAreaDicQuery; import com.ruoyi.system.service.TFaultAreaDicService; +import com.ruoyi.system.service.TFaultDescribeDicService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -31,9 +36,11 @@ public class TFaultAreaDicController { private final TFaultAreaDicService faultAreaDicService; + private final TFaultDescribeDicService faultDescribeDicService; @Autowired - public TFaultAreaDicController(TFaultAreaDicService faultAreaDicService) { + public TFaultAreaDicController(TFaultAreaDicService faultAreaDicService, TFaultDescribeDicService faultDescribeDicService) { this.faultAreaDicService = faultAreaDicService; + this.faultDescribeDicService = faultDescribeDicService; } /** @@ -50,7 +57,7 @@ @ApiOperation(value = "获取故障区域列表") @PostMapping(value = "/list") public R<List<TFaultAreaDic>> list() { - return R.ok(faultAreaDicService.list()); + return R.ok(faultAreaDicService.list(Wrappers.lambdaQuery(TFaultAreaDic.class).orderByDesc(TFaultAreaDic::getSortBy).orderByDesc(TFaultAreaDic::getCreateTime))); } /** @@ -61,6 +68,9 @@ @ApiOperation(value = "添加故障区域") @PostMapping(value = "/add") public R<Boolean> add(@Validated @RequestBody TFaultAreaDic dto) { + if (faultAreaDicService.isExit(dto)) { + return R.fail("故障区域名称已存在"); + } return R.ok(faultAreaDicService.save(dto)); } @@ -72,6 +82,9 @@ @ApiOperation(value = "修改故障区域") @PostMapping(value = "/update") public R<Boolean> update(@Validated @RequestBody TFaultAreaDic dto) { + if (faultAreaDicService.isExit(dto)) { + return R.fail("故障区域名称已存在"); + } return R.ok(faultAreaDicService.updateById(dto)); } @@ -93,6 +106,10 @@ @ApiOperation(value = "删除故障区域") @DeleteMapping(value = "/deleteById") public R<Boolean> deleteById(@RequestParam String id) { + long count = faultDescribeDicService.count(Wrappers.lambdaQuery(TFaultDescribeDic.class).eq(TFaultDescribeDic::getFaultId, id)); + if (count>0) { + return R.fail("该区域下有故障描述,无法删除"); + } return R.ok(faultAreaDicService.removeById(id)); } @@ -104,6 +121,13 @@ @ApiOperation(value = "批量删除故障区域") @DeleteMapping(value = "/deleteByIds") public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + List<TFaultDescribeDic> items = faultDescribeDicService.list(Wrappers.lambdaQuery(TFaultDescribeDic.class).in(TFaultDescribeDic::getFaultId, ids)); + for (String id : ids) { + if (items.stream().anyMatch(t -> t.getFaultId().equals(id))) { + TFaultAreaDic faultAreaDic = faultAreaDicService.getById(id); + return R.fail("该区域["+faultAreaDic.getFaultAreaName()+"]下有故障描述,无法删除"); + } + } return R.ok(faultAreaDicService.removeByIds(ids)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java index 1917c1a..6152134 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java @@ -1,9 +1,21 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.model.TInformation; +import com.ruoyi.system.query.TInformationQuery; +import com.ruoyi.system.service.TInformationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.List; /** * <p> @@ -13,9 +25,80 @@ * @author xiaochen * @since 2025-01-17 */ +@Api(tags = "资讯管理") @RestController @RequestMapping("/t-information") public class TInformationController { + private final TInformationService informationService; + @Autowired + public TInformationController(TInformationService informationService) { + this.informationService = informationService; + } + + /** + * 获取资讯管理管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:information:list')") + @ApiOperation(value = "获取资讯管理分页列表") + @PostMapping(value = "/pageList") + public R<PageInfo<TInformation>> pageList(@RequestBody TInformationQuery query) { + return R.ok(informationService.pageList(query)); + } + + /** + * 添加资讯管理管理 + */ + @PreAuthorize("@ss.hasPermi('system:information:add')") + @Log(title = "资讯管理信息-新增资讯管理", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加资讯管理") + @PostMapping(value = "/add") + public R<Boolean> add(@Validated @RequestBody TInformation dto) { + return R.ok(informationService.save(dto)); + } + + /** + * 修改资讯管理 + */ + @PreAuthorize("@ss.hasPermi('system:information:update')") + @Log(title = "资讯管理信息-修改资讯管理", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改资讯管理") + @PostMapping(value = "/update") + public R<Boolean> update(@Validated @RequestBody TInformation dto) { + return R.ok(informationService.updateById(dto)); + } + + /** + * 查看资讯管理详情 + */ + @PreAuthorize("@ss.hasPermi('system:information:detail')") + @ApiOperation(value = "查看资讯管理详情") + @GetMapping(value = "/getDetailById") + public R<TInformation> getDetailById(@RequestParam String id) { + return R.ok(informationService.getById(id)); + } + + /** + * 删除资讯管理 + */ + @PreAuthorize("@ss.hasPermi('system:information:delete')") + @Log(title = "资讯管理信息-删除资讯管理", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除资讯管理") + @DeleteMapping(value = "/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + return R.ok(informationService.removeById(id)); + } + + /** + * 批量删除资讯管理 + */ + @PreAuthorize("@ss.hasPermi('system:information:delete')") + @Log(title = "资讯管理信息-删除资讯管理", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除资讯管理") + @DeleteMapping(value = "/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + return R.ok(informationService.removeByIds(ids)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemController.java index 587af1d..b9cfe64 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemController.java @@ -1,9 +1,22 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.model.TItem; +import com.ruoyi.system.query.TItemQuery; +import com.ruoyi.system.service.TItemService; +import com.ruoyi.system.vo.TItemVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.List; /** * <p> @@ -13,9 +26,80 @@ * @author xiaochen * @since 2025-01-17 */ +@Api(tags = "维修物品管理") @RestController @RequestMapping("/t-item") public class TItemController { + private final TItemService itemService; + @Autowired + public TItemController(TItemService itemService) { + this.itemService = itemService; + } + + /** + * 获取维修物品管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:item:list')") + @ApiOperation(value = "获取维修物品分页列表") + @PostMapping(value = "/pageList") + public R<PageInfo<TItemVO>> pageList(@RequestBody TItemQuery query) { + return R.ok(itemService.pageList(query)); + } + + /** + * 添加维修物品管理 + */ + @PreAuthorize("@ss.hasPermi('system:item:add')") + @Log(title = "维修物品信息-新增维修物品", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加维修物品") + @PostMapping(value = "/add") + public R<Boolean> add(@Validated @RequestBody TItem dto) { + return R.ok(itemService.save(dto)); + } + + /** + * 修改维修物品 + */ + @PreAuthorize("@ss.hasPermi('system:item:update')") + @Log(title = "维修物品信息-修改维修物品", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改维修物品") + @PostMapping(value = "/update") + public R<Boolean> update(@Validated @RequestBody TItem dto) { + return R.ok(itemService.updateById(dto)); + } + + /** + * 查看维修物品详情 + */ + @PreAuthorize("@ss.hasPermi('system:item:detail')") + @ApiOperation(value = "查看维修物品详情") + @GetMapping(value = "/getDetailById") + public R<TItem> getDetailById(@RequestParam String id) { + return R.ok(itemService.getById(id)); + } + + /** + * 删除维修物品 + */ + @PreAuthorize("@ss.hasPermi('system:item:delete')") + @Log(title = "维修物品信息-删除维修物品", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除维修物品") + @DeleteMapping(value = "/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + return R.ok(itemService.removeById(id)); + } + + /** + * 批量删除维修物品 + */ + @PreAuthorize("@ss.hasPermi('system:item:delete')") + @Log(title = "维修物品信息-删除维修物品", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除维修物品") + @DeleteMapping(value = "/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + return R.ok(itemService.removeByIds(ids)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemTypeController.java index eadbb05..e35db1f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TItemTypeController.java @@ -1,9 +1,24 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.model.TItem; +import com.ruoyi.system.model.TItemType; +import com.ruoyi.system.query.TItemTypeQuery; +import com.ruoyi.system.service.TItemService; +import com.ruoyi.system.service.TItemTypeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.List; /** * <p> @@ -13,9 +28,109 @@ * @author xiaochen * @since 2025-01-17 */ +@Api(tags = "维修物品分类管理") @RestController @RequestMapping("/t-item-type") public class TItemTypeController { + private final TItemTypeService itemTypeService; + private final TItemService itemService; + @Autowired + public TItemTypeController(TItemTypeService itemTypeService, TItemService itemService) { + this.itemTypeService = itemTypeService; + this.itemService = itemService; + } + + /** + * 获取维修物品分类管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:list')") + @ApiOperation(value = "获取维修物品分类分页列表") + @PostMapping(value = "/pageList") + public R<PageInfo<TItemType>> pageList(@RequestBody TItemTypeQuery query) { + return R.ok(itemTypeService.pageList(query)); + } + + /** + * 获取维修物品分类管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:list')") + @ApiOperation(value = "获取维修物品分类列表") + @PostMapping(value = "/list") + public R<List<TItemType>> list() { + return R.ok(itemTypeService.list(Wrappers.lambdaQuery(TItemType.class).orderByDesc(TItemType::getSortBy).orderByDesc(TItemType::getCreateTime))); + } + + /** + * 添加维修物品分类管理 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:add')") + @Log(title = "维修物品分类信息-新增维修物品分类", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加维修物品分类") + @PostMapping(value = "/add") + public R<Boolean> add(@Validated @RequestBody TItemType dto) { + if (itemTypeService.isExit(dto)) { + return R.fail("维修物品分类名称已存在"); + } + return R.ok(itemTypeService.save(dto)); + } + + /** + * 修改维修物品分类 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:update')") + @Log(title = "维修物品分类信息-修改维修物品分类", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改维修物品分类") + @PostMapping(value = "/update") + public R<Boolean> update(@Validated @RequestBody TItemType dto) { + if (itemTypeService.isExit(dto)) { + return R.fail("维修物品分类名称已存在"); + } + return R.ok(itemTypeService.updateById(dto)); + } + + /** + * 查看维修物品分类详情 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:detail')") + @ApiOperation(value = "查看维修物品分类详情") + @GetMapping(value = "/getDetailById") + public R<TItemType> getDetailById(@RequestParam String id) { + return R.ok(itemTypeService.getById(id)); + } + + /** + * 删除维修物品分类 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:delete')") + @Log(title = "维修物品分类信息-删除维修物品分类", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除维修物品分类") + @DeleteMapping(value = "/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + long count = itemService.count(Wrappers.lambdaQuery(TItem.class).eq(TItem::getTypeId, id)); + if (count>0) { + return R.fail("该分类下有维修物品,无法删除"); + } + return R.ok(itemTypeService.removeById(id)); + } + + /** + * 批量删除维修物品分类 + */ + @PreAuthorize("@ss.hasPermi('system:itemType:delete')") + @Log(title = "维修物品分类信息-删除维修物品分类", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除维修物品分类") + @DeleteMapping(value = "/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + List<TItem> items = itemService.list(Wrappers.lambdaQuery(TItem.class).in(TItem::getTypeId, ids)); + for (String id : ids) { + if (items.stream().anyMatch(t -> t.getTypeId().equals(id))) { + TItemType itemType = itemTypeService.getById(id); + return R.fail("该分类["+itemType.getTypeName()+"]下有维修物品,无法删除"); + } + } + return R.ok(itemTypeService.removeByIds(ids)); + } + } diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java index cfd55df..12cf9b6 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java @@ -1,7 +1,15 @@ package com.ruoyi.web.controller.api; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.dto.MakeOrderDto; +import com.ruoyi.system.dto.MakeOrderResp; +import com.ruoyi.system.service.TPayOrderService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,12 +19,14 @@ + @Autowired + TPayOrderService tPayOrderService; - + @ApiOperation(value = "创建支付订单") @PostMapping("makeOrder") - public AjaxResult makeOrder(){ - - return null; + public R<MakeOrderResp> makeOrder(@Validated @RequestBody MakeOrderDto dto){ + MakeOrderResp resp = tPayOrderService.makeOrder(dto); + return R.ok(resp); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/AmountConstant.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/AmountConstant.java new file mode 100644 index 0000000..64c916f --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/AmountConstant.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.constant; + +import java.math.BigDecimal; + +public class AmountConstant { + + public static final BigDecimal b100 = new BigDecimal("100"); + + public static final BigDecimal b1000 = new BigDecimal("1000"); + + public static final BigDecimal b001 = new BigDecimal("0.01"); + + + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/WxConstant.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/WxConstant.java index b2e4e1a..3e54fb9 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/WxConstant.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/WxConstant.java @@ -16,4 +16,7 @@ * 高德地图坐标转换 */ public static final String ADDRESS_CONVERT_TO_COORDINATE = "https://restapi.amap.com/v3/geocode/geo?key=KEY&address=ADDRESS"; + + + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/OrderNos.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OrderNos.java new file mode 100644 index 0000000..8a80490 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OrderNos.java @@ -0,0 +1,164 @@ +package com.ruoyi.common.utils; + +import com.ruoyi.common.utils.ip.IpUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.atomic.AtomicLong; + +public class OrderNos { + + public static final char PADCHAR = '0'; + + + + /** + * 长度24位全球唯一标识 + */ + + /** + * 统一不重复内部订单号 + * + * @param systemCode + * 4字节系统编码 + * @return 24字节不重复编码 + */ + public static String oid(String systemCode) { + StringBuilder sb = new StringBuilder(); + sb.append(padding(systemCode, 4)); + sb.append(Did.getInstance().getId(20)); + return sb.toString(); + } + + public static String oid() { + return oid("O001"); + } + + /** + * 获取分布式Id + * + * @return 默认20字符长度的数字不重复编码 + */ + public static String getDid() { + return Did.getInstance().getId(); + } + + public static String getDid(int size) { + return Did.getInstance().getId(size); + } + + public static String getDid(String prefix) { + return prefix + Did.getInstance().getId(); + } + + private static String padding(String text, int size) { + String txt = StringUtils.trimToEmpty(text); + if (StringUtils.length(txt) > size) { + txt = StringUtils.substring(txt, StringUtils.length(txt) - size); + } + return StringUtils.leftPad(txt, size, PADCHAR); + } + + /** + * ID生成器 + * + * 20字符长度 yyMMddHHmmss+3位本机IP末三位+5位随机数字 + * + * @author zhangpu + * + */ + public static class Did { + private static final Logger logger = LoggerFactory.getLogger(OrderNos.class); + private static final int MIN_LENGTH = 19; + private static final int SEQU_MAX = 99999; + private static final int SEQU_19_MAX = 9999; + private volatile static long BASE = 0; + private AtomicLong sequence = new AtomicLong(0); + private String nodeFlag; + private Object nodeFlagLock = new Object(); + private static Did did = new Did(); + + + public static Did getInstance() { + return did; + } + + /** + * 生产新Id + * + * @return + */ + public String getId() { + return getId(20); + } + + public String getId(int size) { + if (size < MIN_LENGTH) { + throw new RuntimeException("did最小长度为" + MIN_LENGTH); + } + StringBuilder sb = new StringBuilder(); + sb.append(DateUtils.dateTimeNow("yyMMddHHmmss")); + sb.append(getNodeFlag()); + sb.append(getSequ(size-15)); + return sb.toString(); + } + + public synchronized String getSequ(int size) { + long timeCount = System.currentTimeMillis() / 1000; + + while (true) { + long now = sequence.get(); + if (timeCount > now) { + // 已经过了本秒,则设置新的值 + if (sequence.compareAndSet(now, timeCount)) { + break; + } + } else { + if (sequence.compareAndSet(now, now + 1)) { + timeCount = now + 1; + break; + } + } + } + int sn = (int) (timeCount % (size>=5?SEQU_MAX:SEQU_19_MAX)); + return StringUtils.leftPad(String.valueOf(sn), size, '0'); + } + + private String getNodeFlag(){ + if (this.nodeFlag == null) { + synchronized (Did.class){ + if (this.nodeFlag==null){ + this.nodeFlag = generateNodeFlag(); + } + } + } + return this.nodeFlag; + } + + /** + * 简单节点编码 + * + * 逻辑:Ip地址后三位,便于快速知道是哪个节点 + * + * @return + */ + private String generateNodeFlag() { + String ipPostfix = null; + try { + String ip = IpUtils.getFirstNoLoopbackIPV4Address(); + ipPostfix = StringUtils.substringAfterLast(ip, "."); + } catch (Exception e) { + logger.warn("生产DID要素本机IP获取失败:" + e.getMessage()); + } + return StringUtils.leftPad(ipPostfix, 3, "0"); + } + + private Did() { + super(); + } + } + + + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java index 8e89e30..8874697 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java @@ -1,16 +1,20 @@ package com.ruoyi.common.utils.ip; -import java.net.InetAddress; -import java.net.UnknownHostException; +import java.net.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; /** * 获取IP方法 * * @author ruoyi */ +@Slf4j public class IpUtils { public final static String REGX_0_255 = "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)"; @@ -379,4 +383,72 @@ } return false; } + + + private static final String LOOP_BACK = "127.0.0.1"; + private static String firstNoLoopbackIPV4Address = null; + + private static Collection<InetAddress> allHostIPV4Address = null; + /** + * 获取ipv4地址,如果有多个网卡的情况,获取第一个非loopback ip地址 + * + * @return + */ + public static String getFirstNoLoopbackIPV4Address() { + if (firstNoLoopbackIPV4Address != null) { + return firstNoLoopbackIPV4Address; + } + Collection<String> allNoLoopbackAddresses = null; + try { + allNoLoopbackAddresses = getAllNoLoopbackIPV4Addresses(); + } catch (Exception e) { + log.error("获取ip失败", e); + return LOOP_BACK; + } + if (allNoLoopbackAddresses.isEmpty()) { + return LOOP_BACK; + } + + return firstNoLoopbackIPV4Address = allNoLoopbackAddresses.iterator().next(); + } + + + public static Collection<String> getAllNoLoopbackIPV4Addresses() { + Collection<String> noLoopbackAddresses = new ArrayList<String>(); + Collection<InetAddress> allInetAddresses = getAllHostIPV4Address(); + + for (InetAddress address : allInetAddresses) { + if (!address.isLoopbackAddress()) { + noLoopbackAddresses.add(address.getHostAddress()); + } + } + + return noLoopbackAddresses; + } + + public static Collection<InetAddress> getAllHostIPV4Address() { + if (allHostIPV4Address == null) { + try { + Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); + Collection<InetAddress> addresses = new ArrayList<InetAddress>(); + + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses(); + while (inetAddresses.hasMoreElements()) { + InetAddress inetAddress = inetAddresses.nextElement(); + if (inetAddress instanceof Inet4Address) { + addresses.add(inetAddress); + } + } + } + allHostIPV4Address = addresses; + } catch (SocketException e) { + log.error("获取ip地址失败", e); + throw new RuntimeException(e.getMessage(), e); + } + + } + return allHostIPV4Address; + } } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderDto.java new file mode 100644 index 0000000..f8a68e5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderDto.java @@ -0,0 +1,38 @@ +package com.ruoyi.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@Data +@ApiModel(value = "使用账单创建订单请求") +public class MakeOrderDto implements Serializable { + /** + * 用户ID + */ + @ApiModelProperty(value = "用户ID") + @NotBlank(message = "用户ID不能为空") + private String userId; + /** + * 用户openid + */ + @ApiModelProperty(value = "用户微信或支付宝openid") + private String openId; + + @ApiModelProperty(value = "支付金额,单位:分") + @NotNull(message = "用户ID不能为空") + private Long amount; + + @ApiModelProperty(value = "账单ID列表",notes = "如果只有1个账单ID,金额可以小于账单金额,进行部分缴费;如果是多个账单,将会核对金额,未交费金额需要与缴费金额一致") + @NotEmpty(message = "用户ID不能为空") + private List<String> billIds; + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderResp.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderResp.java new file mode 100644 index 0000000..a772713 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/MakeOrderResp.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel(value = "使用账单创建订单请求") +public class MakeOrderResp implements Serializable { + /** + * 订单编号 + */ + @ApiModelProperty("订单编号") + private String orderNo; + @ApiModelProperty("金额,分") + private Long amount; + @ApiModelProperty("微信小程序支付跳转链接,用于生成二维码") + private String appletUrl; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TBillDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TBillDto.java new file mode 100644 index 0000000..fa60266 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TBillDto.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.dto; + +import com.ruoyi.system.model.TBill; +import lombok.Data; + +import java.util.List; + +@Data +public class TBillDto extends TBill { + + private String residentName; + + private String phone; + + private String account; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java new file mode 100644 index 0000000..b258375 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.model.TBanner; +import com.ruoyi.system.query.TBannerQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 轮播图管理 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TBannerMapper extends BaseMapper<TBanner> { + + /** + * 获取轮播图管理列表 + * @param query + * @param pageInfo + * @return + */ + List<TBanner> pageList(@Param("query") TBannerQuery query, @Param("pageInfo")PageInfo<TBanner> pageInfo); + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBillMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBillMapper.java index f89dd32..ab6c3dc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBillMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBillMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.dto.TBillDto; import com.ruoyi.system.model.TBill; +import com.ruoyi.system.query.TBillQuery; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * <p> @@ -13,4 +18,6 @@ */ public interface TBillMapper extends BaseMapper<TBill> { + PageInfo<TBillDto> page(@Param("pageInfo") PageInfo<TBill> pageInfo, @Param("query") TBillQuery query); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TInformationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TInformationMapper.java index c5b0c50..6938d02 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TInformationMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TInformationMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TInformation; +import com.ruoyi.system.query.TInformationQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +18,11 @@ */ public interface TInformationMapper extends BaseMapper<TInformation> { + /** + * 获取资讯管理分页列表 + * @param query + * @param pageInfo + * @return + */ + List<TInformation> pageList(@Param("query") TInformationQuery query, @Param("pageInfo")PageInfo<TInformation> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemMapper.java index 66635b1..0fda975 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemMapper.java @@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TItem; +import com.ruoyi.system.query.TItemQuery; +import com.ruoyi.system.vo.TItemVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,12 @@ */ public interface TItemMapper extends BaseMapper<TItem> { + /** + * 获取维修物品分页列表 + * @param query + * @param pageInfo + * @return + */ + List<TItemVO> pageList(@Param("query") TItemQuery query, @Param("pageInfo")PageInfo<TItemVO> pageInfo); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemTypeMapper.java index f02e0a2..8b6aca6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemTypeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TItemTypeMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TItemType; +import com.ruoyi.system.query.TItemTypeQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +18,11 @@ */ public interface TItemTypeMapper extends BaseMapper<TItemType> { + /** + * 获取维修物品分类管理列表 + * @param query + * @param pageInfo + * @return + */ + List<TItemType> pageList(@Param("query") TItemTypeQuery query, @Param("pageInfo")PageInfo<TItemType> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java new file mode 100644 index 0000000..7f1f170 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderBillMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.model.TOrderBill; + +/** + * <p> + * 订单表与账单的关联表 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TOrderBillMapper extends BaseMapper<TOrderBill> { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java new file mode 100644 index 0000000..0bc6f9d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TPayOrderMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.model.TPayOrder; + +/** + * <p> + * 支付订单表 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TPayOrderMapper extends BaseMapper<TPayOrder> { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBanner.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBanner.java new file mode 100644 index 0000000..1265ff2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBanner.java @@ -0,0 +1,43 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.core.domain.BaseModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 轮播图管理 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_banner") +@ApiModel(value="TBanner对象", description="轮播图管理") +public class TBanner extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "图片") + @TableField("pictures") + private String pictures; + + @ApiModelProperty(value = "权重") + @TableField("sort_by") + private Integer sortBy; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java index 7abdadb..a298bb2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java @@ -40,6 +40,10 @@ @TableField("contract_id") private String contractId; + @ApiModelProperty(value = "合同编号") + @TableField("contract_number") + private String contractNumber; + @ApiModelProperty(value = "应缴费") @TableField("payable_fees_money") private BigDecimal payableFeesMoney; @@ -92,9 +96,9 @@ @TableField("bank_serial_number") private String bankSerialNumber; - @ApiModelProperty(value = "实际收款") - @TableField("actual_money") - private BigDecimal actualMoney; + @ApiModelProperty(value = "欠费金额") + @TableField("outstanding_money") + private BigDecimal outstandingMoney; @ApiModelProperty(value = "凭证上传") @TableField("voucher") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TDept.java index 532ee46..93144fe 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TDept.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TDept.java @@ -13,6 +13,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; @@ -36,6 +37,7 @@ private String id; @NotBlank(message = "部门ID不能为空") + @Length(max = 10, message = "部门ID不能超过10个字符") @ApiModelProperty(value = "部门id") @TableField("dept_id") private String deptId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TInformation.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TInformation.java index b57e911..7ebb8ff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TInformation.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TInformation.java @@ -14,6 +14,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * <p> * 资讯管理 @@ -33,6 +36,7 @@ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + @NotBlank(message = "资讯标题不能为空") @ApiModelProperty(value = "标题") @TableField("title_name") private String titleName; @@ -45,6 +49,7 @@ @TableField("info_source") private String infoSource; + @NotNull(message = "请选择发布时间") @ApiModelProperty(value = "发布时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("release_time") @@ -54,9 +59,12 @@ @TableField("content") private String content; - @ApiModelProperty(value = "附件") + @ApiModelProperty(value = "附件 逗号分割 ") @TableField("attachment") private String attachment; + @ApiModelProperty(value = "附件名称 与附件顺序一致") + @TableField("attachment_name") + private String attachmentName; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TOrderBill.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TOrderBill.java new file mode 100644 index 0000000..4390921 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TOrderBill.java @@ -0,0 +1,54 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 订单表与账单的关联表 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@TableName("t_order_bill") +@ApiModel(value="TOrderBill对象", description="订单表与账单的关联表") +public class TOrderBill implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "订单号") + @TableField("order_no") + private String orderNo; + + @ApiModelProperty(value = "账单编号") + @TableField("bill_id") + private String billId; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("update_time") + private LocalDateTime updateTime; + + public TOrderBill(String orderNo, String billId) { + this.orderNo = orderNo; + this.billId = billId; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TPayOrder.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TPayOrder.java new file mode 100644 index 0000000..a161f9f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TPayOrder.java @@ -0,0 +1,88 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 支付订单表 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_pay_order") +@ApiModel(value="TPayOrder对象", description="支付订单表") +public class TPayOrder implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单号") + @TableId("id") + private String id; + + @ApiModelProperty(value = "发起支付的用户ID") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "用户名称") + @TableField("user_name") + private String userName; + + @ApiModelProperty(value = "用户微信openid或支付宝userid") + @TableField("open_id") + private String openId; + + @ApiModelProperty(value = "用户手机号码") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "订单金额") + @TableField("amount") + private Long amount; + + @ApiModelProperty(value = "实付金额") + @TableField("act_pay_amount") + private Long actPayAmount; + + @ApiModelProperty(value = "支付时间") + @TableField("pay_time") + private LocalDateTime payTime; + + @ApiModelProperty(value = "支付方式") + @TableField("pay_type") + private String payType; + + @ApiModelProperty(value = "支付的回调信息") + @TableField("pay_info") + private String payInfo; + + @ApiModelProperty(value = "银行的支付流水编号") + @TableField("pay_no") + private String payNo; + + @ApiModelProperty(value = "支付的回调时间") + @TableField("callback_time") + private LocalDateTime callbackTime; + + @ApiModelProperty(value = "订单创建时间") + @TableField("create_time") + private LocalDateTime createTime; + + @ApiModelProperty(value = "订单更新时间") + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TBannerQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBannerQuery.java new file mode 100644 index 0000000..842b1a7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBannerQuery.java @@ -0,0 +1,13 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "轮播图query") +public class TBannerQuery extends BasePage { + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java index 9cfb8cb..b43c565 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java @@ -10,6 +10,12 @@ */ private Integer payFeesStatus; + private String phone; + + private String residentName; + + private String contractNumber; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TInformationQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TInformationQuery.java new file mode 100644 index 0000000..d5a8e41 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TInformationQuery.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "咨询列表query") +public class TInformationQuery extends BasePage { + + @ApiModelProperty(value = "标题") + private String titleName; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemQuery.java new file mode 100644 index 0000000..7e1f9b9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemQuery.java @@ -0,0 +1,18 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "维修物品query") +public class TItemQuery extends BasePage { + + @ApiModelProperty(value = "分类id") + private String typeId; + + @ApiModelProperty(value = "物品名称") + private String itemName; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemTypeQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemTypeQuery.java new file mode 100644 index 0000000..3b33ba0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TItemTypeQuery.java @@ -0,0 +1,10 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "维修物品分类query") +public class TItemTypeQuery extends BasePage { +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java new file mode 100644 index 0000000..b2ed584 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java @@ -0,0 +1,24 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.model.TBanner; +import com.ruoyi.system.query.TBannerQuery; + +/** + * <p> + * 轮播图管理 服务类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TBannerService extends IService<TBanner> { + + /** + * 获取轮播图分页列表 + * @param query + * @return + */ + PageInfo<TBanner> pageList(TBannerQuery query); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java index 9dbe020..22feecc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.dto.TBillDto; import com.ruoyi.system.model.TBill; import com.ruoyi.system.query.TBillQuery; @@ -15,6 +16,6 @@ */ public interface TBillService extends IService<TBill> { - PageInfo<TBill> queryPage(TBillQuery query); + PageInfo<TBillDto> queryPage(TBillQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFaultAreaDicService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFaultAreaDicService.java index 1e4f8c3..5ef09fb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFaultAreaDicService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFaultAreaDicService.java @@ -21,4 +21,11 @@ * @return */ PageInfo<TFaultAreaDic> pageList(TFaultAreaDicQuery query); + + /** + * 判断区域是否存在 + * @param dto + * @return + */ + boolean isExit(TFaultAreaDic dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TInformationService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TInformationService.java index 17c8d8e..5f30b03 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TInformationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TInformationService.java @@ -1,7 +1,9 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TInformation; +import com.ruoyi.system.query.TInformationQuery; /** * <p> @@ -13,4 +15,10 @@ */ public interface TInformationService extends IService<TInformation> { + /** + * 分页查询 + * @param query + * @return + */ + PageInfo<TInformation> pageList(TInformationQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemService.java index 960a6e5..5cb9285 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemService.java @@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TItem; +import com.ruoyi.system.query.TItemQuery; +import com.ruoyi.system.vo.TItemVO; /** * <p> @@ -13,4 +16,10 @@ */ public interface TItemService extends IService<TItem> { + /** + * 获取维修物品分页列表 + * @param query + * @return + */ + PageInfo<TItemVO> pageList(TItemQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemTypeService.java index 7dced6d..d542486 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemTypeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TItemTypeService.java @@ -1,7 +1,9 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TItemType; +import com.ruoyi.system.query.TItemTypeQuery; /** * <p> @@ -13,4 +15,17 @@ */ public interface TItemTypeService extends IService<TItemType> { + /** + * 判断分类是否存在 + * @param dto + * @return + */ + boolean isExit(TItemType dto); + + /** + * 获取维修物品分类分页列表 + * @param query + * @return + */ + PageInfo<TItemType> pageList(TItemTypeQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderBillService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderBillService.java new file mode 100644 index 0000000..8c2e80d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderBillService.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.model.TOrderBill; + +/** + * <p> + * 订单表与账单的关联表 服务类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TOrderBillService extends IService<TOrderBill> { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TPayOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TPayOrderService.java new file mode 100644 index 0000000..ccc9c4f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TPayOrderService.java @@ -0,0 +1,19 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.dto.MakeOrderDto; +import com.ruoyi.system.dto.MakeOrderResp; +import com.ruoyi.system.model.TPayOrder; + +/** + * <p> + * 支付订单表 服务类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +public interface TPayOrderService extends IService<TPayOrder> { + + MakeOrderResp makeOrder(MakeOrderDto dto); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java new file mode 100644 index 0000000..6dae322 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java @@ -0,0 +1,32 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.system.mapper.TBannerMapper; +import com.ruoyi.system.model.TBanner; +import com.ruoyi.system.query.TBannerQuery; +import com.ruoyi.system.service.TBannerService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * <p> + * 轮播图管理 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TBannerServiceImpl extends ServiceImpl<TBannerMapper, TBanner> implements TBannerService { + + @Override + public PageInfo<TBanner> pageList(TBannerQuery query) { + PageInfo<TBanner> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TBanner> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java index e30ccf0..3a0bdc6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java @@ -1,16 +1,22 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.system.dto.TBillDto; import com.ruoyi.system.mapper.TBillMapper; import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.THouse; import com.ruoyi.system.query.TBillQuery; import com.ruoyi.system.service.TBillService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.jsonwebtoken.lang.Assert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; /** * <p> @@ -29,8 +35,10 @@ @Autowired TBillMapper tBillMapper; - public PageInfo<TBill> queryPage(TBillQuery query){ - return null; + public PageInfo<TBillDto> queryPage(TBillQuery query){ + PageInfo<TBill> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + PageInfo<TBillDto> info = tBillMapper.page(pageInfo, query); + return info; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFaultAreaDicServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFaultAreaDicServiceImpl.java index bd6f3be..094504b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFaultAreaDicServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFaultAreaDicServiceImpl.java @@ -1,9 +1,12 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.DictConstants; import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.TFaultAreaDicMapper; +import com.ruoyi.system.model.TDept; import com.ruoyi.system.model.TFaultAreaDic; import com.ruoyi.system.query.TFaultAreaDicQuery; import com.ruoyi.system.service.TFaultAreaDicService; @@ -31,4 +34,15 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public boolean isExit(TFaultAreaDic dto) { + if(StringUtils.isNotEmpty(dto.getId())){ + // 修改 + return this.count(Wrappers.lambdaQuery(TFaultAreaDic.class).ne(TFaultAreaDic::getId, dto.getId()).eq(TFaultAreaDic::getFaultAreaName, dto.getFaultAreaName())) > 0; + }else { + // 新增 + return this.count(Wrappers.lambdaQuery(TFaultAreaDic.class).eq(TFaultAreaDic::getFaultAreaName, dto.getFaultAreaName())) > 0; + } + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TInformationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TInformationServiceImpl.java index 550d6a4..282470c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TInformationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TInformationServiceImpl.java @@ -1,10 +1,15 @@ package com.ruoyi.system.service.impl; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TInformationMapper; import com.ruoyi.system.model.TInformation; +import com.ruoyi.system.query.TInformationQuery; import com.ruoyi.system.service.TInformationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.vo.HouseVO; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +22,11 @@ @Service public class TInformationServiceImpl extends ServiceImpl<TInformationMapper, TInformation> implements TInformationService { + @Override + public PageInfo<TInformation> pageList(TInformationQuery query) { + PageInfo<TInformation> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TInformation> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemServiceImpl.java index 1d5a7a4..b3c9c84 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemServiceImpl.java @@ -1,10 +1,16 @@ package com.ruoyi.system.service.impl; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TItemMapper; +import com.ruoyi.system.model.TInformation; import com.ruoyi.system.model.TItem; +import com.ruoyi.system.query.TItemQuery; import com.ruoyi.system.service.TItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.vo.TItemVO; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +23,11 @@ @Service public class TItemServiceImpl extends ServiceImpl<TItemMapper, TItem> implements TItemService { + @Override + public PageInfo<TItemVO> pageList(TItemQuery query) { + PageInfo<TItemVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TItemVO> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemTypeServiceImpl.java index bc8a264..8696828 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TItemTypeServiceImpl.java @@ -1,10 +1,18 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.TItemTypeMapper; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.TFaultAreaDic; import com.ruoyi.system.model.TItemType; +import com.ruoyi.system.query.TItemTypeQuery; import com.ruoyi.system.service.TItemTypeService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +25,22 @@ @Service public class TItemTypeServiceImpl extends ServiceImpl<TItemTypeMapper, TItemType> implements TItemTypeService { + @Override + public boolean isExit(TItemType dto) { + if(StringUtils.isNotEmpty(dto.getId())){ + // 修改 + return this.count(Wrappers.lambdaQuery(TItemType.class).ne(TItemType::getId, dto.getId()).eq(TItemType::getTypeName, dto.getTypeName())) > 0; + }else { + // 新增 + return this.count(Wrappers.lambdaQuery(TItemType.class).eq(TItemType::getTypeName, dto.getTypeName())) > 0; + } + } + + @Override + public PageInfo<TItemType> pageList(TItemTypeQuery query) { + PageInfo<TItemType> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TItemType> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java new file mode 100644 index 0000000..287417b --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderBillServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.mapper.TOrderBillMapper; +import com.ruoyi.system.model.TOrderBill; +import com.ruoyi.system.service.TOrderBillService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 订单表与账单的关联表 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TOrderBillServiceImpl extends ServiceImpl<TOrderBillMapper, TOrderBill> implements TOrderBillService { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java new file mode 100644 index 0000000..9237241 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java @@ -0,0 +1,130 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.constant.AmountConstant; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.OrderNos; +import com.ruoyi.system.dto.MakeOrderDto; +import com.ruoyi.system.dto.MakeOrderResp; +import com.ruoyi.system.mapper.TPayOrderMapper; +import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TOrderBill; +import com.ruoyi.system.model.TPayOrder; +import com.ruoyi.system.model.TTenant; +import com.ruoyi.system.service.TBillService; +import com.ruoyi.system.service.TOrderBillService; +import com.ruoyi.system.service.TPayOrderService; +import com.ruoyi.system.service.TTenantService; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 支付订单表 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TPayOrderServiceImpl extends ServiceImpl<TPayOrderMapper, TPayOrder> implements TPayOrderService { + + @Autowired + TBillService billService; + + @Autowired + TTenantService tTenantService; + + @Autowired + TOrderBillService tOrderBillService; + + + public long caculateRentFee(TBill bill){ + return bill.getPayableFeesMoney().add(bill.getPayableFeesPenalty()) + .subtract(bill.getActualMoney()) + .multiply(AmountConstant.b100) + .setScale(0, RoundingMode.HALF_DOWN) + .longValue(); + } + + + public String createAppletUrl(String orderNo){ + return ""+orderNo; + } + + @Override + public MakeOrderResp makeOrder(MakeOrderDto dto) { + + TTenant user = tTenantService.getById(dto.getUserId()); + if (user==null){ + throw new ServiceException("租户不存在"); + } + MakeOrderResp resp = new MakeOrderResp(); + if (dto.getBillIds().size()==1){ + TBill bill = billService.getById(dto.getBillIds().get(0)); + if (bill == null) { + throw new ServiceException("账单不存在"); + } + //计算欠费金额:租金+违约金-实收金额 + long rent = caculateRentFee(bill); + if (rent==0){ + throw new ServiceException("该订单已缴费"); + } + if (rent>dto.getAmount()){ + throw new ServiceException("支付金额超过了账单欠费金额"); + } + + TPayOrder order = new TPayOrder(); + order.setId(OrderNos.getDid(32)); + order.setAmount(dto.getAmount()); + order.setUserId(user.getId()); + order.setPhone(user.getPhone()); + order.setUserName(user.getResidentName()); + save(order); + TOrderBill tOrderBill = new TOrderBill(); + tOrderBill.setBillId(bill.getId()); + tOrderBill.setOrderNo(order.getId()); + tOrderBillService.save(tOrderBill); + resp.setAmount(dto.getAmount()); + resp.setOrderNo(order.getId()); + resp.setAppletUrl(createAppletUrl(order.getId())); + return resp; + } + List<TOrderBill> orderBills = new ArrayList<>(); + String orderNo = OrderNos.getDid(32); + List<TBill> bills = dto.getBillIds().stream().map(id -> { + TBill bill = billService.getById(id); + if (bill == null) { + throw new ServiceException("billId:" + id + "不存在"); + } + orderBills.add(new TOrderBill(orderNo,bill.getId())); + return bill; + }).collect(Collectors.toList()); + long sumRent = bills.stream().mapToLong((bill) -> caculateRentFee(bill)).sum(); + if (sumRent==0){ + throw new ServiceException("账单已缴费"); + } + if (dto.getAmount()>sumRent){ + throw new ServiceException("支付金额超过所选账单欠费金额"); + } + TPayOrder order = new TPayOrder(); + order.setId(orderNo); + order.setAmount(dto.getAmount()); + order.setUserId(user.getId()); + order.setPhone(user.getPhone()); + order.setUserName(user.getResidentName()); + save(order); + tOrderBillService.saveBatch(orderBills); + resp.setAmount(dto.getAmount()); + resp.setOrderNo(orderNo); + resp.setAppletUrl(createAppletUrl(orderNo)); + return resp; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TItemVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TItemVO.java new file mode 100644 index 0000000..f2b2943 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TItemVO.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.system.model.TItem; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "维修物品VO") +public class TItemVO extends TItem { + + @ApiModelProperty(value = "分类名称") + private String typeName; + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml new file mode 100644 index 0000000..d9bd46a --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.TBannerMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TBanner"> + <id column="id" property="id" /> + <result column="pictures" property="pictures" /> + <result column="sort_by" property="sortBy" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="create_by" property="createBy" /> + <result column="update_by" property="updateBy" /> + <result column="disabled" property="disabled" /> + </resultMap> + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, pictures, sort_by, create_time, update_time, create_by, update_by, disabled + </sql> + <select id="pageList" resultType="com.ruoyi.system.model.TBanner"> + select + <include refid="Base_Column_List"/> + from t_banner + where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + order by sort_by, create_time desc + </select> + +</mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml index 82f6ac0..a027bc6 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml @@ -6,6 +6,7 @@ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TBill"> <id column="id" property="id" /> <result column="contract_id" property="contractId" /> + <result column="contract_number" property="contractNumber" /> <result column="payable_fees_money" property="payableFeesMoney" /> <result column="payable_fees_time" property="payableFeesTime" /> <result column="pay_fees_status" property="payFeesStatus" /> @@ -18,7 +19,7 @@ <result column="start_time" property="startTime" /> <result column="end_time" property="endTime" /> <result column="bank_serial_number" property="bankSerialNumber" /> - <result column="actual_money" property="actualMoney" /> + <result column="outstanding_money" property="outstandingMoney" /> <result column="voucher" property="voucher" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> @@ -29,7 +30,32 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, contract_id, payable_fees_money, payable_fees_time, pay_fees_status, pay_fees_money, pay_fees_time, pay_fees_type, bill_type, over_days, payable_fees_penalty, start_time, end_time, bank_serial_number, actual_money, voucher, create_time, update_time, create_by, update_by, disabled + id, contract_id,contract_number, payable_fees_money, payable_fees_time, pay_fees_status, pay_fees_money, pay_fees_time, pay_fees_type, bill_type, over_days, payable_fees_penalty, start_time, end_time, bank_serial_number, outstanding_money, voucher, create_time, update_time, create_by, update_by, disabled </sql> + <select id="page" resultType="com.ruoyi.system.dto.TBillDto"> + SELECT + b.*, + t.resident_name as residentName, + t.phone, + t.account + FROM + t_bill b + LEFT JOIN t_contract c ON c.contract_number = b.contract_number + LEFT JOIN t_tenant t ON t.id = c.tenant_id + <where> + <if test="query.payFeesStatus != null"> + and b.pay_fees_status = #{query.payFeesStatus} + </if> + <if test="query.phone != null and query.phone !=''"> + and t.phone = #{query.phone} + </if> + <if test="query.residentName != null and query.residentName !=''"> + and t.resident_name like concat('%',#{query.residentName},'%') + </if> + <if test="query.contractNumber != null and query.contractNumber !=''"> + and b.contract_number = #{contractNumber} + </if> + </where> + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TFaultAreaDicMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFaultAreaDicMapper.xml index 7702ec8..cb2bf60 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TFaultAreaDicMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TFaultAreaDicMapper.xml @@ -22,7 +22,7 @@ SELECT <include refid="Base_Column_List"></include> FROM t_fault_area_dic WHERE disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} - ORDER BY create_time DESC + ORDER BY sort_by,create_time DESC </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TFaultDescribeDicMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFaultDescribeDicMapper.xml index 7baa338..e59678a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TFaultDescribeDicMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TFaultDescribeDicMapper.xml @@ -24,7 +24,7 @@ <include refid="Base_Column_List"/> from t_fault_describe_dic where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} - ORDER BY create_time DESC + ORDER BY sort_by,create_time DESC </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TInformationMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TInformationMapper.xml index afc5584..12c6526 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TInformationMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TInformationMapper.xml @@ -11,6 +11,7 @@ <result column="release_time" property="releaseTime" /> <result column="content" property="content" /> <result column="attachment" property="attachment" /> + <result column="attachment_name" property="attachmentName" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="create_by" property="createBy" /> @@ -20,7 +21,19 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, title_name, sort_by, info_source, release_time, content, attachment, create_time, update_time, create_by, update_by, disabled + id, title_name, sort_by, info_source, release_time, content, attachment,attachment_name, create_time, update_time, create_by, update_by, disabled </sql> + <select id="pageList" resultType="com.ruoyi.system.model.TInformation"> + select + <include refid="Base_Column_List"/> + from t_information + <where> + <if test="query.titleName != null and query.titleName != ''"> + and title_name like concat('%',#{query.titleName},'%') + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY sort_by,create_time DESC + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TItemMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TItemMapper.xml index 2bdea94..84d057e 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TItemMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TItemMapper.xml @@ -20,5 +20,22 @@ <sql id="Base_Column_List"> id, type_id, item_name, sort_by, pictures, create_time, update_time, create_by, update_by, disabled </sql> + <select id="pageList" resultType="com.ruoyi.system.vo.TItemVO"> + select + t.id, t.type_id, t.item_name, t.sort_by, t.pictures, t.create_time, t.update_time, t.create_by, t.update_by, t.disabled + tt.type_name + from t_item t + left join t_item_type tt on t.type_id = tt.id + <where> + <if test="query.itemName != null and query.itemName != ''"> + and t.item_name like concat('%', #{query.itemName}, '%') + </if> + <if test="query.typeId != null and query.typeId != ''"> + and t.type_id = #{query.typeId} + </if> + and t.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + order by t.sort_by, t.create_time desc + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TItemTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TItemTypeMapper.xml index d39ad76..51d9e9a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TItemTypeMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TItemTypeMapper.xml @@ -18,5 +18,12 @@ <sql id="Base_Column_List"> id, type_name, sort_by, create_time, update_time, create_by, update_by, disabled </sql> + <select id="pageList" resultType="com.ruoyi.system.model.TItemType"> + select + <include refid="Base_Column_List"/> + from t_item_type + where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + ORDER BY sort_by,create_time DESC + </select> </mapper> -- Gitblit v1.7.1