From cdf85e3940df67d278a5ce2dcc008d2aa5c1446a Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 8 Mar 2024 10:38:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=93=8D=E5=BA=94=20?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/config/AppApiMethodAspect.java | 32 ++++---- .../order/TbOrderInfoController.java | 19 ++++- .../order/TbOrderPayCountRepository.java | 38 ++++++++++ .../impl/order/TbOrderInfoServiceImpl.java | 74 +++++++++++-------- .../service/order/TbOrderInfoService.java | 17 ++++- .../cn/ysk/cashier/vo/TbOrderPayCountVo.java | 44 +++++++++++ 6 files changed, 168 insertions(+), 56 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderPayCountRepository.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderPayCountVo.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/AppApiMethodAspect.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/AppApiMethodAspect.java index f3d275bd..fd57d83c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/AppApiMethodAspect.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/AppApiMethodAspect.java @@ -1,6 +1,5 @@ package cn.ysk.cashier.config; -import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.utils.FastJsonUtils; import cn.ysk.cashier.utils.SpringContextHolder; import lombok.extern.slf4j.Slf4j; @@ -11,8 +10,6 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; @@ -26,8 +23,6 @@ import java.util.Map; @Component @Slf4j public class AppApiMethodAspect { - - // @Pointcut("execution(public * cn.ysk.cashier.controller.*.*(..))") @Pointcut("execution(public * (" + "cn.ysk.cashier.controller.* " + "|| cn.ysk.cashier.controller.*.* " + @@ -62,26 +57,31 @@ public class AppApiMethodAspect { FastJsonUtils.toJSONString(result) ); return result; - } catch (BadRequestException e) { - log.error("\n>>>>>>{} {}\n>>>>>>{}\n>>>>>>Request: {}\n>>>>>>Exception: {}" - , req.getMethod(), req.getRequestURL(), req.getRemoteAddr(), - FastJsonUtils.toJSONString(params), - e); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()); - } catch (Throwable e) { - if(StringUtils.isBlank(e.getMessage())){ + } catch (RuntimeException e) { + if (StringUtils.isBlank(e.getMessage())) { log.error("\n>>>>>>{} {}\n>>>>>>{}\n>>>>>>Request: {}\n>>>>>>Exception: {}" , req.getMethod(), req.getRequestURL(), req.getRemoteAddr(), FastJsonUtils.toJSONString(params), e); - }else{ + } else { log.error("\n>>>>>>{} {}\n>>>>>>{}\n>>>>>>Request: {}\n>>>>>>Exception: {}" , req.getMethod(), req.getRequestURL(), req.getRemoteAddr(), FastJsonUtils.toJSONString(params), e.getMessage()); } - ResponseEntity body = ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); - return body; + throw e; + } catch (Error e) { + log.error("\n>>>>>>{} {}\n>>>>>>{}\n>>>>>>Request: {}\n>>>>>>Exception: {}" + , req.getMethod(), req.getRequestURL(), req.getRemoteAddr(), + FastJsonUtils.toJSONString(params), + e); + throw e; + } catch (Throwable e) { + log.error("\n>>>>>>{} {}\n>>>>>>{}\n>>>>>>Request: {}\n>>>>>>Exception: {}" + , req.getMethod(), req.getRequestURL(), req.getRemoteAddr(), + FastJsonUtils.toJSONString(params), + e); + throw new RuntimeException(e); } } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java index ec101a23..e4032069 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java @@ -17,18 +17,22 @@ package cn.ysk.cashier.controller.order; import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.dto.order.TbOrderInfoDto; +import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria; import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.service.order.TbOrderInfoService; -import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria; -import org.springframework.data.domain.Pageable; +import cn.ysk.cashier.vo.TbOrderPayCountVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.*; -import java.io.IOException; + import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @website https://eladmin.vip @@ -57,6 +61,13 @@ public class TbOrderInfoController { return new ResponseEntity<>(tbOrderInfoService.queryAll(criteria,pageable),HttpStatus.OK); } + @GetMapping("/payCount") + @Log("通过shopId查询支付统计") + @ApiOperation("通过shopId查询支付统计") + public List queryTbOrderPayCount(String shopId){ + return tbOrderInfoService.queryTbOrderPayCount(shopId); + } + @GetMapping("/{id}") @Log("通过Id查询订单") @ApiOperation("通过Id查询订单") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderPayCountRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderPayCountRepository.java new file mode 100644 index 00000000..e9b2e120 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderPayCountRepository.java @@ -0,0 +1,38 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package cn.ysk.cashier.repository.order; + +import cn.ysk.cashier.pojo.order.TbOrderInfo; +import cn.ysk.cashier.vo.TbOrderPayCountVo; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; + +/** +* @website https://eladmin.vip +* @author lyf +* @date 2024-03-02 +**/ +public interface TbOrderPayCountRepository extends JpaRepository { + + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.amount)) " + + "FROM TbOrderInfo info " + + "WHERE info.shopId = :shopId " + + "GROUP BY info.payType") + List queryTbOrderPayCount(@Param("shopId")String shopId); +} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index cabca427..e04bf7a7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -1,18 +1,18 @@ /* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package cn.ysk.cashier.service.impl.order; import cn.ysk.cashier.dto.order.TbOrderInfoDto; @@ -22,9 +22,11 @@ import cn.ysk.cashier.pojo.order.TbOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.repository.order.TbOrderDetailRepository; import cn.ysk.cashier.repository.order.TbOrderInfoRepository; +import cn.ysk.cashier.repository.order.TbOrderPayCountRepository; import cn.ysk.cashier.service.order.TbOrderInfoService; import cn.ysk.cashier.utils.*; import cn.ysk.cashier.vo.TbOrderInfoVo; +import cn.ysk.cashier.vo.TbOrderPayCountVo; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.data.domain.Page; @@ -38,11 +40,11 @@ import java.util.*; import java.util.stream.Collectors; /** -* @website https://eladmin.vip -* @description 服务实现 -* @author lyf -* @date 2024-03-02 -**/ + * @author lyf + * @website https://eladmin.vip + * @description 服务实现 + * @date 2024-03-02 + **/ @Service @RequiredArgsConstructor public class TbOrderInfoServiceImpl implements TbOrderInfoService { @@ -51,12 +53,15 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { private final TbOrderInfoMapper tbOrderInfoMapper; private final TbOrderDetailRepository tbOrderDetailRepository; + + private final TbOrderPayCountRepository tbOrderPayCountRepository; + @Override - public Map queryAll(TbOrderInfoQueryCriteria criteria, Pageable pageable){ - Page page = tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + public Map queryAll(TbOrderInfoQueryCriteria criteria, Pageable pageable) { + Page page = tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); List orderInfoVoList = new ArrayList<>(); for (TbOrderInfo tbOrderInfo : page.getContent()) { - TbOrderInfoVo orderInfoVo=new TbOrderInfoVo(); + TbOrderInfoVo orderInfoVo = new TbOrderInfoVo(); List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); orderInfoVo.setDetailList(details); BeanUtils.copyProperties(tbOrderInfo, orderInfoVo); @@ -66,7 +71,12 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { } @Override - public List queryAll(TbOrderInfoQueryCriteria criteria){ + public List queryTbOrderPayCount(String shopId) { + return tbOrderPayCountRepository.queryTbOrderPayCount(shopId); + } + + @Override + public List queryAll(TbOrderInfoQueryCriteria criteria) { List dto = tbOrderInfoMapper.toDto(tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); for (TbOrderInfoDto tbOrderInfo : dto) { List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); @@ -79,7 +89,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { @Transactional public TbOrderInfoDto findById(Integer id) { TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(id).orElseGet(TbOrderInfo::new); - ValidationUtil.isNull(tbOrderInfo.getId(),"TbOrderInfo","id",id); + ValidationUtil.isNull(tbOrderInfo.getId(), "TbOrderInfo", "id", id); TbOrderInfoDto dto = tbOrderInfoMapper.toDto(tbOrderInfo); List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); dto.setDetailList(details); @@ -96,7 +106,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { @Transactional(rollbackFor = Exception.class) public void update(TbOrderInfo resources) { TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(resources.getId()).orElseGet(TbOrderInfo::new); - ValidationUtil.isNull( tbOrderInfo.getId(),"TbOrderInfo","id",resources.getId()); + ValidationUtil.isNull(tbOrderInfo.getId(), "TbOrderInfo", "id", resources.getId()); tbOrderInfo.copy(resources); tbOrderInfoRepository.save(tbOrderInfo); } @@ -112,9 +122,9 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (TbOrderInfoDto tbOrderInfo : all) { - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); map.put("订单编号", tbOrderInfo.getOrderNo()); - switch (tbOrderInfo.getOrderType()){ + switch (tbOrderInfo.getOrderType()) { case "cash": tbOrderInfo.setOrderType("收银"); break; @@ -128,7 +138,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { tbOrderInfo.setOrderType("退单"); break; default: - tbOrderInfo.setOrderType(tbOrderInfo.getOrderType()+"未知订单类型"); + tbOrderInfo.setOrderType(tbOrderInfo.getOrderType() + "未知订单类型"); break; } map.put("订单类型", tbOrderInfo.getOrderType()); @@ -146,7 +156,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { tbOrderInfo.setSendType("堂食"); break; default: - tbOrderInfo.setSendType(tbOrderInfo.getSendType()+"未知送货类型"); + tbOrderInfo.setSendType(tbOrderInfo.getSendType() + "未知送货类型"); break; } map.put("发货类型", tbOrderInfo.getSendType()); @@ -193,12 +203,12 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { tbOrderInfo.setStatus("激活订单"); break; default: - tbOrderInfo.setStatus(tbOrderInfo.getStatus()+"未知订单状态"); + tbOrderInfo.setStatus(tbOrderInfo.getStatus() + "未知订单状态"); break; } map.put("状态", tbOrderInfo.getStatus()); - map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt())); - map.put("备注", tbOrderInfo.getRemark()); + map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt())); + map.put("备注", tbOrderInfo.getRemark()); // // map.put("商户结算金额", tbOrderInfo.getSettlementAmount()); // map.put("包装费", tbOrderInfo.getPackFee()); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/order/TbOrderInfoService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/order/TbOrderInfoService.java index 35615d29..3fd9efbf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/order/TbOrderInfoService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/order/TbOrderInfoService.java @@ -15,14 +15,16 @@ */ package cn.ysk.cashier.service.order; -import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.dto.order.TbOrderInfoDto; import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria; +import cn.ysk.cashier.pojo.order.TbOrderInfo; +import cn.ysk.cashier.vo.TbOrderPayCountVo; import org.springframework.data.domain.Pageable; -import java.util.Map; -import java.util.List; -import java.io.IOException; + import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Map; /** * @website https://eladmin.vip @@ -40,6 +42,13 @@ public interface TbOrderInfoService { */ Map queryAll(TbOrderInfoQueryCriteria criteria, Pageable pageable); + /** + * 根据支付类型统计 + * @param shopId shopId + * @return TbOrderPayCountVo + */ + List queryTbOrderPayCount(String shopId); + /** * 查询所有数据不分页 * @param criteria 条件参数 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderPayCountVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderPayCountVo.java new file mode 100644 index 00000000..ae8e738e --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderPayCountVo.java @@ -0,0 +1,44 @@ +package cn.ysk.cashier.vo; + +import lombok.Data; + +import java.math.BigDecimal; + + +@Data +public class TbOrderPayCountVo{ + private String payType; + private BigDecimal payAmount; + + // 构造函数,参数名需要与查询中的别名一致 + public TbOrderPayCountVo(String payType, BigDecimal payAmount) { + this.payType = payType; + this.payAmount = payAmount; + } + + // Getter和Setter方法 + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public BigDecimal getPayAmount() { + return payAmount; + } + + public void setPayAmount(BigDecimal payAmount) { + this.payAmount = payAmount; + } + + // toString方法,用于简单的打印信息,可根据需要添加 + @Override + public String toString() { + return "TbOrderPayCountVo{" + + "payType='" + payType + '\'' + + ", payAmount=" + payAmount + + '}'; + } +} From 2c96f2835a1ff549a01dd86faefb86286b57b9a0 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 8 Mar 2024 11:57:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=86=E7=B1=BB=20?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/TbShopCategoryQueryCriteria.java | 3 ++ .../TbShopCategoryServiceImpl.java | 33 ++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbShopCategoryQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbShopCategoryQueryCriteria.java index 588e4742..4adcf077 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbShopCategoryQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbShopCategoryQueryCriteria.java @@ -40,5 +40,8 @@ public class TbShopCategoryQueryCriteria{ private String tree; + private String sort; + + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java index 6c4dbc90..08057bf3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java @@ -15,33 +15,31 @@ */ package cn.ysk.cashier.service.impl.productimpl; -import cn.ysk.cashier.exception.BadRequestException; -import cn.ysk.cashier.pojo.product.TbShopCategory; -import cn.ysk.cashier.utils.ValidationUtil; -import cn.ysk.cashier.utils.FileUtil; -import lombok.RequiredArgsConstructor; -import cn.ysk.cashier.repository.product.TbShopCategoryRepository; -import cn.ysk.cashier.service.product.TbShopCategoryService; import cn.ysk.cashier.dto.product.TbShopCategoryDto; import cn.ysk.cashier.dto.product.TbShopCategoryQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.product.TbShopCategoryMapper; +import cn.ysk.cashier.pojo.product.TbShopCategory; +import cn.ysk.cashier.repository.product.TbShopCategoryRepository; +import cn.ysk.cashier.service.product.TbShopCategoryService; +import cn.ysk.cashier.utils.*; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import cn.ysk.cashier.utils.PageUtil; -import cn.ysk.cashier.utils.QueryHelp; -import java.time.Instant; -import java.util.List; -import java.util.Map; -import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -50,6 +48,7 @@ import java.util.stream.Collectors; * @author lyf * @date 2024-01-08 **/ +@Slf4j @Service @RequiredArgsConstructor public class TbShopCategoryServiceImpl implements TbShopCategoryService { @@ -70,6 +69,7 @@ public class TbShopCategoryServiceImpl implements TbShopCategoryService { //找到子分类 List children = tbShopCategoryRepository.findChildren(treeId); if (children.isEmpty()){ + log.info("子类为空,{}", FastJsonUtils.toJSONString(treeId)); return PageUtil.toPage(page.map(tbShopCategoryMapper::toDto)); } @@ -86,10 +86,11 @@ public class TbShopCategoryServiceImpl implements TbShopCategoryService { BeanUtils.copyProperties(category, tbShopCategoryDto); dto.add(tbShopCategoryDto); } + log.info("过滤前,{}", FastJsonUtils.toJSONString(dto)); List result = dto.stream() .filter(d -> d.getTree()==null || d.getId().equals(d.getTree())) .collect(Collectors.toList()); - + log.info("过滤后,{}", FastJsonUtils.toJSONString(result)); return PageUtil.toPage(result, page.getTotalElements()-children.size()); } From 3b59b87cf584656c0c487ee134e7b5c23ea05ede Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 8 Mar 2024 16:38:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=BB=9F=E8=AE=A1=20=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E7=9A=84=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=20readme.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 82 +++---------------- .../rest/AuthorizationController.java | 5 +- .../order/TbOrderInfoController.java | 4 +- .../TbProductStockDetailController.java | 5 -- 4 files changed, 14 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 62eb60cd..c3cee6a6 100644 --- a/README.md +++ b/README.md @@ -11,47 +11,6 @@ #### 项目简介 一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统 -**开发文档:** [https://eladmin.vip](https://eladmin.vip) - -**体验地址:** [https://eladmin.vip/demo](https://eladmin.vip/demo) - -**账号密码:** `admin / 123456` - -#### 项目源码 - -| | 后端源码 | 前端源码 | -|--- |--- | --- | -| github | https://github.com/elunez/eladmin | https://github.com/elunez/eladmin-web | -| 码云 | https://gitee.com/elunez/eladmin | https://gitee.com/elunez/eladmin-web | - -#### 主要特性 -- 使用最新技术栈,社区资源丰富。 -- 高效率开发,代码生成器可一键生成前后端代码 -- 支持数据字典,可方便地对一些状态进行管理 -- 支持接口限流,避免恶意请求导致服务层压力过大 -- 支持接口级别的功能权限与数据权限,可自定义操作 -- 自定义权限注解与匿名接口注解,可快速对接口拦截与放行 -- 对一些常用地前端组件封装:表格数据请求、数据字典等 -- 前后端统一异常拦截处理,统一输出异常,避免繁琐的判断 -- 支持在线用户管理与服务器性能监控,支持限制单用户登录 -- 支持运维管理,可方便地对远程服务器的应用进行部署与管理 - -#### 系统功能 -- 用户管理:提供用户的相关配置,新增用户后,默认密码为123456 -- 角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限 -- 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单 -- 部门管理:可配置系统组织架构,树形表格展示 -- 岗位管理:配置各个部门的职位 -- 字典管理:可维护常用一些固定的数据,如:状态,性别等 -- 系统日志:记录用户操作日志与异常日志,方便开发人员定位排错 -- SQL监控:采用druid 监控数据库访问性能,默认用户名admin,密码123456 -- 定时任务:整合Quartz做定时任务,加入任务日志,任务运行情况一目了然 -- 代码生成:高灵活度生成前后端代码,减少大量重复的工作任务 -- 邮件工具:配合富文本,发送html格式的邮件 -- 七牛云存储:可同步七牛云存储的数据到系统,无需登录七牛云直接操作云数据 -- 支付宝支付:整合了支付宝支付并且提供了测试账号,可自行测试 -- 服务监控:监控服务器的负载情况 -- 运维管理:一键部署你的应用 #### 项目结构 项目采用按功能分模块的开发方式,结构如下 @@ -69,40 +28,21 @@ #### 详细结构 ``` -- eladmin-common 公共模块 - - annotation 为系统自定义注解 - - aspect 自定义注解的切面 - - base 提供了Entity、DTO基类和mapstruct的通用mapper - - config 自定义权限实现、redis配置、swagger配置、Rsa配置等 - - exception 项目统一异常的处理 - - utils 系统通用工具类 -- eladmin-system 系统核心模块(系统启动入口) - - config 配置跨域与静态资源,与数据权限 - - thread 线程池相关 - - modules 系统相关模块(登录授权、系统监控、定时任务、运维管理等) -- eladmin-logging 系统日志模块 -- eladmin-tools 系统第三方工具模块 -- eladmin-generator 系统代码生成模块 + ``` -#### 特别鸣谢 +#### 问题记录 -- 感谢 [七牛云](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=ELADMIN) 提供的免费云存储与CDN加速支持 +- 手动修改密码 -- 感谢 [JetBrains](https://www.jetbrains.com/) 提供的非商业开源软件开发授权 + 原文:[123456]() -- 感谢 [PanJiaChen](https://github.com/PanJiaChen/vue-element-admin) 大佬提供的前端模板 + passwordEncoder.encode后为: + [$2a$10$VweP6V.MYfhW9pUOhp1rEOqTpglY.gQGZSvCcVvSDpzbLBGP45WZ6]() -- 感谢 [Moxun](https://github.com/moxun1639) 大佬提供的前端 Curd 通用组件 + MD5Utils.encrypt后为: + [e10adc3949ba59abbe56e057f20f883e]() -- 感谢 [zhy6599](https://gitee.com/zhy6599) 大佬提供的后端运维管理相关功能 - -- 感谢 [j.yao.SUSE](https://github.com/everhopingandwaiting) 大佬提供的匿名接口与Redis限流等功能 - -- 感谢 [d15801543974](https://github.com/d15801543974) 大佬提供的基于注解的通用查询方式 - -#### 项目捐赠 -项目的发展离不开你的支持,请作者喝杯咖啡吧☕ [Donate](https://eladmin.vip/donation/) - -#### 反馈交流 -- QQ交流群:一群:891137268 、二群:947578238、三群:659622532 \ No newline at end of file +- sys_user的密码 内容修改为passwordEncoder.encode后密码 +- MerchantAccount的密码 修改为MD5Utils.encrypt后密码 +- tb_pluss_shop_staff的密码 修改为MD5Utils.encrypt后的密码 \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index d3a53262..a0b9e733 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -18,6 +18,7 @@ package cn.ysk.cashier.config.security.rest; import cn.hutool.core.util.IdUtil; import cn.ysk.cashier.config.security.config.bean.LoginCodeEnum; import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.utils.*; import com.wf.captcha.base.Captcha; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,10 +38,6 @@ import cn.ysk.cashier.config.security.service.dto.JwtUserDto; import cn.ysk.cashier.config.security.service.OnlineUserService; import cn.ysk.cashier.pojo.shop.TbShopInfo; import cn.ysk.cashier.repository.shop.TbShopInfoRepository; -import cn.ysk.cashier.utils.RsaUtils; -import cn.ysk.cashier.utils.RedisUtils; -import cn.ysk.cashier.utils.SecurityUtils; -import cn.ysk.cashier.utils.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java index e4032069..d317ca4b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbOrderInfoController.java @@ -54,10 +54,10 @@ public class TbOrderInfoController { tbOrderInfoService.download(tbOrderInfoService.queryAll(criteria), response); } - @GetMapping + @PostMapping("/date") @Log("查询订单") @ApiOperation("查询订单") - public ResponseEntity queryTbOrderInfo(TbOrderInfoQueryCriteria criteria, Pageable pageable){ + public ResponseEntity queryTbOrderInfo(@RequestBody TbOrderInfoQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(tbOrderInfoService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductStockDetailController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductStockDetailController.java index 87d734c5..369beb72 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductStockDetailController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductStockDetailController.java @@ -46,7 +46,6 @@ public class TbProductStockDetailController { @Log("导出数据") @ApiOperation("导出数据") @GetMapping(value = "/download") - @PreAuthorize("@el.check('tbProductStockDetail:list')") public void exportTbProductStockDetail(HttpServletResponse response, TbProductStockDetailQueryCriteria criteria) throws IOException { tbProductStockDetailService.download(tbProductStockDetailService.queryAll(criteria), response); } @@ -54,7 +53,6 @@ public class TbProductStockDetailController { @GetMapping @Log("查询/product/Stock") @ApiOperation("查询/product/Stock") - @PreAuthorize("@el.check('tbProductStockDetail:list')") public ResponseEntity queryTbProductStockDetail(TbProductStockDetailQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(tbProductStockDetailService.queryAll(criteria,pageable),HttpStatus.OK); } @@ -80,7 +78,6 @@ public class TbProductStockDetailController { @PostMapping @Log("新增/product/Stock") @ApiOperation("新增/product/Stock") - @PreAuthorize("@el.check('tbProductStockDetail:add')") public ResponseEntity createTbProductStockDetail(@Validated @RequestBody TbProductStockDetail resources){ return new ResponseEntity<>(tbProductStockDetailService.create(resources),HttpStatus.CREATED); } @@ -88,7 +85,6 @@ public class TbProductStockDetailController { @PutMapping @Log("修改/product/Stock") @ApiOperation("修改/product/Stock") - @PreAuthorize("@el.check('tbProductStockDetail:edit')") public ResponseEntity updateTbProductStockDetail(@Validated @RequestBody TbProductStockDetail resources){ tbProductStockDetailService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -97,7 +93,6 @@ public class TbProductStockDetailController { @DeleteMapping @Log("删除/product/Stock") @ApiOperation("删除/product/Stock") - @PreAuthorize("@el.check('tbProductStockDetail:del')") public ResponseEntity deleteTbProductStockDetail(@RequestBody Long[] ids) { tbProductStockDetailService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); From 1eef8f2c5c04eecf11e760596bf01cf15bc1df72 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 8 Mar 2024 19:59:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=97=E9=93=BA?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + .../controller/shop/TbShopInfoController.java | 28 ++++++++--- .../shop/TbMerchantAccountRepository.java | 13 +++++ .../shop/TbPlussShopStaffRepository.java | 14 ++++++ .../TbShopCategoryServiceImpl.java | 3 -- .../impl/shopimpl/TbShopInfoServiceImpl.java | 49 +++++++++++++------ .../service/shop/TbShopInfoService.java | 2 + 7 files changed, 88 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index c3cee6a6..a8b21fe5 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ #### 问题记录 - 手动修改密码 +- token生成 地址 TokenProvider.createToken +- OnlineUserService.save token保存地址 原文:[123456]() diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java index cf89da73..5f2423c8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java @@ -16,26 +16,30 @@ package cn.ysk.cashier.controller.shop; import cn.ysk.cashier.annotation.Log; -import cn.ysk.cashier.pojo.shop.TbShopInfo; -import cn.ysk.cashier.service.shop.TbShopInfoService; +import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.config.security.service.OnlineUserService; import cn.ysk.cashier.dto.shop.TbShopInfoDto; import cn.ysk.cashier.dto.shop.TbShopInfoQueryCriteria; -import org.springframework.data.domain.Pageable; +import cn.ysk.cashier.pojo.shop.TbShopInfo; +import cn.ysk.cashier.service.shop.TbShopInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.*; -import java.io.IOException; -import javax.servlet.http.HttpServletResponse; + +import javax.servlet.http.HttpServletRequest; /** * @website https://eladmin.vip * @author lyf * @date 2023-11-07 **/ +@Slf4j @RestController @RequiredArgsConstructor @Api(tags = "/shop/list管理") @@ -43,6 +47,8 @@ import javax.servlet.http.HttpServletResponse; public class TbShopInfoController { private final TbShopInfoService tbShopInfoService; + private final OnlineUserService onlineUserService; + private final TokenProvider tokenProvider; // @Log("导出数据") // @ApiOperation("导出数据") @@ -75,6 +81,16 @@ public class TbShopInfoController { return new ResponseEntity<>(tbShopInfoService.create(resources),HttpStatus.CREATED); } + @ApiOperation("修改商户密码") + @PostMapping(value = "/shop/upPass") + public ResponseEntity upShopPass(HttpServletRequest request, @RequestBody String username,String password) throws Exception { + tbShopInfoService.upShopPass(username,password); + //根据token踢出用户 +// onlineUserService.logout(tokenProvider.getToken(request)); + log.info("修改商户密码成功。"); + return new ResponseEntity<>(HttpStatus.OK); + } + @PutMapping @Log("修改/shop/list") @ApiOperation("修改/shop/list") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbMerchantAccountRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbMerchantAccountRepository.java index 8d363706..791d9373 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbMerchantAccountRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbMerchantAccountRepository.java @@ -18,6 +18,8 @@ package cn.ysk.cashier.repository.shop; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; /** * @website https://eladmin.vip @@ -25,4 +27,15 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; * @date 2024-02-08 **/ public interface TbMerchantAccountRepository extends JpaRepository, JpaSpecificationExecutor { + + /** + * 修改密码 + * @param account 用户名 + * @param password 密码 + * @param lastPasswordResetTime 更新时间 + * @param lastPasswordResetTime / + */ + @Modifying + @Query(value = "update tb_merchant_account set password = ?2 , updated_at = ?3 where account = ?1",nativeQuery = true) + void updatePass(String account, String password, Long lastPasswordResetTime); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbPlussShopStaffRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbPlussShopStaffRepository.java index bbe154f6..5eaa68a4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbPlussShopStaffRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbPlussShopStaffRepository.java @@ -18,6 +18,8 @@ package cn.ysk.cashier.repository.shop; import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; /** * @website https://eladmin.vip @@ -25,4 +27,16 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; * @date 2024-03-01 **/ public interface TbPlussShopStaffRepository extends JpaRepository, JpaSpecificationExecutor { + + /** + * 修改密码 + * @param account 用户名 + * @param password 密码 + * @param lastPasswordResetTime 更新时间 + * @param lastPasswordResetTime / + */ + @Modifying +// @Query(value = "update tb_pluss_shop_staff set password = ?2 , updated_at = ?3 where account = ?1",nativeQuery = true) + @Query("update TbPlussShopStaff set password = :password , updatedAt = :lastPasswordResetTime where account = :account") + void updatePass(String account, String password, Long lastPasswordResetTime); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java index 08057bf3..81388505 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbShopCategoryServiceImpl.java @@ -69,7 +69,6 @@ public class TbShopCategoryServiceImpl implements TbShopCategoryService { //找到子分类 List children = tbShopCategoryRepository.findChildren(treeId); if (children.isEmpty()){ - log.info("子类为空,{}", FastJsonUtils.toJSONString(treeId)); return PageUtil.toPage(page.map(tbShopCategoryMapper::toDto)); } @@ -86,11 +85,9 @@ public class TbShopCategoryServiceImpl implements TbShopCategoryService { BeanUtils.copyProperties(category, tbShopCategoryDto); dto.add(tbShopCategoryDto); } - log.info("过滤前,{}", FastJsonUtils.toJSONString(dto)); List result = dto.stream() .filter(d -> d.getTree()==null || d.getId().equals(d.getTree())) .collect(Collectors.toList()); - log.info("过滤后,{}", FastJsonUtils.toJSONString(result)); return PageUtil.toPage(result, page.getTotalElements()-children.size()); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java index 47c9c946..aeb4b574 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java @@ -15,41 +15,44 @@ */ package cn.ysk.cashier.service.impl.shopimpl; +import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.config.security.service.UserCacheManager; +import cn.ysk.cashier.dto.shop.TbShopInfoDto; +import cn.ysk.cashier.dto.shop.TbShopInfoQueryCriteria; import cn.ysk.cashier.exception.BadRequestException; -import cn.ysk.cashier.pojo.product.TbShopCategory; +import cn.ysk.cashier.exception.EntityNotFoundException; +import cn.ysk.cashier.mapper.shop.TbShopInfoMapper; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; -import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; -import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; -import cn.ysk.cashier.pojo.shop.TbShopInfo; import cn.ysk.cashier.pojo.shop.TbMerchantRegister; +import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; +import cn.ysk.cashier.pojo.shop.TbShopInfo; +import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; import cn.ysk.cashier.repository.shop.TbMerchantRegisterRepository; import cn.ysk.cashier.repository.shop.TbPlussShopStaffRepository; +import cn.ysk.cashier.repository.shop.TbShopInfoRepository; +import cn.ysk.cashier.service.shop.TbShopInfoService; import cn.ysk.cashier.system.domain.Dept; import cn.ysk.cashier.system.domain.Job; import cn.ysk.cashier.system.domain.Role; import cn.ysk.cashier.system.domain.User; import cn.ysk.cashier.system.repository.UserRepository; +import cn.ysk.cashier.system.service.UserService; import cn.ysk.cashier.utils.*; import lombok.RequiredArgsConstructor; -import cn.ysk.cashier.repository.shop.TbShopInfoRepository; -import cn.ysk.cashier.service.shop.TbShopInfoService; -import cn.ysk.cashier.dto.shop.TbShopInfoDto; -import cn.ysk.cashier.dto.shop.TbShopInfoQueryCriteria; -import cn.ysk.cashier.mapper.shop.TbShopInfoMapper; import org.springframework.beans.BeanUtils; +import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import java.time.Instant; -import java.util.*; -import java.io.IOException; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.time.Instant; +import java.util.*; /** * @website https://eladmin.vip @@ -69,6 +72,11 @@ public class TbShopInfoServiceImpl implements TbShopInfoService { private final UserRepository userRepository; + private final UserService userService; + + private final UserCacheManager userCacheManager; + private final TokenProvider tokenProvider; + private final TbMerchantRegisterRepository merchantRegisterRepository; private final PasswordEncoder passwordEncoder; @@ -214,6 +222,19 @@ public class TbShopInfoServiceImpl implements TbShopInfoService { return tbShopInfoMapper.toDto(new TbShopInfo()); } + @Override + @Transactional + public void upShopPass(String username,String password){ + User user = userRepository.findByUsername(username); + if (user == null) { + throw new EntityNotFoundException(User.class, "username", username); + } + String encPass = MD5Utils.encrypt(password); + shopStaffRepository.updatePass(username,encPass,System.currentTimeMillis()); + merchantAccountRepository.updatePass(username,encPass,System.currentTimeMillis()); + userService.updatePass(username,passwordEncoder.encode(passwordEncoder.encode(password))); + } + @Override @Transactional(rollbackFor = Exception.class) public void update(TbShopInfo resources) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java index 20c2b410..ab1da404 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java @@ -62,6 +62,8 @@ public interface TbShopInfoService { */ TbShopInfoDto create(TbShopInfoDto resources); + void upShopPass(String username,String password) throws Exception ; + /** * 编辑 * @param resources /