Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Lijingyang 1 месяц назад
Родитель
Сommit
a2802ba6d2

+ 8 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java

@@ -32,6 +32,14 @@ public interface RemoteDeptService {
      */
     Long selectDeptLeaderById(Long deptId);
 
+    /**
+     * 获取部门子部门ID
+     *
+     * @param deptId 部门ID
+     * @return 子部门ID
+     */
+    List<Long> selectDeptChildrenIds(Long deptId);
+
     /**
      * 查询部门
      *

+ 16 - 2
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerContactServiceImpl.java

@@ -1,6 +1,7 @@
 package org.dromara.customer.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.api.RemoteDeptService;
 import org.springframework.stereotype.Service;
 import org.dromara.customer.domain.bo.CustomerContactBo;
 import org.dromara.customer.domain.vo.CustomerContactVo;
@@ -32,6 +34,9 @@ import java.util.Collection;
 @Service
 public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMapper, CustomerContact> implements ICustomerContactService {
 
+    @DubboReference
+    private RemoteDeptService remoteDeptService;
+
     private final CustomerContactMapper baseMapper;
 
     /**
@@ -75,7 +80,7 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
     private LambdaQueryWrapper<CustomerContact> buildQueryWrapper(CustomerContactBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<CustomerContact> lqw = Wrappers.lambdaQuery();
-        lqw.orderByAsc(CustomerContact::getId);
+        lqw.orderByDesc(CustomerContact::getId);
         lqw.eq(bo.getCustomerId() != null, CustomerContact::getCustomerId, bo.getCustomerId());
         lqw.like(StringUtils.isNotBlank(bo.getContactName()), CustomerContact::getContactName, bo.getContactName());
         lqw.eq(StringUtils.isNotBlank(bo.getPhone()), CustomerContact::getPhone, bo.getPhone());
@@ -90,7 +95,16 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
         lqw.eq(StringUtils.isNotBlank(bo.getAddressCounty()), CustomerContact::getAddressCounty, bo.getAddressCounty());
         lqw.eq(StringUtils.isNotBlank(bo.getProvincialCityCounty()), CustomerContact::getProvincialCityCounty, bo.getProvincialCityCounty());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), CustomerContact::getStatus, bo.getStatus());
-        lqw.eq(StringUtils.isNotBlank(bo.getPlatformCode()), CustomerContact::getPlatformCode, bo.getPlatformCode());
+
+        if (bo.getDeptId() != null) {
+            // 1. 获取当前部门及所有子部门的 ID 列表
+            List<Long> deptIds = remoteDeptService.selectDeptChildrenIds(bo.getDeptId());
+
+            // 2. 使用 in 查询
+            if (deptIds != null && !deptIds.isEmpty()) {
+                lqw.in(CustomerContact::getDeptId, deptIds);
+            }
+        }
         return lqw;
     }
 

+ 7 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/pc/PcOrderEvaluationController.java

@@ -12,7 +12,9 @@ import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.order.domain.bo.OrderEvaluationBo;
 import org.dromara.order.domain.bo.OrderReturnBo;
+import org.dromara.order.domain.vo.OrderCustomerFlowVo;
 import org.dromara.order.domain.vo.OrderEvaluationListVo;
+import org.dromara.order.domain.vo.OrderEvaluationVo;
 import org.dromara.order.service.IOrderEvaluationService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -48,4 +50,9 @@ public class PcOrderEvaluationController extends BaseController {
 
         return toAjax(orderEvaluationService.insertByBo(bo));
     }
+
+    @GetMapping("/{id}")
+    public R<OrderEvaluationVo> getInfo(@PathVariable("id") Long id) {
+        return R.ok(orderEvaluationService.queryById(id));
+    }
 }

+ 12 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderEvaluationServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.order.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -16,6 +17,7 @@ import org.dromara.order.domain.OrderProduct;
 import org.dromara.order.domain.bo.OrderEvaluationBo;
 import org.dromara.order.domain.vo.OrderEvaluationListVo;
 import org.dromara.order.domain.vo.OrderEvaluationVo;
+import org.dromara.order.domain.vo.OrderMainVo;
 import org.dromara.order.domain.vo.OrderProductBriefVo;
 import org.dromara.order.mapper.OrderEvaluationMapper;
 import org.dromara.order.mapper.OrderMainMapper;
@@ -54,7 +56,16 @@ public class OrderEvaluationServiceImpl extends ServiceImpl<OrderEvaluationMappe
      */
     @Override
     public OrderEvaluationVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
+        OrderMainVo orderMainVo = orderMainMapper.selectVoById(id);
+        if (orderMainVo == null) {
+            return null;
+        }
+        List<OrderEvaluation> orderEvaluations = baseMapper.selectList(new LambdaQueryWrapper<OrderEvaluation>().eq(OrderEvaluation::getOrderId, id));
+        if (orderEvaluations.isEmpty()) {
+            return null;
+        }
+        OrderEvaluation orderEvaluation = orderEvaluations.get(orderEvaluations.size() - 1);
+        return BeanUtil.toBean(orderEvaluation, OrderEvaluationVo.class);
     }
 
     @Override

+ 2 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java

@@ -164,6 +164,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
                 orderMainVo.setCreateDeptName(deptMap.get(orderMainVo.getCreateDept()));
                 orderMainVo.setCustomerName(customerMap.get(orderMainVo.getCustomerId()));
             });
+
         }
         return TableDataInfo.build(result);
     }
@@ -218,6 +219,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
         lqw.eq(bo.getCompanyId() != null, OrderMain::getCompanyId, bo.getCompanyId());
         lqw.eq(bo.getCustomerId() != null, OrderMain::getCustomerId, bo.getCustomerId());
         lqw.eq(bo.getUserId() != null, OrderMain::getUserId, bo.getUserId());
+        lqw.eq(bo.getCreateDept() != null, OrderMain::getCreateDept, bo.getCreateDept());
         lqw.eq(bo.getShippingAddressId() != null, OrderMain::getShippingAddressId, bo.getShippingAddressId());
         lqw.eq(StringUtils.isNotBlank(bo.getPurchaseReason()), OrderMain::getPurchaseReason, bo.getPurchaseReason());
         lqw.eq(StringUtils.isNotBlank(bo.getInvoiceType()), OrderMain::getInvoiceType, bo.getInvoiceType());

+ 37 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/pc/PcSysUserController.java

@@ -0,0 +1,37 @@
+package org.dromara.system.controller.pc;
+
+import cn.hutool.crypto.digest.BCrypt;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.system.domain.bo.SysUserBo;
+import org.dromara.system.service.ISysUserService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/psSysUser")
+public class PcSysUserController extends BaseController {
+
+    private final ISysUserService sysUserService;
+
+
+    /**
+     * 重置密码
+     */
+    @PutMapping("/changePwd")
+    public R<Void> changePwd(@RequestBody SysUserBo user) {
+        Long userId = LoginHelper.getLoginUser().getUserId();
+        user.setUserId(userId);
+        sysUserService.checkUserAllowed(user.getUserId());
+        sysUserService.checkUserDataScope(user.getUserId());
+        user.setPassword(BCrypt.hashpw(user.getPassword()));
+        return toAjax(sysUserService.resetUserPwd(user.getUserId(), user.getPassword()));
+    }
+}

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@@ -50,6 +50,11 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
         return vo.getLeader();
     }
 
+    @Override
+    public List<Long> selectDeptChildrenIds(Long deptId) {
+        return sysDeptService.selectDeptChildrenIds(deptId);
+    }
+
     /**
      * 查询部门
      *

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java

@@ -44,6 +44,8 @@ public interface ISysDeptService extends IService<SysDept> {
      */
     List<Tree<Long>> selectDeptTreeList(SysDeptBo dept);
 
+    List<Long> selectDeptChildrenIds(Long deptId);
+
     /**
      * 构建前端所需要下拉树结构
      *

+ 31 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -97,6 +97,37 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return buildDeptTreeSelect(depts);
     }
 
+    @Override
+    public List<Long> selectDeptChildrenIds(Long deptId) {
+        if (deptId == null) {
+            return new ArrayList<>();
+        }
+
+        // 1. 先查询当前部门信息,获取其 ancestors (祖级路径)
+        // 目的:为了构造子部门的 ancestors 匹配规则
+        SysDept currentDept = baseMapper.selectById(deptId);
+        if (currentDept == null) {
+            return new ArrayList<>();
+        }
+
+        LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();
+        lqw.and(wrapper -> wrapper
+            // 条件1:查询当前部门本身 (dept_id = ?)
+            .eq(SysDept::getDeptId, deptId)
+            // 或者
+            .or()
+            // 条件2:查询直接子部门 (parent_id = ?)
+            .eq(SysDept::getParentId, deptId)
+        );
+
+// 执行查询
+        List<SysDept> deptList = baseMapper.selectList(lqw);
+
+// 提取 ID 列表
+        return StreamUtils.toList(deptList, SysDept::getDeptId);
+
+    }
+
     private LambdaQueryWrapper<SysDept> buildQueryWrapper(SysDeptBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();