diff --git a/null/download/0952cc1651f0458fab7c1b52eed45d1b_订单售后数据.xlsx b/null/download/0952cc1651f0458fab7c1b52eed45d1b_订单售后数据.xlsx new file mode 100644 index 000000000..661a91ed5 Binary files /dev/null and b/null/download/0952cc1651f0458fab7c1b52eed45d1b_订单售后数据.xlsx differ diff --git a/null/download/62f9b95dc78e4096b1284da19117d9e5_订单售后数据.xlsx b/null/download/62f9b95dc78e4096b1284da19117d9e5_订单售后数据.xlsx new file mode 100644 index 000000000..6d5fd1ec1 Binary files /dev/null and b/null/download/62f9b95dc78e4096b1284da19117d9e5_订单售后数据.xlsx differ diff --git a/null/download/7899d2d8a00f4f899a882eaaa8f4b8a2_订单售后数据.xlsx b/null/download/7899d2d8a00f4f899a882eaaa8f4b8a2_订单售后数据.xlsx new file mode 100644 index 000000000..deebb7b94 Binary files /dev/null and b/null/download/7899d2d8a00f4f899a882eaaa8f4b8a2_订单售后数据.xlsx differ diff --git a/null/download/ee3cbbae3c454908810316c4dc7da48e_订单售后数据.xlsx b/null/download/ee3cbbae3c454908810316c4dc7da48e_订单售后数据.xlsx new file mode 100644 index 000000000..d45b8cc41 Binary files /dev/null and b/null/download/ee3cbbae3c454908810316c4dc7da48e_订单售后数据.xlsx differ diff --git a/qrcode/12342424.png b/qrcode/12342424.png new file mode 100644 index 000000000..0e50db7d2 Binary files /dev/null and b/qrcode/12342424.png differ diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java index 0c3bdecc8..5297e0753 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java @@ -1,12 +1,17 @@ package org.dromara.web.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.wzj.soopin.order.service.OrderService; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + /** * 首页 * @@ -17,6 +22,9 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class IndexController { + @Autowired + private OrderService orderService; + /** * 访问首页,提示语 */ @@ -29,8 +37,11 @@ public class IndexController { /** * 获取数量统计 */ -// public List< String> + @GetMapping("/count") + public R getCount() { + return R.ok(orderService.getCount()); + } /** * 获取今日待办任务 diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml index 5a9dd1b31..9f74e347f 100644 --- a/ruoyi-common/ruoyi-common-core/pom.xml +++ b/ruoyi-common/ruoyi-common-core/pom.xml @@ -98,6 +98,14 @@ org.lionsoul ip2region + + org.springframework.security + spring-security-crypto + + + org.springframework.security + spring-security-core + diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/SecurityUtils.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java rename to ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/SecurityUtils.java index 291e18a46..3ace4b297 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/SecurityUtils.java @@ -1,9 +1,10 @@ -package com.wzj.soopin.order.utils; +package org.dromara.common.core.utils; + +import org.springframework.security.core.Authentication; import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.exception.ServiceException; -import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; diff --git a/ruoyi-common/ruoyi-common-security/pom.xml b/ruoyi-common/ruoyi-common-security/pom.xml index 5b39df293..9d860f0bd 100644 --- a/ruoyi-common/ruoyi-common-security/pom.xml +++ b/ruoyi-common/ruoyi-common-security/pom.xml @@ -20,6 +20,14 @@ org.dromara ruoyi-common-satoken + + org.springframework.security + spring-security-crypto + + + org.springframework.security + spring-security-core + diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/VlogMapper.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/VlogMapper.java index 8289883a9..56b3a5d08 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/VlogMapper.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/VlogMapper.java @@ -10,6 +10,7 @@ import com.wzj.soopin.content.domain.vo.CommentVO; import com.wzj.soopin.content.domain.vo.IndexVlogVO; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @@ -94,4 +95,7 @@ public interface VlogMapper extends BaseMapper { * @return 分页结果,包含视频信息及统计数据 */ IPage> selectVlogListWithAggregatedData(Page> page, @Param("vlogBO") VlogBO vlogBO); + + @Select("SELECT COUNT(*) FROM t_vlog where status = 0") + Object countVlog(); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java index 94f586f84..ebcafee88 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java @@ -7,8 +7,10 @@ import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.entity.Product; import com.wzj.soopin.goods.domain.vo.ProductVO; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; +import java.util.Map; /** * 商品信息Mapper接口 @@ -25,4 +27,15 @@ public interface ProductMapper extends BaseMapper { List selectByEntity(Product product); IPage getlist(@Param("page") Page page, @Param("query") ProductBo query); + + + + @Select("SELECT " + + "SUM(CASE WHEN auth_flag = 1 THEN 1 ELSE 0 END) AS count1, " + + "SUM(CASE WHEN auth_flag = 2 THEN 1 ELSE 0 END) AS count2 " + + "FROM pms_product") + Map countProduct(); + +// @Select("SELECT COUNT(*) FROM pms_product WHERE auth_flag = 1") +// Object AuditProduct(); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java index cf6ed0d9d..e1149d86c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java @@ -1,6 +1,8 @@ package com.wzj.soopin.member.domain.po; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import java.math.BigDecimal; @@ -12,6 +14,8 @@ import java.time.LocalDateTime; * @author wzj * @date 2023-03-07 */ +@Data +@TableName("ums_withdraw") public class Withdraw extends BaseAudit { private Long id; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FeedbackMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FeedbackMapper.java index 12a0506e0..9fb655a57 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FeedbackMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FeedbackMapper.java @@ -2,6 +2,7 @@ package com.wzj.soopin.member.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wzj.soopin.member.domain.po.Feedback; +import org.apache.ibatis.annotations.Select; import java.util.List; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberMapper.java index 616a76dbb..2f43b1b5e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberMapper.java @@ -49,4 +49,7 @@ public interface MemberMapper extends BaseMapper { "WHERE id = #{memberId} \n" + " AND expert = 1;") Member isExpert(String memberId); + + @Select("SELECT COUNT(*) FROM ums_member") + Object countMember(); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java new file mode 100644 index 000000000..cd8de3c45 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java @@ -0,0 +1,9 @@ +package com.wzj.soopin.member.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wzj.soopin.member.domain.po.Withdraw; +import org.apache.ibatis.annotations.Select; + +public interface WithdrawMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java new file mode 100644 index 000000000..ffb728ebf --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java @@ -0,0 +1,7 @@ +package com.wzj.soopin.member.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.member.domain.po.Withdraw; + +public interface IWithdrawService extends IService { +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java new file mode 100644 index 000000000..da1202697 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java @@ -0,0 +1,11 @@ +package com.wzj.soopin.member.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.member.mapper.WithdrawMapper; +import com.wzj.soopin.member.service.IWithdrawService; +import org.springframework.stereotype.Service; + +@Service +public class WithdrawServiceImpl extends ServiceImpl implements IWithdrawService { +} diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml index 2caa69b34..a162ef5a7 100644 --- a/ruoyi-modules/ruoyi-order/pom.xml +++ b/ruoyi-modules/ruoyi-order/pom.xml @@ -157,7 +157,14 @@ hutool-all 5.8.22 - + + org.dromara + ruoyi-content + + + org.dromara + ruoyi-content + diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java index e5afbfb7b..989bbd248 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java @@ -1,35 +1,20 @@ package com.wzj.soopin.order.controller; -import cn.dev33.satoken.annotation.SaCheckPermission; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.wzj.soopin.member.domain.bo.FeedbackBO; -import com.wzj.soopin.member.domain.bo.MemberAccountBO; -import com.wzj.soopin.member.domain.bo.MemberBO; -import com.wzj.soopin.member.domain.po.Feedback; -import com.wzj.soopin.member.domain.po.Member; -import com.wzj.soopin.member.domain.po.MemberAccount; -import com.wzj.soopin.member.domain.vo.FeedbackVO; -import com.wzj.soopin.member.domain.vo.MemberAccountVO; -import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.order.convert.AftersaleConvert; import com.wzj.soopin.order.domain.bo.AftersaleBo; -import com.wzj.soopin.order.domain.entity.OrderOperateHistory; import com.wzj.soopin.order.service.AftersaleService; import com.wzj.soopin.order.domain.entity.Aftersale; import com.wzj.soopin.order.domain.form.DealWithAftersaleForm; -import com.wzj.soopin.order.domain.form.ManagerAftersaleOrderForm; -import com.wzj.soopin.order.domain.query.AftersaleQuery; import com.wzj.soopin.order.domain.vo.*; import com.wzj.soopin.order.service.impl.AftersaleServiceImpl; -import com.wzj.soopin.order.utils.SecurityUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.utils.SecurityUtils; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -64,9 +49,8 @@ public class AftersaleController extends BaseController { @Tag(name ="查询订单售后列表") @PostMapping("/list") - public R> list(@RequestBody AftersaleBo query, Page page) { - Page list = aftersaleService.page(page,query.toWrapper() ); - return R.ok(convert.toVO(list)); + public R> list(@RequestBody AftersaleBo query, Page page) { + return R.ok(service.getlist(page,query)); } @@ -88,8 +72,8 @@ public class AftersaleController extends BaseController { @Tag(name ="新增订单售后") @Log(title = "订单售后", businessType = BusinessType.INSERT) @PostMapping("/add") - public R add(@RequestBody AftersaleBo query) { - return R.ok(service.save(convert.toPo(query))); + public R add(@RequestBody Aftersale aftersale) { + return R.ok(service.save(aftersale)); } @Tag(name ="修改订单售后") @@ -99,13 +83,14 @@ public class AftersaleController extends BaseController { return R.ok(service.updateById(aftersale)); } - @Tag(name ="删除订单售后") + @Tag(name = "删除订单售后") @Log(title = "订单售后", businessType = BusinessType.DELETE) - @DeleteMapping("/{id}") - public ResponseEntity remove(@PathVariable Long id) { - return ResponseEntity.ok(service.deleteById(id)); + @DeleteMapping("/{id}") + public R remove(@PathVariable Long id) { + return R.ok(service.removeById(id)); } + @Tag(name ="售后订单操作") @PostMapping("/dealWith") public ResponseEntity updateStatus(@RequestBody DealWithAftersaleForm request){ diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java index 0db694d7c..1deb2b2a2 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java @@ -9,12 +9,10 @@ import com.wzj.soopin.order.domain.form.DeliverProductForm; import com.wzj.soopin.order.domain.vo.*; import com.wzj.soopin.order.service.OrderService; import com.wzj.soopin.order.service.impl.OrderServiceImpl; -import com.wzj.soopin.order.utils.SecurityUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.SecurityUtils; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -22,9 +20,7 @@ import org.dromara.common.redis.redis.RedisService; import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java index b7f88fc96..e2f731da3 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java @@ -1,5 +1,6 @@ package com.wzj.soopin.order.controller; +import com.wzj.soopin.order.domain.dto.CodeVerificationDto; import com.wzj.soopin.order.service.VerificationCodeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,15 +32,12 @@ public class VerificationCodeController { /** * 扫码核销接口 - * @param codeValue 核销码 - * @param usedMerchantId 使用商家ID * @return 核销结果z */ @PostMapping("/verify") @Tag(name = "扫码核销接口") - public R verifyCode(@RequestParam String codeValue, - @RequestParam Long usedMerchantId) { - return verificationCodeService.verifyCode(codeValue, usedMerchantId); + public R verifyCode(@RequestBody CodeVerificationDto codeVerificationDto) { + return verificationCodeService.verifyCode(codeVerificationDto); } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/dto/CodeVerificationDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/dto/CodeVerificationDto.java new file mode 100644 index 000000000..91e17cbfa --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/dto/CodeVerificationDto.java @@ -0,0 +1,16 @@ +package com.wzj.soopin.order.domain.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "核销订单请求VO") +public class CodeVerificationDto { + + @Schema(description = "核销码") + private String codeValue; + + @Schema(description = "商家id") + private Long usedMerchantId; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java index aa85c1859..ae89b67a2 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java @@ -31,6 +31,10 @@ public class AftersaleVO extends BaseAudit { @Excel(name = "订单id") private Long orderId; + @Schema(description = "订单编号") + private Long orderSn; + + /** 退款金额 */ @Schema(description = "退款金额") @Excel(name = "退款金额") diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/AftersaleMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/AftersaleMapper.java index 858c87d30..13ecfb8ca 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/AftersaleMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/AftersaleMapper.java @@ -3,10 +3,14 @@ package com.wzj.soopin.order.mapper; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.order.domain.bo.AftersaleBo; import com.wzj.soopin.order.domain.entity.Aftersale; import com.wzj.soopin.order.domain.form.ManagerAftersaleOrderForm; +import com.wzj.soopin.order.domain.vo.AftersaleVO; import com.wzj.soopin.order.domain.vo.ManagerRefundOrderVO; import com.wzj.soopin.order.domain.vo.OrderAndAftersaleStatisticsVO; +import com.wzj.soopin.order.domain.vo.OrderVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -31,4 +35,5 @@ public interface AftersaleMapper extends BaseMapper { OrderAndAftersaleStatisticsVO statPendingAndProcessing(); + IPage getlist(@Param("page") Page page, @Param("query")AftersaleBo query); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java index 725af5028..01e7cba30 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java @@ -11,9 +11,11 @@ import com.wzj.soopin.order.domain.entity.SystemStatistics; import com.wzj.soopin.order.domain.form.ManagerOrderQueryForm; import com.wzj.soopin.order.domain.vo.*; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; /** * 订单表Mapper接口 @@ -54,6 +56,13 @@ public interface OrderMapper extends BaseMapper { IPage getlist(@Param("page") Page page,@Param("query") OrderBo query); + @Select("SELECT " + + "COUNT(*) AS count1, " + + "SUM(CASE WHEN aftersale_status = 2 THEN 1 ELSE 0 END) AS count2 " + + "FROM oms_order") + Map countOrder(); + + // IPage getlist(@Param("page") Page objectPage, @Param("query") OrderBo query); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java index d9a3a1deb..656c54972 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java @@ -9,10 +9,11 @@ import com.wzj.soopin.order.domain.entity.Order; import com.wzj.soopin.order.domain.vo.OrderVO; import com.wzj.soopin.order.domain.vo.PageVO; +import java.util.Map; + public interface OrderService extends IService { + Map getCount(); IPage getlist(Page page, OrderBo query); - -// IPage getlist(PageVO pageVO, OrderBo query); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/VerificationCodeService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/VerificationCodeService.java index f561185d5..a890e404b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/VerificationCodeService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/VerificationCodeService.java @@ -1,6 +1,7 @@ package com.wzj.soopin.order.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.order.domain.dto.CodeVerificationDto; import com.wzj.soopin.order.domain.entity.VerificationCodes; import org.dromara.common.core.domain.R; @@ -9,5 +10,5 @@ public interface VerificationCodeService extends IService { R generateVerificationCode(Long orderId); - R verifyCode(String codeValue, Long usedMerchantId); + R verifyCode(CodeVerificationDto codeVerificationDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java index ffefd630c..99c251fa7 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java @@ -7,7 +7,9 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wechat.pay.java.service.refund.model.Refund; import com.wechat.pay.java.service.refund.model.RefundNotification; @@ -16,6 +18,7 @@ import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.po.MemberWechat; import com.wzj.soopin.member.mapper.MemberMapper; import com.wzj.soopin.member.mapper.MemberWechatMapper; +import com.wzj.soopin.order.domain.bo.AftersaleBo; import com.wzj.soopin.order.service.AftersaleService; import com.wzj.soopin.order.convert.OrderOperateHistoryConvert; import com.wzj.soopin.order.domain.entity.*; @@ -469,4 +472,14 @@ public class AftersaleServiceImpl extends ServiceImpl getlist(Page page, AftersaleBo query) { + IPage resultPage = aftersaleMapper.getlist(page,query); + return resultPage; + } + +// public Page getlist(Page page, AftersaleBo query) { +// IPage resultPage = aftersaleMapper.getlist(page,query); +// return resultPage; +// } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java index e6e538d93..8d6649f35 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java @@ -8,11 +8,20 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.content.domain.po.Vlog; +import com.wzj.soopin.content.mapper.VlogMapper; +import com.wzj.soopin.content.service.impl.VlogServiceImpl; import com.wzj.soopin.goods.convert.SkuConvert; import com.wzj.soopin.goods.domain.entity.Sku; import com.wzj.soopin.goods.mapper.ProductMapper; import com.wzj.soopin.goods.mapper.SkuMapper; +import com.wzj.soopin.member.domain.po.Feedback; import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.member.mapper.*; +import com.wzj.soopin.member.service.impl.FeedbackServiceImpl; +import com.wzj.soopin.member.service.impl.MemberServiceImpl; +import com.wzj.soopin.member.service.impl.WithdrawServiceImpl; import com.wzj.soopin.order.convert.OrderConvert; import com.wzj.soopin.order.convert.OrderOperateHistoryConvert; import com.wzj.soopin.order.domain.bo.OrderBo; @@ -30,10 +39,10 @@ import com.wzj.soopin.order.mapper.OrderMapper; import com.wzj.soopin.order.mapper.OrderOperateHistoryMapper; import com.wzj.soopin.order.service.OrderService; import com.wzj.soopin.order.service.VerificationCodeService; -import com.wzj.soopin.order.utils.SecurityUtils; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.utils.PhoneUtils; +import org.dromara.common.core.utils.SecurityUtils; import org.dromara.system.domain.SysTenant; import org.dromara.system.mapper.SysOperLogMapper; import org.dromara.system.mapper.SysTenantMapper; @@ -43,9 +52,6 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.wzj.soopin.member.mapper.MemberAddressMapper; -import com.wzj.soopin.member.mapper.MemberCartMapper; -import com.wzj.soopin.member.mapper.MemberMapper; import java.time.LocalDateTime; import java.util.*; @@ -95,6 +101,27 @@ public class OrderServiceImpl extends ServiceImpl implements @Autowired private SysTenantMapper sysTenantMapper; + + @Autowired + private VlogMapper vlogMapper; + + @Autowired + private FeedbackMapper feedbackMapper; + + @Autowired + private WithdrawMapper withdrawMapper; + + @Autowired + private MemberServiceImpl memberService; + + @Autowired + private FeedbackServiceImpl feedbackService; + + @Autowired + private WithdrawServiceImpl withdrawService; + + + /** * 查询订单表 * @@ -540,7 +567,65 @@ public class OrderServiceImpl extends ServiceImpl implements return resultPage; } - } + +// @Override +// public Map getCount() { +// Map result = new HashMap<>(); +// result.put("MemberCount", memberMapper.countMember()); +// result.put("storeCount", sysTenantMapper.countStore()); +// result.put("productCount", productMapper.countProduct()); +// result.put("orderCount", orderMapper.countOrder()); +// +// +// +//// result.put("productAudit", productMapper.AuditProduct()); +//// +//// List> incomeExpenseList = incomeExpenseMapper.getIncomeExpenseByMonth(); +//// result.put("incomeExpense", incomeExpenseList); +// +// return result; +// } + +@Override +public Map getCount() { + Map result = new HashMap<>(); + result.put("memberCount", memberService.count()); //用户数量 + result.put("vlogCount", vlogMapper.countVlog()); //待审核视频 + +// 待审核举报统计 + QueryWrapper FeedbackWrapper = new QueryWrapper<>(); + FeedbackWrapper.eq("status", 0); + result.put("feedbackCount", feedbackService.count(FeedbackWrapper)); + + // 待审核提现统计 + QueryWrapper withdrawQueryWrapper = new QueryWrapper<>(); + withdrawQueryWrapper.eq("audit_status", 0); + result.put("WithdrawCount", withdrawService.count(withdrawQueryWrapper)); + +// 商品统计、待审核商品统计 + Map productCounts = productMapper.countProduct(); + result.put("productCount", productCounts.get("count1")); + result.put("productAudit", productCounts.get("count2")); + +// 店铺统计、待审核店铺统计 + Map StoreCounts = sysTenantMapper.countProduct(); + result.put("storeCount", StoreCounts.get("count1")); + result.put("StoreAudit", StoreCounts.get("count2")); + +// 订单统计、待审核退款统计 + Map OrderCounts = orderMapper.countOrder(); + result.put("orderCount", OrderCounts.get("count1")); + result.put("orderAudit", OrderCounts.get("count2")); + + + + + return result; +} + + + +} // @Override // public IPage getlist(PageVO pageVO, OrderBo query) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java index 7fa2f618a..6b60f9ae1 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java @@ -2,6 +2,7 @@ package com.wzj.soopin.order.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.order.domain.dto.CodeVerificationDto; import com.wzj.soopin.order.domain.entity.Order; import com.wzj.soopin.order.domain.entity.VerificationCodes; import com.wzj.soopin.order.domain.entity.VerificationLogs; @@ -95,7 +96,10 @@ public class VerificationCodeServiceImpl extends ServiceImpl + + diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml index 962d947eb..032abaa21 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml @@ -298,14 +298,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND um.phone_encrypted LIKE CONCAT('%', #{query.memberPhoneEncrypted}, '%') + + AND o.receiver_province LIKE CONCAT('%', #{query.receiverProvince}, '%') + + + AND o.receiver_city LIKE CONCAT('%', #{query.receiverCity}, '%') + + + AND o.receiver_district LIKE CONCAT('%', #{query.receiverDistrict}, '%') + AND o.receiver_phone LIKE CONCAT('%', #{query.receiverPhone}, '%') - - AND o.status LIKE CONCAT('%', #{query.status}, '%') + + AND o.status = #{query.status} - - AND o.type LIKE CONCAT('%', #{query.type}, '%') + + AND o.type = #{query.type} AND o.withdraw_status LIKE CONCAT('%', #{query.withdrawStatus}, '%') diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index dd960febd..2e857c0d1 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -118,19 +118,26 @@ org.springframework.boot spring-boot-starter-websocket - + jakarta.websocket jakarta.websocket-api - + org.apache.tomcat.embed tomcat-embed-websocket + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/BaseController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/BaseController.java new file mode 100644 index 000000000..5cb9a0aff --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/BaseController.java @@ -0,0 +1,194 @@ +package org.dromara.system.controller; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.SecurityUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.config.AjaxResult; +import org.dromara.system.page.PageDomain; +import org.dromara.system.page.TableSupport; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; + +/** + * web层通用数据处理 + * + * @author ruoyi + */ +public class BaseController +{ + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * 将前台传递过来的日期格式的字符串,自动转化为Date类型 + */ + @InitBinder + public void initBinder(WebDataBinder binder) + { + // Date 类型转换 + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() + { + @Override + public void setAsText(String text) + { + setValue(DateUtils.parseDate(text)); + } + }); + } + + /** + * 设置请求分页数据 + */ + protected void startPage() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); + } + } + + /** + * 设置请求排序数据 + */ + protected void startOrderBy() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); + } + } + + /** + * 响应请求分页数据 + */ + @SuppressWarnings({"rawtypes", "unchecked"}) + protected TableDataInfo getDataTable(List list) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(list); + rspData.setTotal(new PageInfo(list).getTotal()); + return rspData; + } + + protected TableDataInfo getDataTable(Page page) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(page.getContent()); + rspData.setTotal(page.getTotalElements()); + return rspData; + } + + /** + * 返回成功 + */ + public AjaxResult success() { + return AjaxResult.success(); + } + + /** + * 返回失败消息 + */ + public AjaxResult error() + { + return AjaxResult.error(); + } + + /** + * 返回成功消息 + */ + public AjaxResult success(String message) + { + return AjaxResult.success(message); + } + + /** + * 返回失败消息 + */ + public AjaxResult error(String message) + { + return AjaxResult.error(message); + } + + /** + * 响应返回结果 + * + * @param rows 影响行数 + * @return 操作结果 + */ + protected AjaxResult toAjax(int rows) + { + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } + + /** + * 响应返回结果 + * + * @param result 结果 + * @return 操作结果 + */ + protected AjaxResult toAjax(boolean result) + { + return result ? success() : error(); + } + + /** + * 页面跳转 + */ + public String redirect(String url) + { + return StringUtils.format("redirect:{}", url); + } + + /** + * 获取用户缓存信息 + */ + public LoginUser getLoginUser() + { + return SecurityUtils.getLoginUser(); + } + + /** + * 获取登录用户id + */ + public Long getUserId() + { + return getLoginUser().getUserId(); + } + + /** + * 获取登录部门id + */ + public Long getDeptId() + { + return getLoginUser().getDeptId(); + } + + /** + * 获取登录用户名 + */ + public String getUsername() + { + return getLoginUser().getUsername(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/ConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/ConfigController.java new file mode 100644 index 000000000..f56ceb313 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/ConfigController.java @@ -0,0 +1,34 @@ +package org.dromara.system.controller; + +import org.dromara.system.config.AjaxResult; +import org.dromara.system.domain.SysConfig; +import org.dromara.system.domain.vo.SysConfigVo; +import org.dromara.system.service.ISysConfigService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/sys/config") +public class ConfigController extends BaseController { + + @Autowired + private ISysConfigService configService; + + @GetMapping(value = "/configKey2/{configKey}") + public AjaxResult getConfigKey2(@PathVariable String configKey) { + return AjaxResult.success(configService.selectConfigByKey2(configKey)); + } + + @PostMapping("/addOrUpdate") + public AjaxResult addOrUpdate(@RequestBody SysConfigVo content) { + SysConfig config = new SysConfig(); + BeanUtils.copyProperties(content,config); + if (config.getConfigId() == null) { + config.setCreateBy(getUserId()); + return toAjax(configService.insertConfig1(config)); + } + config.setUpdateBy(getUserId()); + return toAjax(configService.updateConfig1(config)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java index 0eaaee8f4..3ba76816f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java @@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysConfig; import org.dromara.system.domain.vo.SysConfigVo; +import java.util.List; + /** * 参数配置 数据层 * @@ -11,4 +13,62 @@ import org.dromara.system.domain.vo.SysConfigVo; */ public interface SysConfigMapper extends BaseMapperPlus { + + /** + * 查询参数配置信息 + * + * @param config 参数配置信息 + * @return 参数配置信息 + */ + public SysConfig selectConfig(SysConfig config); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + public List selectConfigList(SysConfig config); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数配置信息 + */ + public SysConfig checkConfigKeyUnique(String configKey); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig(SysConfig config); + + /** + * 删除参数配置 + * + * @param configId 参数ID + * @return 结果 + */ + public int deleteConfigById(Long configId); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + * @return 结果 + */ + public int deleteConfigByIds(Long[] configIds); + + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java index 7e1167aa3..54a678316 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java @@ -1,9 +1,12 @@ package org.dromara.system.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.system.domain.SysTenant; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.Map; + /** * 租户Mapper接口 * @@ -11,4 +14,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface SysTenantMapper extends BaseMapperPlus { + @Select("SELECT COUNT(*) FROM sys_tenant WHERE status = 0") + Object countStore(); + + @Select("SELECT " + + "SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS count1, " + + "SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) AS count2 " + + "FROM sys_tenant") + Map countProduct(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/PageDomain.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/PageDomain.java new file mode 100644 index 000000000..25526e5dd --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/PageDomain.java @@ -0,0 +1,102 @@ +package org.dromara.system.page; + + +import org.dromara.common.core.utils.StringUtils; + +/** + * 分页数据 + * + * @author ruoyi + */ +public class PageDomain +{ + /** 当前记录起始索引 */ + private Integer pageNum; + + /** 每页显示记录数 */ + private Integer pageSize; + + /** 排序列 */ + private String orderByColumn; + + /** 排序的方向desc或者asc */ + private String isAsc = "asc"; + + /** 分页参数合理化 */ + private Boolean reasonable = true; + + public String getOrderBy() + { + if (StringUtils.isEmpty(orderByColumn)) + { + return ""; + } + return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; + } + + public Integer getPageNum() + { + return pageNum; + } + + public void setPageNum(Integer pageNum) + { + this.pageNum = pageNum; + } + + public Integer getPageSize() + { + return pageSize; + } + + public void setPageSize(Integer pageSize) + { + this.pageSize = pageSize; + } + + public String getOrderByColumn() + { + return orderByColumn; + } + + public void setOrderByColumn(String orderByColumn) + { + this.orderByColumn = orderByColumn; + } + + public String getIsAsc() + { + return isAsc; + } + + public void setIsAsc(String isAsc) + { + if (StringUtils.isNotEmpty(isAsc)) + { + // 兼容前端排序类型 + if ("ascending".equals(isAsc)) + { + isAsc = "asc"; + } + else if ("descending".equals(isAsc)) + { + isAsc = "desc"; + } + this.isAsc = isAsc; + } + } + + public Boolean getReasonable() + { + if (StringUtils.isNull(reasonable)) + { + return Boolean.TRUE; + } + return reasonable; + } + + public void setReasonable(Boolean reasonable) + { + this.reasonable = reasonable; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/TableSupport.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/TableSupport.java new file mode 100644 index 000000000..b45ff51aa --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/page/TableSupport.java @@ -0,0 +1,56 @@ +package org.dromara.system.page; + + +import org.dromara.common.core.utils.ServletUtils; + +/** + * 表格数据处理 + * + * @author ruoyi + */ +public class TableSupport +{ + /** + * 当前记录起始索引 + */ + public static final String PAGE_NUM = "pageNum"; + + /** + * 每页显示记录数 + */ + public static final String PAGE_SIZE = "pageSize"; + + /** + * 排序列 + */ + public static final String ORDER_BY_COLUMN = "orderByColumn"; + + /** + * 排序的方向 "desc" 或者 "asc". + */ + public static final String IS_ASC = "isAsc"; + + /** + * 分页参数合理化 + */ + public static final String REASONABLE = "reasonable"; + + /** + * 封装分页对象 + */ + public static PageDomain getPageDomain() + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM)); + pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE)); + pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); + pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); + pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); + return pageDomain; + } + + public static PageDomain buildPageRequest() + { + return getPageDomain(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java index f7efda7af..a54b61a80 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysConfigService.java @@ -2,6 +2,7 @@ package org.dromara.system.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.SysConfig; import org.dromara.system.domain.bo.SysConfigBo; import org.dromara.system.domain.vo.SysConfigVo; @@ -64,6 +65,24 @@ public interface ISysConfigService { */ String updateConfig(SysConfigBo bo); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig1(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig1(SysConfig config); + + /** * 批量删除参数信息 * @@ -84,4 +103,7 @@ public interface ISysConfigService { */ boolean checkConfigKeyUnique(SysConfigBo config); + + public SysConfig selectConfigByKey2(String configKey); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java index d92647c44..a96def490 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.service.ConfigService; import org.dromara.common.core.utils.MapstructUtils; @@ -16,6 +17,7 @@ import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.utils.CacheUtils; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.SysConfig; @@ -24,6 +26,7 @@ import org.dromara.system.domain.vo.SysConfigVo; import org.dromara.system.mapper.SysConfigMapper; import org.dromara.system.service.ISysConfigService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -43,6 +46,12 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { private final SysConfigMapper baseMapper; + @Autowired + private SysConfigMapper configMapper; + + @Autowired + private RedisCache redisCache; + @Override public TableDataInfo selectPageConfigList(SysConfigBo config, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(config); @@ -162,6 +171,31 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { throw new ServiceException("操作失败"); } + @Override + public int insertConfig1(SysConfig config) { + int row = configMapper.insertConfig(config); + if (row > 0) { + if ("Y".equals(config.getConfigType())){ + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + } + return row; + } + + @Override + public int updateConfig1(SysConfig config) { + int row = configMapper.updateConfig(config); + if (row > 0) { + if ("N".equals(config.getConfigType())){ + redisCache.setCacheObject(getCacheKey2(config.getConfigKey()), config); + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } else { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + } + return row; + } + /** * 批量删除参数信息 * @@ -214,4 +248,35 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { return SpringUtils.getAopProxy(this).selectConfigByKey(configKey); } + + @Override + public SysConfig selectConfigByKey2(String configKey) { + SysConfig config = redisCache.getCacheObject(getCacheKey2(configKey)); + if (config != null) { + return config; + } + SysConfig configQuery = new SysConfig(); + configQuery.setConfigKey(configKey); + SysConfig retConfig = configMapper.selectConfig(configQuery); + if (StringUtils.isNotNull(retConfig)) { + redisCache.setCacheObject(getCacheKey2(configKey), retConfig); + return retConfig; + } + return null; + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + private String getCacheKey(String configKey) { + return Constants.SYS_CONFIG_KEY + configKey; + } + + private String getCacheKey2(String configKey) { + return Constants.SYS_CONFIG_KEY + configKey + "_all"; + } + }