guomengjiao 5 months ago
parent
commit
a6b8b85bfd

+ 11 - 14
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/IndexController.java

@@ -1,34 +1,25 @@
 package com.ruoyi.web.controller.common;
 
-import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillBo;
 import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillCountBo;
 import com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo;
 import com.ruoyi.businessDayBill.service.IBusinessDayBillService;
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
-import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
 import com.ruoyi.onlineorder.service.IOnlineOrderService;
-import com.ruoyi.subsidy.enums.SubsidyCountType;
+import com.ruoyi.shop.withdrawal.service.IWithdrawalService;
 import com.ruoyi.subsidy.service.ISubsidyQueueService;
+import com.ruoyi.user.service.IUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -50,6 +41,8 @@ public class IndexController extends BaseController {
     private final IOnlineOrderService iOnlineOrderService;
     private final ISubsidyQueueService iSubsidyQueueService;
     private final IBusinessDayBillService iBusinessDayBillService;
+    private final IUserService userService;
+    private final IWithdrawalService withdrawalService;
 
     /**
      * 平台顶部简单统计
@@ -64,6 +57,8 @@ public class IndexController extends BaseController {
         map.put("todayAmount", ObjectUtil.isNotNull( statistics)? statistics.getActualReceivePayment() : 0);
         map.put("todayOrderNum", ObjectUtil.isNotNull( statistics)? statistics.getOnlineOrderNum()+statistics.getShopOrderNum() : 0);
         map.put("queueCount", iSubsidyQueueService.validQueueCount(null,false));
+        map.put("activeUser", userService.activeUserCount(null));
+        map.put("withdrawalAmount", withdrawalService.auditingWithdrawalAmount());
         return R.ok( map);
     }
 
@@ -82,6 +77,8 @@ public class IndexController extends BaseController {
         map.put("todayAmount", ObjectUtil.isNotNull( statistics)? statistics.getActualReceivePayment() : 0);
         map.put("todayOrderNum", ObjectUtil.isNotNull( statistics)? statistics.getOnlineOrderNum()+statistics.getShopOrderNum() : 0);
         map.put("queueCount", iSubsidyQueueService.validQueueCount(businessId,false));
+        //活跃用户
+        map.put("activeUser", userService.activeUserCount(businessId));
         return R.ok( map);
     }
 

+ 14 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/business/ApiBusinessIntegralVerifierController.java

@@ -16,10 +16,13 @@ import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.user.domain.vo.UserVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * 商家积分核销
  *
@@ -46,6 +49,17 @@ public class ApiBusinessIntegralVerifierController extends AbstractApiController
         return R.ok(userBusinessRoleService.queryUserInfo(userId, getBusinessByUserId(getUserId(true), true)));
     }
 
+    @ApiOperation("判断核销码是否有效")
+    @GetMapping("/verificationCodeIsValid")
+    public R<Void> verificationCodeIsValid(@ApiParam("核销码") @NotBlank(message = "核销码不能为空") String verificationCode) {
+        Long userId = RedisUtils.getCacheObject(Constants.MEMBER_CODE + verificationCode);
+        if(userId == null)
+        {
+            return R.fail("核销码不存在");
+        }
+        return R.ok();
+    }
+
     /**
      * 积分核销
      */

+ 20 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiShopOrderPackageController.java

@@ -13,7 +13,7 @@ import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
-import com.ruoyi.shop.order.domain.ShopOrder;
+import com.ruoyi.shop.order.domain.ShopOrderPackagePickup;
 import com.ruoyi.shop.order.domain.bo.*;
 import com.ruoyi.shop.order.domain.vo.ShopOrderPackageExpressVo;
 import com.ruoyi.shop.order.domain.vo.ShopOrderPackageVo;
@@ -21,6 +21,8 @@ import com.ruoyi.shop.order.domain.vo.ShopOrderVo;
 import com.ruoyi.shop.order.enums.PackageStatus;
 import com.ruoyi.shop.order.enums.PackageType;
 import com.ruoyi.shop.order.enums.VerificationRole;
+import com.ruoyi.shop.order.enums.VerificationStatus;
+import com.ruoyi.shop.order.service.IShopOrderPackagePickupService;
 import com.ruoyi.shop.order.service.IShopOrderPackageService;
 import com.ruoyi.shop.order.service.mqproduct.IShopOrderMqProductService;
 import io.swagger.annotations.Api;
@@ -31,6 +33,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.HashMap;
@@ -53,6 +56,7 @@ public class ApiShopOrderPackageController extends AbstractApiController {
 
     private final IShopOrderPackageService shopOrderPackageService;
     private final IShopOrderMqProductService shopOrderMqProductService;
+    private final IShopOrderPackagePickupService shopOrderPackagePickupService;
 
     /**
      * 查看物流跟踪
@@ -123,6 +127,7 @@ public class ApiShopOrderPackageController extends AbstractApiController {
         Map<String, Object> map = new HashMap<>();
         map.put("todayCount", todayCount);
         map.put("weekCount", weekCount);
+        map.put("totalCount", shopOrderPackageService.businessSimpleCount(BusinessCountBo.builder().businessId(businessId).build()));
         return R.ok(map);
     }
 
@@ -185,6 +190,20 @@ public class ApiShopOrderPackageController extends AbstractApiController {
         return R.ok(order);
     }
 
+    @ApiOperation("判断核销码是否有效")
+    @GetMapping("/verificationCodeIsValid")
+    public R<Void> verificationCodeIsValid(@ApiParam("核销码") @NotBlank(message = "核销码不能为空") String verificationCode) {
+        ShopOrderPackagePickup shopOrderPackagePickup = shopOrderPackagePickupService.loadByVerificationCode(verificationCode);
+        if(ObjectUtil.isNull(shopOrderPackagePickup))
+        {
+            return R.fail("核销码无效");
+        }
+        if(VerificationStatus.VERIFIED.equals(shopOrderPackagePickup.getVerificationStatus()))
+        {
+            return R.fail("核销码已核销");
+        }
+        return R.ok();
+    }
 
 
     /**

+ 1 - 1
ruoyi-line/src/main/java/com/ruoyi/subsidy/domain/bo/SubsidyQueueBo.java

@@ -274,6 +274,6 @@ public class SubsidyQueueBo extends BaseTimeEntity {
     /**
      * 排序的方向desc或者asc
      */
-    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    @ApiModelProperty(value = "排序的方向")
     private String isAsc = "asc";
 }

+ 2 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderPackageServiceImpl.java

@@ -773,7 +773,8 @@ public class ShopOrderPackageServiceImpl implements IShopOrderPackageService {
     public Long businessSimpleCount(BusinessCountBo today) {
         return this.baseMapper.selectCount(new LambdaQueryWrapper<ShopOrderPackage>()
             .eq(ShopOrderPackage::getBusinessId, today.getBusinessId())
-            .between(ShopOrderPackage::getReceiptTime, today.getStartTime(), today.getEndTime())
+            .between(ObjectUtil.isNotNull(today.getStartTime()) && ObjectUtil.isNotNull(today.getEndTime()),
+                ShopOrderPackage::getReceiptTime, today.getStartTime(), today.getEndTime())
             .eq(ShopOrderPackage::getPackageStatus, PackageStatus.RECEIPTED)
             .eq(ShopOrderPackage::getPackageType, PackageType.SELF_PICKUP)
 

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/withdrawal/service/IWithdrawalService.java

@@ -94,4 +94,6 @@ public interface IWithdrawalService {
     WithdrawalVo statistics(WithdrawalBo bo);
 
     Boolean audit(WithdrawalBo bo);
+
+    BigDecimal auditingWithdrawalAmount();
 }

+ 10 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/withdrawal/service/impl/WithdrawalServiceImpl.java

@@ -30,6 +30,7 @@ import com.ruoyi.shop.withdrawal.domain.Withdrawal;
 import com.ruoyi.shop.withdrawal.domain.bo.WithdrawalBo;
 import com.ruoyi.shop.withdrawal.domain.vo.WithdrawalAmountVo;
 import com.ruoyi.shop.withdrawal.domain.vo.WithdrawalVo;
+import com.ruoyi.shop.withdrawal.enums.WithdrawalMethod;
 import com.ruoyi.shop.withdrawal.enums.WithdrawalSource;
 import com.ruoyi.shop.withdrawal.enums.WithdrawalStatus;
 import com.ruoyi.shop.withdrawal.exception.WithdrawalExceptionEnum;
@@ -301,7 +302,10 @@ public class WithdrawalServiceImpl implements IWithdrawalService {
             }
             BigDecimal paymentAmount = amount.subtract(withdrawal.getFee());
             //调用支付宝 转账
-            String thirdOrderId = alipayFundTrans(withdrawal.getWithdrawalNo(), paymentAmount, "平台提现", withdrawal.getAccountInfo());
+            String thirdOrderId = null;
+            if (WithdrawalMethod.ALIPAY.equals(withdrawal.getWithdrawalMethod())) {
+                thirdOrderId = alipayFundTrans(withdrawal.getWithdrawalNo(), paymentAmount, "平台提现", withdrawal.getAccountInfo());
+            }
             if (StringUtils.isEmpty(thirdOrderId)) {
                 throw new ServiceException(WithdrawalExceptionEnum.WITHDRAWAL_THIRD_ORDER_ID_EMPTY);
             }
@@ -346,6 +350,11 @@ public class WithdrawalServiceImpl implements IWithdrawalService {
         return baseMapper.updateById(withdrawal) > 0;
     }
 
+    @Override
+    public BigDecimal auditingWithdrawalAmount() {
+        return null;
+    }
+
     private String alipayFundTrans(String withdrawalNo, BigDecimal amount, String title, String identity) {
         try {
             AlipayClient alipayClient = new DefaultAlipayClient(aliPayConfig.getServerUrl(), // 支付宝网关(固定)

+ 2 - 3
ruoyi-user/src/main/java/com/ruoyi/user/mapper/UserMapper.java

@@ -1,14 +1,12 @@
 package com.ruoyi.user.mapper;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import com.ruoyi.user.domain.User;
-import com.ruoyi.user.domain.bo.UserBo;
-import com.ruoyi.user.domain.vo.UserManagerVo;
 import com.ruoyi.user.domain.vo.UserStatisticsVo;
 import com.ruoyi.user.domain.vo.UserVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -21,4 +19,5 @@ public interface UserMapper extends BaseMapperPlus<UserMapper, User, UserVo> {
 
     List<UserStatisticsVo> selectUserRegister(@Param("start") String start, @Param("end") String                                                end);
 
+    Long activeUserCount(@Param("businessId") Long businessId, @Param("start") Date start);
 }

+ 2 - 0
ruoyi-user/src/main/java/com/ruoyi/user/service/IUserService.java

@@ -180,4 +180,6 @@ public interface IUserService {
     String queryHeadPhotoById(Long userId);
 
     String getPhoneByCode(String encryptedData);
+
+    Long activeUserCount(Long businessId);
 }

+ 8 - 4
ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java

@@ -31,10 +31,7 @@ import com.ruoyi.common.enums.ExceptionEnum;
 import com.ruoyi.common.enums.InviteType;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.properties.AlipayProperties;
-import com.ruoyi.common.utils.IOSToeknUtils;
-import com.ruoyi.common.utils.ShareCodeUtils;
-import com.ruoyi.common.utils.SmsSend;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.common.utils.rest.RestUtil;
 import com.ruoyi.user.domain.User;
@@ -697,6 +694,13 @@ public class UserServiceImpl implements IUserService {
         return null;
     }
 
+    @Override
+    public Long activeUserCount(Long businessId) {
+        //24小时内登录过的
+        Date start = DateUtils.addDays(new Date(), -1);
+        return baseMapper.activeUserCount(businessId, start);
+    }
+
     private String generateUniqueMemberCode(Long userId) {
         //生成唯一码 用户不会重复 6-8位
         String userIdPart = String.valueOf(userId);

+ 11 - 0
ruoyi-user/src/main/resources/mapper/user/UserMapper.xml

@@ -28,4 +28,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         GROUP BY create_day
     </select>
 
+    <select id="activeUserCount" resultType="java.lang.Long">
+        select count(1) from tb_user u
+        <if test="businessId != null">
+            join tb_user_business_role ub on u.id = ub.user_id
+        </if>
+        where u.last_login_time &gt;= #{start}
+        <if test="businessId != null">
+            and ub.business_id = #{businessId}
+        </if>
+    </select>
+
 </mapper>