无关风月
2024-11-14 350067a73fc9ed0a35582b900533c2708d5b1212
所有代码
77个文件已删除
26个文件已修改
3949 ■■■■■ 已修改文件
.idea/encodings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/jarRepositories.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/api/SportsController.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CourseMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRegionService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HousingDemandServiceImpl.java 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RegionServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/CourseDetailVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/CourseList.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PackageListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HousingDemandReq.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/RegisterAccountReq.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/ReportHouseResourceReq.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/ReportHousingDemandReq.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHousingDemandReq.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/BannerRes.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/ContactInformationRes.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/DistrictHouseResourceNumberRes.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/DistrictRes.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/EncyclopedicKnowledgeInfoRes.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/EncyclopedicKnowledgeRes.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/HouseResourceInfoRes.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/HousingDemandInfoRes.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHouseResourceListRes.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHouseResourceRes.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandRes.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/main/resources/application-dev.yml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-core/target/classes/META-INF/spring-configuration-metadata.json 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/.idea/guns-management.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/.idea/misc.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/.idea/modules.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/AppUserController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/FitnessController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/OrderController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/UserController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/system/model/FitnessPosition.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/system/model/Package.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/java/com/stylefeng/guns/modular/system/vo/OperationalDataVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/src/main/resources/application-dev.yml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/META-INF/spring-configuration-metadata.json 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/META-INF/spring-devtools.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/application-dev.yml 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/application-produce.yml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/application.yml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/BannerMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CollectionHouseResourceMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CollectionHousingDemandMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/EncyclopedicKnowledgeMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/EncyclopedicKnowledgeUpvoteMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HouseTypeMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandDistrictMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ReportHouseResourceMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ReportHousingDemandMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SearchHistoryConditionMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SysDataTypeMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/ehcache.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-management/target/classes/logback-spring.xml 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/encodings.xml
@@ -10,5 +10,6 @@
    <file url="file://$PROJECT_DIR$/guns-generator/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/guns-management" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/guns-management/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
  </component>
</project>
.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Central Repository" />
      <option name="url" value="https://maven.aliyun.com/repository/public" />
    </remote-repository>
  </component>
</project>
README.md
@@ -1,4 +1,4 @@
## RentalHousrApplet
租房小程序
JK健身
guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java
guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java
guns-admin/src/main/java/com/stylefeng/guns/modular/api/SportsController.java
@@ -169,6 +169,8 @@
                          BigDecimal orderMoney,
                          BigDecimal realMoney) throws Exception {
        System.err.println("支付方式"+payType);
        System.err.println("购买内容"+buyType);
        AppUser appUser = appUserService.getAppUser();
        if (appUser == null){
            return ResultUtil.tokenErr("登录失效");
@@ -256,17 +258,15 @@
        }
        return ResultUtil.success();
    }
    /**
     * 购买套餐微信支付回调
     *
     * @param request
     * @param response
     */
    public static void main(String[] args) throws CertificateException {
        JSONObject jsonObject = verifyAndGet("eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlFTURDQ0E3YWdBd0lCQWdJUWZUbGZkMGZOdkZXdnpDMVlJQU5zWGpBS0JnZ3Foa2pPUFFRREF6QjFNVVF3UWdZRFZRUURERHRCY0hCc1pTQlhiM0pzWkhkcFpHVWdSR1YyWld4dmNHVnlJRkpsYkdGMGFXOXVjeUJEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURUxNQWtHQTFVRUN3d0NSell4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRJek1Ea3hNakU1TlRFMU0xb1hEVEkxTVRBeE1URTVOVEUxTWxvd2daSXhRREErQmdOVkJBTU1OMUJ5YjJRZ1JVTkRJRTFoWXlCQmNIQWdVM1J2Y21VZ1lXNWtJR2xVZFc1bGN5QlRkRzl5WlNCU1pXTmxhWEIwSUZOcFoyNXBibWN4TERBcUJnTlZCQXNNSTBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6TVJNd0VRWURWUVFLREFwQmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRUZFWWUvSnFUcXlRdi9kdFhrYXVESENTY1YxMjlGWVJWLzB4aUIyNG5DUWt6UWYzYXNISk9OUjVyMFJBMGFMdko0MzJoeTFTWk1vdXZ5ZnBtMjZqWFNqZ2dJSU1JSUNCREFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRDh2bENOUjAxREptaWc5N2JCODVjK2xrR0taTUhBR0NDc0dBUVVGQndFQkJHUXdZakF0QmdnckJnRUZCUWN3QW9ZaGFIUjBjRG92TDJObGNuUnpMbUZ3Y0d4bExtTnZiUzkzZDJSeVp6WXVaR1Z5TURFR0NDc0dBUVVGQnpBQmhpVm9kSFJ3T2k4dmIyTnpjQzVoY0hCc1pTNWpiMjB2YjJOemNEQXpMWGQzWkhKbk5qQXlNSUlCSGdZRFZSMGdCSUlCRlRDQ0FSRXdnZ0VOQmdvcWhraUc5Mk5rQlFZQk1JSCtNSUhEQmdnckJnRUZCUWNDQWpDQnRneUJzMUpsYkdsaGJtTmxJRzl1SUhSb2FYTWdZMlZ5ZEdsbWFXTmhkR1VnWW5rZ1lXNTVJSEJoY25SNUlHRnpjM1Z0WlhNZ1lXTmpaWEIwWVc1alpTQnZaaUIwYUdVZ2RHaGxiaUJoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6WlN3Z1kyVnlkR2xtYVdOaGRHVWdjRzlzYVdONUlHRnVaQ0JqWlhKMGFXWnBZMkYwYVc5dUlIQnlZV04wYVdObElITjBZWFJsYldWdWRITXVNRFlHQ0NzR0FRVUZCd0lCRmlwb2RIUndPaTh2ZDNkM0xtRndjR3hsTG1OdmJTOWpaWEowYVdacFkyRjBaV0YxZEdodmNtbDBlUzh3SFFZRFZSME9CQllFRkFNczhQanM2VmhXR1FsekUyWk9FK0dYNE9vL01BNEdBMVVkRHdFQi93UUVBd0lIZ0RBUUJnb3Foa2lHOTJOa0Jnc0JCQUlGQURBS0JnZ3Foa2pPUFFRREF3Tm9BREJsQWpFQTh5Uk5kc2twNTA2REZkUExnaExMSndBdjVKOGhCR0xhSThERXhkY1BYK2FCS2pqTzhlVW85S3BmcGNOWVVZNVlBakFQWG1NWEVaTCtRMDJhZHJtbXNoTnh6M05uS20rb3VRd1U3dkJUbjBMdmxNN3ZwczJZc2xWVGFtUllMNGFTczVrPSIsIk1JSURGakNDQXB5Z0F3SUJBZ0lVSXNHaFJ3cDBjMm52VTRZU3ljYWZQVGp6Yk5jd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NakV3TXpFM01qQXpOekV3V2hjTk16WXdNekU1TURBd01EQXdXakIxTVVRd1FnWURWUVFERER0QmNIQnNaU0JYYjNKc1pIZHBaR1VnUkdWMlpXeHZjR1Z5SUZKbGJHRjBhVzl1Y3lCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVMTUFrR0ExVUVDd3dDUnpZeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUVic1FLQzk0UHJsV21aWG5YZ3R4emRWSkw4VDBTR1luZ0RSR3BuZ24zTjZQVDhKTUViN0ZEaTRiQm1QaENuWjMvc3E2UEYvY0djS1hXc0w1dk90ZVJoeUo0NXgzQVNQN2NPQithYW85MGZjcHhTdi9FWkZibmlBYk5nWkdoSWhwSW80SDZNSUgzTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0h3WURWUjBqQkJnd0ZvQVV1N0Rlb1ZnemlKcWtpcG5ldnIzcnI5ckxKS3N3UmdZSUt3WUJCUVVIQVFFRU9qQTRNRFlHQ0NzR0FRVUZCekFCaGlwb2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBekxXRndjR3hsY205dmRHTmhaek13TndZRFZSMGZCREF3TGpBc29DcWdLSVltYUhSMGNEb3ZMMk55YkM1aGNIQnNaUzVqYjIwdllYQndiR1Z5YjI5MFkyRm5NeTVqY213d0hRWURWUjBPQkJZRUZEOHZsQ05SMDFESm1pZzk3YkI4NWMrbGtHS1pNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVFCZ29xaGtpRzkyTmtCZ0lCQkFJRkFEQUtCZ2dxaGtqT1BRUURBd05vQURCbEFqQkFYaFNxNUl5S29nTUNQdHc0OTBCYUI2NzdDYUVHSlh1ZlFCL0VxWkdkNkNTamlDdE9udU1UYlhWWG14eGN4ZmtDTVFEVFNQeGFyWlh2TnJreFUzVGtVTUkzM3l6dkZWVlJUNHd4V0pDOTk0T3NkY1o0K1JHTnNZRHlSNWdtZHIwbkRHZz0iLCJNSUlDUXpDQ0FjbWdBd0lCQWdJSUxjWDhpTkxGUzVVd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NVFF3TkRNd01UZ3hPVEEyV2hjTk16a3dORE13TVRneE9UQTJXakJuTVJzd0dRWURWUVFEREJKQmNIQnNaU0JTYjI5MElFTkJJQzBnUnpNeEpqQWtCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkpibU11TVFzd0NRWURWUVFHRXdKVlV6QjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkpqcEx6MUFjcVR0a3lKeWdSTWMzUkNWOGNXalRuSGNGQmJaRHVXbUJTcDNaSHRmVGpqVHV4eEV0WC8xSDdZeVlsM0o2WVJiVHpCUEVWb0EvVmhZREtYMUR5eE5CMGNUZGRxWGw1ZHZNVnp0SzUxN0lEdll1VlRaWHBta09sRUtNYU5DTUVBd0hRWURWUjBPQkJZRUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01RQ0Q2Y0hFRmw0YVhUUVkyZTN2OUd3T0FFWkx1Tit5UmhIRkQvM21lb3locG12T3dnUFVuUFdUeG5TNGF0K3FJeFVDTUcxbWloREsxQTNVVDgyTlF6NjBpbU9sTTI3amJkb1h0MlFmeUZNbStZaGlkRGtMRjF2TFVhZ002QmdENTZLeUtBPT0iXX0.eyJ0cmFuc2FjdGlvbklkIjoiMjAwMDAwMDc3MDUzODA1NSIsIm9yaWdpbmFsVHJhbnNhY3Rpb25JZCI6IjIwMDAwMDA3NzA1MzgwNTUiLCJidW5kbGVJZCI6ImNvbS5zaW5hdGEuSktGaXRuZXNzIiwicHJvZHVjdElkIjoiY29tLmprZml0bmVzcy5hLnByaWNlLjEiLCJwdXJjaGFzZURhdGUiOjE3MzEyOTUxOTkwMDAsIm9yaWdpbmFsUHVyY2hhc2VEYXRlIjoxNzMxMjk1MTk5MDAwLCJxdWFudGl0eSI6MSwidHlwZSI6IkNvbnN1bWFibGUiLCJpbkFwcE93bmVyc2hpcFR5cGUiOiJQVVJDSEFTRUQiLCJzaWduZWREYXRlIjoxNzMxMjk1MjA1OTIxLCJlbnZpcm9ubWVudCI6IlNhbmRib3giLCJ0cmFuc2FjdGlvblJlYXNvbiI6IlBVUkNIQVNFIiwic3RvcmVmcm9udCI6IkNITiIsInN0b3JlZnJvbnRJZCI6IjE0MzQ2NSIsInByaWNlIjo5ODAwMCwiY3VycmVuY3kiOiJDTlkifQ.8d72ZYNMwps1eZpT7iN02EGK0X-JiVqqshphNfnkDrIa0PZKsXgQfdP271_z3IKN_SJAHSUl41lMksFAKhQzmw");
        System.err.println(jsonObject);
    }
    @ResponseBody
    @PostMapping("/base/testApple")
    public void testApple(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> params = new HashMap<String, String>();
            System.err.println("请求"+request);
            BufferedReader reader = request.getReader();
@@ -278,10 +278,12 @@
                requestBody.append(line);
            }
            System.err.println("全部请求体"+requestBody);
            org.json.JSONObject jsonObject1 = new org.json.JSONObject(requestBody.toString());
            System.err.println("json串"+jsonObject1);
            String o = jsonObject1.getString("signedPayload");
            JSONObject payload = verifyAndGet(o);
            System.err.println("回调全部的返回参数"+payload);
            String notificationType = payload.get("notificationType").toString();
            JSONObject data = payload.getJSONObject("data");
            String signedTransactionInfo = data.get("signedTransactionInfo").toString();
@@ -295,8 +297,10 @@
            // 苹果流水号
            String string = transactionInfo.getString("originalTransactionId");
            System.err.println("苹果流水号"+string);
            redisUtil.setStrValue(string,string);
            Recharge orderNumber = rechargeService.selectOne(new EntityWrapper<Recharge>()
                    .eq("orderNumber", string));
            System.err.println("回调查询订单"+orderNumber);
            if (orderNumber!=null){
                if (orderNumber.getState()!=2){
                    // 进入
@@ -309,11 +313,11 @@
                    appUser.setBalance(add);
                    appUserService.updateById(appUser);
                }
            }
            PrintWriter out = response.getWriter();
            out.write("success");
            out.flush();
            out.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -684,15 +688,26 @@
                Recharge recharge1 = rechargeService.selectOne(new EntityWrapper<Recharge>()
                        .eq("id",id)
                        .eq("userId",appUser.getId()));
                System.err.println("支付接口修改订单流水号"+recharge1);
                if (recharge1 != null){
                    if (payType == 4){
                        recharge1.setPayType(3);
                    }else{
                        recharge1.setPayType(payType);
                    }
//                    payType = recharge1.getPayType();
                    recharge1.setOrderNumber(transactionIdentifier);
                    rechargeService.updateById(recharge1);
                }
                String value = redisUtil.getValue(transactionIdentifier);
                System.err.println("查询苹果流水号");
                if (value!=null){
                    System.err.println(value);
                    if (recharge1.getState()==1){
                        recharge1.setState(2);
                        recharge1.setPayTime(new Date());
                        rechargeService.updateById(recharge1);
                        // 增加余额
                        BigDecimal amount = recharge1.getAmount();
                        BigDecimal add = appUser.getBalance().add(amount);
                        appUser.setBalance(add);
                        appUserService.updateById(appUser);
                        redisUtil.remove(transactionIdentifier);
                    }
                }
                break;
        }
@@ -978,9 +993,11 @@
                Integer integer = Integer.valueOf(s);
                Integer integer1 = Integer.valueOf(s1);
                OrderCourse orderCourse = orderCourseService.selectById(integer);
                if (orderCourse.getState()==2){
                    return;
                }
                orderCourse.setOrderNumber(out_trade_no);
                orderCourse.setState(2);
                orderCourse.setPayType(2);
                orderCourse.setPayTime(new Date());
                orderCourseService.updateById(orderCourse);
@@ -1076,10 +1093,12 @@
                Integer integer = Integer.valueOf(s);
                Integer integer1 = Integer.valueOf(s1);
                Order order = orderService.selectById(integer);
                if (order.getState()==2){
                    return;
                }
                order.setOrderNumber(out_trade_no);
                order.setState(2);
                order.setPayTime(new Date());
                order.setPayType(2);
                orderService.updateById(order);
                BigDecimal divisor = new BigDecimal("100");
                // 计算提成
@@ -1173,10 +1192,12 @@
                Integer integer1 = Integer.valueOf(s1);
                // 充值余额
                Recharge recharge = rechargeService.selectById(integer);
                if (recharge.getState()==2){
                    return;
                }
                recharge.setOrderNumber(out_trade_no);
                recharge.setState(2);
                recharge.setPayTime(new Date());
                recharge.setPayType(1);
                rechargeService.updateById(recharge);
                AppUser appUser = appUserService.selectById(recharge.getUserId());
                BigDecimal balance = appUser.getBalance();
@@ -1490,28 +1511,30 @@
                    }
                    packageListVO.setPrice(aPackage.getPrice());
                    packageListVO.setIds(aPackage.getPositions());
                    packageListVO.setDifficulty(aPackage.getDifficulty());
                    // 查询这个套餐下的部位列表
                    packageListVOS.add(packageListVO);
                }
            }
        }
        for (PackageListVO packageListVO : packageListVOS) {
            List<CourseVO> courseVOS = new ArrayList<>();
            for (String s : packageListVO.getIds().split(",")) {
            String[] split = packageListVO.getIds().split(",");
            String[] split1 = packageListVO.getDifficulty().split(",");
            for (int i = 0; i < split.length; i++) {
                // 部位
                CourseVO courseVO = new CourseVO();
                StringBuilder temp = new StringBuilder("");
                FitnessPosition fitnessPosition1 = fitnessPositionService.selectById(Integer.valueOf(s));
                FitnessPosition fitnessPosition1 = fitnessPositionService.selectById(Integer.valueOf(split[i]));
                FitnessType fitnessType1 = fitnessTypeService.selectById(fitnessPosition1.getTypeId());
                if (fitnessPosition1!=null && fitnessType1!=null){
                    temp.append(fitnessType1.getName()+"|"+fitnessPosition1.getName()+"|H"+course.getDifficulty());
                if (fitnessType1!=null){
                    temp.append(fitnessType1.getName()+"|"+fitnessPosition1.getName()+"|H"+split1[i]);
                }
                courseVO.setTypeName(temp.toString());
                List<Course> courses = courseService.selectList(new EntityWrapper<Course>()
                        .eq("state", 1)
                        .eq("difficulty", course.getDifficulty())
                        .eq("positionId", Integer.valueOf(s)));
                        .eq("positionId", Integer.valueOf(split[i])));
//                Integer tem = 0;
//                for (Course cours : courses) {
//                    int size1 = courseService.selectList(new EntityWrapper<Course>()
@@ -1524,7 +1547,8 @@
            }
            packageListVO.setRecommendCourse(courseVOS);
        }
        buyDetailVO.setPackageListVOList(packageListVOS);
        List<PackageListVO> collect = packageListVOS.stream().distinct().collect(Collectors.toList());
        buyDetailVO.setPackageListVOList(collect);
        // 查询可以使用的优惠券列表
        List<CouponReceive> couponReceives = couponReceiveService.selectList
                (new EntityWrapper<CouponReceive>()
@@ -2137,12 +2161,38 @@
        Integer userId = appUserService.getAppUser().getId();
        CourseDetailVO res = new CourseDetailVO();
        List<Integer> list = new ArrayList<>();
        List<Integer> list1 = new ArrayList<>();
        CourseQuery courseQuery = new CourseQuery();
        list.add(courseId);
        list1.add(course.getDifficulty());
        courseQuery.setCourseIds(list);
        courseQuery.setDifficulty(list1);
        List<CourseList> courseLists = courseService.courseSearch1(courseQuery);
        CourseList courseList = courseLists.get(0);
        BeanUtils.copyProperties(courseList,res);
        FitnessPosition fitnessPosition = fitnessPositionService.selectById(courseList.getPositionId());
        switch (courseList.getDifficulty()){
            case 1:
                res.setPrice(fitnessPosition.getAmount());
                res.setAppleAmount(fitnessPosition.getAppleAmount());
                break;
            case 2:
                res.setPrice(fitnessPosition.getAmount2());
                res.setAppleAmount(fitnessPosition.getAppleAmount2());
                break;
            case 3:
                res.setPrice(fitnessPosition.getAmount3());
                res.setAppleAmount(fitnessPosition.getAppleAmount3());
                break;
            case 4:
                res.setPrice(fitnessPosition.getAmount4());
                res.setAppleAmount(fitnessPosition.getAppleAmount4());
                break;
            case 5:
                res.setPrice(fitnessPosition.getAmount5());
                res.setAppleAmount(fitnessPosition.getAppleAmount5());
                break;
        }
        // 查询用户是否已收藏该课程
        UserCollect userCollect = collectService.selectOne(new EntityWrapper<UserCollect>()
                .eq("userId", userId)
@@ -2154,7 +2204,7 @@
        }
        res.setId(courseId);
        res.setIsBuy(0);
        // 查询用户是否购买了该课程
        // 查询用户是否购买了该课程 或者同部位相同难度
        List<OrderCourse> courses = orderCourseService.selectList(new EntityWrapper<OrderCourse>()
                .eq("userId", userId)
        .eq("state",2));
@@ -2162,6 +2212,12 @@
            if (cours.getCourseId() == courseId){
                res.setIsBuy(1);
                break;
            }else{
                Course course1 = courseService.selectById(cours.getCourseId());
                if (course1!=null){
                    if (course1.getPositionId()==course.getPositionId() && course1.getDifficulty() == course.getDifficulty())
                        res.setIsBuy(1);
                }
            }
        }
        // 查询用户购买的套餐 是否包含该课程
@@ -2173,19 +2229,16 @@
                Integer packageId = aPackage.getPackageId();
                Package aPackage1 = packageService.selectById(packageId);
                String positions = aPackage1.getPositions();
                String difficulty = aPackage1.getDifficulty();
                if (StringUtils.hasLength(positions)){
                    String[] split = positions.split(",");
                    // 通过部位ids 获取到课程ids
                    List<Integer> positionId = courseService.selectList(new EntityWrapper<Course>()
                            .in("positionId", split)).stream().map(Course::getId)
                            .collect(Collectors.toList());
                    if (positionId.contains(courseId)){
                    String[] split1 = difficulty.split(",");
                    for (int i = 0; i < split.length; i++) {
                        String s = split1[i];
                        String s1 = split[i];
                        if (course.getPositionId() == Integer.parseInt(s1) && course.getDifficulty() == Integer.parseInt(s)){
                        res.setIsBuy(1);
                        // todo 新增需求 套餐设置指定难度 需要再判断一次难度
//                        Integer difficulty = course.getDifficulty();
//                        if (difficulty.equals(aPackage1.getDifficulty())){
//                            break;
//                       }
                        }
                    }
                }
            }
@@ -2196,10 +2249,9 @@
            Course course1 = courseService.selectById(courseId);
            // 相同的课程id 部位和难度相同
            List<Integer> positionId = courseService.selectList(new EntityWrapper<Course>()
                    .eq("positionId", course1.getPositionId())
                    .eq("typeId",course1.getTypeId() )
                    .eq("difficulty",course1.getDifficulty())
            ).stream().map(Course::getId).collect(Collectors.toList());
            // 查询下用户有没有购买其他相同部位和类型和难度的课程 如果有 那么就算已购买
            // 查询用户已购买的课程
            List<OrderCourse> orderCourses = orderCourseService.selectList(new EntityWrapper<OrderCourse>()
@@ -2418,7 +2470,6 @@
        if (appUser == null){
            return ResultUtil.tokenErr("登录失效");
        }
        req.setPageNum((req.getPageNum() - 1) * req.getPageSize());
        if (StringUtils.hasLength(req.getTime())){
            for (String s : req.getTime().split(",")) {
                if (Integer.valueOf(s) == 1){
@@ -2454,25 +2505,11 @@
            }
            req.setDifficulty(list);
        }
//        if (req.getTime()!=null){
//            switch (req.getTime()){
//                case 1:
//                    req.setStartTime(0);
//                    req.setEndTime(600);
//                    break;
//                case 2:
//                    req.setStartTime(600);
//                    req.setEndTime(1200);
//                    break;
//                case 3:
//                    req.setStartTime(1200);
//                    req.setEndTime(99999999);
//                    break;
//            }
//        }
        List<CourseList> res = courseService.courseSearch(req);
        return ResultUtil.success(res);
        List<CourseList> testing = testing(res.size(), req.getPageNum(), req.getPageSize(), res);
        return ResultUtil.success(testing);
    }
    @ResponseBody
    @PostMapping("/base/sports/getBanner")
@@ -2720,11 +2757,7 @@
        return ResultUtil.success(searchList);
    }
    public static void main(String[] args) {
        String t= "{\"signedPayload\":\"eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlFTURDQ0E3YWdBd0lCQWdJUWZUbGZkMGZOdkZXdnpDMVlJQU5zWGpBS0JnZ3Foa2pPUFFRREF6QjFNVVF3UWdZRFZRUURERHRCY0hCc1pTQlhiM0pzWkhkcFpHVWdSR1YyWld4dmNHVnlJRkpsYkdGMGFXOXVjeUJEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURUxNQWtHQTFVRUN3d0NSell4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRJek1Ea3hNakU1TlRFMU0xb1hEVEkxTVRBeE1URTVOVEUxTWxvd2daSXhRREErQmdOVkJBTU1OMUJ5YjJRZ1JVTkRJRTFoWXlCQmNIQWdVM1J2Y21VZ1lXNWtJR2xVZFc1bGN5QlRkRzl5WlNCU1pXTmxhWEIwSUZOcFoyNXBibWN4TERBcUJnTlZCQXNNSTBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6TVJNd0VRWURWUVFLREFwQmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRUZFWWUvSnFUcXlRdi9kdFhrYXVESENTY1YxMjlGWVJWLzB4aUIyNG5DUWt6UWYzYXNISk9OUjVyMFJBMGFMdko0MzJoeTFTWk1vdXZ5ZnBtMjZqWFNqZ2dJSU1JSUNCREFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRDh2bENOUjAxREptaWc5N2JCODVjK2xrR0taTUhBR0NDc0dBUVVGQndFQkJHUXdZakF0QmdnckJnRUZCUWN3QW9ZaGFIUjBjRG92TDJObGNuUnpMbUZ3Y0d4bExtTnZiUzkzZDJSeVp6WXVaR1Z5TURFR0NDc0dBUVVGQnpBQmhpVm9kSFJ3T2k4dmIyTnpjQzVoY0hCc1pTNWpiMjB2YjJOemNEQXpMWGQzWkhKbk5qQXlNSUlCSGdZRFZSMGdCSUlCRlRDQ0FSRXdnZ0VOQmdvcWhraUc5Mk5rQlFZQk1JSCtNSUhEQmdnckJnRUZCUWNDQWpDQnRneUJzMUpsYkdsaGJtTmxJRzl1SUhSb2FYTWdZMlZ5ZEdsbWFXTmhkR1VnWW5rZ1lXNTVJSEJoY25SNUlHRnpjM1Z0WlhNZ1lXTmpaWEIwWVc1alpTQnZaaUIwYUdVZ2RHaGxiaUJoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6WlN3Z1kyVnlkR2xtYVdOaGRHVWdjRzlzYVdONUlHRnVaQ0JqWlhKMGFXWnBZMkYwYVc5dUlIQnlZV04wYVdObElITjBZWFJsYldWdWRITXVNRFlHQ0NzR0FRVUZCd0lCRmlwb2RIUndPaTh2ZDNkM0xtRndjR3hsTG1OdmJTOWpaWEowYVdacFkyRjBaV0YxZEdodmNtbDBlUzh3SFFZRFZSME9CQllFRkFNczhQanM2VmhXR1FsekUyWk9FK0dYNE9vL01BNEdBMVVkRHdFQi93UUVBd0lIZ0RBUUJnb3Foa2lHOTJOa0Jnc0JCQUlGQURBS0JnZ3Foa2pPUFFRREF3Tm9BREJsQWpFQTh5Uk5kc2twNTA2REZkUExnaExMSndBdjVKOGhCR0xhSThERXhkY1BYK2FCS2pqTzhlVW85S3BmcGNOWVVZNVlBakFQWG1NWEVaTCtRMDJhZHJtbXNoTnh6M05uS20rb3VRd1U3dkJUbjBMdmxNN3ZwczJZc2xWVGFtUllMNGFTczVrPSIsIk1JSURGakNDQXB5Z0F3SUJBZ0lVSXNHaFJ3cDBjMm52VTRZU3ljYWZQVGp6Yk5jd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NakV3TXpFM01qQXpOekV3V2hjTk16WXdNekU1TURBd01EQXdXakIxTVVRd1FnWURWUVFERER0QmNIQnNaU0JYYjNKc1pIZHBaR1VnUkdWMlpXeHZjR1Z5SUZKbGJHRjBhVzl1Y3lCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVMTUFrR0ExVUVDd3dDUnpZeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUVic1FLQzk0UHJsV21aWG5YZ3R4emRWSkw4VDBTR1luZ0RSR3BuZ24zTjZQVDhKTUViN0ZEaTRiQm1QaENuWjMvc3E2UEYvY0djS1hXc0w1dk90ZVJoeUo0NXgzQVNQN2NPQithYW85MGZjcHhTdi9FWkZibmlBYk5nWkdoSWhwSW80SDZNSUgzTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0h3WURWUjBqQkJnd0ZvQVV1N0Rlb1ZnemlKcWtpcG5ldnIzcnI5ckxKS3N3UmdZSUt3WUJCUVVIQVFFRU9qQTRNRFlHQ0NzR0FRVUZCekFCaGlwb2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBekxXRndjR3hsY205dmRHTmhaek13TndZRFZSMGZCREF3TGpBc29DcWdLSVltYUhSMGNEb3ZMMk55YkM1aGNIQnNaUzVqYjIwdllYQndiR1Z5YjI5MFkyRm5NeTVqY213d0hRWURWUjBPQkJZRUZEOHZsQ05SMDFESm1pZzk3YkI4NWMrbGtHS1pNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVFCZ29xaGtpRzkyTmtCZ0lCQkFJRkFEQUtCZ2dxaGtqT1BRUURBd05vQURCbEFqQkFYaFNxNUl5S29nTUNQdHc0OTBCYUI2NzdDYUVHSlh1ZlFCL0VxWkdkNkNTamlDdE9udU1UYlhWWG14eGN4ZmtDTVFEVFNQeGFyWlh2TnJreFUzVGtVTUkzM3l6dkZWVlJUNHd4V0pDOTk0T3NkY1o0K1JHTnNZRHlSNWdtZHIwbkRHZz0iLCJNSUlDUXpDQ0FjbWdBd0lCQWdJSUxjWDhpTkxGUzVVd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NVFF3TkRNd01UZ3hPVEEyV2hjTk16a3dORE13TVRneE9UQTJXakJuTVJzd0dRWURWUVFEREJKQmNIQnNaU0JTYjI5MElFTkJJQzBnUnpNeEpqQWtCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkpibU11TVFzd0NRWURWUVFHRXdKVlV6QjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkpqcEx6MUFjcVR0a3lKeWdSTWMzUkNWOGNXalRuSGNGQmJaRHVXbUJTcDNaSHRmVGpqVHV4eEV0WC8xSDdZeVlsM0o2WVJiVHpCUEVWb0EvVmhZREtYMUR5eE5CMGNUZGRxWGw1ZHZNVnp0SzUxN0lEdll1VlRaWHBta09sRUtNYU5DTUVBd0hRWURWUjBPQkJZRUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01RQ0Q2Y0hFRmw0YVhUUVkyZTN2OUd3T0FFWkx1Tit5UmhIRkQvM21lb3locG12T3dnUFVuUFdUeG5TNGF0K3FJeFVDTUcxbWloREsxQTNVVDgyTlF6NjBpbU9sTTI3amJkb1h0MlFmeUZNbStZaGlkRGtMRjF2TFVhZ002QmdENTZLeUtBPT0iXX0.eyJub3RpZmljYXRpb25UeXBlIjoiT05FX1RJTUVfQ0hBUkdFIiwibm90aWZpY2F0aW9uVVVJRCI6IjhmMzFkZjhiLWJiNzMtNDY0NC05ODY3LWYwMzYzZWFiMjRkZSIsImRhdGEiOnsiYXBwQXBwbGVJZCI6NjQ5OTEyMzYyNywiYnVuZGxlSWQiOiJjb20uc2luYXRhLkpLRml0bmVzcyIsImJ1bmRsZVZlcnNpb24iOiIxMyIsImVudmlyb25tZW50IjoiU2FuZGJveCIsInNpZ25lZFRyYW5zYWN0aW9uSW5mbyI6ImV5SmhiR2NpT2lKRlV6STFOaUlzSW5nMVl5STZXeUpOU1VsRlRVUkRRMEUzWVdkQmQwbENRV2RKVVdaVWJHWmtNR1pPZGtaWGRucERNVmxKUVU1eldHcEJTMEpuWjNGb2EycFBVRkZSUkVGNlFqRk5WVkYzVVdkWlJGWlJVVVJFUkhSQ1kwaENjMXBUUWxoaU0wcHpXa2hrY0ZwSFZXZFNSMVl5V2xkNGRtTkhWbmxKUmtwc1lrZEdNR0ZYT1hWamVVSkVXbGhLTUdGWFduQlpNa1l3WVZjNWRVbEZSakZrUjJoMlkyMXNNR1ZVUlV4TlFXdEhRVEZWUlVOM2QwTlNlbGw0UlhwQlVrSm5UbFpDUVc5TlEydEdkMk5IZUd4SlJXeDFXWGswZUVONlFVcENaMDVXUWtGWlZFRnNWbFJOUWpSWVJGUkplazFFYTNoTmFrVTFUbFJGTVUweGIxaEVWRWt4VFZSQmVFMVVSVFZPVkVVeFRXeHZkMmRhU1hoUlJFRXJRbWRPVmtKQlRVMU9NVUo1WWpKUloxSlZUa1JKUlRGb1dYbENRbU5JUVdkVk0xSjJZMjFWWjFsWE5XdEpSMnhWWkZjMWJHTjVRbFJrUnpsNVdsTkNVMXBYVG14aFdFSXdTVVpPY0ZveU5YQmliV040VEVSQmNVSm5UbFpDUVhOTlNUQkdkMk5IZUd4SlJtUjJZMjE0YTJReWJHdGFVMEpGV2xoYWJHSkhPWGRhV0VsblZXMVdjMWxZVW5CaU1qVjZUVkpOZDBWUldVUldVVkZMUkVGd1FtTklRbk5hVTBKS1ltMU5kVTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla0phVFVKTlIwSjVjVWRUVFRRNVFXZEZSME5EY1VkVFRUUTVRWGRGU0VFd1NVRkNSVVpGV1dVdlNuRlVjWGxSZGk5a2RGaHJZWFZFU0VOVFkxWXhNamxHV1ZKV0x6QjRhVUl5Tkc1RFVXdDZVV1l6WVhOSVNrOU9ValZ5TUZKQk1HRk1ka28wTXpKb2VURlRXazF2ZFhaNVpuQnRNalpxV0ZOcVoyZEpTVTFKU1VOQ1JFRk5RbWRPVmtoU1RVSkJaamhGUVdwQlFVMUNPRWRCTVZWa1NYZFJXVTFDWVVGR1JEaDJiRU5PVWpBeFJFcHRhV2M1TjJKQ09EVmpLMnhyUjB0YVRVaEJSME5EYzBkQlVWVkdRbmRGUWtKSFVYZFpha0YwUW1kbmNrSm5SVVpDVVdOM1FXOVphR0ZJVWpCalJHOTJUREpPYkdOdVVucE1iVVozWTBkNGJFeHRUblppVXprelpESlNlVnA2V1hWYVIxWjVUVVJGUjBORGMwZEJVVlZHUW5wQlFtaHBWbTlrU0ZKM1QyazRkbUl5VG5walF6Vm9ZMGhDYzFwVE5XcGlNakIyWWpKT2VtTkVRWHBNV0dReldraEtiazVxUVhsTlNVbENTR2RaUkZaU01HZENTVWxDUmxSRFEwRlNSWGRuWjBWT1FtZHZjV2hyYVVjNU1rNXJRbEZaUWsxSlNDdE5TVWhFUW1kbmNrSm5SVVpDVVdORFFXcERRblJuZVVKek1VcHNZa2RzYUdKdFRteEpSemwxU1VoU2IyRllUV2RaTWxaNVpFZHNiV0ZYVG1oa1IxVm5XVzVyWjFsWE5UVkpTRUpvWTI1U05VbEhSbnBqTTFaMFdsaE5aMWxYVG1wYVdFSXdXVmMxYWxwVFFuWmFhVUl3WVVkVloyUkhhR3hpYVVKb1kwaENjMkZYVG1oWmJYaHNTVWhPTUZsWE5XdFpXRXByU1VoU2JHTnRNWHBKUjBaMVdrTkNhbUl5Tld0aFdGSndZakkxZWtsSE9XMUpTRlo2V2xOM1oxa3lWbmxrUjJ4dFlWZE9hR1JIVldkalJ6bHpZVmRPTlVsSFJuVmFRMEpxV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxJUW5sWlYwNHdZVmRPYkVsSVRqQlpXRkpzWWxkV2RXUklUWFZOUkZsSFEwTnpSMEZSVlVaQ2QwbENSbWx3YjJSSVVuZFBhVGgyWkROa00weHRSbmRqUjNoc1RHMU9kbUpUT1dwYVdFb3dZVmRhY0ZreVJqQmFWMFl4WkVkb2RtTnRiREJsVXpoM1NGRlpSRlpTTUU5Q1FsbEZSa0ZOY3poUWFuTTJWbWhYUjFGc2VrVXlXazlGSzBkWU5FOXZMMDFCTkVkQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlVVSm5iM0ZvYTJsSE9USk9hMEpuYzBKQ1FVbEdRVVJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRVGg1VWs1a2MydHdOVEEyUkVaa1VFeG5hRXhNU25kQmRqVktPR2hDUjB4aFNUaEVSWGhrWTFCWUsyRkNTMnBxVHpobFZXODVTM0JtY0dOT1dWVlpOVmxCYWtGUVdHMU5XRVZhVEN0Uk1ESmhaSEp0YlhOb1RuaDZNMDV1UzIwcmIzVlJkMVUzZGtKVWJqQk1kbXhOTjNad2N6SlpjMnhXVkdGdFVsbE1OR0ZUY3pWclBTSXNJazFKU1VSR2FrTkRRWEI1WjBGM1NVSkJaMGxWU1hOSGFGSjNjREJqTW01MlZUUlpVM2xqWVdaUVZHcDZZazVqZDBObldVbExiMXBKZW1vd1JVRjNUWGRhZWtWaVRVSnJSMEV4VlVWQmQzZFRVVmhDZDJKSFZXZFZiVGwyWkVOQ1JGRlRRWFJKUldONlRWTlpkMHBCV1VSV1VWRk1SRUl4UW1OSVFuTmFVMEpFV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxGUmpGa1IyaDJZMjFzTUdWVVJWUk5Ra1ZIUVRGVlJVTm5kMHRSV0VKM1lrZFZaMU5YTldwTWFrVk1UVUZyUjBFeFZVVkNhRTFEVmxaTmQwaG9ZMDVOYWtWM1RYcEZNMDFxUVhwT2VrVjNWMmhqVGsxNldYZE5la1UxVFVSQmQwMUVRWGRYYWtJeFRWVlJkMUZuV1VSV1VWRkVSRVIwUW1OSVFuTmFVMEpZWWpOS2MxcElaSEJhUjFWblVrZFdNbHBYZUhaalIxWjVTVVpLYkdKSFJqQmhWemwxWTNsQ1JGcFlTakJoVjFwd1dUSkdNR0ZYT1hWSlJVWXhaRWRvZG1OdGJEQmxWRVZNVFVGclIwRXhWVVZEZDNkRFVucFplRVY2UVZKQ1owNVdRa0Z2VFVOclJuZGpSM2hzU1VWc2RWbDVOSGhEZWtGS1FtZE9Wa0pCV1ZSQmJGWlVUVWhaZDBWQldVaExiMXBKZW1vd1EwRlJXVVpMTkVWRlFVTkpSRmxuUVVWaWMxRkxRemswVUhKc1YyMWFXRzVZWjNSNGVtUldTa3c0VkRCVFIxbHVaMFJTUjNCdVoyNHpUalpRVkRoS1RVVmlOMFpFYVRSaVFtMVFhRU51V2pNdmMzRTJVRVl2WTBkalMxaFhjMHcxZGs5MFpWSm9lVW8wTlhnelFWTlFOMk5QUWl0aFlXODVNR1pqY0hoVGRpOUZXa1ppYm1sQllrNW5Xa2RvU1dod1NXODBTRFpOU1VnelRVSkpSMEV4VldSRmQwVkNMM2RSU1UxQldVSkJaamhEUVZGQmQwaDNXVVJXVWpCcVFrSm5kMFp2UVZWMU4wUmxiMVpuZW1sS2NXdHBjRzVsZG5JemNuSTVja3hLUzNOM1VtZFpTVXQzV1VKQ1VWVklRVkZGUlU5cVFUUk5SRmxIUTBOelIwRlJWVVpDZWtGQ2FHbHdiMlJJVW5kUGFUaDJZakpPZW1ORE5XaGpTRUp6V2xNMWFtSXlNSFppTWs1NlkwUkJla3hYUm5kalIzaHNZMjA1ZG1SSFRtaGFlazEzVG5kWlJGWlNNR1pDUkVGM1RHcEJjMjlEY1dkTFNWbHRZVWhTTUdORWIzWk1NazU1WWtNMWFHTklRbk5hVXpWcVlqSXdkbGxZUW5kaVIxWjVZakk1TUZreVJtNU5lVFZxWTIxM2QwaFJXVVJXVWpCUFFrSlpSVVpFT0hac1EwNVNNREZFU20xcFp6azNZa0k0TldNcmJHdEhTMXBOUVRSSFFURlZaRVIzUlVJdmQxRkZRWGRKUWtKcVFWRkNaMjl4YUd0cFJ6a3lUbXRDWjBsQ1FrRkpSa0ZFUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV2UVVSQ2JFRnFRa0ZZYUZOeE5VbDVTMjluVFVOUWRIYzBPVEJDWVVJMk56ZERZVVZIU2xoMVpsRkNMMFZ4V2tka05rTlRhbWxEZEU5dWRVMVVZbGhXV0cxNGVHTjRabXREVFZGRVZGTlFlR0Z5V2xoMlRuSnJlRlV6Vkd0VlRVa3pNM2w2ZGtaV1ZsSlVOSGQ0VjBwRE9UazBUM05rWTFvMEsxSkhUbk5aUkhsU05XZHRaSEl3YmtSSFp6MGlMQ0pOU1VsRFVYcERRMEZqYldkQmQwbENRV2RKU1V4aldEaHBUa3hHVXpWVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhkYWVrVmlUVUpyUjBFeFZVVkJkM2RUVVZoQ2QySkhWV2RWYlRsMlpFTkNSRkZUUVhSSlJXTjZUVk5aZDBwQldVUldVVkZNUkVJeFFtTklRbk5hVTBKRVdsaEtNR0ZYV25CWk1rWXdZVmM1ZFVsRlJqRmtSMmgyWTIxc01HVlVSVlJOUWtWSFFURlZSVU5uZDB0UldFSjNZa2RWWjFOWE5XcE1ha1ZNVFVGclIwRXhWVVZDYUUxRFZsWk5kMGhvWTA1TlZGRjNUa1JOZDAxVVozaFBWRUV5VjJoalRrMTZhM2RPUkUxM1RWUm5lRTlVUVRKWGFrSnVUVkp6ZDBkUldVUldVVkZFUkVKS1FtTklRbk5hVTBKVFlqSTVNRWxGVGtKSlF6Qm5VbnBOZUVwcVFXdENaMDVXUWtGelRVaFZSbmRqUjNoc1NVVk9iR051VW5CYWJXeHFXVmhTY0dJeU5HZFJXRll3WVVjNWVXRllValZOVWsxM1JWRlpSRlpSVVV0RVFYQkNZMGhDYzFwVFFrcGliVTExVFZGemQwTlJXVVJXVVZGSFJYZEtWbFY2UWpKTlFrRkhRbmx4UjFOTk5EbEJaMFZIUWxOMVFrSkJRV2xCTWtsQlFrcHFjRXg2TVVGamNWUjBhM2xLZVdkU1RXTXpVa05XT0dOWGFsUnVTR05HUW1KYVJIVlhiVUpUY0ROYVNIUm1WR3BxVkhWNGVFVjBXQzh4U0RkWmVWbHNNMG8yV1ZKaVZIcENVRVZXYjBFdlZtaFpSRXRZTVVSNWVFNUNNR05VWkdSeFdHdzFaSFpOVm5wMFN6VXhOMGxFZGxsMVZsUmFXSEJ0YTA5c1JVdE5ZVTVEVFVWQmQwaFJXVVJXVWpCUFFrSlpSVVpNZFhjemNVWlpUVFJwWVhCSmNWb3pjalk1TmpZdllYbDVVM0pOUVRoSFFURlZaRVYzUlVJdmQxRkdUVUZOUWtGbU9IZEVaMWxFVmxJd1VFRlJTQzlDUVZGRVFXZEZSMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMVJRMFEyWTBoRlJtdzBZVmhVVVZreVpUTjJPVWQzVDBGRldreDFUaXQ1VW1oSVJrUXZNMjFsYjNsb2NHMTJUM2RuVUZWdVVGZFVlRzVUTkdGMEszRkplRlZEVFVjeGJXbG9SRXN4UVROVlZEZ3lUbEY2TmpCcGJVOXNUVEkzYW1Ka2IxaDBNbEZtZVVaTmJTdFphR2xrUkd0TVJqRjJURlZoWjAwMlFtZEVOVFpMZVV0QlBUMGlYWDAuZXlKMGNtRnVjMkZqZEdsdmJrbGtJam9pTWpBd01EQXdNRFkyTXpRM05qY3lOaUlzSW05eWFXZHBibUZzVkhKaGJuTmhZM1JwYjI1SlpDSTZJakl3TURBd01EQTJOak0wTnpZM01qWWlMQ0ppZFc1a2JHVkpaQ0k2SW1OdmJTNXphVzVoZEdFdVNrdEdhWFJ1WlhOeklpd2ljSEp2WkhWamRFbGtJam9pWTI5dExtcHJabWwwYm1WemN5NWhMbkJ5YVdObExqRWlMQ0p3ZFhKamFHRnpaVVJoZEdVaU9qRTNNakUyTlRBM056SXdNREFzSW05eWFXZHBibUZzVUhWeVkyaGhjMlZFWVhSbElqb3hOekl4TmpVd056Y3lNREF3TENKeGRXRnVkR2wwZVNJNk1Td2lkSGx3WlNJNklrTnZibk4xYldGaWJHVWlMQ0pwYmtGd2NFOTNibVZ5YzJocGNGUjVjR1VpT2lKUVZWSkRTRUZUUlVRaUxDSnphV2R1WldSRVlYUmxJam94TnpJeE5qVXdOemt4TWpRM0xDSmxiblpwY205dWJXVnVkQ0k2SWxOaGJtUmliM2dpTENKMGNtRnVjMkZqZEdsdmJsSmxZWE52YmlJNklsQlZVa05JUVZORklpd2ljM1J2Y21WbWNtOXVkQ0k2SWtOSVRpSXNJbk4wYjNKbFpuSnZiblJKWkNJNklqRTBNelEyTlNJc0luQnlhV05sSWpvNU9EQXdNQ3dpWTNWeWNtVnVZM2tpT2lKRFRsa2lmUS5ES3JibWNYZkNGSDBadlJBNlZXWGkzLWN6cC03WHptTjhIM25PRUs4UnZxUFRXZ3VFYThqWUxhWHU5dHBLc1lQWlNvV0d4NHFXUy1nVXFMVFV1bXNlZyJ9LCJ2ZXJzaW9uIjoiMi4wIiwic2lnbmVkRGF0ZSI6MTcyMTY1MDc5MTI2OX0.imD544tZ0FLw4lPrcpRB279O_SpRab_6z5aUJRoPoe_3CzhT4pwonOmM74PYItQQwpMYwB79SCQaCVVLMsPV1w\"}";
        org.json.JSONObject jsonObject = new org.json.JSONObject(t);
        System.err.println(jsonObject.getString("signedPayload"));
    }
//    public static void main(String[] args) throws CertificateException {
//        try {
//            JSONObject payload = verifyAndGet("eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlFTURDQ0E3YWdBd0lCQWdJUWZUbGZkMGZOdkZXdnpDMVlJQU5zWGpBS0JnZ3Foa2pPUFFRREF6QjFNVVF3UWdZRFZRUURERHRCY0hCc1pTQlhiM0pzWkhkcFpHVWdSR1YyWld4dmNHVnlJRkpsYkdGMGFXOXVjeUJEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURUxNQWtHQTFVRUN3d0NSell4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRJek1Ea3hNakU1TlRFMU0xb1hEVEkxTVRBeE1URTVOVEUxTWxvd2daSXhRREErQmdOVkJBTU1OMUJ5YjJRZ1JVTkRJRTFoWXlCQmNIQWdVM1J2Y21VZ1lXNWtJR2xVZFc1bGN5QlRkRzl5WlNCU1pXTmxhWEIwSUZOcFoyNXBibWN4TERBcUJnTlZCQXNNSTBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6TVJNd0VRWURWUVFLREFwQmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRUZFWWUvSnFUcXlRdi9kdFhrYXVESENTY1YxMjlGWVJWLzB4aUIyNG5DUWt6UWYzYXNISk9OUjVyMFJBMGFMdko0MzJoeTFTWk1vdXZ5ZnBtMjZqWFNqZ2dJSU1JSUNCREFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRDh2bENOUjAxREptaWc5N2JCODVjK2xrR0taTUhBR0NDc0dBUVVGQndFQkJHUXdZakF0QmdnckJnRUZCUWN3QW9ZaGFIUjBjRG92TDJObGNuUnpMbUZ3Y0d4bExtTnZiUzkzZDJSeVp6WXVaR1Z5TURFR0NDc0dBUVVGQnpBQmhpVm9kSFJ3T2k4dmIyTnpjQzVoY0hCc1pTNWpiMjB2YjJOemNEQXpMWGQzWkhKbk5qQXlNSUlCSGdZRFZSMGdCSUlCRlRDQ0FSRXdnZ0VOQmdvcWhraUc5Mk5rQlFZQk1JSCtNSUhEQmdnckJnRUZCUWNDQWpDQnRneUJzMUpsYkdsaGJtTmxJRzl1SUhSb2FYTWdZMlZ5ZEdsbWFXTmhkR1VnWW5rZ1lXNTVJSEJoY25SNUlHRnpjM1Z0WlhNZ1lXTmpaWEIwWVc1alpTQnZaaUIwYUdVZ2RHaGxiaUJoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6WlN3Z1kyVnlkR2xtYVdOaGRHVWdjRzlzYVdONUlHRnVaQ0JqWlhKMGFXWnBZMkYwYVc5dUlIQnlZV04wYVdObElITjBZWFJsYldWdWRITXVNRFlHQ0NzR0FRVUZCd0lCRmlwb2RIUndPaTh2ZDNkM0xtRndjR3hsTG1OdmJTOWpaWEowYVdacFkyRjBaV0YxZEdodmNtbDBlUzh3SFFZRFZSME9CQllFRkFNczhQanM2VmhXR1FsekUyWk9FK0dYNE9vL01BNEdBMVVkRHdFQi93UUVBd0lIZ0RBUUJnb3Foa2lHOTJOa0Jnc0JCQUlGQURBS0JnZ3Foa2pPUFFRREF3Tm9BREJsQWpFQTh5Uk5kc2twNTA2REZkUExnaExMSndBdjVKOGhCR0xhSThERXhkY1BYK2FCS2pqTzhlVW85S3BmcGNOWVVZNVlBakFQWG1NWEVaTCtRMDJhZHJtbXNoTnh6M05uS20rb3VRd1U3dkJUbjBMdmxNN3ZwczJZc2xWVGFtUllMNGFTczVrPSIsIk1JSURGakNDQXB5Z0F3SUJBZ0lVSXNHaFJ3cDBjMm52VTRZU3ljYWZQVGp6Yk5jd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NakV3TXpFM01qQXpOekV3V2hjTk16WXdNekU1TURBd01EQXdXakIxTVVRd1FnWURWUVFERER0QmNIQnNaU0JYYjNKc1pIZHBaR1VnUkdWMlpXeHZjR1Z5SUZKbGJHRjBhVzl1Y3lCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVMTUFrR0ExVUVDd3dDUnpZeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUVic1FLQzk0UHJsV21aWG5YZ3R4emRWSkw4VDBTR1luZ0RSR3BuZ24zTjZQVDhKTUViN0ZEaTRiQm1QaENuWjMvc3E2UEYvY0djS1hXc0w1dk90ZVJoeUo0NXgzQVNQN2NPQithYW85MGZjcHhTdi9FWkZibmlBYk5nWkdoSWhwSW80SDZNSUgzTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0h3WURWUjBqQkJnd0ZvQVV1N0Rlb1ZnemlKcWtpcG5ldnIzcnI5ckxKS3N3UmdZSUt3WUJCUVVIQVFFRU9qQTRNRFlHQ0NzR0FRVUZCekFCaGlwb2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBekxXRndjR3hsY205dmRHTmhaek13TndZRFZSMGZCREF3TGpBc29DcWdLSVltYUhSMGNEb3ZMMk55YkM1aGNIQnNaUzVqYjIwdllYQndiR1Z5YjI5MFkyRm5NeTVqY213d0hRWURWUjBPQkJZRUZEOHZsQ05SMDFESm1pZzk3YkI4NWMrbGtHS1pNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVFCZ29xaGtpRzkyTmtCZ0lCQkFJRkFEQUtCZ2dxaGtqT1BRUURBd05vQURCbEFqQkFYaFNxNUl5S29nTUNQdHc0OTBCYUI2NzdDYUVHSlh1ZlFCL0VxWkdkNkNTamlDdE9udU1UYlhWWG14eGN4ZmtDTVFEVFNQeGFyWlh2TnJreFUzVGtVTUkzM3l6dkZWVlJUNHd4V0pDOTk0T3NkY1o0K1JHTnNZRHlSNWdtZHIwbkRHZz0iLCJNSUlDUXpDQ0FjbWdBd0lCQWdJSUxjWDhpTkxGUzVVd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NVFF3TkRNd01UZ3hPVEEyV2hjTk16a3dORE13TVRneE9UQTJXakJuTVJzd0dRWURWUVFEREJKQmNIQnNaU0JTYjI5MElFTkJJQzBnUnpNeEpqQWtCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkpibU11TVFzd0NRWURWUVFHRXdKVlV6QjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkpqcEx6MUFjcVR0a3lKeWdSTWMzUkNWOGNXalRuSGNGQmJaRHVXbUJTcDNaSHRmVGpqVHV4eEV0WC8xSDdZeVlsM0o2WVJiVHpCUEVWb0EvVmhZREtYMUR5eE5CMGNUZGRxWGw1ZHZNVnp0SzUxN0lEdll1VlRaWHBta09sRUtNYU5DTUVBd0hRWURWUjBPQkJZRUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01RQ0Q2Y0hFRmw0YVhUUVkyZTN2OUd3T0FFWkx1Tit5UmhIRkQvM21lb3locG12T3dnUFVuUFdUeG5TNGF0K3FJeFVDTUcxbWloREsxQTNVVDgyTlF6NjBpbU9sTTI3amJkb1h0MlFmeUZNbStZaGlkRGtMRjF2TFVhZ002QmdENTZLeUtBPT0iXX0.eyJub3RpZmljYXRpb25UeXBlIjoiT05FX1RJTUVfQ0hBUkdFIiwibm90aWZpY2F0aW9uVVVJRCI6ImFkMGEyODJiLWI0ZmEtNGE5ZS05YTk3LWEzYjZiNTQ2NWQ1OCIsImRhdGEiOnsiYXBwQXBwbGVJZCI6NjQ5OTEyMzYyNywiYnVuZGxlSWQiOiJjb20uc2luYXRhLkpLRml0bmVzcyIsImJ1bmRsZVZlcnNpb24iOiIxMyIsImVudmlyb25tZW50IjoiU2FuZGJveCIsInNpZ25lZFRyYW5zYWN0aW9uSW5mbyI6ImV5SmhiR2NpT2lKRlV6STFOaUlzSW5nMVl5STZXeUpOU1VsRlRVUkRRMEUzWVdkQmQwbENRV2RKVVdaVWJHWmtNR1pPZGtaWGRucERNVmxKUVU1eldHcEJTMEpuWjNGb2EycFBVRkZSUkVGNlFqRk5WVkYzVVdkWlJGWlJVVVJFUkhSQ1kwaENjMXBUUWxoaU0wcHpXa2hrY0ZwSFZXZFNSMVl5V2xkNGRtTkhWbmxKUmtwc1lrZEdNR0ZYT1hWamVVSkVXbGhLTUdGWFduQlpNa1l3WVZjNWRVbEZSakZrUjJoMlkyMXNNR1ZVUlV4TlFXdEhRVEZWUlVOM2QwTlNlbGw0UlhwQlVrSm5UbFpDUVc5TlEydEdkMk5IZUd4SlJXeDFXWGswZUVONlFVcENaMDVXUWtGWlZFRnNWbFJOUWpSWVJGUkplazFFYTNoTmFrVTFUbFJGTVUweGIxaEVWRWt4VFZSQmVFMVVSVFZPVkVVeFRXeHZkMmRhU1hoUlJFRXJRbWRPVmtKQlRVMU9NVUo1WWpKUloxSlZUa1JKUlRGb1dYbENRbU5JUVdkVk0xSjJZMjFWWjFsWE5XdEpSMnhWWkZjMWJHTjVRbFJrUnpsNVdsTkNVMXBYVG14aFdFSXdTVVpPY0ZveU5YQmliV040VEVSQmNVSm5UbFpDUVhOTlNUQkdkMk5IZUd4SlJtUjJZMjE0YTJReWJHdGFVMEpGV2xoYWJHSkhPWGRhV0VsblZXMVdjMWxZVW5CaU1qVjZUVkpOZDBWUldVUldVVkZMUkVGd1FtTklRbk5hVTBKS1ltMU5kVTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla0phVFVKTlIwSjVjVWRUVFRRNVFXZEZSME5EY1VkVFRUUTVRWGRGU0VFd1NVRkNSVVpGV1dVdlNuRlVjWGxSZGk5a2RGaHJZWFZFU0VOVFkxWXhNamxHV1ZKV0x6QjRhVUl5Tkc1RFVXdDZVV1l6WVhOSVNrOU9ValZ5TUZKQk1HRk1ka28wTXpKb2VURlRXazF2ZFhaNVpuQnRNalpxV0ZOcVoyZEpTVTFKU1VOQ1JFRk5RbWRPVmtoU1RVSkJaamhGUVdwQlFVMUNPRWRCTVZWa1NYZFJXVTFDWVVGR1JEaDJiRU5PVWpBeFJFcHRhV2M1TjJKQ09EVmpLMnhyUjB0YVRVaEJSME5EYzBkQlVWVkdRbmRGUWtKSFVYZFpha0YwUW1kbmNrSm5SVVpDVVdOM1FXOVphR0ZJVWpCalJHOTJUREpPYkdOdVVucE1iVVozWTBkNGJFeHRUblppVXprelpESlNlVnA2V1hWYVIxWjVUVVJGUjBORGMwZEJVVlZHUW5wQlFtaHBWbTlrU0ZKM1QyazRkbUl5VG5walF6Vm9ZMGhDYzFwVE5XcGlNakIyWWpKT2VtTkVRWHBNV0dReldraEtiazVxUVhsTlNVbENTR2RaUkZaU01HZENTVWxDUmxSRFEwRlNSWGRuWjBWT1FtZHZjV2hyYVVjNU1rNXJRbEZaUWsxSlNDdE5TVWhFUW1kbmNrSm5SVVpDVVdORFFXcERRblJuZVVKek1VcHNZa2RzYUdKdFRteEpSemwxU1VoU2IyRllUV2RaTWxaNVpFZHNiV0ZYVG1oa1IxVm5XVzVyWjFsWE5UVkpTRUpvWTI1U05VbEhSbnBqTTFaMFdsaE5aMWxYVG1wYVdFSXdXVmMxYWxwVFFuWmFhVUl3WVVkVloyUkhhR3hpYVVKb1kwaENjMkZYVG1oWmJYaHNTVWhPTUZsWE5XdFpXRXByU1VoU2JHTnRNWHBKUjBaMVdrTkNhbUl5Tld0aFdGSndZakkxZWtsSE9XMUpTRlo2V2xOM1oxa3lWbmxrUjJ4dFlWZE9hR1JIVldkalJ6bHpZVmRPTlVsSFJuVmFRMEpxV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxJUW5sWlYwNHdZVmRPYkVsSVRqQlpXRkpzWWxkV2RXUklUWFZOUkZsSFEwTnpSMEZSVlVaQ2QwbENSbWx3YjJSSVVuZFBhVGgyWkROa00weHRSbmRqUjNoc1RHMU9kbUpUT1dwYVdFb3dZVmRhY0ZreVJqQmFWMFl4WkVkb2RtTnRiREJsVXpoM1NGRlpSRlpTTUU5Q1FsbEZSa0ZOY3poUWFuTTJWbWhYUjFGc2VrVXlXazlGSzBkWU5FOXZMMDFCTkVkQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlVVSm5iM0ZvYTJsSE9USk9hMEpuYzBKQ1FVbEdRVVJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRVGg1VWs1a2MydHdOVEEyUkVaa1VFeG5hRXhNU25kQmRqVktPR2hDUjB4aFNUaEVSWGhrWTFCWUsyRkNTMnBxVHpobFZXODVTM0JtY0dOT1dWVlpOVmxCYWtGUVdHMU5XRVZhVEN0Uk1ESmhaSEp0YlhOb1RuaDZNMDV1UzIwcmIzVlJkMVUzZGtKVWJqQk1kbXhOTjNad2N6SlpjMnhXVkdGdFVsbE1OR0ZUY3pWclBTSXNJazFKU1VSR2FrTkRRWEI1WjBGM1NVSkJaMGxWU1hOSGFGSjNjREJqTW01MlZUUlpVM2xqWVdaUVZHcDZZazVqZDBObldVbExiMXBKZW1vd1JVRjNUWGRhZWtWaVRVSnJSMEV4VlVWQmQzZFRVVmhDZDJKSFZXZFZiVGwyWkVOQ1JGRlRRWFJKUldONlRWTlpkMHBCV1VSV1VWRk1SRUl4UW1OSVFuTmFVMEpFV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxGUmpGa1IyaDJZMjFzTUdWVVJWUk5Ra1ZIUVRGVlJVTm5kMHRSV0VKM1lrZFZaMU5YTldwTWFrVk1UVUZyUjBFeFZVVkNhRTFEVmxaTmQwaG9ZMDVOYWtWM1RYcEZNMDFxUVhwT2VrVjNWMmhqVGsxNldYZE5la1UxVFVSQmQwMUVRWGRYYWtJeFRWVlJkMUZuV1VSV1VWRkVSRVIwUW1OSVFuTmFVMEpZWWpOS2MxcElaSEJhUjFWblVrZFdNbHBYZUhaalIxWjVTVVpLYkdKSFJqQmhWemwxWTNsQ1JGcFlTakJoVjFwd1dUSkdNR0ZYT1hWSlJVWXhaRWRvZG1OdGJEQmxWRVZNVFVGclIwRXhWVVZEZDNkRFVucFplRVY2UVZKQ1owNVdRa0Z2VFVOclJuZGpSM2hzU1VWc2RWbDVOSGhEZWtGS1FtZE9Wa0pCV1ZSQmJGWlVUVWhaZDBWQldVaExiMXBKZW1vd1EwRlJXVVpMTkVWRlFVTkpSRmxuUVVWaWMxRkxRemswVUhKc1YyMWFXRzVZWjNSNGVtUldTa3c0VkRCVFIxbHVaMFJTUjNCdVoyNHpUalpRVkRoS1RVVmlOMFpFYVRSaVFtMVFhRU51V2pNdmMzRTJVRVl2WTBkalMxaFhjMHcxZGs5MFpWSm9lVW8wTlhnelFWTlFOMk5QUWl0aFlXODVNR1pqY0hoVGRpOUZXa1ppYm1sQllrNW5Xa2RvU1dod1NXODBTRFpOU1VnelRVSkpSMEV4VldSRmQwVkNMM2RSU1UxQldVSkJaamhEUVZGQmQwaDNXVVJXVWpCcVFrSm5kMFp2UVZWMU4wUmxiMVpuZW1sS2NXdHBjRzVsZG5JemNuSTVja3hLUzNOM1VtZFpTVXQzV1VKQ1VWVklRVkZGUlU5cVFUUk5SRmxIUTBOelIwRlJWVVpDZWtGQ2FHbHdiMlJJVW5kUGFUaDJZakpPZW1ORE5XaGpTRUp6V2xNMWFtSXlNSFppTWs1NlkwUkJla3hYUm5kalIzaHNZMjA1ZG1SSFRtaGFlazEzVG5kWlJGWlNNR1pDUkVGM1RHcEJjMjlEY1dkTFNWbHRZVWhTTUdORWIzWk1NazU1WWtNMWFHTklRbk5hVXpWcVlqSXdkbGxZUW5kaVIxWjVZakk1TUZreVJtNU5lVFZxWTIxM2QwaFJXVVJXVWpCUFFrSlpSVVpFT0hac1EwNVNNREZFU20xcFp6azNZa0k0TldNcmJHdEhTMXBOUVRSSFFURlZaRVIzUlVJdmQxRkZRWGRKUWtKcVFWRkNaMjl4YUd0cFJ6a3lUbXRDWjBsQ1FrRkpSa0ZFUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV2UVVSQ2JFRnFRa0ZZYUZOeE5VbDVTMjluVFVOUWRIYzBPVEJDWVVJMk56ZERZVVZIU2xoMVpsRkNMMFZ4V2tka05rTlRhbWxEZEU5dWRVMVVZbGhXV0cxNGVHTjRabXREVFZGRVZGTlFlR0Z5V2xoMlRuSnJlRlV6Vkd0VlRVa3pNM2w2ZGtaV1ZsSlVOSGQ0VjBwRE9UazBUM05rWTFvMEsxSkhUbk5aUkhsU05XZHRaSEl3YmtSSFp6MGlMQ0pOU1VsRFVYcERRMEZqYldkQmQwbENRV2RKU1V4aldEaHBUa3hHVXpWVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhkYWVrVmlUVUpyUjBFeFZVVkJkM2RUVVZoQ2QySkhWV2RWYlRsMlpFTkNSRkZUUVhSSlJXTjZUVk5aZDBwQldVUldVVkZNUkVJeFFtTklRbk5hVTBKRVdsaEtNR0ZYV25CWk1rWXdZVmM1ZFVsRlJqRmtSMmgyWTIxc01HVlVSVlJOUWtWSFFURlZSVU5uZDB0UldFSjNZa2RWWjFOWE5XcE1ha1ZNVFVGclIwRXhWVVZDYUUxRFZsWk5kMGhvWTA1TlZGRjNUa1JOZDAxVVozaFBWRUV5VjJoalRrMTZhM2RPUkUxM1RWUm5lRTlVUVRKWGFrSnVUVkp6ZDBkUldVUldVVkZFUkVKS1FtTklRbk5hVTBKVFlqSTVNRWxGVGtKSlF6Qm5VbnBOZUVwcVFXdENaMDVXUWtGelRVaFZSbmRqUjNoc1NVVk9iR051VW5CYWJXeHFXVmhTY0dJeU5HZFJXRll3WVVjNWVXRllValZOVWsxM1JWRlpSRlpSVVV0RVFYQkNZMGhDYzFwVFFrcGliVTExVFZGemQwTlJXVVJXVVZGSFJYZEtWbFY2UWpKTlFrRkhRbmx4UjFOTk5EbEJaMFZIUWxOMVFrSkJRV2xCTWtsQlFrcHFjRXg2TVVGamNWUjBhM2xLZVdkU1RXTXpVa05XT0dOWGFsUnVTR05HUW1KYVJIVlhiVUpUY0ROYVNIUm1WR3BxVkhWNGVFVjBXQzh4U0RkWmVWbHNNMG8yV1ZKaVZIcENVRVZXYjBFdlZtaFpSRXRZTVVSNWVFNUNNR05VWkdSeFdHdzFaSFpOVm5wMFN6VXhOMGxFZGxsMVZsUmFXSEJ0YTA5c1JVdE5ZVTVEVFVWQmQwaFJXVVJXVWpCUFFrSlpSVVpNZFhjemNVWlpUVFJwWVhCSmNWb3pjalk1TmpZdllYbDVVM0pOUVRoSFFURlZaRVYzUlVJdmQxRkdUVUZOUWtGbU9IZEVaMWxFVmxJd1VFRlJTQzlDUVZGRVFXZEZSMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMVJRMFEyWTBoRlJtdzBZVmhVVVZreVpUTjJPVWQzVDBGRldreDFUaXQ1VW1oSVJrUXZNMjFsYjNsb2NHMTJUM2RuVUZWdVVGZFVlRzVUTkdGMEszRkplRlZEVFVjeGJXbG9SRXN4UVROVlZEZ3lUbEY2TmpCcGJVOXNUVEkzYW1Ka2IxaDBNbEZtZVVaTmJTdFphR2xrUkd0TVJqRjJURlZoWjAwMlFtZEVOVFpMZVV0QlBUMGlYWDAuZXlKMGNtRnVjMkZqZEdsdmJrbGtJam9pTWpBd01EQXdNRFkyTXpNMU5ESXlPQ0lzSW05eWFXZHBibUZzVkhKaGJuTmhZM1JwYjI1SlpDSTZJakl3TURBd01EQTJOak16TlRReU1qZ2lMQ0ppZFc1a2JHVkpaQ0k2SW1OdmJTNXphVzVoZEdFdVNrdEdhWFJ1WlhOeklpd2ljSEp2WkhWamRFbGtJam9pWTI5dExtcHJabWwwYm1WemN5NWhMbkJ5YVdObExqRWlMQ0p3ZFhKamFHRnpaVVJoZEdVaU9qRTNNakUyTkRVNE1qWXdNREFzSW05eWFXZHBibUZzVUhWeVkyaGhjMlZFWVhSbElqb3hOekl4TmpRMU9ESTJNREF3TENKeGRXRnVkR2wwZVNJNk1Td2lkSGx3WlNJNklrTnZibk4xYldGaWJHVWlMQ0pwYmtGd2NFOTNibVZ5YzJocGNGUjVjR1VpT2lKUVZWSkRTRUZUUlVRaUxDSnphV2R1WldSRVlYUmxJam94TnpJeE5qUTFPRFF5TkRnNExDSmxiblpwY205dWJXVnVkQ0k2SWxOaGJtUmliM2dpTENKMGNtRnVjMkZqZEdsdmJsSmxZWE52YmlJNklsQlZVa05JUVZORklpd2ljM1J2Y21WbWNtOXVkQ0k2SWtOSVRpSXNJbk4wYjNKbFpuSnZiblJKWkNJNklqRTBNelEyTlNJc0luQnlhV05sSWpvNU9EQXdNQ3dpWTNWeWNtVnVZM2tpT2lKRFRsa2lmUS5nTC1UVThvRV9NY2Q5TGpQb2g0LWxuT3JZek04N1FOY1RxYXFqZ05KT3VSWHMxZGpKQ1VnSVR0Vmd5cWdvMXozVGpGc3BYd1RpYklQeVN1NFg3QUd5dyJ9LCJ2ZXJzaW9uIjoiMi4wIiwic2lnbmVkRGF0ZSI6MTcyMTY0NTg0MjUwNn0.bQeSZOF1IDCD--iN3i711ADUVwhrIoqCLklkBUHsebpFPgTH5TtAJjaeSFkmrqCXzZYLb_m-5acirt5xnWMubQ");
@@ -2788,5 +2821,25 @@
    }
    public static List<CourseList> testing9(long total, long current, long size, List<CourseList> str){
        List<CourseList> result = new ArrayList<>();
        //获取初始化分页结构
        com.stylefeng.guns.modular.system.util.Page<CourseList> page = new Page().getPage(total, size, current - 1);
        //获取集合下标初始值
        long startIndex = page.getStartIndex();
        //获取集合下标结束值
        long endInddex = 0;
        if(startIndex + page.getCurrent() >= total || size > total){
            endInddex = total;
        }else {
            endInddex = Math.min(startIndex + page.getSize(), total);
        }
        //如果输入的开始查询下标大于集合大小,则查询为空值
        if(startIndex > total){
            result = Collections.emptyList();
        }else{
            result = str.subList((int)startIndex,(int)endInddex);
        }
        return result;
    }
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.Region;
import com.stylefeng.guns.modular.system.warpper.res.DistrictRes;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -14,5 +13,4 @@
     * @param parentId
     * @return
     */
    List<DistrictRes> getDistrict(@Param("parentId") Integer parentId);
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CourseMapper.xml
@@ -67,12 +67,11 @@
            </foreach>
        </if>
        order by t1.isFree desc , t1.sort desc
        limit #{req.pageNum}, #{req.pageSize}
    </select>
    <select id="courseSearch1" resultType="com.stylefeng.guns.modular.system.vo.CourseList">
        select t1.id,t1.courseName,t1.allTime as `time`,t1.isFree,t1.difficulty,t1.coverImg,t1.introduce,
        t2.amount as price,t2.appleAmount,
        CONCAT(t3.name,'|',t2.name) as typeName
        t2.amount as price,t2.appleAmount,t2.id as positionId,
        CONCAT(t3.name,'|',t2.name,'|H', t1.difficulty) as typeName
        from t_course t1
        left join t_fitness_position t2 on t1.positionId = t2.id
        left join t_fitness_type t3 on t2.typeId = t3.id
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml
@@ -3,12 +3,6 @@
<mapper namespace="com.stylefeng.guns.modular.system.dao.RegionMapper">
    <select id="getDistrict" resultType="com.stylefeng.guns.modular.system.warpper.res.DistrictRes">
      select
      id,
      `name`,
      code
      from  t_region where parent_id = #{parentId} order by code
    </select>
</mapper>
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRegionService.java
@@ -2,16 +2,10 @@
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.Region;
import com.stylefeng.guns.modular.system.warpper.res.DistrictRes;
import java.util.List;
public interface IRegionService extends IService<Region> {
    /**
     * 获取行政区划数据
     * @param parentId
     * @return
     */
    List<DistrictRes> getDistrict(Integer parentId);
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HousingDemandServiceImpl.java
guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RegionServiceImpl.java
@@ -4,7 +4,6 @@
import com.stylefeng.guns.modular.system.dao.RegionMapper;
import com.stylefeng.guns.modular.system.model.Region;
import com.stylefeng.guns.modular.system.service.IRegionService;
import com.stylefeng.guns.modular.system.warpper.res.DistrictRes;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -12,8 +11,4 @@
@Service
public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService {
    @Override
    public List<DistrictRes> getDistrict(Integer parentId) {
        return this.baseMapper.getDistrict(parentId);
    }
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -184,7 +184,6 @@
            return ResultUtil.error("出现问题啦");
        }
    }
    /**
     * 支付成功后的回调处理逻辑
     *
@@ -206,34 +205,9 @@
            //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
            params.put(name, valueStr);
        }
        //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
        //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
//        try {
//            boolean flag = AlipaySignature.rsaCheckV1(params, alipay_public_key, "UTF-8","RSA2");
//            if(flag){
//                Map<String, String> map = new HashMap<>();
//                String out_trade_no = params.get("out_trade_no");
//                String subject = params.get("subject");
//                String total_amount = params.get("total_amount");
//                String trade_no = params.get("trade_no");
//                String passback_params = params.get("passback_params");
//                map.put("out_trade_no", out_trade_no);//商家订单号
//                map.put("subject", subject);
//                map.put("total_amount", total_amount);
//                map.put("trade_no", trade_no);//支付宝交易号
//                map.put("passback_params", passback_params);//回传参数
//                return map;
//            }else{
//                System.err.println("验签失败");
//            }
//
//        } catch (AlipayApiException e) {
//            e.printStackTrace();
//        }
//        return null;
        Map<String, String> map = new HashMap<>();
        System.err.println("返回码"+params);
        if (params.get("trade_status").equals("TRADE_SUCCESS")){
        String out_trade_no = params.get("out_trade_no");
        String subject = params.get("subject");
        String total_amount = params.get("total_amount");
@@ -244,7 +218,12 @@
        map.put("total_amount", total_amount);
        map.put("trade_no", trade_no);//支付宝交易号
        map.put("passback_params", passback_params);//回传参数
            System.err.println("回调map");
        return map;
        }else{
            return null;
        }
    }
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/CourseDetailVO.java
@@ -40,6 +40,7 @@
    private List<CourseVideo> videos;
    @ApiModelProperty(value = "推荐课程")
    private List<Course> recommendCourse;
    @ApiModelProperty(value = "部位id")
    private Integer positionId;
}
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/CourseList.java
@@ -2,6 +2,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import java.math.BigDecimal;
@@ -35,6 +36,8 @@
    private BigDecimal price;
    @ApiModelProperty(value = "苹果价格")
    private BigDecimal appleAmount;
    @ApiModelProperty(value = "部位id")
    private Integer positionId;
    @ApiModelProperty(value = "页码,首页1", required = true)
    private Integer pageNum;
    @ApiModelProperty(value = "页条数", required = true)
guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PackageListVO.java
@@ -24,6 +24,8 @@
    private BigDecimal appleAmount;
    @ApiModelProperty(value = "套餐包含的部位ids 前端忽略")
    private String ids;
    @ApiModelProperty(value = "套餐包含的部位ids 前端忽略")
    private String difficulty;
    @ApiModelProperty(value = "部位")
    private List<CourseVO> recommendCourse;
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HousingDemandReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/RegisterAccountReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/ReportHouseResourceReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/ReportHousingDemandReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHousingDemandReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/BannerRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/ContactInformationRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/DistrictHouseResourceNumberRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/DistrictRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/EncyclopedicKnowledgeInfoRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/EncyclopedicKnowledgeRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/HouseResourceInfoRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/HousingDemandInfoRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHouseResourceListRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHouseResourceRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java
File was deleted
guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java
File was deleted
guns-admin/src/main/resources/application-dev.yml
@@ -4,12 +4,12 @@
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://192.168.110.64:3306/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
#    url: jdbc:mysql://127.0.0.1:10633/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    url: jdbc:mysql://192.168.110.64:3306/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: '@Cjp123456'
#    password: root
    url: jdbc:mysql://127.0.0.1:10633/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: '@Cjp123456'
    db-name: jk_fitness #用来搜集数据库的所有表
    filters: wall,mergeStat
@@ -45,8 +45,8 @@
redis:
  host: 127.0.0.1
  port: 6379
#  password: Cjp123456
  password: 123456
  password: Cjp123456
#  password: 123456
  database: 0
  timeout: 600000
  block-when-exhausted: true
guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
File was deleted
guns-core/target/classes/META-INF/spring-configuration-metadata.json
@@ -16,12 +16,32 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.driver-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.filters",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.filters",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.initial-size",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.initial-size",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.max-active",
      "type": "java.lang.Integer"
    },
    {
@@ -36,7 +56,22 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.max-pool-prepared-statement-per-connection-size",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.max-wait",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.max-wait",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.min-evictable-idle-time-millis",
      "type": "java.lang.Integer"
    },
    {
@@ -51,12 +86,32 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.min-idle",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.password",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.password",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.pool-prepared-statements",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.pool-prepared-statements",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.test-on-borrow",
      "type": "java.lang.Boolean"
    },
    {
@@ -71,8 +126,23 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.test-on-return",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.test-while-idle",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.test-while-idle",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.time-between-eviction-runs-millis",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
@@ -86,11 +156,26 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.url",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.validation-query",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "name": "spring.datasource.validation-query",
      "type": "java.lang.String"
    }
guns-management/.idea/guns-management.iml
File was deleted
guns-management/.idea/misc.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ExternalStorageConfigurationManager" enabled="true" />
  <component name="JavaScriptSettings">
    <option name="languageLevel" value="ES6" />
  </component>
guns-management/.idea/modules.xml
File was deleted
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/AppUserController.java
@@ -127,9 +127,12 @@
            BeanUtils.copyProperties(user,appUserVO);
            // 查询这个用户是不是有人邀请他
            if (user.getInviteUserId()!=null){
                String name = appUserService.selectById(user.getInviteUserId()).getName();
                AppUser appUser = appUserService.selectById(user.getInviteUserId());
                if (appUser!=null){
                    String name = appUser.getName();
                appUserVO.setInviteUserName(name);
            }
            }
            appUserVOS.add(appUserVO);
        }
//        PageHelper.startPage(query.getPageNum(),query.getPageSize());
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/FitnessController.java
@@ -131,7 +131,6 @@
        packageDetailVO.setTotal(aPackage.getTotal());
        packageDetailVO.setAmount(aPackage.getAmount());
        packageDetailVO.setPrice(aPackage.getPrice());
        packageDetailVO.setAppleAmount(aPackage.getAppleAmount());
        if (StringUtils.hasLength(aPackage.getPositions())){
            String[] split = aPackage.getPositions().split(",");
            String[] split1 = aPackage.getDifficulty().split(",");
@@ -155,27 +154,30 @@
                        fitnessPositionVO.setTypeName(fitnessType.getName());
                    }
                    switch (split1[i]){
                        case "0":
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount());
                            break;
                        case "1":
                            fitnessPositionVO.setAmount(fitnessPosition.getAppleAmount2());
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount());
                            fitnessPositionVO.setDifficulty("1");
                            break;
                        case "2":
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount3());
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount2());
                            fitnessPositionVO.setDifficulty("2");
                            break;
                        case "3":
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount4());
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount3());
                            fitnessPositionVO.setDifficulty("3");
                            break;
                        case "4":
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount4());
                            fitnessPositionVO.setDifficulty("4");
                            break;
                        case "5":
                            fitnessPositionVO.setAmount(fitnessPosition.getAmount5());
                            fitnessPositionVO.setDifficulty("5");
                            break;
                    }
                }
                fitnessPositionVOS.add(fitnessPositionVO);
            }
        }
        packageDetailVO.setTypes(fitnessPositionVOS);
        return ResultUtil.success(packageDetailVO);
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/OrderController.java
@@ -139,6 +139,7 @@
        wrapper2.eq("state",2);
        EntityWrapper<Recharge> wrapper3 = new EntityWrapper<Recharge>();
        EntityWrapper<Invite> wrapper6 = new EntityWrapper<Invite>();
        wrapper6.eq("type",1);
        wrapper3.eq("state",2);
        if (query.getType() != 5) {
            wrapper7.ge("insertTime",startTime);
@@ -175,7 +176,13 @@
        res.setWithdrawalCount(payment);
        BigDecimal subtract = add1.subtract(payment);
        res.setBalanceCount(subtract);
        // 一级邀请奖励
        BigDecimal bigDecimal4 = inviteService.selectList(wrapper6).stream().map(Invite::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
        // 查询剩余可提现金额 充值金额+一级分佣金额-提现金额
        BigDecimal add4 = bigDecimal2.add(bigDecimal4);
        res.setBalanceWithdrawalCount(add4.subtract(payment));
        // 购课量
        List<Integer> list1 = new ArrayList<>();
        // 购课金额
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/UserController.java
@@ -281,8 +281,8 @@
        Subject currentUser = ShiroKit.getSubject();
        UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray());
        token.setRememberMe(false);
        token.setRememberMe(true);
        currentUser.getSession().setTimeout(30 * 60 * 1000*2*24);
        try {
            currentUser.login(token);
guns-management/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
guns-management/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
@@ -38,6 +38,7 @@
        <if test="startTime!=null and endTime != null">
            and (t1.insertTime BETWEEN #{startTime} and #{endTime} )
        </if>
        and t1.type=1
        </where>
        group by t1.giftUserId
        ORDER BY amount desc
guns-management/src/main/java/com/stylefeng/guns/modular/system/model/FitnessPosition.java
@@ -67,16 +67,7 @@
    @ApiModelProperty(value = "基础价格H5")
    private BigDecimal amount5;
    @ApiModelProperty(value = "ios用 苹果价格H1")
    private BigDecimal appleAmount;
    @ApiModelProperty(value = "ios用 苹果价格H2")
    private BigDecimal appleAmount2;
    @ApiModelProperty(value = "ios用 苹果价格H3")
    private BigDecimal appleAmount3;
    @ApiModelProperty(value = "ios用 苹果价格H4")
    private BigDecimal appleAmount4;
    @ApiModelProperty(value = "ios用 苹果价格H5")
    private BigDecimal appleAmount5;
    public Integer getId() {
        return id;
guns-management/src/main/java/com/stylefeng/guns/modular/system/model/Package.java
@@ -51,11 +51,7 @@
     */
    @ApiModelProperty(value = "套餐价")
    private BigDecimal price;
    /**
     * 优惠价
     */
    @ApiModelProperty(value = "ios用 苹果的价格")
    private BigDecimal appleAmount;
    @ApiModelProperty(value = "选择部位的难度 和部位ids一一对应")
    private String difficulty;
guns-management/src/main/java/com/stylefeng/guns/modular/system/vo/OperationalDataVO.java
@@ -27,6 +27,8 @@
    private BigDecimal withdrawalCount;
    @ApiModelProperty(value = "剩余金额")
    private BigDecimal balanceCount;
    @ApiModelProperty(value = "剩余可提现金额")
    private BigDecimal balanceWithdrawalCount;
    @ApiModelProperty(value = "购课数统计")
    private List<Integer> buyCourse;
    @ApiModelProperty(value = "购课金额统计")
guns-management/src/main/resources/application-dev.yml
@@ -10,12 +10,12 @@
      enabled: true  # 启用文件上传支持
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://192.168.110.64:3306/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
#    url: jdbc:mysql://127.0.0.1:10633/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    url: jdbc:mysql://192.168.110.64:3306/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: '@Cjp123456'
#    password: root
    url: jdbc:mysql://127.0.0.1:10633/jk_fitness?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root
    password: '@Cjp123456'
    db-name: jk_fitness #用来搜集数据库的所有表
    filters: wall,mergeStat
@@ -51,8 +51,8 @@
redis:
  host: 127.0.0.1
  port: 6379
#  password: Cjp123456
  password: 123456
  password: Cjp123456
#  password: 123456
  database: 0
  timeout: 600000
  block-when-exhausted: true
guns-management/target/classes/META-INF/spring-configuration-metadata.json
File was deleted
guns-management/target/classes/META-INF/spring-devtools.properties
File was deleted
guns-management/target/classes/application-dev.yml
File was deleted
guns-management/target/classes/application-produce.yml
File was deleted
guns-management/target/classes/application.yml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/BannerMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CollectionHouseResourceMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CollectionHousingDemandMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/EncyclopedicKnowledgeMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/EncyclopedicKnowledgeUpvoteMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HouseTypeMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandDistrictMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ReportHouseResourceMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ReportHousingDemandMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SearchHistoryConditionMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SysDataTypeMapper.xml
File was deleted
guns-management/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml
File was deleted
guns-management/target/classes/ehcache.xml
File was deleted
guns-management/target/classes/logback-spring.xml
File was deleted