소스 검색

消息模板免密登录

Yangzw 7 달 전
부모
커밋
fe7fe82a3d

+ 6 - 2
feifan-module-mall/feifan-module-statistics-biz/src/main/java/cn/newfeifan/mall/module/statistics/controller/admin/member/MemberStatisticsController.java

@@ -114,8 +114,12 @@ public class MemberStatisticsController {
     @Operation(summary = "获得会员注册数量列表")
     @PreAuthorize("@ss.hasPermission('statistics:member:query')")
     public CommonResult<List<MemberRegisterCountRespVO>> getMemberRegisterCountList(MemberAnalyseReqVO reqVO) {
-        return success(memberStatisticsService.getMemberRegisterCountList(
-                ArrayUtil.get(reqVO.getTimes(), 0), ArrayUtil.get(reqVO.getTimes(), 1)));
+
+        return success(memberStatisticsService.getMemberRegisterCountList());
+
+        // 原来的注释掉
+//        return success(memberStatisticsService.getMemberRegisterCountList(
+//                ArrayUtil.get(reqVO.getTimes(), 0), ArrayUtil.get(reqVO.getTimes(), 1)));
     }
 
 }

+ 1 - 0
feifan-module-mall/feifan-module-statistics-biz/src/main/java/cn/newfeifan/mall/module/statistics/dal/mysql/member/MemberStatisticsMapper.java

@@ -44,4 +44,5 @@ public interface MemberStatisticsMapper extends BaseMapperX {
     List<MemberRegisterCountRespVO> selectListByCreateTimeBetween(@Param("beginTime") LocalDateTime beginTime,
                                                                   @Param("endTime") LocalDateTime endTime);
 
+    List<MemberRegisterCountRespVO> getMemberRegisterCountList();
 }

+ 5 - 0
feifan-module-mall/feifan-module-statistics-biz/src/main/java/cn/newfeifan/mall/module/statistics/service/member/MemberStatisticsService.java

@@ -73,4 +73,9 @@ public interface MemberStatisticsService {
      */
     DataComparisonRespVO<MemberCountRespVO> getUserCountComparison();
 
+    /**
+     * 获得用户数量量统计
+     * @return 用户数量量统计
+     */
+    List<MemberRegisterCountRespVO> getMemberRegisterCountList();
 }

+ 5 - 0
feifan-module-mall/feifan-module-statistics-biz/src/main/java/cn/newfeifan/mall/module/statistics/service/member/MemberStatisticsServiceImpl.java

@@ -127,6 +127,11 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService {
                 .setReference(getUserCount(beginOfYesterday, endOfYesterday));
     }
 
+    @Override
+    public List<MemberRegisterCountRespVO> getMemberRegisterCountList() {
+        return memberStatisticsMapper.getMemberRegisterCountList();
+    }
+
     private MemberCountRespVO getUserCount(LocalDateTime beginTime, LocalDateTime endTime) {
         return new MemberCountRespVO()
                 .setRegisterUserCount(memberStatisticsMapper.selectUserCount(beginTime, endTime))

+ 18 - 0
feifan-module-mall/feifan-module-statistics-biz/src/main/resources/mapper/member/MemberStatisticsMapper.xml

@@ -47,5 +47,23 @@
           AND deleted = FALSE
         GROUP BY date
     </select>
+    <select id="getMemberRegisterCountList"
+            resultType="cn.newfeifan.mall.module.statistics.controller.admin.member.vo.MemberRegisterCountRespVO">
+        SELECT
+        cur_date.date date,
+        IFNULL((SELECT SUM(prev_count.cur_user_count)
+        FROM (SELECT DATE(create_time) AS date, COUNT(*) AS cur_user_count
+        FROM member_user
+        GROUP BY DATE(create_time)) prev_count
+        WHERE prev_count.date &lt;= cur_date.date), 0) AS count
+        FROM
+        (SELECT DATE(create_time) AS date, COUNT(*) AS cur_user_count
+        FROM member_user
+        GROUP BY DATE(create_time)) cur_date
+        GROUP BY
+        cur_date.date
+        ORDER BY
+        cur_date.date;
+    </select>
 
 </mapper>

+ 23 - 6
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/utils/wechat/WcChatMessageUtils.java

@@ -6,11 +6,16 @@ import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONUtil;
 import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
 import cn.newfeifan.mall.module.member.service.user.MemberUserService;
+import cn.newfeifan.mall.module.system.controller.admin.auth.vo.AuthLoginRespVO;
 import cn.newfeifan.mall.module.system.dal.dataobject.config.SystemConfigDO;
+import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 import cn.newfeifan.mall.module.system.dal.dataobject.wechatmsgtemplate.WechatMsgTemplateDO;
+import cn.newfeifan.mall.module.system.enums.logger.LoginLogTypeEnum;
+import cn.newfeifan.mall.module.system.service.auth.AdminAuthService;
 import cn.newfeifan.mall.module.system.service.config.SystemConfigService;
 import cn.newfeifan.mall.module.system.service.permission.PermissionService;
 import cn.newfeifan.mall.module.system.service.social.SocialUserService;
+import cn.newfeifan.mall.module.system.service.user.AdminUserService;
 import cn.newfeifan.mall.module.system.service.wechatmsgtemplate.WechatMsgTemplateService;
 import cn.newfeifan.mall.module.trade.controller.admin.messagelog.vo.MessageLogSaveReqVO;
 import cn.newfeifan.mall.module.trade.enums.wxmessage.WcChatMessageTemplateIdEnum;
@@ -59,6 +64,10 @@ public class WcChatMessageUtils {
     private PermissionService permissionService;
     @Resource
     private MemberUserService memberUserService;
+    @Resource
+    private AdminAuthService authService;
+    @Resource
+    private AdminUserService adminUserService;
 
     /**
      * 获取微信的accessToken
@@ -116,7 +125,7 @@ public class WcChatMessageUtils {
         }
 
         String templateId = getTemplateId(wechatMsgTemplateId).getWechatMsgTemplateId(); // 模板id
-        String url = getDoMain(wechatMsgTemplateId, objectId);       // 跳转路径(小程序之外)
+        String url = getDoMain(wechatMsgTemplateId, objectId,systemUserId);       // 跳转路径(小程序之外)
         String client_msg_id = UUID.randomUUID().toString();  // 防重入id
 
 
@@ -257,7 +266,7 @@ public class WcChatMessageUtils {
      */
     private void sendWxgMessage(Long userId, JsonObject data, String wechatMsgTemplateId, Long systemUserId, Long objectId, String userOpenId) {
         String templateId = getTemplateId(wechatMsgTemplateId).getWechatMsgTemplateId(); // 模板id
-        String url = getDoMain(wechatMsgTemplateId, objectId);       // 跳转路径(小程序之外)
+        String url = getDoMain(wechatMsgTemplateId, objectId,systemUserId);       // 跳转路径(小程序之外)
         String client_msg_id = UUID.randomUUID().toString();  // 防重入id
 
 
@@ -331,7 +340,7 @@ public class WcChatMessageUtils {
      * @param templateId 自定义模板id
      * @return 域名加路径
      */
-    public String getDoMain(String templateId, Long objectId) {
+    public String getDoMain(String templateId, Long objectId,Long systemUserId) {
         SystemConfigDO redisConfig = configService.getRedisConfig();
         if (templateId.equals(WcChatMessageTemplateIdEnum.ORDER_DELIVERY2.getTemplateId())) {
             //订单已发货
@@ -341,13 +350,21 @@ public class WcChatMessageUtils {
             return redisConfig.getMallDomain() + "/#/pages/order/aftersale/detail?id=" + objectId;
         } else if (templateId.equals(WcChatMessageTemplateIdEnum.AFTER_SALE_NO_CHECK2.getTemplateId())) {
             //售后订单待审核
-            return redisConfig.getPlatformDomain() + "/after-sale";
+            AdminUserDO systemUser = adminUserService.getUser(systemUserId);
+            AuthLoginRespVO token = authService.createTokenAfterLoginSuccess(systemUser.getId(), systemUser.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
+//            return redisConfig.getMerchantDomain() + "/after-sale";
+            return redisConfig.getMerchantDomain() + "/login" + "?accessToken=" + token.getAccessToken() + "&refreshToken=" + token.getRefreshToken();
         } else if (templateId.equals(WcChatMessageTemplateIdEnum.ORDER_NO_DELIVERY2.getTemplateId())) {
             //订单待发货
-            return redisConfig.getPlatformDomain() + "/order";
+            AdminUserDO systemUser = adminUserService.getUser(systemUserId);
+            AuthLoginRespVO token = authService.createTokenAfterLoginSuccess(systemUser.getId(), systemUser.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
+//            return redisConfig.getMerchantDomain() + "/order";
+            return redisConfig.getMerchantDomain() + "/login" + "?accessToken=" + token.getAccessToken() + "&refreshToken=" + token.getRefreshToken();
         } else if(templateId.equals(WcChatMessageTemplateIdEnum.MERCHANT_APPLY_CHECK.getTemplateId())){
             // 商户入驻申请审批通知
-            return redisConfig.getPlatformDomain();
+            AdminUserDO systemUser = adminUserService.getUser(systemUserId);
+            AuthLoginRespVO token = authService.createTokenAfterLoginSuccess(systemUser.getId(), systemUser.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
+            return redisConfig.getPlatformDomain() + "/login" + "?accessToken=" + token.getAccessToken() + "&refreshToken=" + token.getRefreshToken();
         } else if(templateId.equals(WcChatMessageTemplateIdEnum.MERCHANT_APPLY_CHECK_RESULT.getTemplateId())){
             // 商户入驻审核结果通知
             return redisConfig.getMallDomain() + "/#/pages/public/merchant";

+ 18 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/resources/mapper/order/BrokerageUserMapper.xml

@@ -85,4 +85,22 @@
           and DATE(tor.create_time) &lt; CURDATE()
 --           and DATE(tor.create_time) = '2024-06-20'
     </select>
+    <select id="selectOrderCountByStatusWithTime"
+            resultType="cn.newfeifan.mall.module.trade.service.order.TradeOrderStatusCount">
+        WITH RECURSIVE dates AS (
+        SELECT #{start} AS date_val
+        UNION ALL
+        SELECT DATE_ADD(date_val, INTERVAL 1 DAY)
+        FROM dates
+        WHERE date_val &lt; #{end}
+        )
+        SELECT
+        dates.date_val AS orderDate,
+        COUNT(trade_order.id) AS orderCount
+        FROM dates
+        LEFT JOIN trade_order ON DATE(trade_order.create_time) = dates.date_val
+        and trade_order.status = #{status}
+        GROUP BY dates.date_val
+        ORDER BY dates.date_val;
+    </select>
 </mapper>

+ 12 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/auth/AdminAuthService.java

@@ -2,12 +2,12 @@ package cn.newfeifan.mall.module.system.service.auth;
 
 import cn.newfeifan.mall.module.system.controller.admin.auth.vo.*;
 import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
+import cn.newfeifan.mall.module.system.enums.logger.LoginLogTypeEnum;
 
 import javax.validation.Valid;
 
 /**
  * 管理后台的认证 Service 接口
- *
  * 提供用户的登录、登出的能力
  *
  * @author 非繁源码
@@ -70,4 +70,15 @@ public interface AdminAuthService {
      */
     AuthLoginRespVO refreshToken(String refreshToken);
 
+
+    /**
+     * 创建访问令牌,使用账号密码
+     *
+     * @param userId 用户编号
+     * @param username 用户账号
+     * @param logType 日志类型
+     * @return 访问令牌
+     */
+    AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType);
+
 }

+ 1 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/auth/AdminAuthServiceImpl.java

@@ -191,7 +191,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
         }
     }
 
-    private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType) {
+    public AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType) {
         // 插入登陆日志
         createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
         // 创建访问令牌