Forráskód Böngészése

feat : 调试修改

bilingfeng 2 éve
szülő
commit
1a63442592

+ 20 - 33
game-module/game-common/src/main/java/com/zanxiang/common/utils/DateUtils.java

@@ -2,9 +2,10 @@ package com.zanxiang.common.utils;
 
 import com.zanxiang.module.util.DateUtil;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.temporal.TemporalAdjusters;
 
 /**
  * 时间工具类
@@ -19,8 +20,11 @@ public class DateUtils extends DateUtil {
      * @param time
      * @return
      */
-    public static boolean isToday(Date time) {
-        return isThisTime(time, "yyyy-MM-dd");
+    public static boolean isToday(LocalDateTime time) {
+        LocalDateTime startTime = LocalDateTime.now().with(LocalTime.MIN);
+        LocalDateTime endTime = LocalDateTime.now().with(LocalTime.MAX);
+        //如果大于今天的开始日期,小于今天的结束日期
+        return time.isAfter(startTime) && time.isBefore(endTime);
     }
 
     /**
@@ -29,8 +33,11 @@ public class DateUtils extends DateUtil {
      * @param time
      * @return
      */
-    public static boolean isThisMonth(Date time) {
-        return isThisTime(time, "yyyy-MM");
+    public static boolean isThisMonth(LocalDateTime time) {
+        LocalDate localDate = time.toLocalDate();
+        LocalDate now = LocalDate.now();
+        return localDate.isAfter(now.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth())) &&
+                localDate.isBefore(now.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()));
     }
 
     /**
@@ -39,31 +46,11 @@ public class DateUtils extends DateUtil {
      * @param time
      * @return
      */
-    public static boolean isThisWeek(Date time) {
-        Calendar calendar = Calendar.getInstance();
-        int currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
-        calendar.setTime(time);
-        int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
-        if (paramWeek == currentWeek) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * 验证日期规则
-     *
-     * @param date
-     * @param pattern
-     * @return
-     */
-    private static boolean isThisTime(Date date, String pattern) {
-        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
-        String param = sdf.format(date);
-        String now = sdf.format(new Date());
-        if (param.equals(now)) {
-            return true;
-        }
-        return false;
+    public static boolean isThisWeek(LocalDateTime time) {
+        LocalDateTime now = LocalDateTime.now();
+        int dayOfWeek = now.getDayOfWeek().getValue();
+        LocalDateTime weekStart = now.minusDays(dayOfWeek - 1).with(LocalTime.MIN);
+        LocalDateTime weekEnd = now.plusDays(7 - dayOfWeek).with(LocalTime.MAX);
+        return time.isAfter(weekStart) && time.isBefore(weekEnd);
     }
 }

+ 2 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/PayMerchantServiceImpl.java

@@ -23,6 +23,7 @@ import com.zanxiang.mybatis.mapper.PayMerchantMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -57,7 +58,7 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
         //删除时候增加删除时间
         if (data.getIsDelete() != null && data.getIsDelete() == DeleteEnum.YES.getCode()) {
             data.setIsDelete(DeleteEnum.YES.getCode());
-            data.setDeleteTime(new Date());
+            data.setDeleteTime(LocalDateTime.now());
             return removeById(bo.getId());
         }
         if (!StringUtils.isEmpty(data.getPayDevice())) {

+ 1 - 1
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GamePayWay.java

@@ -25,7 +25,7 @@ public class GamePayWay {
     /**
      * 主键id
      */
-    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @TableId(value = "id", type = IdType.AUTO)
     private String id;
 
     /**

+ 7 - 11
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/PayMerchant.java

@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 
 /**
@@ -27,11 +28,6 @@ public class PayMerchant implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
-    /**
-     * 支付方式id
-     */
-    private Integer payWayId;
-
     /**
      * 商户号
      */
@@ -105,7 +101,7 @@ public class PayMerchant implements Serializable {
     /**
      * 月更新日期
      */
-    private Date mouthUpdateDate;
+    private LocalDateTime mouthUpdateDate;
 
     /**
      * 周已用额度
@@ -115,7 +111,7 @@ public class PayMerchant implements Serializable {
     /**
      * 周更新日期
      */
-    private Date weakerUpdateDate;
+    private LocalDateTime weakerUpdateDate;
 
     /**
      * 日已用额度
@@ -125,7 +121,7 @@ public class PayMerchant implements Serializable {
     /**
      * 日更新日期
      */
-    private Date dayUpdateDate;
+    private LocalDateTime dayUpdateDate;
 
     /**
      * 备注
@@ -141,15 +137,15 @@ public class PayMerchant implements Serializable {
     /**
      * 删除时间
      */
-    private Date deleteTime;
+    private LocalDateTime deleteTime;
 
     /**
      * 创建时间
      */
-    private Date createTime;
+    private LocalDateTime createTime;
 
     /**
      * 更新时间
      */
-    private Date updateTime;
+    private LocalDateTime updateTime;
 }

+ 15 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/UserCard.java

@@ -42,6 +42,21 @@ public class UserCard {
      */
     private String cardName;
 
+    /**
+     * 生日
+     */
+    private String birthday;
+
+    /**
+     * 性别, 0 : 未知, 1 : 男, 2 : 女
+     */
+    private Integer sex;
+
+    /**
+     * 实名证件类型 1、身份证
+     */
+    private Integer cardType;
+
     /**
      * 创建时间
      */

+ 1 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/listener/OrderPaySuccessListener.java

@@ -63,6 +63,7 @@ public class OrderPaySuccessListener {
         performOrderService.userRechargeTotal(orderInfo);
         //商户号额度统计更新
         performOrderService.payMerchantTotal(orderInfo);
+        
 
         log.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
     }

+ 0 - 19
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/ChannelService.java

@@ -1,19 +0,0 @@
-package com.zanxiang.sdk.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.zanxiang.mybatis.entity.Channel;
-
-/**
- * @author : lingfeng
- * @time : 2022-10-09
- * @description : 渠道相关接口
- */
-public interface ChannelService extends IService<Channel> {
-
-    /**
-     * 根据渠道标识获取渠道id
-     *
-     * @return : 获取渠道id
-     */
-    Long getByChannelSign(String channelSign);
-}

+ 0 - 37
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/ChannelServiceImpl.java

@@ -1,37 +0,0 @@
-package com.zanxiang.sdk.service.Impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zanxiang.mybatis.entity.Channel;
-import com.zanxiang.mybatis.mapper.ChannelMapper;
-import com.zanxiang.sdk.service.ChannelService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.logging.log4j.util.Strings;
-import org.springframework.stereotype.Service;
-
-/**
- * @author : lingfeng
- * @time : 2022-06-30
- * @description : 渠道
- */
-@Slf4j
-@Service
-public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> implements ChannelService {
-
-    /**
-     * 根据渠道标识获取渠道id
-     *
-     * @return : 获取渠道id
-     */
-    @Override
-    public Long getByChannelSign(String channelSign) {
-        if (Strings.isBlank(channelSign)) {
-            return 0L;
-        }
-        Channel channel = this.getOne(new LambdaQueryWrapper<Channel>().eq(Channel::getChannelSign, channelSign));
-        if (channel == null) {
-            return 0L;
-        }
-        return channel.getId();
-    }
-}

+ 3 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/LoginServiceImpl.java

@@ -77,7 +77,7 @@ public class LoginServiceImpl implements RegisterLoginService {
     private WordCheckService wordCheckService;
 
     @Autowired
-    private ChannelService channelService;
+    private PromoChannelService promoChannelService;
 
     @Autowired
     private UserCardService userCardService;
@@ -143,7 +143,7 @@ public class LoginServiceImpl implements RegisterLoginService {
             }
             //创建用户信息
             user = User.builder()
-                    .agentId(channelService.getByChannelSign(userData.getChannel()))
+                    .agentId(promoChannelService.getAgentIdByChannel(userData.getChannel()))
                     .gameId(userData.getGameId())
                     .username(username)
                     .password(RegisterUtil.cmfPassword(password))
@@ -186,7 +186,7 @@ public class LoginServiceImpl implements RegisterLoginService {
         //用户信息不存在, 直接注册
         if (user == null) {
             user = User.builder()
-                    .agentId(channelService.getByChannelSign(userData.getChannel()))
+                    .agentId(promoChannelService.getAgentIdByChannel(userData.getChannel()))
                     .gameId(userData.getGameId())
                     .username(mobile)
                     .mobile(mobile)

+ 2 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java

@@ -288,22 +288,20 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                 return false;
             }
             BigDecimal amount = orderInfo.getAmount();
-            Date update_time = payMerchantInfo.getDayUpdateDate();
+            LocalDateTime updateTime = payMerchantInfo.getDayUpdateDate();
             Date date = new Date();
             String totalPayAmount, mouthPayAmount, weakerPayAmount, dayPayAmount;
             totalPayAmount = " total_pay_amount = total_pay_amount + " + amount;
             mouthPayAmount = " mouth_pay_amount = mouth_pay_amount + " + amount;
             weakerPayAmount = " weaker_pay_amount = weaker_pay_amount + " + amount;
             dayPayAmount = " day_pay_amount = day_pay_amount + " + amount;
-            if (update_time != null) {
+            if (updateTime != null) {
                 if (!DateUtils.isThisMonth(payMerchantInfo.getMouthUpdateDate())) {
                     mouthPayAmount = " mouth_pay_amount = " + amount;
                 }
-
                 if (!DateUtils.isThisWeek(payMerchantInfo.getWeakerUpdateDate())) {
                     weakerPayAmount = " weaker_pay_amount = " + amount;
                 }
-
                 if (!DateUtils.isToday(payMerchantInfo.getDayUpdateDate())) {
                     dayPayAmount = " day_pay_amount = " + amount;
                 }

+ 40 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PromoChannelServiceImpl.java

@@ -0,0 +1,40 @@
+package com.zanxiang.sdk.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.mybatis.entity.PromoChannel;
+import com.zanxiang.mybatis.mapper.PromoChannelMapper;
+import com.zanxiang.sdk.service.PromoChannelService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-10-31
+ * @description : 推广渠道
+ */
+@Component
+@Slf4j
+@Service
+public class PromoChannelServiceImpl extends ServiceImpl<PromoChannelMapper, PromoChannel> implements PromoChannelService {
+
+    /**
+     * 被渠道代理id
+     *
+     * @param channel 通道
+     * @return {@link Long}
+     */
+    @Override
+    public Long getAgentIdByChannel(String channel) {
+        if (Strings.isBlank(channel)) {
+            return 0L;
+        }
+        PromoChannel promoChannel = this.getOne(new LambdaQueryWrapper<PromoChannel>().eq(PromoChannel::getChannel, channel));
+        if (promoChannel == null) {
+            return 0L;
+        }
+        return promoChannel.getId();
+    }
+}

+ 44 - 5
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserCardServiceImpl.java

@@ -51,7 +51,7 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
     private RestTemplate restTemplate;
 
     /**
-     * 异步回调地址
+     * 阿里实名应用code
      */
     @Value("${authentication.appCode}")
     private String appCode;
@@ -92,14 +92,16 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
             return new ResultVO<>(HttpStatusEnum.AUTHENTICATION_FAIL);
         }
         //新建记录
-        userCard = UserCard.builder()
+        this.save(UserCard.builder()
                 .userId(userData.getUserId())
                 .cardId(cardId)
                 .cardName(cardName)
+                .birthday(this.getBirthday(cardId))
+                .sex(this.getSex(cardId))
+                .cardType(1)
                 .createTime(LocalDateTime.now())
                 .updateTime(LocalDateTime.now())
-                .build();
-        this.save(userCard);
+                .build());
         //更新用户信息
         userService.update(new LambdaUpdateWrapper<User>()
                 .set(User::getAuthentication, this.getAge(cardId) >= 18 ? 1 : 2)
@@ -132,6 +134,22 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
         return matcher.matches();
     }
 
+    /**
+     * 通过身份证号码获取生日
+     *
+     * @param cardId : 身份证号码
+     * @return : 返回用户年龄
+     */
+    private String getBirthday(String cardId) {
+        String birthday;
+        if (cardId.length() == 15) {
+            birthday = "19" + cardId.substring(6, 8) + "-" + cardId.substring(8, 10) + "-" + cardId.substring(10, 12);
+        } else {
+            birthday = cardId.substring(6, 10) + "-" + cardId.substring(10, 12) + "-" + cardId.substring(12, 14);
+        }
+        return birthday;
+    }
+
     /**
      * 通过身份证号码获取年龄
      *
@@ -139,7 +157,12 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
      * @return : 返回用户年龄
      */
     private int getAge(String cardId) {
-        String birthday = cardId.substring(6, 14);
+        String birthday;
+        if (cardId.length() == 15) {
+            birthday = "19" + cardId.substring(6, 8);
+        } else {
+            birthday = cardId.substring(6, 14);
+        }
         Date birthDate = null;
         try {
             birthDate = new SimpleDateFormat("yyyyMMdd").parse(birthday);
@@ -156,6 +179,22 @@ public class UserCardServiceImpl extends ServiceImpl<UserCardMapper, UserCard> i
         return LocalDate.now().getYear() - birYear;
     }
 
+    /**
+     * 通过身份证号码获取性别
+     *
+     * @param cardId : 身份证号码
+     * @return : 返回用户性别, 1:男,2:女
+     */
+    private int getSex(String cardId) {
+        int sex;
+        if (cardId.length() == 15) {
+            sex = Integer.parseInt(cardId.substring(cardId.length() - 3)) % 2 == 0 ? 2 : 1;
+        } else {
+            sex = Integer.parseInt(cardId.substring(cardId.length() - 4, cardId.length() - 1)) % 2 == 0 ? 2 : 1;
+        }
+        return sex;
+    }
+
     /**
      * 阿里实名认证
      *

+ 20 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/PromoChannelService.java

@@ -0,0 +1,20 @@
+package com.zanxiang.sdk.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.mybatis.entity.PromoChannel;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-10-31
+ * @description : 推广渠道
+ */
+public interface PromoChannelService extends IService<PromoChannel> {
+
+    /**
+     * 被渠道代理id
+     *
+     * @param channel 通道
+     * @return {@link Long}
+     */
+    Long getAgentIdByChannel(String channel);
+}

+ 24 - 0
game-module/game-sdk/src/main/resources/bootstrap.yml

@@ -24,6 +24,30 @@ spring:
         shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
         max-retry: 10
 
+dubbo:
+  application:
+    name: game-sdk-dubbo
+    register-mode: instance
+    qos-enable: false
+    qos-accept-foreign-ip: false
+    metadata-service-protocol: dubbo
+    metadata-service-port: 20881
+  registry:
+    address: nacos://118.178.187.109:8848
+    timeout: 3000
+    parameters:
+      namespace: LOCAL_game
+    group: GAME
+    use-as-metadata-center: false
+    use-as-config-center: false
+  protocol:
+    name: tri
+    port: -1
+  consumer:
+    check: false
+  scan:
+    base-packages:
+