44323
2023-09-26 7aa9607492e2c0b70838c53083f5362e49e74f44
Merge remote-tracking branch 'origin/master'

# Conflicts:
# cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
# cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
# cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
1 文件已重命名
62个文件已修改
4个文件已添加
1977 ■■■■ 已修改文件
.idea/workspace.xml 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java 147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/TStoreMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/img/index4.png 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/img/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js 440 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/workspace.xml
@@ -22,45 +22,7 @@
    <select />
  </component>
  <component name="ChangeListManager">
    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="学员4">
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ConsumeQuery.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ConsumeQuery.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/ToClassDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/ToClassDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/TCoursePackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/TCoursePackage.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ConsumeQuery.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ConsumeQuery.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ToClassDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ToClassDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/TCoupon.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/TCoupon.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_info.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_info.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/classelct.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/classelct.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" afterDir="false" />
    </list>
    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.26。7" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -105,40 +67,39 @@
    <option name="hideEmptyMiddlePackages" value="true" />
    <option name="showLibraryContents" value="true" />
  </component>
  <component name="PropertiesComponent"><![CDATA[{
  "keyToString": {
    "DefaultHtmlFileTemplate": "HTML File",
    "RequestMappingsPanelOrder0": "0",
    "RequestMappingsPanelOrder1": "1",
    "RequestMappingsPanelWidth0": "75",
    "RequestMappingsPanelWidth1": "75",
    "RunOnceActivity.OpenProjectViewOnStart": "true",
    "RunOnceActivity.ShowReadmeOnStart": "true",
    "WebServerToolWindowFactoryState": "false",
    "git-widget-placeholder": "master",
    "ignore.virus.scanning.warn.message": "true",
    "last_opened_file_path": "D:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage",
    "node.js.detected.package.eslint": "true",
    "node.js.detected.package.tslint": "true",
    "node.js.selected.package.eslint": "(autodetect)",
    "node.js.selected.package.tslint": "(autodetect)",
    "nodejs_package_manager_path": "npm",
    "project.structure.last.edited": "模块",
    "project.structure.proportion": "0.15",
    "project.structure.side.proportion": "0.54367816",
    "service.view.auto.scroll.to.source": "true",
    "settings.editor.selected.configurable": "MavenSettings",
    "spring.configuration.checksum": "b0c8222ba40624e179f539b98c2e8cad",
    "vue.rearranger.settings.migration": "true"
  <component name="PropertiesComponent">{
  &quot;keyToString&quot;: {
    &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
    &quot;git-widget-placeholder&quot;: &quot;master&quot;,
    &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
    &quot;last_opened_file_path&quot;: &quot;D:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/static/modular/system/coursePackage&quot;,
    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
    &quot;project.structure.last.edited&quot;: &quot;模块&quot;,
    &quot;project.structure.proportion&quot;: &quot;0.15&quot;,
    &quot;project.structure.side.proportion&quot;: &quot;0.54367816&quot;,
    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
    &quot;spring.configuration.checksum&quot;: &quot;b0c8222ba40624e179f539b98c2e8cad&quot;,
    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
  }
}]]></component>
}</component>
  <component name="ReactorSettings">
    <option name="notificationShown" value="true" />
  </component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" />
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\coursePackage" />
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" />
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" />
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tCoupon" />
      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system" />
@@ -262,10 +223,10 @@
    </configuration>
    <list>
      <item itemvalue="Spring Boot.GatewayApplication" />
      <item itemvalue="Spring Boot.UserApplication" />
      <item itemvalue="Spring Boot.AccountApplication" />
      <item itemvalue="Spring Boot.ManagementApplication" />
      <item itemvalue="Spring Boot.OtherApplication" />
      <item itemvalue="Spring Boot.UserApplication" />
      <item itemvalue="Spring Boot.AccountApplication" />
      <item itemvalue="Spring Boot.AuthApplication" />
      <item itemvalue="Spring Boot.ActivityApplication" />
      <item itemvalue="Spring Boot.CourseApplication" />
@@ -280,7 +241,7 @@
  </component>
  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
  <component name="SvnConfiguration">
    <configuration />
    <configuration>C:\Users\luo\AppData\Roaming\Subversion</configuration>
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
@@ -318,7 +279,12 @@
      <workItem from="1695430054273" duration="24454000" />
      <workItem from="1695461202457" duration="3973000" />
      <workItem from="1695520475699" duration="28522000" />
      <workItem from="1695602623205" duration="20433000" />
      <workItem from="1695602623205" duration="24182000" />
      <workItem from="1695633570775" duration="65000" />
      <workItem from="1695633789585" duration="4703000" />
      <workItem from="1695638521906" duration="1415000" />
      <workItem from="1695689815334" duration="13353000" />
      <workItem from="1695718856285" duration="16156000" />
    </task>
    <task id="LOCAL-00001" summary="后台代码删除">
      <created>1690249807612</created>
@@ -443,7 +409,87 @@
      <option name="project" value="LOCAL" />
      <updated>1695461535365</updated>
    </task>
    <option name="localTasksCounter" value="18" />
    <task id="LOCAL-00018" summary="9.25">
      <option name="closed" value="true" />
      <created>1695629926005</created>
      <option name="number" value="00018" />
      <option name="presentableId" value="LOCAL-00018" />
      <option name="project" value="LOCAL" />
      <updated>1695629926005</updated>
    </task>
    <task id="LOCAL-00019" summary="9.25">
      <option name="closed" value="true" />
      <created>1695636138175</created>
      <option name="number" value="00019" />
      <option name="presentableId" value="LOCAL-00019" />
      <option name="project" value="LOCAL" />
      <updated>1695636138175</updated>
    </task>
    <task id="LOCAL-00020" summary="9.26">
      <option name="closed" value="true" />
      <created>1695719130696</created>
      <option name="number" value="00020" />
      <option name="presentableId" value="LOCAL-00020" />
      <option name="project" value="LOCAL" />
      <updated>1695719130696</updated>
    </task>
    <task id="LOCAL-00021" summary="9.26。1">
      <option name="closed" value="true" />
      <created>1695723019798</created>
      <option name="number" value="00021" />
      <option name="presentableId" value="LOCAL-00021" />
      <option name="project" value="LOCAL" />
      <updated>1695723019798</updated>
    </task>
    <task id="LOCAL-00022" summary="9.26。2">
      <option name="closed" value="true" />
      <created>1695725709313</created>
      <option name="number" value="00022" />
      <option name="presentableId" value="LOCAL-00022" />
      <option name="project" value="LOCAL" />
      <updated>1695725709313</updated>
    </task>
    <task id="LOCAL-00023" summary="9.26。3">
      <option name="closed" value="true" />
      <created>1695728959013</created>
      <option name="number" value="00023" />
      <option name="presentableId" value="LOCAL-00023" />
      <option name="project" value="LOCAL" />
      <updated>1695728959013</updated>
    </task>
    <task id="LOCAL-00024" summary="9.26。4">
      <option name="closed" value="true" />
      <created>1695730124076</created>
      <option name="number" value="00024" />
      <option name="presentableId" value="LOCAL-00024" />
      <option name="project" value="LOCAL" />
      <updated>1695730124076</updated>
    </task>
    <task id="LOCAL-00025" summary="9.26。5">
      <option name="closed" value="true" />
      <created>1695730466910</created>
      <option name="number" value="00025" />
      <option name="presentableId" value="LOCAL-00025" />
      <option name="project" value="LOCAL" />
      <updated>1695730466910</updated>
    </task>
    <task id="LOCAL-00026" summary="9.26。6">
      <option name="closed" value="true" />
      <created>1695734782274</created>
      <option name="number" value="00026" />
      <option name="presentableId" value="LOCAL-00026" />
      <option name="project" value="LOCAL" />
      <updated>1695734782274</updated>
    </task>
    <task id="LOCAL-00027" summary="9.26。7">
      <option name="closed" value="true" />
      <created>1695735077405</created>
      <option name="number" value="00027" />
      <option name="presentableId" value="LOCAL-00027" />
      <option name="project" value="LOCAL" />
      <updated>1695735077405</updated>
    </task>
    <option name="localTasksCounter" value="28" />
    <servers />
  </component>
  <component name="TypeScriptGeneratedFilesManager">
@@ -467,7 +513,16 @@
    <MESSAGE value="学员" />
    <MESSAGE value="学员2" />
    <MESSAGE value="学员4" />
    <option name="LAST_COMMIT_MESSAGE" value="学员4" />
    <MESSAGE value="9.25" />
    <MESSAGE value="9.26" />
    <MESSAGE value="9.26。1" />
    <MESSAGE value="9.26。2" />
    <MESSAGE value="9.26。3" />
    <MESSAGE value="9.26。4" />
    <MESSAGE value="9.26。5" />
    <MESSAGE value="9.26。6" />
    <MESSAGE value="9.26。7" />
    <option name="LAST_COMMIT_MESSAGE" value="9.26。7" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
@@ -482,6 +537,16 @@
          <line>111</line>
          <option name="timeStamp" value="2" />
        </line-breakpoint>
        <line-breakpoint type="java-line">
          <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java</url>
          <line>458</line>
          <option name="timeStamp" value="9" />
        </line-breakpoint>
        <line-breakpoint type="java-line">
          <url>file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java</url>
          <line>1294</line>
          <option name="timeStamp" value="14" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
  </component>
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -71,7 +71,7 @@
    @PostMapping("/student/queryDefaultStudent")
    public TStudent queryDefaultStudent(@RequestBody Integer appUserId){
        try {
            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1));
            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1).last("limit 1"));
            return one;
        }catch (Exception e){
            e.printStackTrace();
@@ -213,7 +213,7 @@
        System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto);
//       Integer appId = studentService.getGiftSelect(giftSearchDto);
        TCoursePackagePayment coursePackagePaymentById = paymentClient.getCoursePackagePaymentById(giftSearchDto.getId());
        TCoursePackagePayment1 coursePackagePaymentById = paymentClient.getCoursePackagePaymentById1(giftSearchDto.getId());
//        System.out.println("=======giftSelect======appId====>"+appId);
        List<TStudent> selectDtos =  studentService.list(new QueryWrapper<TStudent>()
                .select("name, id")
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -90,10 +90,16 @@
                detailsVo.setUserImage(tAppUser.getHeadImg());
                detailsVo.setUserName(tAppUser.getName());
                detailsVo.setUserPhone(tAppUser.getPhone());
                detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
                if(tAppUser.getGender()!=null){
                    detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
                }
                detailsVo.setBirthday(format1.format(tAppUser.getBirthday()));
                detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity());
                detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
                if(tAppUser.getVipEndTime()!=null){
                    detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
                }
            }
            return ResultUtil.success(detailsVo);
        }catch (Exception e){
@@ -433,7 +439,7 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "记录id", name = "detailsId", required = true, dataType = "string"),
    })
    public ResultUtil<PointDetailsVo> redemptionDetails(Integer detailsId){
    public ResultUtil<PointDetailsVo> redemptionDetails(Long detailsId){
        try {
            return ResultUtil.success(uicService.queryRedemptionDetails(detailsId));
        }catch (Exception e){
cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
@@ -1,5 +1,6 @@
package com.dsh.account.dto;
import io.swagger.models.auth.In;
import lombok.Data;
@Data
cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java
New file
@@ -0,0 +1,163 @@
package com.dsh.account.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
 * <p>
 * 用户课程包购买记录
 * </p>
 *
 * @author administrator
 * @since 2023-06-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_course_package_payment")
public class TCoursePackagePayment1 {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.NONE)
    @TableField(updateStrategy = FieldStrategy.NEVER)
    private Long id;
    /**
     * 业务编号
     */
    @TableField("code")
    private String code;
    /**
     * 用户id
     */
    @TableField("appUserId")
    private Integer appUserId;
    /**
     * 学员id
     */
    @TableField("studentId")
    private Integer studentId;
    /**
     * 课包id
     */
    @TableField("coursePackageId")
    private Integer coursePackageId;
    /**
     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
     */
    @TableField("payType")
    private Integer payType;
    /**
     * 课时数
     */
    @TableField("classHours")
    private Integer classHours;
    /**
     * 原价
     */
    @TableField("originalPrice")
    private Double originalPrice;
    /**
     * 优惠券id
     */
    @TableField("userCouponId")
    private Long userCouponId;
    /**
     * 现金支付价格
     */
    @TableField("cashPayment")
    private BigDecimal cashPayment;
    /**
     * 玩湃币价格/积分
     */
    @TableField("playPaiCoin")
    private Integer playPaiCoin;
    /**
     * 总课时
     */
    @TableField("totalClassHours")
    private Integer totalClassHours;
    /**
     * 剩余课时
     */
    @TableField("laveClassHours")
    private Integer laveClassHours;
    /**
     * 缺课次数
     */
    @TableField("absencesNumber")
    private Integer absencesNumber;
    /**
     * 退课课时
     */
    @TableField(exist = false)
    private Integer dropoutsNumber;
    /**
     * 支付用户类型(1=用户,2=管理员)
     */
    @TableField("payUserType")
    private Integer payUserType;
    /**
     * 支付状态(1=待支付,2=已支付)
     */
    @TableField("payStatus")
    private Integer payStatus;
    /**
     * 第三方支付流水号
     */
    @TableField("orderNumber")
    private String orderNumber;
    /**
     * 支付用户id
     */
    @TableField("payUserId")
    private Integer payUserId;
    /**
     * 课程状态(1=正常,2=已退课)
     */
    @TableField("status")
    private Integer status;
    /**
     * 退课时间
     */
    @TableField("withdrawalTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date withdrawalTime;
    /**
     * 退课凭证
     */
    @TableField("certificate")
    private String certificate;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    @TableField("state")
    private Integer state;
    /**
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    @TableField("useTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date useTime;
    /**
     * 平台手动支付时使用
     */
    @TableField("payUserName")
    private String payUserName;
}
cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java
@@ -7,5 +7,5 @@
public class GiftSearchDto {
    String name;
    String phone;
    Integer id;
    Long id;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -33,7 +33,7 @@
    ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId);
    @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId);
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId);
    @PostMapping("/base/pointMerchars/selectPointsMerchandiseById")
    public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId);
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -1,5 +1,6 @@
package com.dsh.account.feignclient.course;
import com.dsh.account.dto.TCoursePackagePayment1;
import com.dsh.account.feignclient.competition.model.BillingDataRequestVo;
import com.dsh.account.feignclient.course.model.*;
import com.dsh.account.model.BillingRequest;
@@ -50,7 +51,11 @@
    @PostMapping("/base/coursePack/getCoursePackagePaymentById")
    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id);
    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Long id);
    @PostMapping("/base/coursePack/getCoursePackagePaymentById")
    public TCoursePackagePayment1 getCoursePackagePaymentById1(@RequestBody Long id);
    @PostMapping("/base/coursePack/updatePaymentCoursePackage")
    void updatePaymentCoursePackage(@RequestBody TCoursePackagePayment coursePackagePayment);
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
@@ -8,10 +8,10 @@
import java.util.List;
@Data
public class    PointDetailsVo {
public class   PointDetailsVo {
    @ApiModelProperty(value = "记录id")
    private Integer detailsId;
    private Long detailsId;
    @ApiModelProperty(value = "图片集")
    private List<String> pics;
cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
@@ -35,7 +35,7 @@
    List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType);
    PointDetailsVo queryRedemptionDetails(Integer detailsId);
    PointDetailsVo queryRedemptionDetails(Long detailsId);
    Page<UserIntegral> listAll(Page<UserIntegral> userIntegralPage, IntegralListQuery integralListQuery);
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -375,7 +375,7 @@
        if(tAppUser.getState() == 2){
            return ResultUtil.error("您的账号已被冻结", "");
        }
        password = Md5Util.MD5Encode(password, null);
//        password = Md5Util.MD5Encode(password, null);
        if(!tAppUser.getPassword().equals(password)){
            return ResultUtil.error("账号密码错误", "");
        }
@@ -804,6 +804,7 @@
                        commodity.setShopIds(mcsClient.queryPointMerStoreIds(vicinityGood.getId()));
                        break;
                    default:
                        break;
                }
                goods.add(commodity);
@@ -825,6 +826,7 @@
                }
                commodity.setBelongsType(allCoupon.getUserPopulation());
                commodity.setGoodsType(4);
                commodity.setShopIds(ucponClient.getCouponStoreIds(allCoupon.getId()));
                commodity.setNums(ucponClient.getRedeemedQuantity(allCoupon.getId()));
                goods.add(commodity);
            }
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -44,6 +44,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -135,11 +136,21 @@
        student.setHeight(stu.getHeight());
        student.setWeight(stu.getWeight());
        BigDecimal bigDecimal = BigDecimal.valueOf(stu.getWeight());
        BigDecimal multiply = bigDecimal.subtract(BigDecimal.valueOf(stu.getHeight())).multiply(bigDecimal.subtract(BigDecimal.valueOf(stu.getHeight())));
        multiply.setScale(2);
        student.setBmi(multiply.doubleValue());
        double v = stu.getHeight() / 100;
        double v1 = v * v;
        BigDecimal bigDecimal1 = new BigDecimal(v1).setScale(2, RoundingMode.HALF_UP);
        double v2 = bigDecimal.doubleValue() / bigDecimal1.doubleValue();
        BigDecimal bigDecimal2 = new BigDecimal(v2).setScale(2, RoundingMode.HALF_UP);
        student.setBmi(bigDecimal2.doubleValue());
        student.setInsertTime(new Date());
        student.setState(1);
        List<TStudent> tStudents = this.baseMapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, appUserId));
        if(tStudents.size()>0){
            student.setIsDefault(2);
        }else {
            student.setIsDefault(1);
        }
        this.baseMapper.insert(student);
        //同步信息到参赛人员信息中
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -146,8 +146,9 @@
    }
    @Override
    public PointDetailsVo queryRedemptionDetails(Integer detailsId) {
        return mcClient.getSpecificsOfGoods(detailsId);
    public PointDetailsVo queryRedemptionDetails(Long detailsId) {
        PointDetailsVo specificsOfGoods = mcClient.getSpecificsOfGoods(detailsId);
        return specificsOfGoods;
    }
    @Override
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -361,7 +361,7 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId){
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        PointDetailsVo detailsVo = new PointDetailsVo();
        UserPointsMerchandise byId = upmseService.getById(speMercharsId);
@@ -382,7 +382,8 @@
            switch (pmdsServiceById.getType()){
                case 1:
                case 3:
                    List<String> list2 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
                    List<String> list10 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
                    ArrayList<String> list2 = new ArrayList<>(list10);
                    list2.add(pmdsServiceById.getCover());
                    detailsVo.setPics(list2);
                    Collections.sort(detailsVo.getPics(), (s1, s2) -> {
@@ -397,7 +398,8 @@
                    break;
                case 2:
                    CoursePackage coursePackage = cpClient.queryCoursePackageById(pmdsServiceById.getCoursePackageId());
                    List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","));
                    List<String> list11 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","));
                    ArrayList<String> list1 = new ArrayList<>(list11);
                    list1.add(coursePackage.getCoverDrawing());
                    detailsVo.setPics(list1);
                    CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId());
@@ -414,7 +416,8 @@
                    break;
                case 4:
                    Coupon coupon = iCouponService.getById(pmdsServiceById.getId());
                    List<String> list3 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","));
                    List<String> list13 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","));
                    ArrayList<String> list3 = new ArrayList<>(list13);
                    list3.add(coupon.getCover());
                    detailsVo.setPics(list3);
                    Collections.sort(detailsVo.getPics(), (s1, s2) -> {
@@ -497,6 +500,9 @@
        if (list.size() >  0){
            storeIds = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
        }
        if(storeIds.size()==0){
            storeIds.add(-1);
        }
        return storeIds;
    }
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -223,6 +223,9 @@
            if (list.size() > 0 ){
                storeIds = list.stream().map(CouponStore::getStoreId).collect(Collectors.toList());
            }
            if(storeIds.size()==0){
                storeIds.add(-1);
            }
            return storeIds;
        }catch (Exception e){
            e.printStackTrace();
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
package com.dsh.activity.feignclient.account.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -30,6 +31,7 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
     * 性别(1=男,2=女)
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
package com.dsh.competition.feignclient.account.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -30,6 +31,7 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
     * 性别(1=男,2=女)
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -103,9 +103,10 @@
        // 2.0
        ArrayList<Map<String,Object>> objects = new ArrayList<>();
        if(null != competition.getStoreId()){
            HashMap<String, Object> map = new HashMap<>();
            String storeId = competition.getStoreId();
            for (String s : storeId.split(",")) {
                HashMap<String, Object> map = new HashMap<>();
                Store store = storeClient.queryStoreById(Integer.valueOf(s));
                map.put("name",store.getName());
                map.put("address",store.getAddress());
@@ -117,8 +118,9 @@
                    double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                    map.put("distance",wgs84);
                }
                objects.add(map);
            }
            objects.add(map);
        }
        competitionInfo.setStoreInfos(objects);
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.*;
import com.dsh.course.entity.TAppUser;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
import com.dsh.course.feignclient.account.model.AppUser;
@@ -1204,9 +1205,13 @@
    @PostMapping("/base/coursePack/getCoursePackagePaymentById")
    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id){
        return packagePaymentService.getById(id);
    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Long id){
        TCoursePackagePayment byId = packagePaymentService.getById(id);
        System.out.println("======byId=========="+byId);
        return byId;
    }
    @PostMapping("/base/coursePack/delPaymentCoursePackage")
    public boolean delPaymentCoursePackage(@RequestBody Integer payId){
        return packagePaymentService.removeById(payId);
@@ -1324,7 +1329,7 @@
     */
    @ResponseBody
    @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById")
    public TCoursePackagePayment queryCoursePackagePaymentById(@RequestBody Long id){
    public TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id")Long id){
        return packagePaymentService.getById(id);
    }
@@ -1346,7 +1351,22 @@
    @ResponseBody
    @PostMapping("/coursePackagePayment/editCoursePackagePayment")
    public void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment){
        coursePackagePayment.setAppUserId(null);
        packagePaymentService.updateById(coursePackagePayment);
    }
    /**
     * 修改数据
     * @param coursePackagePayment
     */
    @ResponseBody
    @PostMapping("/coursePackagePayment/editCoursePackagePayment1")
    public void editCoursePackagePayment1(@RequestBody TCoursePackagePayment coursePackagePayment){
        System.out.println("editCoursePackagePayment1====coursePackagePayment"+coursePackagePayment);
//        coursePackagePayment.setCoursePackageId(null);
        packagePaymentService.updateBytime(coursePackagePayment);
    }
@@ -1378,8 +1398,14 @@
            if (ToolUtil.isEmpty(packagePayment) || packagePayment.size()==0){
                return ResultUtil.error("该用户未购买该课包");
            }
            List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
                    .eq(CoursePackageScheduling::getCoursePackageId, Integer.valueOf(courseID))
                    .like(CoursePackageScheduling::getClassDate, time)
            );
            List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                    .in(CoursePackageStudent::getCoursePackagePaymentId,packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList()))
                    .in(CoursePackageStudent::getCoursePackageSchedulingId,coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()))
                    .eq(CoursePackageStudent::getCoursePackageId,courseID)
                    .eq(CoursePackageStudent::getStudentId,stuId)
                    .eq(CoursePackageStudent::getAppUserId,appUserId)
@@ -1397,6 +1423,7 @@
            }
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
@@ -1443,10 +1470,13 @@
                String classEndTime = tCoursePackage.getClassEndTime();
                String[] split1 = classEndTime.split(",");
                ArrayList<String> strings = new ArrayList<>();
                for (int i1 = 0; i1 < split.length; i1++) {
                    String s = split[i1] + "-" + split1[i1];
                    strings.add(s);
                if(ToolUtil.isNotEmpty(classStartTime)){
                    for (int i1 = 0; i1 < split.length; i1++) {
                        String s = split[i1].substring(0,5) + "-" + split1[i1].substring(0,5);
                        strings.add(s);
                    }
                }
                detailsListVo.setTime(strings);
                List<CoursePackagePaymentConfig> list2 = icppcService.list(new LambdaQueryWrapper<CoursePackagePaymentConfig>().eq(CoursePackagePaymentConfig::getCoursePackageId, tCoursePackage.getId()).orderByAsc(CoursePackagePaymentConfig::getCashPayment));
                if (list2.size() > 0) {
@@ -1460,6 +1490,9 @@
                            .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                            .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                    );
                    if(list3.size()==0){
                        break;
                    }
                    List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
                    if(collect2.size()==0){
                        collect2.add(-1l);
@@ -1471,12 +1504,13 @@
                                    in(CoursePackageStudent::getCoursePackagePaymentId, ids)
                    );
                        detailsListVo.setType(1);
                    detailsListVo.setType(1);
                    if(list4.size()>0){
                        Integer signInOrNot = list4.get(0).getSignInOrNot();
                        if(signInOrNot==2){
                            detailsListVo.setType(3);
                        }
                        detailsListVo.setIsType(list4.get(0).getType());
                    }
                } else {
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
@@ -56,6 +56,7 @@
    @ResponseBody
    @PostMapping("/coursePackageScheduling/editCoursePackageScheduling")
    public void editCoursePackageScheduling(@RequestBody CoursePackageScheduling coursePackageScheduling){
        coursePackageScheduling.setCoursePackageId(null);
        coursePackageSchedulingService.updateById(coursePackageScheduling);
    }
}
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -107,7 +107,9 @@
    @ResponseBody
    public List<SelectDto> getSelect(@RequestParam("payId")Long payId){
        List<Integer> studentIds = paymentService.getStudentIds(payId);
        TCoursePackagePayment byId = paymentService.getById(payId);
        List<Integer> studentIds = paymentService.getStudentIds(payId,byId.getCoursePackageId(),byId.getAppUserId());
    System.out.println("=========studentIds=================>"+studentIds);
    if (studentIds.size()>0){
@@ -374,23 +376,6 @@
            orinPay.setTotalClassHours(0);
            orinPay.setLaveClassHours(0);
            orinPay.setAppUserId(null);
            orinPay.setStudentId(6);
            paymentService.updateById(orinPay);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("赠课");
            courseCounsum.setNum(orinPay.getLaveClassHours());
            courseCounsum.setChangeType(0);
            courseCounsum.setPaymentId(orinPay.getId());
            counsumService.save(courseCounsum);
            Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
            TCoursePackagePayment to = new TCoursePackagePayment();
            to.setStudentId(toClassDto.getToStudentId());
@@ -405,6 +390,28 @@
            paymentService.save(to);
            orinPay.setTotalClassHours(0);
            orinPay.setLaveClassHours(0);
            orinPay.setAppUserId(null);
            orinPay.setStatus(6);
            paymentService.updateById(orinPay);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("赠课");
            courseCounsum.setNum(orinPay.getLaveClassHours());
            courseCounsum.setChangeType(0);
            courseCounsum.setPaymentId(orinPay.getId());
            counsumService.save(courseCounsum);
            CourseCounsum courseCounsum1 = new CourseCounsum();
            courseCounsum1.setInsertTime(new Date());
            courseCounsum1.setReason("赠课");
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
@@ -72,6 +72,8 @@
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    @TableField("type")
    private Integer type;
    @Override
cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java
File was renamed from cloud-server-course/src/main/java/com/dsh/course/model/TAppUser.java
@@ -1,4 +1,4 @@
package com.dsh.course.model;
package com.dsh.course.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -23,7 +23,7 @@
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_app_user")
public class TAppUser {
public class TAppUser{
    private static final long serialVersionUID = 1L;
cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java
New file
@@ -0,0 +1,100 @@
package com.dsh.course.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class TCoursePackagePayment1 {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 用户id
     */
    private Integer appUserId;
    /**
     * 学员id
     */
    private Integer studentId;
    /**
     * 课包id
     */
    private Integer coursePackageId;
    /**
     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
     */
    private Integer payType;
    /**
     * 课时数
     */
    private Integer classHours;
    /**
     * 现金支付价格
     */
    private BigDecimal cashPayment;
    /**
     * 玩湃币价格/积分
     */
    private Integer playPaiCoin;
    /**
     * 总课时
     */
    private Integer totalClassHours;
    /**
     * 剩余课时
     */
    private Integer laveClassHours;
    /**
     * 缺课次数
     */
    private Integer absencesNumber;
    /**
     * 支付用户类型(1=用户,2=管理员)
     */
    private Integer payUserType;
    /**
     * 支付状态(1=待支付,2=已支付)
     */
    private Integer payStatus;
    /**
     * 第三方支付流水号
     */
    private String orderNumber;
    /**
     * 支付用户id
     */
    private Integer payUserId;
    /**
     * 课程状态(1=正常,2=已退课)
     */
    private Integer status;
    /**
     * 退课时间
     */
    private Date withdrawalTime;
    /**
     * 退课凭证
     */
    private String certificate;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    private Integer state;
    /**
     * 添加时间
     */
    private Date insertTime;
    /**
     * 业务编号
     */
    private String code;
    /**
     * 原价
     */
    private Double originalPrice;
}
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
@@ -1,5 +1,6 @@
package com.dsh.course.feignclient.account;
import com.dsh.course.entity.TAppUser;
import com.dsh.course.entity.dto.SelectDto;
import com.dsh.course.feignclient.account.model.AppUser;
import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
package com.dsh.course.feignclient.account.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -30,6 +31,7 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
     * 性别(1=男,2=女)
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -5,6 +5,7 @@
import com.dsh.course.entity.TCoursePackagePayment;
import com.dsh.course.model.QueryRegistrationRecord;
import com.dsh.course.model.BillingRequest;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
@@ -61,7 +62,9 @@
    void updateUseTime(@Param("id")Long id,  @Param("date") Date date);
    List<Integer> getStudentIds(@Param("id")Long payId);
    List<Integer> getStudentIds(@Param("id")Long payId,@Param("classId")Integer classId,@Param("appId")Integer appId);
    boolean updateHoursById(@Param("id") Long id, @Param("i") int i);
    void updateBytime(@Param("coursePackagePayment") TCoursePackagePayment coursePackagePayment);
}
cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java
@@ -20,4 +20,6 @@
    private Integer num;
    private Double money;
    private Integer isType=1;
}
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -10,6 +10,7 @@
import com.dsh.course.model.vo.request.*;
import com.dsh.course.model.vo.response.*;
import com.dsh.course.util.ResultUtil;
import io.swagger.models.auth.In;
import java.util.Date;
import java.util.List;
@@ -119,7 +120,7 @@
    void updateUseTime(Long id, Date date);
    List<Integer> getStudentIds(Long payId);
    List<Integer> getStudentIds(Long payId,Integer classId,Integer appId);
    boolean updateHoursById(TCoursePackagePayment byId, int i);
@@ -128,6 +129,8 @@
    int changeState(CoursePackagePayDTO dto);
    void updateBytime(TCoursePackagePayment coursePackagePayment);
    List<RegisterOrderVO> listAllRegister(RegisterOrderQuery query);
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
@@ -53,11 +53,16 @@
            Long id = Long.valueOf(map.get("id").toString());
            int count = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
//            map.put("registered", count);
            int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("signInOrNot", 1));
            int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("signInOrNot", 2));
            int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
            int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 0));
            map.put("registered", count2);
            map.put("actualArrival", count1);
            map.put("nonArrival", count - count1);
//            Integer totalClassHours = (Integer) map.get("totalClassHours");
//            Integer laveClassHours = (Integer) map.get("laveClassHours");
//            map.put("already",totalClassHours-laveClassHours);
        }
        return list;
    }
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.CoursePackageStudent;
import com.dsh.course.entity.StudentClassInfo;
import com.dsh.course.entity.TAppUser;
import com.dsh.course.entity.dto.ClassListDto;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
@@ -71,7 +72,7 @@
        for (Map<String, Object> map : list) {
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Integer student_Id = Integer.valueOf(map.get("studentId").toString());
            AppUser appUser = appUserClient.queryAppUser(appUserId);
            TAppUser appUser = appUserClient.queryAppUser1(appUserId);
            Student student = studentClient.queryStudentById(student_Id);
            map.put("userName", appUser.getName());
            map.put("phone", student.getPhone());
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
import com.dsh.course.entity.TAppUser;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.CoachClient;
import com.dsh.course.feignclient.account.StudentClient;
@@ -33,6 +34,7 @@
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -130,6 +132,11 @@
            list.add(value);
        }
        return cpConfigMapper.changeState(list,dto.getPayUserName(),dto.getUserId());
    }
    @Override
    public void updateBytime(TCoursePackagePayment coursePackagePayment) {
        this.baseMapper.updateBytime(coursePackagePayment);
    }
    @Override
@@ -740,7 +747,8 @@
            Long id = Long.valueOf(map.get("id").toString());
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Integer studentId = Integer.valueOf(map.get("studentId").toString());
            AppUser appUser = appuClient.queryAppUser(appUserId);
            TAppUser appUser = appuClient.queryAppUser1(appUserId);
            map.put("userName", null != appUser ? appUser.getName() : "");
            map.put("phone", null != appUser ? appUser.getPhone() : "");
            Student student = studentClient.queryStudentById(studentId);
@@ -1003,6 +1011,7 @@
                    student1.setSignInOrNot(0);
                    student1.setReservationStatus(1);
                    student1.setInsertTime(new Date());
                    student1.setType(1);
                    cpsMapper.insert(student1);
                } catch (Exception e) {
                    e.printStackTrace();
@@ -1049,8 +1058,8 @@
    }
    @Override
    public List<Integer> getStudentIds(Long payId) {
       return  this.baseMapper.getStudentIds(payId);
    public List<Integer> getStudentIds(Long payId, Integer classId, Integer appId) {
       return  this.baseMapper.getStudentIds(payId,classId,appId);
    }
    @Override
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -143,9 +143,11 @@
            ArrayList<String> classTime = new ArrayList<>();
            String[] split = classStartTime.split(",");
            String[] split3 = classEndTime.split(",");
            for (int i = 0; i < split.length; i++) {
                String s = split[i] + "-" +  split3[i];
                classTime.add(s);
            if(ToolUtil.isNotEmpty(classStartTime)) {
                for (int i = 0; i < split.length; i++) {
                    String s = split[i].substring(0,5) + "-" + split3[i].substring(0,5);
                    classTime.add(s);
                }
            }
            coursePackageListVo.setClassStartTime(classTime);
            coursePackageListVo.setType(coursePackage.getType());
@@ -283,6 +285,7 @@
        }
        return listVos;
    }
    @Override
@@ -484,7 +487,11 @@
            TCoursePackage coursePackage = this.getById(id);
            CoursePackageInfo coursePackageInfo = new CoursePackageInfo();
            coursePackageInfo.setId(id);
            coursePackageInfo.setTime(coursePackage.getStartTime()+"-"+coursePackage.getEndTime());
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
        if(coursePackage.getType()==2){
            coursePackageInfo.setTime(format.format(coursePackage.getStartTime())+"-"+format.format(coursePackage.getEndTime()));
        }
            coursePackageInfo.setCoverDrawing(coursePackage.getCoverDrawing());
            coursePackageInfo.setName(coursePackage.getName());
            Store store = storeClient.queryStoreById(coursePackage.getStoreId());
@@ -508,10 +515,13 @@
            ArrayList<String> classTime = new ArrayList<>();
            String[] split4 = classStartTime.split(",");
            String[] split3 = classEndTime.split(",");
            for (int i = 0; i < split4.length; i++) {
                String s = split4[i] + "-" +  split3[i];
                classTime.add(s);
            if(ToolUtil.isNotEmpty(classStartTime)){
                for (int i = 0; i < split4.length; i++) {
                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
                    classTime.add(s);
                }
            }
            coursePackageInfo.setTimes(classTime);
            coursePackageInfo.setType(coursePackage.getType());
@@ -662,13 +672,27 @@
        String[] students = paymentCourseVo.getStudentIds().split(";");
        for (CoursePackagePaymentConfigVo coursePackagePaymentConfigVo : list) {
            if(paymentCourseVo.getCoursePackagePaymentConfigId().compareTo(coursePackagePaymentConfigVo.getId()) == 0){
                CoursePackagePaymentConfig byId = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
                Double cashPayment = byId.getCashPayment();
                Integer payType = coursePackagePaymentConfigVo.getPayType();
                if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
                    return ResultUtil.error("支付方式错误,请刷新后重试");
                Integer playPaiCoin1 = byId.getPlayPaiCoin();
                if(cashPayment!=null || cashPayment>0){
                    payType=1;
                }
                if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
                    return ResultUtil.error("支付方式错误,请刷新后重试");
                if(playPaiCoin1!=null || playPaiCoin1>0){
                    payType=2;
                }
                if(cashPayment!=null && cashPayment>0 && playPaiCoin1 !=null && playPaiCoin1>0){
                }else {
                    if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
                        return ResultUtil.error("支付方式错误,请刷新后重试");
                    }
                    if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
                        return ResultUtil.error("支付方式错误,请刷新后重试");
                    }
                }
                Double paymentPrice = coursePackagePaymentConfigVo.getPaymentPrice();//支付价
                paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币
@@ -1215,74 +1239,76 @@
        try {
            coursePackage.setAuditStatus(2);
            this.baseMapper.insert(coursePackage);
            //生成排课数据
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
            String value = coursePackage.getClassStartTime();
            String value1 = coursePackage.getClassEndTime().trim();
            String[] star = value.split(",");
            String[] end = value1.split(",");
            if (coursePackage.getClassStartTime()!=null&&coursePackage.getClassStartTime()!="") {
                //生成排课数据
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
                List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
                String value = coursePackage.getClassStartTime();
                String value1 = coursePackage.getClassEndTime().trim();
            for (int i = 0; i < star.length; i++) {
                String[] star = value.split(",");
                String[] end = value1.split(",");
                for (int i = 0; i < star.length; i++) {
//                int index = star[i].indexOf(",");
//
//
//                String result = value.substring(0, index).trim();
                String classStartTime = star[i];
                String[] split = classStartTime.split(":");
                    String classStartTime = star[i];
                    String[] split = classStartTime.split(":");
//            String value1 = en;
                int index1 = value1.indexOf(",");
                    int index1 = value1.indexOf(",");
//                String result1 = value.substring(0, index1).trim();
                String classEndTime = end[i];
                String[] split1 = classEndTime.split(":");
                Calendar s = Calendar.getInstance();
                s.setTime(date);
                s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                s.set(Calendar.SECOND, 0);
                Calendar e = Calendar.getInstance();
                e.setTime(date);
                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
                long timeInMillis = e.getTimeInMillis();
                while (true){
                    int w = s.get(Calendar.DAY_OF_WEEK);
                    WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
                    if(list.contains(weekEnum.getChineseName())){
                        Calendar classDate = Calendar.getInstance();
                        classDate.setTime(s.getTime());
                        classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                        classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                        classDate.set(Calendar.SECOND, 0);
                        Calendar endDate = Calendar.getInstance();
                        endDate.setTime(s.getTime());
                        endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
                        endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
                        endDate.set(Calendar.SECOND, 0);
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setCoursePackageId(coursePackage.getId());
                        coursePackageScheduling.setClassDate(classDate.getTime());
                        coursePackageScheduling.setEndDate(endDate.getTime());
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.save(coursePackageScheduling);
                    }
                    String classEndTime = end[i];
                    String[] split1 = classEndTime.split(":");
                    Calendar s = Calendar.getInstance();
                    s.setTime(date);
                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                    if(s.getTimeInMillis() > timeInMillis){
                        break;
                    s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                    s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                    s.set(Calendar.SECOND, 0);
                    Calendar e = Calendar.getInstance();
                    e.setTime(date);
                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
                    long timeInMillis = e.getTimeInMillis();
                    while (true) {
                        int w = s.get(Calendar.DAY_OF_WEEK);
                        WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
                        if (list.contains(weekEnum.getChineseName())) {
                            Calendar classDate = Calendar.getInstance();
                            classDate.setTime(s.getTime());
                            classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                            classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                            classDate.set(Calendar.SECOND, 0);
                            Calendar endDate = Calendar.getInstance();
                            endDate.setTime(s.getTime());
                            endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
                            endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
                            endDate.set(Calendar.SECOND, 0);
                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                            coursePackageScheduling.setCoursePackageId(coursePackage.getId());
                            coursePackageScheduling.setClassDate(classDate.getTime());
                            coursePackageScheduling.setEndDate(endDate.getTime());
                            coursePackageScheduling.setStatus(1);
                            coursePackageSchedulingService.save(coursePackageScheduling);
                        }
                        s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                        if (s.getTimeInMillis() > timeInMillis) {
                            break;
                        }
                    }
                }
            }
            return coursePackage.getId();
        }catch (Exception e){
cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
@@ -17,14 +17,14 @@
    <select id="queryCoursePackageSchedulingList" resultType="map">
        select
        CAST(id AS CHAR(20)) as id,
        DATE_FORMAT(classDate, '%Y-%m-%d') as classDate,
        courseId,
        `status`,
        cancelClasses,
        deductClassHour,
        integral
        from t_course_package_scheduling where coursePackageId = #{item.coursePackageId} order by classDate desc
        SELECT
            CAST(id AS CHAR(20)) AS id,
            CONCAT(DATE_FORMAT(classDate, '%Y-%m-%d %H:%i'), '-20:00') AS classDate,
            courseId,
            `status`,
            cancelClasses,
            deductClassHour,
            integral
        FROM t_course_package_scheduling where coursePackageId = #{item.coursePackageId} order by classDate desc
    </select>
</mapper>
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -132,16 +132,14 @@
    <select id="getStudentIds" resultType="java.lang.Integer">
        SELECT studentId
        FROM t_course_package_payment
        WHERE appUserId = (
            SELECT appUserId
            FROM t_course_package_payment
            WHERE id = #{id}
        ) AND id != #{id} and coursePackageId=(
                 SELECT coursePackageId
            FROM t_course_package_payment
            WHERE id = #{id}
                )
        WHERE appUserId = #{appId} AND id != #{id} and coursePackageId=#{classId}
    </select>
    <update id="updateBytime">
        update  t_course_package_payment
            set laveClassHours = #{coursePackagePayment.laveClassHours},absencesNumber=#{coursePackagePayment.absencesNumber}
        where id = #{coursePackagePayment.id}
    </update>
</mapper>
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -6,10 +6,7 @@
import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
import com.dsh.guns.modular.system.model.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@@ -75,7 +72,7 @@
     * @return
     */
    @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById")
    TCoursePackagePayment queryCoursePackagePaymentById(Long id);
    TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id")Long id);
    /**
@@ -85,6 +82,9 @@
    @PostMapping("/coursePackagePayment/editCoursePackagePayment")
    void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment);
    @PostMapping("/coursePackagePayment/editCoursePackagePayment1")
    void editCoursePackagePayment1(@RequestBody TCoursePackagePayment coursePackagePayment);
    @PostMapping("/coursePackagePayment/CountqueryByClassId")
    Integer queryByClassId(Integer id);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
@@ -231,6 +231,10 @@
        System.out.println("========couponIds=========>"+list4.get(0).getCouponIds());
        model.addAttribute("cashPayment", list4.get(0).getCashPayment() == 0 ? false : true);
        model.addAttribute("playPaiCoin", list4.get(0).getPlayPaiCoin() == 0 ? false : true);
        model.addAttribute("couponIds", list4.get(0).getCouponIds());
        model.addAttribute("coursePackagePaymentConfig", list4.remove(0));
        for (int i = 0; i < list4.size(); i++) {
@@ -239,13 +243,14 @@
        model.addAttribute("coursePackagePaymentConfigs", list4);
        model.addAttribute("index", 1);
                if (list4.size()!=0) {
        CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
//        if (list4.size()!=0) {
            model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
            model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
            System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
//        model.addAttribute("couponIds", "3,2");
//        }
        }
        return PREFIX + "coursePackage_edit.html";
    }
@@ -324,6 +329,10 @@
        System.out.println("========couponIds=========>"+list4.get(0).getCouponIds());
        model.addAttribute("cashPayment", list4.get(0).getCashPayment() == 0 ? false : true);
        model.addAttribute("playPaiCoin", list4.get(0).getPlayPaiCoin() == 0 ? false : true);
        model.addAttribute("couponIds", list4.get(0).getCouponIds());
        model.addAttribute("coursePackagePaymentConfig", list4.remove(0));
        for (int i = 0; i < list4.size(); i++) {
@@ -332,13 +341,14 @@
        model.addAttribute("coursePackagePaymentConfigs", list4);
        model.addAttribute("index", 1);
        CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
//        if (list4.size()!=0) {
        model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
        model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
        System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
        if (list4.size()!=0) {
            CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
            model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
            model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
            System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
//        model.addAttribute("couponIds", "3,2");
//        }
        }
        return PREFIX + "coursePackage_info.html";
    }
@@ -460,7 +470,39 @@
        model.addAttribute("times", strings);
        model.addAttribute("counts", counts);
        return PREFIX + "classRecord.html";
    }
    /**
     * 假期跳转到上课记录列表页
     * @param model
     * @param id
     * @return
     */
    @GetMapping("/openClassRecord1")
    public String openClassRecord1(Model model, Integer id){
        TCoursePackage tCoursePackage = coursePackageClient.queryById(id);
        String[] start = tCoursePackage.getClassStartTime().split(",");
        String[] end = tCoursePackage.getClassEndTime().split(",");
        Integer counts = packagePaymentClient.queryByClassId(id);
        List<String> strings = new ArrayList<>();
        for (int i = 0; i <start.length ; i++) {
            String outTime = start[i] +"-" +end[0];
            strings.add(outTime);
        }
        TStore store = storeService.getById(tCoursePackage.getStoreId());
        Coach coach = coachClient.queryCoachById(tCoursePackage.getCoachId());
        model.addAttribute("item", tCoursePackage);
        model.addAttribute("store", store);
        model.addAttribute("coach", coach);
        model.addAttribute("times", strings);
        model.addAttribute("counts", counts);
        return PREFIX + "classRecord2.html";
    }
@@ -682,8 +724,9 @@
            String jsonString = jsonArray.getString(i);
            String[] split = jsonString.split(" - ");
            first.add(split[0]);
            second.add(split[1]);
            if (split.length>1) {
                second.add(split[1]);
            }
        }
        String firstString = String.join(",",first);
        String secondString = String.join(",",second);
@@ -928,13 +971,14 @@
    /**
     * 补课操作
     * @param coursePackagePaymentId
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/makeUpMissedLessons")
    public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId){
        return coursePackageService.makeUpMissedLessons(coursePackagePaymentId);
    public ResultUtil makeUpMissedLessons(Long id){
        System.out.println("==========coursePackage补课PaymentId======"+id);
        return coursePackageService.makeUpMissedLessons(id);
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -119,6 +119,14 @@
        String roleid = UserExt.getUser().getRoleid();
        return PREFIX + "TShop_edit_three.html";
    }
    @RequestMapping("/tShop_add_two1")
    public String tCompetitionAddTwo1(Integer id,Model model) {
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",list);
        model.addAttribute("id",id);
        String roleid = UserExt.getUser().getRoleid();
        return PREFIX + "TShop_add_two.html";
    }
    /**
@@ -127,20 +135,27 @@
    @RequestMapping("/tShop_update/{id}")
    public String tCityUpdate(@PathVariable Integer id, Model model) {
        TStore byId = storeService.getById(id);
        System.out.println("======byId========="+byId);
        model.addAttribute("item",byId);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
//        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
        TOperatorCity one = operatorCityService.getOne(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1));
        List<TOperatorCity> ones = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1));
        model.addAttribute("list",ones);
        List<TOperatorCity> list3 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, one.getId()).eq(TOperatorCity::getType, 2));
        if(list3.size()>0){
        if(ones.size()>0){
            model.addAttribute("list",ones);
            List<TOperatorCity> list3 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, one.getId()).eq(TOperatorCity::getType, 2));
            model.addAttribute("list1",list3);
            System.out.println("===list3======="+list3);
        }else {
            List<TCity> list2 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
            model.addAttribute("list",list2);
            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
            List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one1.getId()));
            model.addAttribute("list1",list1);
            System.out.println("===list1======="+list1);
        }
        CityListQuery cityListQuery = new CityListQuery();
        cityListQuery.setOffset(1);
@@ -289,25 +304,48 @@
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object list(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) {
    public Object list(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon,String pCode1,String cCode1) {
        try {
            if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
                TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
                tStore.setProvince(one.getName());
                tStore.setProvinceCode(one.getCode());
                List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
                if(list.size()>0){
                    TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                    tStore.setCity(one1.getName());
                    tStore.setCityCode(one1.getCode());
            if(yyId==null){
                yyId=0;
            }
            if(yyId!=0) {
                List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, yyId));
                if(list1.size()>0){
                    if (ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
                        TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
                        tStore.setProvince(one.getName());
                        tStore.setProvinceCode(one.getCode());
                        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
                        if (list.size() > 0) {
                            TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                            tStore.setCity(one1.getName());
                            tStore.setCityCode(one1.getCode());
                        } else {
                            TCity byId1 = cityService.getById(tStore.getCityCode());
                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                            tStore.setCity(one1.getName());
                            tStore.setCityCode(one1.getCode());
                        }
                    }
                }else {
                    TCity byId1 = cityService.getById(tStore.getCityCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                    TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
                    tStore.setProvince(one.getName());
                    tStore.setProvinceCode(one.getCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
                    tStore.setCity(one1.getName());
                    tStore.setCityCode(one1.getCode());
                }
            }else {
                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, pCode1));
                tStore.setProvince(one.getName());
                tStore.setProvinceCode(one.getCode());
                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cCode1));
                tStore.setCity(one1.getName());
                tStore.setCityCode(one1.getCode());
            }
            tStore.setStartTime(time.split(" - ")[0]);
            tStore.setEndTime(time.split(" - ")[1]);
@@ -351,27 +389,53 @@
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) {
    public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon,String pCode1,String cCode1) {
        try {
            TStore byId = storeService.getById(tStore.getId());
            TStore byIdc = storeService.getById(tStore.getId());
            if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
                TOperatorCity tOperatorCity = operatorCityService.getById(tStore.getProvinceCode());
                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tOperatorCity.getCode()));
                tStore.setProvince(one.getName());
                tStore.setProvinceCode(one.getCode());
                List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, tOperatorCity.getId()).eq(TOperatorCity::getType, 2));
                if(list.size()>0){
                    TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                    tStore.setCity(one1.getName());
                    tStore.setCityCode(one1.getCode());
            if(yyId==null){
                yyId=0;
            }
            if(tStore.getType()==1){
                yyId=0;
            }
            if(yyId!=0) {
                List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, yyId));
                if(list1.size()>0){
                    if (ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
                        TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
                        tStore.setProvince(one.getName());
                        tStore.setProvinceCode(one.getCode());
                        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
                        if (list.size() > 0) {
                            TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                            tStore.setCity(one1.getName());
                            tStore.setCityCode(one1.getCode());
                        } else {
                            TCity byId1 = cityService.getById(tStore.getCityCode());
                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                            tStore.setCity(one1.getName());
                            tStore.setCityCode(one1.getCode());
                        }
                    }
                }else {
                    TCity byId1 = cityService.getById(tStore.getCityCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
                    TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
                    tStore.setProvince(one.getName());
                    tStore.setProvinceCode(one.getCode());
                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
                    tStore.setCity(one1.getName());
                    tStore.setCityCode(one1.getCode());
                }
            }else {
                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
                tStore.setProvince(one.getName());
                tStore.setProvinceCode(one.getCode());
                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
                tStore.setCity(one1.getName());
                tStore.setCityCode(one1.getCode());
            }
            tStore.setStartTime(time.split(" - ")[0]);
            tStore.setEndTime(time.split(" - ")[1]);
@@ -379,9 +443,9 @@
            tStore.setType(type);
            tStore.setOperatorId(yyId);
            if(ToolUtil.isEmpty(tStore.getCoverDrawing())){
                tStore.setCoverDrawing(byId.getCoverDrawing());
                tStore.setCoverDrawing(byIdc.getCoverDrawing());
            }
            User user = userMapper.selectById(byId.getStoreStaffId());
            User user = userMapper.selectById(byIdc.getStoreStaffId());
            List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone).ne(User::getId,tStore.getStoreStaffId()));
            if(users.size()>0){
                return "5001";
@@ -479,7 +543,13 @@
    public Object onChange1(Integer oneId) {
        try {
            List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1));
            return list;
            if(list.size()==0){
                List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
                return list1;
            }else {
                return list;
            }
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
@@ -492,6 +562,13 @@
        try {
            List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1));
            List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, oneId).eq(TOperatorCity::getType, 2));
            // 若是全国 为空 去找这个省下面的市
            if(list1.size()==0){
                TCity byId = cityService.getById(oneId);
                List<TCity> list2 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, byId.getId()));
                return list2;
            }
            if(list.size()==0){
                TOperatorCity tOperatorCity = list1.get(0);
                Integer code = tOperatorCity.getCode();
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -189,13 +189,12 @@
            }
        }
        User user = userService.getByAccount(username);
        // todo 记得该回去!!!!!!!!!!
//        password = AESUtils.decrypt(password);
//        String s = MD5.md5(password);
//        if(!user.getPassword().equals(s)){
//            model.addAttribute("tips", "账号密码错误");
//            return "/login.html";
//        }
        password = AESUtils.decrypt(password);
        String s = MD5.md5(password);
        if(!user.getPassword().equals(s)){
            model.addAttribute("tips", "账号密码错误");
            return "/login.html";
        }
        GetTokenRequest tokenRequest = new GetTokenRequest();
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -194,6 +194,9 @@
            payment.setId(Long.valueOf(tCoursePackage.getId()));
            BigDecimal cashPayment = payment.getCashPayment();
            if (cashPayment==null){
                cashPayment = BigDecimal.ZERO;
            }
            Integer totalClassHours = payment.getTotalClassHours();
            BigDecimal result =  new BigDecimal(0);
            if (totalClassHours!=0) {
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java
@@ -7,5 +7,5 @@
public class GiftSearchDto {
    String name;
    String phone;
    Integer id;
    Long id;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
@@ -4,6 +4,6 @@
@Data
public class SelectDto {
    Integer id;
    Long id;
    String value;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -356,7 +356,6 @@
        return coursePackageStudentClient.queryCoursePackageStudentList(queryCoursePackageStudentList);
    }
    /**
     * 取消预约
     * @param id
@@ -368,9 +367,19 @@
        if(coursePackageStudent.getSignInOrNot() == 1){
            return ResultUtil.error("无法取消预约");
        }
//        TCoursePackagePayment payment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
//        payment.setAbsencesNumber(payment.getAbsencesNumber()+1);
//        coursePackagePaymentClient.editCoursePackagePayment(payment);
        coursePackageStudent = new CoursePackageStudent();
        coursePackageStudent.setId(id);
        coursePackageStudent.setReservationStatus(0);
        coursePackageStudent.getCoursePackagePaymentId();
        coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
        return ResultUtil.success();
    }
@@ -462,17 +471,19 @@
            }
            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
            if(tCoursePackagePayment.getLaveClassHours() - deductClassHour<0){
                coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
                continue;
            if (deductClassHour!=null) {
                if (tCoursePackagePayment.getLaveClassHours() - deductClassHour < 0) {
                    coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
                    continue;
                }
                tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
            }
            tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
            if(coursePackageStudent.getSignInOrNot() == 0){
                tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1);
            }
            coursePackagePaymentClient.editCoursePackagePayment(tCoursePackagePayment);
            System.out.println("====tCoursePackagePayment====="+tCoursePackagePayment);
            coursePackagePaymentClient.editCoursePackagePayment1(tCoursePackagePayment);
            CancelledClasses cancelledClasses = new CancelledClasses();
            cancelledClasses.setType(1);
@@ -480,7 +491,8 @@
            cancelledClasses.setCoursePackagePaymentId(coursePackageStudent.getCoursePackagePaymentId());
            cancelledClasses.setCoursePackageSchedulingId(coursePackageStudent.getCoursePackageSchedulingId());
            cancelledClasses.setVoucher(cancelClasses);
            cancelledClasses.setCancelledClassesNumber(deductClassHour);
            if (deductClassHour!=null) {
            cancelledClasses.setCancelledClassesNumber(deductClassHour);}
            cancelledClasses.setInsertTime(new Date());
            cancelledClassesClient.addCancelledClasses(cancelledClasses);
        }
@@ -587,6 +599,7 @@
    @Override
    public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId) {
        TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
        System.out.println("=========coursePackagePayment=====>"+coursePackagePayment);
        if(coursePackagePayment.getStatus() == 2){
            return ResultUtil.error("该学员已退课");
        }
cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -17,8 +17,7 @@
    </delete>
    <select id="listAll" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
        select t1.*,t2.name userName,t2.phone userPhone from t_store t1 left join sys_user t2 on t1.storeStaffId = t2.id
        select t1.*,t2.name userName,t2.phone userPhone,t3.name yysName from t_store t1 left join sys_user t2 on t1.storeStaffId = t2.id left  join t_operator t3 on t1.operatorId = t3.id
        where 1=1
        <if test="provinceCode !=null and provinceCode !=''">
            and t1.provinceCode = #{provinceCode}
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html
@@ -46,7 +46,7 @@
                            <#button name="发布课后练习" icon="fa-refresh" clickFun="ClassRecord.afterClassExercises()" space="true"/>
                            <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord(${item.codeTime})" space="true"/>
                            <#button name="查看消课记录" icon="fa-refresh" clickFun="ClassRecord.lookCancellationRecord()" space="true"/>
                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>
<!--                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>-->
                        </div>
                        <#table id="managerTable"/>
                    </div>
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html
New file
@@ -0,0 +1,68 @@
@layout("/common/_container.html"){
<link rel="stylesheet" href="${ctxPath}/layui/css/layui.css"  media="all">
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <h3>课包信息</h3>
                            <input type="hidden" id="id" value="${item.id}">
                            <input type="hidden" id="codeTime" value="${item.codeTime}">
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;">所属门店:</label>
                                <span class="col-sm-2" style="text-align: left;">${store.name}</span>
                            </div>
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;">课包名称:</label>
                                <span class="col-sm-1" style="text-align: left;" id="name">${item.name}</span>
                            </div>
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;">授课教师:</label>
                                <span class="col-sm-2" style="text-align: left;">${coach.name!}</span>
                            </div>
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;">已报名学员:</label>
                                <span class="col-sm-2" style="text-align: left;">${counts}</span>
                            </div>
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;">上课时间:</label>
                                <span class="col-sm-2" style="text-align: left;">${item.classWeeks}</span>
                            </div>
                            @for(time in times){
                            <div class="form-group" style="height: 10px;">
                                <label class="col-sm-1 control-label" style="text-align: right;"></label>
                                <span class="col-sm-2" style="text-align: left;">${time}</span>
                            </div>
                            @}
                        </div>
                        <div class="hidden-xs" id="managerTableToolbar" role="group">
                            <#button name="查看学员" icon="fa-plus" clickFun="ClassRecord.classRecord()"/>
                            <#button name="取消本次" icon="fa-edit" clickFun="ClassRecord.cancelClassSchedule()" space="true"/>
                            <#button name="发布课后练习" icon="fa-refresh" clickFun="ClassRecord.afterClassExercises()" space="true"/>
                            <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord(${item.codeTime})" space="true"/>
                            <#button name="查看消课记录" icon="fa-refresh" clickFun="ClassRecord.lookCancellationRecord()" space="true"/>
<!--                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>-->
                        </div>
                        <#table id="managerTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/coursePackage/classRecord2.js"></script>
<script src="${ctxPath}/layui/layui.js" charset="utf-8"></script>
<script>
    laydate.render({
        elem: '#beginTime'
    });
    laydate.render({
        elem: '#endTime'
    });
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
@@ -193,9 +193,9 @@
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">*课时有效期:</label>
                    <div class="col-sm-4">
                        购买后 <input id="validDays" name="validDays" type="number" min="0" placeholder="天数" style="width: 80px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 天内有效
                    <label class="col-sm-3 control-label"${type == 2||type == 3 ? 'hidden=hidden' : ''}>*课时有效期:</label>
                    <div class="col-sm-4" ${type == 2||type == 3 ? 'hidden=hidden' : ''}>
                        购买后 <input id="validDays" name="validDays" type="number" min="0" placeholder="天数" style="width: 80px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;" > 天内有效
                    </div>
                </div>
                <div id="price">
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html
@@ -241,7 +241,7 @@
                                @}
                            </span>
                            <input type="hidden" id="counpons${obj.id}" value="${obj.couponIds}" class="counpons">                            <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(${obj.id})"/>
                            <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(4, this)"></i>
                            <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>
                        </div>
                    </div>
                    @}
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html
@@ -7,7 +7,7 @@
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <input type="text" id="type" value="${type}">
                            <input type="hidden" id="type" value="${type}">
                            <input type="hidden" id="id" value="${item.id}">
                            <input type="hidden" id="name" value="${item.name}">
                            <div class="col-lg-10 col-sm-9">
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html
@@ -7,7 +7,7 @@
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <input type="text" id="type" value="${type}">
                            <input type="hidden" id="type" value="${type}">
                            <input type="hidden" id="id" value="${item.id}">
                            <input type="hidden" id="name" value="${item.name}">
                            <div class="col-lg-10 col-sm-9">
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html
@@ -7,7 +7,7 @@
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <input type="text" id="type" value="${type}">
                            <input type="hidden" id="type" value="${type}">
                            <input type="hidden" id="id" value="${item.id}">
                            <input type="hidden" id="name" value="${item.name}">
                            <div class="col-lg-10 col-sm-9">
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html
@@ -52,7 +52,8 @@
                </div>
            </div>
            @if(role=='1'){
            <div class="form-group" id="yys" hidden >
            <div id="yys" hidden>
            <div class="form-group"   >
                <label class="col-sm-3 control-label">所属运营商:</label>
                <div class="col-sm-9">
                    <select class="form-control" id="account" name="account" onchange="TCarInfoDlg.oneChange1(this)">
@@ -76,6 +77,30 @@
                    <select class="form-control" id="cCode" name="cCode" >
                        <option value="">选择市</option>
                    </select>
                </div>
            </div>
            </div>
            <div id="yys1" >
                <div class="form-group" id="provinceCode1">
                    <label class="col-sm-3 control-label">所在省:</label>
                    <div class="col-sm-9">
                        <select class="form-control" id="pCode1" name="pCode1" onchange="TCarInfoDlg.oneChange(this)">
                            <option value="">选择省</option>
                            @for(i in list){
                              <option value="${i.code}">${i.name}</option>
                            @}
                        </select>
                    </div>
                </div>
                <div class="form-group" id="cityCode1">
                    <label class="col-sm-3 control-label">所在市:</label>
                    <div class="col-sm-9">
                        <select class="form-control" id="cCode1" name="cCode1" >
                            <option value="">选择市</option>
                        </select>
                    </div>
                </div>
            </div>
@@ -193,8 +218,10 @@
    function updateType(o) {
        if(o==1){
            $("#yys").hide()
            $("#yys1").show()
        }else {
            $("#yys").show()
            $("#yys1").hide()
        }
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
@@ -100,7 +100,7 @@
                <!-- 创建地图容器-->
                <div id="container" style="height: 500px;" ></div>
            </div>
            <#input id="time" name="营业时间" type="text" value="${time}"/>
            <#input id="time" name="营业时间" type="text" value="${time}"/>v
            <div class="form-group">
                <label class="col-sm-3 control-label">门店介绍:</label>
                <div class="col-sm-9">
@@ -223,7 +223,6 @@
            $("#yys").hide()
        }else {
            $("#yys").show()
            queryStudentData
        }
    }
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
@@ -1228,16 +1228,14 @@
                                        "valueField": "id"
                                      }
                                    ],
                                    "messages": {
                                    },
                                    "messages": {},
                                    "loadingConfig": {
                                      "show": true
                                      "show": false
                                    },
                                    "api": {
                                      "url": "/tStudent/giftSelect",
                                      "method": "post",
                                      "messages": {
                                      },
                                      "messages": {},
                                      "requestAdaptor": "",
                                      "adaptor": "",
                                      "dataType": "form-data",
@@ -1246,7 +1244,8 @@
                                        "phone": "$phone",
                                        "id": "$id"
                                      }
                                    }
                                    },
                                    "initFetch": false
                                  },
                                  {
                                    "type": "input-text",
@@ -1316,12 +1315,10 @@
                                  "method": "post",
                                  "requestAdaptor": "",
                                  "adaptor": "",
                                  "messages": {
                                  },
                                  "messages": {},
                                  "dataType": "form-data"
                                },
                                "actions": [
                                ],
                                "actions": [],
                                "onEvent": {
                                  "submitSucc": {
                                    "weight": 0,
@@ -1341,8 +1338,7 @@
                              {
                                "id": "u:59d68a32f7fd",
                                "type": "container",
                                "body": [
                                ],
                                "body": [],
                                "style": {
                                  "position": "static",
                                  "display": "block"
@@ -1354,8 +1350,7 @@
                            "showLoading": true,
                            "className": "app-popover",
                            "id": "u:552bd1b3464d",
                            "actions": [
                            ],
                            "actions": [],
                            "canAccessSuperData": false
                          }
                        }
@@ -1389,8 +1384,7 @@
                                    "api": {
                                      "url": "/tStudent/changelist/$id",
                                      "method": "post",
                                      "messages": {
                                      },
                                      "messages": {},
                                      "requestAdaptor": "",
                                      "adaptor": "",
                                      "dataType": "form"
@@ -1408,7 +1402,11 @@
                                        "name": "changeType",
                                        "label": "变更类型",
                                        "type": "mapping",
                                        "id": "u:e2b292dd63d0"
                                        "id": "u:e2b292dd63d0",
                                        "map": {
                                          "0": "减少",
                                          "1": "增加"
                                        }
                                      },
                                      {
                                        "type": "text",
@@ -1423,10 +1421,8 @@
                                        "id": "u:8ba95bfd5e56"
                                      }
                                    ],
                                    "bulkActions": [
                                    ],
                                    "itemActions": [
                                    ],
                                    "bulkActions": [],
                                    "itemActions": [],
                                    "features": [
                                      "filter"
                                    ],
@@ -1532,8 +1528,7 @@
                                    "perPageAvailable": [
                                      10
                                    ],
                                    "messages": {
                                    },
                                    "messages": {},
                                    "perPageField": "size"
                                  },
                                  {
@@ -1588,12 +1583,10 @@
                                  "method": "post",
                                  "requestAdaptor": "",
                                  "adaptor": "",
                                  "messages": {
                                  },
                                  "messages": {},
                                  "dataType": "form-data"
                                },
                                "actions": [
                                ]
                                "actions": []
                              }
                            ],
                            "showCloseButton": true,
@@ -1601,8 +1594,7 @@
                            "showLoading": true,
                            "className": "",
                            "id": "u:f66fa4de8251",
                            "actions": [
                            ],
                            "actions": [],
                            "canAccessSuperData": false,
                            "wrapWithPanel": false,
                            "size": "xl",
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html
@@ -60,7 +60,8 @@
                  "name": "id",
                  "id": "u:d038053014ca",
                  "mode": "horizontal",
                  "size": "md"
                  "size": "md",
                  "hidden": true
                },
                {
                  "type": "input-text",
@@ -68,7 +69,8 @@
                  "name": "ids",
                  "id": "u:223b7f2a1a5b",
                  "mode": "horizontal",
                  "size": "md"
                  "size": "md",
                  "hidden": true
                },
                {
                  "label": "换课课程:",
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html
@@ -61,7 +61,8 @@
                  "name": "id",
                  "id": "u:d038053014ca",
                  "mode": "horizontal",
                  "size": "md"
                  "size": "md",
                  "hidden": true
                },
                {
                  "type": "input-text",
@@ -69,7 +70,8 @@
                  "name": "ids",
                  "id": "u:223b7f2a1a5b",
                  "mode": "horizontal",
                  "size": "md"
                  "size": "md",
                  "hidden": true
                },
                {
                  "label": "换课课程:",
cloud-server-management/src/main/webapp/static/img/index4.png

cloud-server-management/src/main/webapp/static/img/logo.png

cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
@@ -19,7 +19,7 @@
        {title: '请假学员', field: 'registered', align: 'center', valign: 'middle'},
        {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle',
            formatter: function (v, row) {
                if (row.absencesNumber === undefined) {
                if (row.cancelClasses === undefined) {
                    return 0;
                } else {
                    return v;
@@ -59,7 +59,7 @@
            }
        },
        {title: '扣除课时', field: 'deductClassHour', align: 'center', valign: 'middle'},
        {title: '取消记录', field: 'absencesNumber', align: 'center', valign: 'middle',
        {title: '消课凭证', field: 'cancelClasses', align: 'center', valign: 'middle',
            formatter: function (v) {
                if (typeof v === "undefined") {
                    return '未上传';
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js
New file
@@ -0,0 +1,440 @@
/**
 * 系统管理--用户管理的单例对象
 */
let ClassRecord = {
    id: "managerTable",//表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1,
    courseList: null
};
/**
 * 初始化表格的列
 */
ClassRecord.initColumn = function () {
    let columns = [
        {field: 'selectItem', radio: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '日期', field: 'classDate', align: 'center', valign: 'middle'},
        {title: '请假学员', field: 'registered', align: 'center', valign: 'middle'},
        {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle',
            formatter: function (v, row) {
                if (row.absencesNumber === undefined) {
                    return 0;
                } else {
                    return v;
                }
            }
        },
        {title: '未到学员', field: 'nonArrival', align: 'center', valign: 'middle',
            formatter: function (v, row) {
                if (row.absencesNumber === undefined) {
                    return 0;
                } else {
                    return v;
                }
            }
        },
        {title: '课后练习', field: 'courseId', align: 'center', valign: 'middle',
            formatter: function (v) {
                if (typeof v === "undefined") {
                    return '未布置';
                } else {
                    return '已布置';
                }
            }
        },
        {title: '状态', field: 'status', align: 'center', valign: 'middle',
            formatter: function (v) {
                switch (v) {
                    case 1:
                        return '未开始';
                    case 2:
                        return '已开始';
                    case 3:
                        return '已结束';
                    case 4:
                        return '已取消';
                }
            }
        },
        {title: '扣除课时', field: 'deductClassHour', align: 'center', valign: 'middle'},
        {title: '消课凭证', field: 'cancelClasses', align: 'center', valign: 'middle',
            formatter: function (v) {
                if (typeof v === "undefined") {
                    return '未上传';
                } else {
                    return '已上传';
                }
            }
        },
    ];
    return columns;
};
/**
 * 检查是否选中
 */
ClassRecord.check = function () {
    let selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length == 0) {
        Feng.info("请先选中表格中的某一记录!");
        return false;
    } else {
        ClassRecord.seItem = selected[0];
        return true;
    }
};
/**
 * 点击修改按钮时
 * @param userId 管理员id
 */
ClassRecord.classRecord = function () {
    if (this.check()) {
        let index = layer.open({
            type: 2,
            title: '查看学员',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/coursePackage/openCoursePackageStudent?id=' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除用户
 */
ClassRecord.cancelClassSchedule = function () {
    if (this.check()) {
        let operation = function(){
            let ajax = new $ax(Feng.ctxPath + "/coursePackage/cancelClassSchedule", function (res) {
                if(res.code == 200){
                    Feng.success("取消成功!");
                    ClassRecord.table.refresh();
                }else{
                    Feng.error(res.msg);
                }
            }, function (data) {
                Feng.error("取消失败!" + data.responseJSON.message + "!");
            });
            ajax.set("id", ClassRecord.seItem.id);
            ajax.start();
        };
        Feng.confirm("确定取消本次",operation);
    }
};
ClassRecord.afterClassExercises = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/course/queryCourseByType", function (data) {
            ClassRecord.courseList = data;
            let htmlStr =
                '<div class="form-horizontal">' +
                '   <div class="col-sm-11" style="padding: 20px;">' +
                '       <div class="form-group">\n' +
                '           <label class="col-sm-3 control-label">视频类型:</label>\n' +
                '           <div class="col-sm-9" style="margin-top: 6px;">\n' +
                '               <span>课后练习</span>' +
                '           </div>\n' +
                '       </div>' +
                '       <div class="form-group">\n' +
                '           <label class="col-sm-3 control-label">视频名称:</label>\n' +
                '           <div class="col-sm-9">\n' +
                '               <select class="form-control" id="courseId">' +
                '                   <option value="">请选择</option>';
            for (let i = 0; i < data.length; i++) {
                htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
            }
            htmlStr += '        </select>' +
            '               </div>\n' +
            '           </div>' +
                '       <div class="form-group">\n' +
                '           <label class="col-sm-3 control-label">视频封面:</label>\n' +
                '           <div class="col-sm-9">\n' +
                '               <img src="" style="height: 150px;" id="coverDrawing"/>' +
                '           </div>\n' +
                '       </div>' +
                '       <div class="form-group">\n' +
                '           <label class="col-sm-3 control-label">视频简介:</label>\n' +
                '           <div class="col-sm-9">\n' +
                '               <textarea class="form-control" id="introduce" style="height: 200px;"></textarea>' +
                '           </div>\n' +
                '       </div>' +
                '       <div class="form-group">\n' +
                '           <label class="col-sm-3 control-label">可获得积分:</label>\n' +
                '           <div class="col-sm-9">\n' +
                '               <input class="form-control" id="integral" type="number" min="0">' +
                '           </div>\n' +
                '       </div>' +
            '       </div>' +
            '</div>';
            layer.open({
                type: 1
                , title: '选择课程'
                , area: ['50%', '90%']
                , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
                , id: 'layerDemo' //防止重复弹出cge
                , content: htmlStr
                , btn: ['保存', '关闭']
                , btnAlign: 'c' //按钮居中
                , shade: 0.5 //不显示遮罩
                , yes: function () {
                    let courseId = $('#courseId').val();
                    let integral = $('#integral').val();
                    if(null == courseId || '' == courseId){
                        Feng.error("请选择有效的课程");
                        return
                    }
                    if(null == integral || '' == integral){
                        Feng.error("请输入有效的积分");
                        return
                    }
                    let ajax = new $ax(Feng.ctxPath + "/coursePackage/afterClassExercises", function (res) {
                        if(res.code == 200){
                            Feng.success("保存成功!");
                            layer.closeAll();
                            RegistrationRecord.table.refresh();
                        }else{
                            Feng.error(res.msg);
                        }
                    }, function (data) {
                        Feng.error("保存失败!" + data.responseJSON.message + "!");
                    });
                    ajax.set("id", ClassRecord.seItem.id);
                    ajax.set("courseId", courseId);
                    ajax.set("integral", integral);
                    ajax.start();
                },
            });
            $('#courseId').change(function () {
                let id = $(this).val();
                for (let i = 0; i < ClassRecord.courseList.length; i++) {
                    if(ClassRecord.courseList[i].id == id){
                        $('#coverDrawing').attr("src", ClassRecord.courseList[i].coverDrawing);
                        $('#introduce').text(ClassRecord.courseList[i].introduce);
                    }
                }
            })
            $('#courseId').val(ClassRecord.seItem.courseId);
            $('#integral').val(ClassRecord.seItem.integral);
        }, function (data) {
            Feng.error("获取失败!" + data.responseJSON.message + "!");
        });
        ajax.set('type', 1);
        ajax.start();
    }
};
ClassRecord.cancellationRecord = function(i){
    if(this.check()){
        let htmlStr =
        '<div class="form-horizontal">' +
            '   <div class="col-sm-11" style="padding: 20px;">' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-2"></label>'+
            '           <label class="col-sm-8 control-label" style="text-align: left;">课程名称:' + $("#name").text() + '</label>\n' +
            '       </div>' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-2"></label>'+
            '           <label class="col-sm-8 control-label" style="text-align: left;">*上传凭证(请上传小于5张图片):</label>\n' +
            '       </div>' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-2"></label>'+
            '           <div class="col-sm-8" style="min-height: 200px;">\n' +
            '               <div id="cancelClasses"></div>' +
            '               <input type="file" id="file" style="display: none;"/>' +
            '               <button onclick="uploadImgs()" style="width: 60px;padding: 10px; color: white;background-color: #0d8ddb;border-radius: 5px;border: none;bottom: 50%;position: absolute;"> 上传 </button>' +
            '           </div>\n' +
            '       </div>' +
            '       </div>' +
            '</div>';
        layer.open({
            type: 1
            , title: '上传消课记录'
            , area: ['80%', '90%']
            , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
            , id: 'layerDemo' //防止重复弹出cge
            , content: htmlStr
            , btn: ['保存', '关闭']
            , btnAlign: 'c' //按钮居中
            , shade: 0.5 //不显示遮罩
            , yes: function () {
                let cancelClasses = $('#cancelClasses').html();
                let deductClassHour = $('#deductClassHour').val();
                if(null == cancelClasses || '' == cancelClasses){
                    Feng.error("请上传凭证图片");
                    return
                }
                // if(null == deductClassHour || '' == deductClassHour){
                //     Feng.error("请输入有效的扣除课时数");
                //     return
                // }
                let div_array = $('#cancelClasses').find('div');
                let str = '';
                for (let i = 0; i < div_array.length; i++) {
                    let v = $($(div_array[i]).find('img')[0]).attr('src');
                    str += v + ";";
                }
                let ajax = new $ax(Feng.ctxPath + "/coursePackage/cancellationRecord", function (res) {
                    if(res.code == 200){
                        Feng.success("保存成功!");
                        layer.closeAll();
                        RegistrationRecord.table.refresh();
                    }else{
                        Feng.error(res.msg);
                    }
                }, function (data) {
                    Feng.error("保存失败!" + data.responseJSON.message + "!");
                });
                ajax.set("id", ClassRecord.seItem.id);
                ajax.set("cancelClasses", str.substring(0, str.length - 1));
                ajax.set("deductClassHour", deductClassHour);
                ajax.start();
            },
        });
        $('#file').on('change', function () {
            var formData = new FormData()  //创建一个forData
            formData.append('file', $('#file')[0].files[0]) //把file添加进去  name命名为img
            layer.load(); //上传loading
            $.ajax({
                url: Feng.ctxPath + '/mgr/uploadImg',
                data: formData,
                type: "POST",
                async: true,
                cache: false,
                contentType: false,
                processData: false,
                success: function(res) {
                    layer.closeAll('loading'); //关闭loading
                    $('#file').val('');
                    $('#cancelClasses').append('' +
                        '<div style="float: left; margin: 10px; width: 200px;">' +
                        '   <i class="fa fa-close" style="font-size:24px;color: red;position: relative;top: 10px;right: -190px" onclick="removeImg(this)"></i>' +
                        '   <div style="width: 100%;"><img src="' + res + '" style="width: 100%;"/></div>' +
                        '</div>')
                }
            })
        })
    }
}
ClassRecord.lookCancellationRecord = function(){
    if(this.check()){
        if(ClassRecord.seItem.cancelClasses == '' || ClassRecord.seItem.cancelClasses == null){
            Feng.error("请先上传消课凭证");
            return
        }
        let imgs = ClassRecord.seItem.cancelClasses.split(";");
        let htmlStr =
            '<div class="form-horizontal">' +
            '   <div class="col-sm-11" style="padding: 20px;">' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-8 control-label">课程名称:' + $("#name").text() + '</label>\n' +
            '       </div>' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-8 control-label">*上传凭证(请上传小于5张图片):</label>\n' +
            '       </div>' +
            '       <div class="form-group">\n' +
            '           <div class="col-sm-8" style="min-height: 200px;">\n' +
            '               <div id="cancelClasses">';
        for (let i = 0; i < imgs.length; i++) {
            htmlStr += '<div><img src="' + imgs[i] + '" style="height: 150px;"/></div>&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        htmlStr += '</div>' +
            '           </div>\n' +
            '       </div>' +
            '       <div class="form-group">\n' +
            '           <label class="col-sm-3 control-label">扣除课时数:</label>\n' +
            '           <div class="col-sm-9">\n' +
            '               <input class="form-control" id="deductClassHour" value="' + ClassRecord.seItem.deductClassHour + '" type="number" min="0">' +
            '           </div>\n' +
            '       </div>' +
            '       </div>' +
            '</div>';
        layer.open({
            type: 1
            , title: '查看消课记录'
            , area: ['50%', '90%']
            , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
            , id: 'layerDemo' //防止重复弹出cge
            , content: htmlStr
            , btnAlign: 'c' //按钮居中
            , shade: 0.5 //不显示遮罩
            , yes: function () {
            },
        });
    }
}
ClassRecord.manualReservation = function(){
    if(this.check()){
        let index = layer.open({
            type: 2,
            title: '手动预约',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/coursePackage/openManualReservation?id=' + this.seItem.id
        });
        this.layerIndex = index;
    }
}
function uploadImgs(){
    let num = $('#cancelClasses>div').length;
    if(num >= 5){
        Feng.error("最多只能上传5张图片");
        return;
    }
    $('#file').click();
}
function removeImg(e){
    $(e).parent('div').remove();
}
ClassRecord.resetSearch = function () {
    ClassRecord.search();
}
ClassRecord.search = function () {
    let queryData = {};
    queryData['id'] = $('#id').val();
    ClassRecord.table.refresh({query: queryData});
}
$(function () {
    let defaultColunms = ClassRecord.initColumn();
    let table = new BSTable(ClassRecord.id, "/coursePackage/queryClassRecord", defaultColunms);
    // 设置物理分页server(逻辑分页client)
    table.setPaginationType("server");
    table.setQueryParams({
        id: $('#id').val()
    })
    ClassRecord.table = table.init();
});
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js
@@ -119,22 +119,22 @@
        Feng.error("授课教师不能为空");
        return
    }
    if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
        Feng.error("最多预约人数不能为空");
        return
    }
    // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
    //     Feng.error("最多预约人数不能为空");
    //     return
    // }
    // if(null == codeTime || '' == codeTime){
    //     Feng.error("扣除课时数不能为空不能为空");
    //     return
    // }
    if(null == classStartTime || '' == classStartTime){
        Feng.error("上课时间不能为空");
        return
    }
    if(null == classWeeks || '' == classWeeks){
        Feng.error("上课时间不能为空");
        return
    }
    // if(null == classStartTime || '' == classStartTime){
    //     Feng.error("上课时间不能为空");
    //     return
    // }
    // if(null == classWeeks || '' == classWeeks){
    //     Feng.error("上课时间不能为空");
    //     return
    // }
    classWeeks = classWeeks.substring(0, classWeeks.length - 1);
    if(null == coverDrawing || '' == coverDrawing){
@@ -149,10 +149,10 @@
        Feng.error("课包介绍不能为空");
        return
    }
    if(null == validDays || '' == validDays){
        Feng.error("课时有效期不能为空");
        return
    }
    // if(null == validDays || '' == validDays){
    //     Feng.error("课时有效期不能为空");
    //     return
    // }
    let obj = {
        province: province,
@@ -276,21 +276,22 @@
        Feng.error("授课教师不能为空");
        return
    }
    if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
        Feng.error("最多预约人数不能为空");
        return
    }  if(null == codeTime || '' == codeTime){
        Feng.error("扣除课时不能为空");
        return
    }
    if(null == classStartTime || '' == classStartTime){
        Feng.error("上课时间不能为空");
        return
    }
    if(null == classWeeks || '' == classWeeks){
        Feng.error("上课时间不能为空");
        return
    }
    // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
    //     Feng.error("最多预约人数不能为空");
    //     return
    // }
    // if(null == codeTime || '' == codeTime){
    //     Feng.error("扣除课时不能为空");
    //     return
    // }
    // if(null == classStartTime || '' == classStartTime){
    //     Feng.error("上课时间不能为空");
    //     return
    // }
    // if(null == classWeeks || '' == classWeeks){
    //     Feng.error("周不能为空");
    //     return
    // }
    classWeeks = classWeeks.substring(0, classWeeks.length - 1);
    if(null == coverDrawing || '' == coverDrawing){
@@ -305,10 +306,10 @@
        Feng.error("课包介绍不能为空");
        return
    }
    if(null == validDays || '' == validDays){
        Feng.error("课时有效期不能为空");
        return
    }
    // if(null == validDays || '' == validDays){
    //     Feng.error("课时有效期不能为空");
    //     return
    // }
    let obj = {
        id: id,
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js
@@ -20,25 +20,53 @@
        {title: '购课学员', field: 'studentName', align: 'center', valign: 'middle'},
        {title: '报名时间', field: 'insertTime', align: 'center', valign: 'middle'},
        {title: '总课时数', field: 'totalClassHours', align: 'center', valign: 'middle'},
        {title: '剩余课时数', field: 'laveClassHours', align: 'center', valign: 'middle',rowStyle: function(row, index) {
                // 参数说明:
                //row, 行,row.xxx,能获取某个字段的值
                //index,索引,第几行
                // 逻辑判断
                // .....
                return  {"background-color":'rgba(208,9,9,0.7)'};
        {
            title: '剩余课时数',
            field: 'laveClassHours',
            align: 'center',
            valign: 'middle',
            formatter: function (value, row) {
                if (value < 3) {
                    return '<div style="color: red;">' + value + '</div>';
                } else {
                    return value;
                }
            }
        },
        {title: '已上课时数', field: 'already', align: 'center', valign: 'middle'},
        {
            title: '已上课时数',
            field: 'already',
            align: 'center',
            valign: 'middle',
            formatter: function (value, row) {
                var totalClassHours = row.totalClassHours;
                var laveClassHours = row.laveClassHours;
                var alreadyClassHours = totalClassHours - laveClassHours;
                return alreadyClassHours;
            }
        },
        {title: '请假次数', field: 'absencesNumber', align: 'center', valign: 'middle'},
        {title: '状态', field: 'status', align: 'center', valign: 'middle',
        {
            title: '状态',
            field: 'status',
            align: 'center',
            valign: 'middle',
            formatter: function (v) {
                switch (v) {
                    case 1:
                        return '正常';
                    case 2:
                        return '<a href="#" onclick="">已退课-查看凭证</a>';
                        return '已退课';
                    case 3:
                        return '换课中';
                    case 4:
                        return '申请退费中';
                    case 5:
                        return '已转移';
                    case 6:
                        return '已赠课';
                    default:
                        return '';
                }
            }
        }
@@ -51,8 +79,21 @@
 */
RegistrationRecord.check = function () {
    let selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length > 1) {
        Feng.info("只能选中表格中的一条记录!");
        return false;
    } else {
        RegistrationRecord.seItem = selected[0];
        RegistrationRecord.seItem1 = selected;
        return true;
    }
};
RegistrationRecord.check1 = function () {
    let selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length == 0) {
        Feng.info("请先选中表格中的某一记录!");
        Feng.info("必须选中表格中的某一记录!");
        return false;
    } else {
        RegistrationRecord.seItem = selected[0];
@@ -79,7 +120,7 @@
RegistrationRecord.holiClass = function () {
    if (this.check()) {
    if (this.check1()) {
        var ids = RegistrationRecord.seItem1.map(function(item) {
            return item.id;
        }).join(",");
@@ -215,8 +256,8 @@
RegistrationRecord.makeUpMissedLessons = function () {
    if (this.check()) {
        let operation = function(){
            let ajax = new $ax(Feng.ctxPath + "/coursePackage/makeUpMissedLessons", function () {
                Feng.success("补课成功!");
            let ajax = new $ax(Feng.ctxPath + "/coursePackage/makeUpMissedLessons", function (data) {
                Feng.success(data.msg);
                RegistrationRecord.table.refresh();
            }, function (data) {
                Feng.error("补课失败!" + data.responseJSON.message + "!");
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js
@@ -72,7 +72,7 @@
        area: ['100%', '100%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/coursePackage/openClassRecord?id=' + $('#id').val()
        content: Feng.ctxPath + '/coursePackage/openClassRecord1?id=' + $('#id').val()
    });
    this.layerIndex = index;
};
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
@@ -21,7 +21,7 @@
            }
        },
        {title: '所属运营商', field: 'province', visible: role==1?true:false, align: 'center', valign: 'middle'
        {title: '所属运营商', field: 'yysName', visible: role==1?true:false, align: 'center', valign: 'middle'
        },
        {title: '省', field: 'province', visible: role==1?true:false, align: 'center', valign: 'middle'
        },
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js
@@ -101,7 +101,7 @@
        area: ['100%', '100%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/tShop/tShop_add_two?id='+$("#id").val()
        content: Feng.ctxPath + '/tShop/tShop_add_two1?id='+$("#id").val()
    });
    this.layerIndex = index;
};
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
@@ -176,16 +176,26 @@
    }
    let pCode = $("#pCode").val()
    let cCode = $("#cCode").val()
    let pCode1 = $("#pCode1").val()
    let cCode1 = $("#cCode1").val()
    let name = $("#name").val()
    let phone = $("#phone").val()
    if(pCode=='' && $("#role")=="1"){
    if(pCode=='' && $("#role")=="1" && OBJradio==2){
        Feng.info("请选择省")
        return;
    }
    if(cCode=='' && $("#role")=="1"){
    if(cCode=='' && $("#role")=="1" && OBJradio==2){
        Feng.info("请选择市")
        return;
    }
    if(pCode1=='' && $("#role")=="1" && OBJradio==1){
        Feng.info("请选择省")
        return;
    }
    if(cCode1=='' && $("#role")=="1" && OBJradio==12){
        Feng.info("请选择市")
        return;
    }
@@ -288,6 +298,8 @@
    ajax.set("ids",$("#ids").val());
    ajax.set("type",OBJradio);
    ajax.set("yyId",$("#account").val());
    ajax.set("pCode1",pCode1);
    ajax.set("cCode1",cCode1);
    ajax.start();
}
var  map = new AMap.Map('container', {
@@ -400,6 +412,8 @@
    let pCode = $("#pCode").val()
    let cCode = $("#cCode").val()
    let cCode1 = $("#cCode1").val()
    let pCode1 = $("#pCode1").val()
    let account = $("#account").val()
    var OBJradio= $("input[name='type']:checked").val();
    if(OBJradio==2){
@@ -413,13 +427,20 @@
    let name = $("#name").val()
    let phone = $("#phone").val()
    if(pCode=='' && $("#role")=="1"){
    if(pCode=='' && $("#role")=="1" && OBJradio==2){
        Feng.info("请选择省")
        return;
    }
    if(cCode=='' && $("#role")=="1"){
    if(cCode=='' && $("#role")=="1" && OBJradio==2){
        Feng.info("请选择市")
        return;
    }
    if(pCode1=='' && $("#role")=="1" && OBJradio==1){
        Feng.info("请选择省")
        return;
    }
    if(cCode1=='' && $("#role")=="1" && OBJradio==12) {
        Feng.info("请选择市")
    }
    if(name==''){
        Feng.info("门店名称不能为空")
@@ -481,8 +502,7 @@
    var ajax = new $ax(Feng.ctxPath + "/tShop/update", function(data){
        if(data=="5001"){
            Feng.error("该店长手机号已经存在!")
        }else
        if(data.code == 200){
        }else if(data.code == 200){
            if(language==1){
                Feng.success("修改成功!");
            }else if(language==2){
@@ -498,6 +518,7 @@
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set("provinceCode",pCode);
    ajax.set("cityCode",cCode);
    ajax.set("name",name);
@@ -516,6 +537,8 @@
    ajax.set("ids",$("#ids").val());
    ajax.set("type",OBJradio);
    ajax.set("yyId",$("#account").val());
    ajax.set("pCode1",pCode1);
    ajax.set("cCode1",cCode1);
    ajax.start();
}
@@ -574,7 +597,7 @@
            $.each(data, function(k,v) {
                content += "<option value='"+v.code+"'>"+v.name+"</option>";
            });
            $("#cCode").empty().append(content);
            $("#cCode1").empty().append(content);
        }
    });
    ajax.set("oneId",oneId);
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
package com.dsh.other.feignclient.account.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -30,6 +31,7 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
     * 性别(1=男,2=女)