소스 검색

Merge remote-tracking branch 'origin/master'

TRX 1 년 전
부모
커밋
c23fe8a723

+ 14 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/attendance/LeaveApprovalModel.java

@@ -2,6 +2,8 @@ package com.zhongshu.card.client.model.attendance;
 
 import com.zhongshu.card.client.model.org.UserCountModel;
 import com.zhongshu.card.client.type.LeaveStatus;
+import com.zhongshu.card.client.type.visitor.VisitorState;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.stereotype.Indexed;
 
@@ -42,6 +44,18 @@ public class LeaveApprovalModel {
     //审核状态
     private LeaveStatus leaveStatus;
 
+    @Schema(description = "是否显示警告红点")
+    private Boolean isWarning = Boolean.FALSE;
+
+    public Boolean getIsWarning() {
+        if (leaveStatus != null) {
+            if (leaveStatus == LeaveStatus.Wait) {
+                return Boolean.TRUE;
+            }
+        }
+        return Boolean.FALSE;
+    }
+
     private Long approvalTime;
 
     //审核意见

+ 9 - 2
FullCardClient/src/main/java/com/zhongshu/card/client/model/attendance/LeaveQueryParam.java

@@ -16,8 +16,6 @@ public class LeaveQueryParam {
     private String projectId;
 
     @Schema(description = "应用场景id")
-    @NotEmpty(message = "应用场景不能为空")
-    @NotNull(message = "应用场景不能为null")
     private String sceneId;
 
     @Schema(description = "查询类型")
@@ -38,6 +36,15 @@ public class LeaveQueryParam {
     @Schema(description = "申请人姓名")
     private String leaveUserName;
 
+    @Schema(description = "申请人电话")
+    private String leaveUserPhone;
+
     @Schema(description = "审批人姓名")
     private String approvalUserName;
+
+    @Schema(description = "审核时间开始")
+    private Long approvalStartTime;
+
+    @Schema(description = "审核时间结束")
+    private Long approvalEndTime;
 }

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/attendance/LeaveController.java

@@ -61,4 +61,12 @@ public class LeaveController {
                               @Parameter(required = false) LeaveQueryParam param){
         return leaveService.page(pageable,param);
     }
+
+    @Operation(summary = "应用管理-请假申请列表(分页)", description = "应用管理-请假申请列表(分页)")
+    @RequestMapping(value = "pageLeave", method = {RequestMethod.POST})
+    @ResourceAuth(value = "user", type = AuthType.User)
+    public ResultContent pageLeave(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10)Pageable pageable,
+                              @Parameter(required = false) LeaveQueryParam param){
+        return leaveService.pageLeave(pageable,param);
+    }
 }

+ 0 - 44
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/pay/PayTestController.java

@@ -1,44 +0,0 @@
-//package com.zhongshu.card.server.core.controller.pay;
-//
-//import com.github.microservice.pay.client.service.ledger.TransactionLogService;
-//import com.github.microservice.pay.client.service.product.SenselessPayService;
-//import com.github.microservice.types.payment.PaymentType;
-//import com.zhongshu.card.server.core.service.pay.ChinaumsSenselessPayService;
-//import com.zhongshu.card.server.core.service.pay.SettleService;
-//import io.swagger.v3.oas.annotations.Parameter;
-//import io.swagger.v3.oas.annotations.tags.Tag;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.cloud.stream.binder.kafka.properties.KafkaBinderConfigurationProperties;
-//import org.springframework.web.bind.annotation.*;
-//
-//import java.util.List;
-//
-//@RestController
-//@RequestMapping("payTest")
-//@Tag(name = "资金测试", description = "机构资金-提现")
-//public class PayTestController {
-//
-//    @Autowired
-//    SettleService settleService;
-//
-//    @Autowired
-//    ChinaumsSenselessPayService chinaumsSenselessPayService;
-//
-//    @Autowired
-//    TransactionLogService transactionLogService;
-//
-//    @PostMapping("settle")
-//    public Object settle(){
-//        return settleService.settle("665fc0ef9083d203896d3549", "67061bea18e3af0f903b067a", 1732997367300L, "remark", PaymentType.UnionFrictionlessPay);
-//    }
-//
-//        @PostMapping("queryRefund")
-//    public Object queryRefund(){
-//        return chinaumsSenselessPayService.refundQuery("665fc0ef9083d203896d3549","665fc0389083d203896d3541", "67061bea18e3af0f903b067a", "RE202411191422450130001", false);
-//    }
-//
-//    @PostMapping("groupClean")
-//    public Object groupClean(@RequestBody List<String> generalLedgerId){
-//        return transactionLogService.groupClean(generalLedgerId);
-//    }
-//}

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/pay/balance/RechargeController.java

@@ -1,5 +1,7 @@
 package com.zhongshu.card.server.core.controller.pay.balance;
 
+import com.github.microservice.auth.security.annotations.ResourceAuth;
+import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.pay.client.ret.ResultContent;
 import com.zhongshu.card.client.model.pay.QueryRechargeParam;
 import com.zhongshu.card.client.model.pay.RechargeParam;
@@ -23,30 +25,35 @@ public class RechargeController {
 
     @Operation(summary = "余额充值", description = "余额充值")
     @RequestMapping(value = "recharge", method = RequestMethod.POST)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object recharge(@RequestBody RechargeParam param){
         return balancePayService.recharge(param);
     }
 
     @Operation(summary = "查询充值记录", description = "查询充值记录")
     @RequestMapping(value = "queryRechargeOrder", method = RequestMethod.POST)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object queryRechargeOrder(@RequestBody QueryRechargeParam param){
         return balancePayService.queryRechargeOrder(param);
     }
 
     @Operation(summary = "查询用户余额", description = "查询用户余额")
     @RequestMapping(value = "queryUserBalance", method = RequestMethod.GET)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object queryUserBalance(@RequestParam(value = "projectOid", required = false) String projectOid, @RequestParam(value = "userId", required = false) String userId){
         return balancePayService.queryUserBalance(projectOid, userId);
     }
 
     @Operation(summary = "查询充值订单详情", description = "查询充值订单详情")
     @RequestMapping(value = "queryInfo", method = RequestMethod.GET)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object queryInfo(@RequestParam("orderNo") String orderNo){
         return balancePayService.queryInfo(orderNo);
     }
 
     @Operation(summary = "关闭充值订单", description = "关闭充值订单(只有待支付状态时可以关闭)")
     @RequestMapping(value = "close", method = RequestMethod.GET)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object close(@RequestParam("orderNo") String orderNo){
         return balancePayService.close(orderNo);
     }
@@ -59,6 +66,7 @@ public class RechargeController {
 
     @Operation(summary = "分页查询充值订单", description = "分页查询充值订单")
     @RequestMapping(value = "page", method = RequestMethod.POST)
+    @ResourceAuth(value = "user", type = AuthType.User)
     public Object page(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10) Pageable pageable,
                        @Parameter(required = false) RechargeSearchParam param){
         return balancePayService.page(pageable, param);

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/attendance/extend/LeaveApprovalDaoExtend.java

@@ -11,7 +11,7 @@ import java.util.List;
 
 public interface LeaveApprovalDaoExtend {
 
-    Page<LeaveApproval> page(Pageable pageable, LeaveQueryType queryType, String projectId, String sceneId, String userId, Long startTime, Long endTime, List<String> leaveType, List<LeaveStatus> leaveStatus, String approvalUserName, String leaveUserName);
+    Page<LeaveApproval> page(Pageable pageable, LeaveQueryType queryType, String projectId, String sceneId, String userId, Long startTime, Long endTime, List<String> leaveType, List<LeaveStatus> leaveStatus, String approvalUserName, String leaveUserName, String leaveUserPhone, Long approvalStartTime, Long approvalEndTime);
 
     Page<LeaveApproval> openApiPage(Pageable pageable, PageLeaveOpenApiParam param);
 }

+ 24 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/attendance/impl/LeaveApprovalDaoImpl.java

@@ -24,7 +24,7 @@ public class LeaveApprovalDaoImpl implements LeaveApprovalDaoExtend {
     DBHelper dbHelper;
 
     @Override
-    public Page<LeaveApproval> page(Pageable pageable, LeaveQueryType queryType, String projectId, String sceneId, String userId, Long startTime, Long endTime, List<String> leaveType, List<LeaveStatus> leaveStatus, String approvalUserName, String leaveUserName) {
+    public Page<LeaveApproval> page(Pageable pageable, LeaveQueryType queryType, String projectId, String sceneId, String userId, Long startTime, Long endTime, List<String> leaveType, List<LeaveStatus> leaveStatus, String approvalUserName, String leaveUserName, String leaveUserPhone, Long approvalStartTime, Long approvalEndTime) {
         Criteria criteria = new Criteria();
 
         if (StringUtils.isNotBlank(projectId)){
@@ -39,9 +39,13 @@ public class LeaveApprovalDaoImpl implements LeaveApprovalDaoExtend {
             criteria.and("leaveType").in(leaveType);
         }
 
-//        if (leaveStatus != null && !leaveStatus.isEmpty()){
-//            criteria.and("leaveStatus").in(leaveStatus);
-//        }
+        if (startTime != null && endTime == null){
+            criteria.and("createTime").gte(startTime);
+        }
+
+        if (startTime == null && endTime != null){
+            criteria.and("createTime").lte(endTime);
+        }
 
         if (startTime != null && endTime != null){
             criteria.and("createTime").gte(startTime).lte(endTime);
@@ -57,6 +61,22 @@ public class LeaveApprovalDaoImpl implements LeaveApprovalDaoExtend {
             criteria.and("leaveUserName").regex(leaveUserNamePattern);
         }
 
+        if (StringUtils.isNotBlank(leaveUserPhone)){
+            criteria.and("leaveUserPhone").is(leaveUserPhone);
+        }
+
+        if (approvalStartTime != null && approvalEndTime ==null){
+            criteria.and("approvalTime").gte(approvalStartTime);
+        }
+
+        if (approvalStartTime == null && approvalEndTime != null){
+            criteria.and("approvalTime").lte(approvalEndTime);
+        }
+
+        if (approvalStartTime != null && approvalEndTime != null){
+            criteria.and("approvalTime").gte(approvalStartTime).lte(approvalEndTime);
+        }
+
         if (LeaveQueryType.Wait.equals(queryType)){
             criteria.and("leaveStatus").is(LeaveStatus.Wait);
             criteria.and("approvalUser").is(userId);

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/attendance/LeaveApproval.java

@@ -60,4 +60,8 @@ public class LeaveApproval extends SuperEntity {
 
     @Indexed
     private String leaveUserName;
+
+    //请假人手机
+    @Indexed
+    private String leaveUserPhone;
 }

+ 17 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/attendance/LeaveService.java

@@ -130,6 +130,7 @@ public class LeaveService extends SuperService {
         }
         leaveApproval.setLeaveUser(currentUserId);
         leaveApproval.setLeaveUserName(leaveUserAccount.getName());
+        leaveApproval.setLeaveUserPhone(leaveUserAccount.getPhone());
 
         leaveApproval.setLeaveStatus(LeaveStatus.Wait);
         leaveApprovalDao.save(leaveApproval);
@@ -178,8 +179,23 @@ public class LeaveService extends SuperService {
             startTime = DateUtils.getSixMonthsAgo();
         }
 
+        if (StringUtils.isBlank(param.getSceneId())){
+            return ResultContent.buildFail("sceneId不能为空");
+        }
+        String userId = authHelper.getCurrentUser().getUserId();
+        Page<LeaveApproval> page = leaveApprovalDao.page(pageable, param.getLeaveQueryType(), projectId, param.getSceneId(), userId, startTime, param.getEndTime(), param.getLeaveType(), param.getLeaveStatus(), param.getApprovalUserName(), param.getLeaveUserName(), param.getLeaveUserPhone(), param.getApprovalStartTime(), param.getApprovalEndTime());
+        return ResultContent.buildContent(PageEntityUtil.concurrent2PageModel(page, this::toModel));
+    }
+
+    public ResultContent pageLeave(Pageable pageable, LeaveQueryParam param) {
+
+        String projectId = param.getProjectId();
+        if (StringUtils.isBlank(projectId)){
+            projectId = getCurrentProjectOid();
+        }
+
         String userId = authHelper.getCurrentUser().getUserId();
-        Page<LeaveApproval> page = leaveApprovalDao.page(pageable, param.getLeaveQueryType(), projectId, param.getSceneId(), userId, startTime, param.getEndTime(), param.getLeaveType(), param.getLeaveStatus(), param.getApprovalUserName(), param.getLeaveUserName());
+        Page<LeaveApproval> page = leaveApprovalDao.page(pageable, param.getLeaveQueryType(), projectId, param.getSceneId(), userId, param.getStartTime(), param.getEndTime(), param.getLeaveType(), param.getLeaveStatus(), param.getApprovalUserName(), param.getLeaveUserName(), param.getLeaveUserPhone(), param.getApprovalStartTime(), param.getApprovalEndTime());
         return ResultContent.buildContent(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }