├── .gitignore ├── README.md ├── data-pretreatment ├── flume-interceptor │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── tlh │ │ └── dw │ │ ├── interceptor │ │ ├── LogETLInterceptor.java │ │ └── LogTypeInterceptor.java │ │ └── util │ │ └── LogValidateUtil.java ├── kafka-extractor │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ └── log4j.properties │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── dw │ │ ├── LitemallWxExtractor.scala │ │ └── entity │ │ ├── UserGoods.scala │ │ └── package.scala ├── pom.xml └── profile-hbase-bulkload │ ├── pom.xml │ └── src │ └── main │ ├── resources │ ├── application.conf │ ├── hive-site.xml │ └── log4j.properties │ └── scala │ └── org │ └── tlh │ └── driver │ └── HBaseBulkLoad.scala ├── data-simulate ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── tlh │ │ │ └── dw │ │ │ ├── SimulateApplication.java │ │ │ ├── bean │ │ │ ├── AppBase.java │ │ │ ├── AppStart.java │ │ │ ├── RegionInfo.java │ │ │ └── events │ │ │ │ ├── AppAd.java │ │ │ │ ├── AppCar.java │ │ │ │ ├── AppComment.java │ │ │ │ ├── AppDisplay.java │ │ │ │ ├── AppFavorites.java │ │ │ │ ├── AppLoading.java │ │ │ │ └── AppPraise.java │ │ │ ├── config │ │ │ └── SimulateProperty.java │ │ │ ├── dto │ │ │ ├── CollectDto.java │ │ │ ├── CommentDto.java │ │ │ ├── OrderComment.java │ │ │ ├── OrderConfirm.java │ │ │ ├── OrderSubmit.java │ │ │ ├── ResultMsg.java │ │ │ ├── UserBase.java │ │ │ └── UserRegister.java │ │ │ ├── mock │ │ │ ├── BusinessService.java │ │ │ ├── FrontAppActionService.java │ │ │ ├── UserActionDataMock.java │ │ │ ├── UserTokenCache.java │ │ │ └── interceptor │ │ │ │ ├── TokenHolder.java │ │ │ │ └── TokenInterceptor.java │ │ │ ├── rest │ │ │ ├── FrontAppAction.java │ │ │ └── UserAction.java │ │ │ ├── schedule │ │ │ └── DataSimulate.java │ │ │ ├── service │ │ │ ├── CartInfoService.java │ │ │ ├── CommentInfoService.java │ │ │ ├── CommonDataService.java │ │ │ ├── CouPonUseService.java │ │ │ ├── FavorInfoService.java │ │ │ ├── OrderConfirmService.java │ │ │ ├── OrderInfoService.java │ │ │ ├── OrderRefundInfoService.java │ │ │ ├── OrderShipService.java │ │ │ ├── PaymentInfoService.java │ │ │ └── UserInfoService.java │ │ │ └── util │ │ │ ├── ParamUtil.java │ │ │ ├── RanOpt.java │ │ │ ├── RandomEmail.java │ │ │ ├── RandomIp.java │ │ │ ├── RandomName.java │ │ │ ├── RandomNum.java │ │ │ ├── RandomNumString.java │ │ │ ├── RandomOptionGroup.java │ │ │ └── bcrypt │ │ │ ├── BCrypt.java │ │ │ └── BCryptPasswordEncoder.java │ └── resources │ │ ├── application-simulate.yml │ │ ├── application.yml │ │ └── logback.xml │ └── test │ └── java │ └── org │ └── tlh │ └── dw │ ├── data │ └── GoodsBrandService.java │ ├── mock │ └── FrontAppActionServiceTest.java │ ├── rest │ └── UserActionTest.java │ ├── service │ ├── CartInfoServiceTest.java │ ├── CommentInfoServiceTest.java │ ├── CommonDataServiceTest.java │ ├── FavorInfoServiceTest.java │ ├── OrderConfirmServiceTest.java │ ├── OrderInfoServiceTest.java │ ├── OrderRefundInfoServiceTest.java │ ├── OrderShipServiceTest.java │ ├── PaymentInfoServiceTest.java │ └── UserInfoServiceTest.java │ └── util │ └── bcrypt │ └── BCryptPasswordEncoderTest.java ├── docs ├── clickhouse │ ├── 3166-2.csv │ ├── cn_region_dictionary.xml │ └── litemall.sql ├── deploy.md ├── hive_schema │ ├── date_info_gen.py │ ├── litemall_ads.sql │ ├── litemall_dwd.sql │ ├── litemall_dws.sql │ ├── litemall_dwt.sql │ └── litemall_ods.sql ├── mysql │ ├── clean_env.sql │ ├── litemall.sql │ ├── litemall.xml │ ├── litemall_report.sql │ ├── user_profile.sql │ └── user_profile.xml ├── phoenix │ └── litemall_phoenix.sql ├── ranger │ ├── hdfs-ranger.png │ ├── hive-ranger.png │ └── range-hdfs-hive.png ├── scripts │ ├── azkaban │ │ ├── litemall.flow │ │ └── litemall.project │ ├── cdh │ │ └── mysql_to_hdfs.sh │ ├── evn │ │ └── clean_dwt_ads.sh │ ├── flink │ │ └── warehouse.sh │ ├── hive │ │ ├── dwd_event_base_to_event_log.sh │ │ ├── dwd_to_dws.sh │ │ ├── dws_to_dwt.sh │ │ ├── dwt_to_ads.sh │ │ ├── hdfs_to_ods_db.sh │ │ ├── hdfs_to_ods_log.sh │ │ ├── ods_to_dwd_db.sh │ │ ├── ods_to_dwd_event_base_log.sh │ │ └── ods_to_dwd_start_log.sh │ ├── kafka │ │ └── wx_extractor.sh │ ├── log │ │ ├── data-simuldate.sh │ │ ├── kafka_to_hdfs.sh │ │ ├── litemall_kafka_to_hdfs.conf │ │ └── wx-api │ │ │ ├── litemall_wx_log_to_kafka.conf │ │ │ ├── wx-api.sh │ │ │ └── wx_to_kafka.sh │ ├── maxwell │ │ ├── maxwell-bootstrap.sh │ │ └── maxwell.sh │ ├── spark │ │ └── real-time-submit.sh │ └── sqoop │ │ ├── hdfs_to_mysql.sh │ │ └── mysql_to_hdfs.sh └── vagrant │ ├── README.md │ ├── Vagrantfile │ ├── files_structure.png │ └── provision │ ├── ansible.cfg │ ├── group_vars │ ├── all.yml │ └── masters.yml │ ├── inventory │ ├── requirements.yml │ ├── roles │ ├── cm │ │ └── tasks │ │ │ └── main.yml │ ├── common │ │ ├── handlers │ │ │ └── main.yml │ │ ├── tasks │ │ │ ├── init_users.yml │ │ │ ├── main.yml │ │ │ └── set_timezone.yml │ │ └── templates │ │ │ ├── hosts.j2 │ │ │ └── ntp.conf.j2 │ ├── httpd │ │ └── tasks │ │ │ └── main.yml │ ├── mysql │ │ ├── files │ │ │ └── mysql-community-release-el7-5.noarch.rpm │ │ ├── handlers │ │ │ └── main.yml │ │ ├── tasks │ │ │ ├── clean_rep.yml │ │ │ ├── init_cm.yml │ │ │ ├── main.yml │ │ │ └── mysql_security.yml │ │ └── templates │ │ │ └── my.cnf.j2 │ └── scm │ │ ├── files │ │ └── cloudera-manager.repo │ │ └── tasks │ │ └── main.yml │ └── site.yml ├── hive-function ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── tlh │ └── litemall │ ├── udf │ └── ParseJsonObject.java │ └── udtf │ └── ExtractEventType.java ├── litemall-auth ├── admin-auth-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── tlh │ │ │ └── litemall │ │ │ └── admin │ │ │ ├── AdminAuthAutoConfiguration.java │ │ │ ├── AdminAuthProperties.java │ │ │ ├── annotation │ │ │ └── RequiresPermissions.java │ │ │ ├── exception │ │ │ └── AuthenticationException.java │ │ │ ├── filter │ │ │ └── AuthenticationFilter.java │ │ │ ├── holder │ │ │ ├── UserInfo.java │ │ │ └── UserInfoHolder.java │ │ │ ├── interceptor │ │ │ └── AuthorizationInterceptor.java │ │ │ └── service │ │ │ └── AuthService.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── application.yml └── pom.xml ├── litemall-real-time ├── buried-computation │ ├── pom.xml │ └── src │ │ └── main │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── dw │ │ ├── DwRealTimeDriver.scala │ │ ├── entity │ │ ├── OrderDetail.scala │ │ ├── OriginalData.scala │ │ ├── RegionOrder.scala │ │ └── package.scala │ │ └── process │ │ ├── AbstractProcess.scala │ │ ├── AddCartProcess.scala │ │ ├── CollectProcess.scala │ │ ├── CommentProcess.scala │ │ ├── LoginProcess.scala │ │ ├── OrderConfirmProcess.scala │ │ ├── OrderSubmitProcess.scala │ │ ├── PaymentProcess.scala │ │ ├── RefundProcess.scala │ │ ├── RegionOrderProcess.scala │ │ └── RegisterProcess.scala ├── data-warehouse-flink │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── tlh │ │ │ │ └── warehouse │ │ │ │ └── util │ │ │ │ └── LogValidateUtil.java │ │ ├── resources │ │ │ ├── application.conf │ │ │ ├── hdfs-site.xml │ │ │ └── log4j.properties │ │ └── scala │ │ │ └── org │ │ │ └── tlh │ │ │ └── warehouse │ │ │ ├── datastream │ │ │ ├── dwd │ │ │ │ ├── dim │ │ │ │ │ └── TransformDim2Redis.scala │ │ │ │ └── fact │ │ │ │ │ ├── DwdFactOrderApp.scala │ │ │ │ │ └── DwdFactOrderDetailApp.scala │ │ │ ├── dws │ │ │ │ └── DwsOrderDetailCapApp.scala │ │ │ └── ods │ │ │ │ └── MaxWellDispatcher.scala │ │ │ ├── entity │ │ │ ├── MaxWellEntity.scala │ │ │ └── package.scala │ │ │ ├── table │ │ │ ├── dwd │ │ │ │ ├── dim │ │ │ │ │ ├── GoodItemApp.scala │ │ │ │ │ └── RegionApp.scala │ │ │ │ └── fact │ │ │ │ │ ├── GoodsCollectApp.scala │ │ │ │ │ ├── GoodsDisplayApp.scala │ │ │ │ │ ├── OrderCreateApp.scala │ │ │ │ │ ├── OrderGoodsApp.scala │ │ │ │ │ ├── OrderPaymentApp.scala │ │ │ │ │ └── OrderRefundApp.scala │ │ │ ├── dws │ │ │ │ ├── GoodsItemTopic.scala │ │ │ │ └── RegionItemTopic.scala │ │ │ └── ods │ │ │ │ ├── db │ │ │ │ ├── OdsCollect.scala │ │ │ │ ├── OdsOrderApp.scala │ │ │ │ └── OdsOrderGoodsApp.scala │ │ │ │ └── log │ │ │ │ ├── FrontLog.scala │ │ │ │ └── package.scala │ │ │ └── util │ │ │ ├── AppConfig.scala │ │ │ ├── JedisUtils.scala │ │ │ └── KafkaUtil.scala │ │ └── test │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── warehouse │ │ ├── entity │ │ ├── MaxWellEntityTest.scala │ │ ├── OrderDetailWideTest.scala │ │ └── OrderEntityTest.scala │ │ └── util │ │ └── JedisUtilsTest.scala ├── data-warehouse │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── resources │ │ │ ├── application.conf │ │ │ └── log4j.properties │ │ └── scala │ │ │ └── org │ │ │ └── tlh │ │ │ └── rt │ │ │ └── dw │ │ │ ├── dwd │ │ │ ├── dim │ │ │ │ ├── DwdDimSkuApp.scala │ │ │ │ └── DwdDimUserApp.scala │ │ │ └── fact │ │ │ │ ├── DwdFactOrderApp.scala │ │ │ │ └── DwdFactOrderDetailApp.scala │ │ │ ├── dws │ │ │ └── DwsOrderDetailCapitationApp.scala │ │ │ ├── entity │ │ │ ├── OrderDetail.scala │ │ │ ├── OrderInfo.scala │ │ │ ├── OrderWide.scala │ │ │ └── package.scala │ │ │ ├── ods │ │ │ ├── CanalOdsDispatcherApp.scala │ │ │ ├── MaxWellOdsDispatcher.scala │ │ │ └── hbase │ │ │ │ ├── OdsGoodsBrandApp.scala │ │ │ │ ├── OdsGoodsCategoryApp.scala │ │ │ │ └── OdsRegionApp.scala │ │ │ └── utils │ │ │ ├── AppConf.scala │ │ │ ├── DwSerializers.scala │ │ │ ├── KafkaUtil.scala │ │ │ └── PhoenixUtils.scala │ │ └── test │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── rt │ │ └── dw │ │ └── entity │ │ ├── MapPartitionTest.scala │ │ └── OrderInfoTest.scala └── pom.xml ├── litemall-recommendation ├── offline-recommendation │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ ├── hive-site.xml │ │ └── log4j.properties │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── litemall │ │ ├── als │ │ ├── ALSTrainer.scala │ │ └── UserCFDriver.scala │ │ ├── driver │ │ ├── BaseDriver.scala │ │ └── StatisticsRecommendation.scala │ │ ├── entity │ │ └── package.scala │ │ └── itemcf │ │ └── ItemCFDriver.scala ├── online-recommendation │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ ├── hive-site.xml │ │ └── log4j.properties │ │ └── scala │ │ └── org │ │ └── tlh │ │ └── dw │ │ ├── DataPrepareDriver.scala │ │ ├── OnlineRecommend.scala │ │ └── entity │ │ └── package.scala ├── pom.xml └── recommendation-wx-api │ └── pom.xml ├── litemall-report ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── tlh │ │ │ └── dw │ │ │ ├── DwApplication.java │ │ │ ├── auth │ │ │ ├── AuthService.java │ │ │ ├── AuthenticationException.java │ │ │ ├── RequiresPermissions.java │ │ │ ├── filter │ │ │ │ └── AuthenticationFilter.java │ │ │ ├── holder │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoHolder.java │ │ │ └── interceptor │ │ │ │ └── AuthorizationInterceptor.java │ │ │ ├── config │ │ │ ├── MyWebMvcConfig.java │ │ │ └── MybatisPlusConfig.java │ │ │ ├── controller │ │ │ ├── AdsAppraiseBadTopnController.java │ │ │ ├── AdsBackCountController.java │ │ │ ├── AdsContinuityUvCountController.java │ │ │ ├── AdsContinuityWkCountController.java │ │ │ ├── AdsNewMidCountController.java │ │ │ ├── AdsOrderDaycountController.java │ │ │ ├── AdsPaymentDaycountController.java │ │ │ ├── AdsProductCartTopnController.java │ │ │ ├── AdsProductFavorTopnController.java │ │ │ ├── AdsProductInfoController.java │ │ │ ├── AdsProductRefundTopnController.java │ │ │ ├── AdsProductSaleTopnController.java │ │ │ ├── AdsSaleBrandCategory1StatMnController.java │ │ │ ├── AdsSilentCountController.java │ │ │ ├── AdsUserRetentionDayRateController.java │ │ │ ├── AdsUserTopicController.java │ │ │ ├── AdsUvCountController.java │ │ │ ├── AdsWastageCountController.java │ │ │ ├── DashBoardController.java │ │ │ ├── EchartsMapDataController.java │ │ │ └── ReportBoardController.java │ │ │ ├── entity │ │ │ ├── AdsAppraiseBadTopn.java │ │ │ ├── AdsBackCount.java │ │ │ ├── AdsContinuityUvCount.java │ │ │ ├── AdsContinuityWkCount.java │ │ │ ├── AdsDateTopic.java │ │ │ ├── AdsNewMidCount.java │ │ │ ├── AdsOrderDaycount.java │ │ │ ├── AdsPaymentDaycount.java │ │ │ ├── AdsProductCartTopn.java │ │ │ ├── AdsProductFavorTopn.java │ │ │ ├── AdsProductInfo.java │ │ │ ├── AdsProductRefundTopn.java │ │ │ ├── AdsProductSaleTopn.java │ │ │ ├── AdsRegionDayCount.java │ │ │ ├── AdsSaleBrandCategory1StatMn.java │ │ │ ├── AdsSilentCount.java │ │ │ ├── AdsUserActionConvertDay.java │ │ │ ├── AdsUserRetentionDayRate.java │ │ │ ├── AdsUserTopic.java │ │ │ ├── AdsUvCount.java │ │ │ ├── AdsWastageCount.java │ │ │ ├── LitemallRegionGeo.java │ │ │ └── ck │ │ │ │ └── OrderWide.java │ │ │ ├── mapper │ │ │ ├── AdsAppraiseBadTopnMapper.java │ │ │ ├── AdsBackCountMapper.java │ │ │ ├── AdsContinuityUvCountMapper.java │ │ │ ├── AdsContinuityWkCountMapper.java │ │ │ ├── AdsDateTopicMapper.java │ │ │ ├── AdsNewMidCountMapper.java │ │ │ ├── AdsOrderDaycountMapper.java │ │ │ ├── AdsPaymentDaycountMapper.java │ │ │ ├── AdsProductCartTopnMapper.java │ │ │ ├── AdsProductFavorTopnMapper.java │ │ │ ├── AdsProductInfoMapper.java │ │ │ ├── AdsProductRefundTopnMapper.java │ │ │ ├── AdsProductSaleTopnMapper.java │ │ │ ├── AdsRegionDayCountMapper.java │ │ │ ├── AdsSaleBrandCategory1StatMnMapper.java │ │ │ ├── AdsSilentCountMapper.java │ │ │ ├── AdsUserActionConvertDayMapper.java │ │ │ ├── AdsUserRetentionDayRateMapper.java │ │ │ ├── AdsUserTopicMapper.java │ │ │ ├── AdsUvCountMapper.java │ │ │ ├── AdsWastageCountMapper.java │ │ │ ├── LitemallRegionGeoMapper.java │ │ │ └── ck │ │ │ │ └── OrderWideMapper.java │ │ │ ├── service │ │ │ ├── DashBoardService.java │ │ │ ├── IAdsAppraiseBadTopnService.java │ │ │ ├── IAdsBackCountService.java │ │ │ ├── IAdsContinuityUvCountService.java │ │ │ ├── IAdsContinuityWkCountService.java │ │ │ ├── IAdsNewMidCountService.java │ │ │ ├── IAdsOrderDaycountService.java │ │ │ ├── IAdsPaymentDaycountService.java │ │ │ ├── IAdsProductCartTopnService.java │ │ │ ├── IAdsProductFavorTopnService.java │ │ │ ├── IAdsProductInfoService.java │ │ │ ├── IAdsProductRefundTopnService.java │ │ │ ├── IAdsProductSaleTopnService.java │ │ │ ├── IAdsRegionDayCountService.java │ │ │ ├── IAdsSaleBrandCategory1StatMnService.java │ │ │ ├── IAdsSilentCountService.java │ │ │ ├── IAdsUserActionConvertDayService.java │ │ │ ├── IAdsUserRetentionDayRateService.java │ │ │ ├── IAdsUserTopicService.java │ │ │ ├── IAdsUvCountService.java │ │ │ ├── IAdsWastageCountService.java │ │ │ ├── LitemallRegionGeoService.java │ │ │ ├── OrderWideService.java │ │ │ ├── ReportBoardService.java │ │ │ └── impl │ │ │ │ ├── AdsAppraiseBadTopnServiceImpl.java │ │ │ │ ├── AdsBackCountServiceImpl.java │ │ │ │ ├── AdsContinuityUvCountServiceImpl.java │ │ │ │ ├── AdsContinuityWkCountServiceImpl.java │ │ │ │ ├── AdsNewMidCountServiceImpl.java │ │ │ │ ├── AdsOrderDaycountServiceImpl.java │ │ │ │ ├── AdsPaymentDaycountServiceImpl.java │ │ │ │ ├── AdsProductCartTopnServiceImpl.java │ │ │ │ ├── AdsProductFavorTopnServiceImpl.java │ │ │ │ ├── AdsProductInfoServiceImpl.java │ │ │ │ ├── AdsProductRefundTopnServiceImpl.java │ │ │ │ ├── AdsProductSaleTopnServiceImpl.java │ │ │ │ ├── AdsRegionDayCountServiceImpl.java │ │ │ │ ├── AdsSaleBrandCategory1StatMnServiceImpl.java │ │ │ │ ├── AdsSilentCountServiceImpl.java │ │ │ │ ├── AdsUserActionConvertDayServiceImpl.java │ │ │ │ ├── AdsUserRetentionDayRateServiceImpl.java │ │ │ │ ├── AdsUserTopicServiceImpl.java │ │ │ │ ├── AdsUvCountServiceImpl.java │ │ │ │ ├── AdsWastageCountServiceImpl.java │ │ │ │ ├── DashBoardServiceImpl.java │ │ │ │ ├── LitemallRegionGeoServiceImpl.java │ │ │ │ ├── OrderWideServiceImpl.java │ │ │ │ └── ReportBoardServiceImpl.java │ │ │ ├── support │ │ │ ├── PageArgumentResolver.java │ │ │ ├── PageParam.java │ │ │ └── annotations │ │ │ │ └── PageRequest.java │ │ │ ├── util │ │ │ ├── CodeGenerator.java │ │ │ ├── Constants.java │ │ │ ├── JsonUtil.java │ │ │ ├── ResponseUtil.java │ │ │ └── UnicodeReader.java │ │ │ └── vo │ │ │ ├── DashBoardHeader.java │ │ │ ├── EchartBarVo.java │ │ │ ├── OrderSpeedVo.java │ │ │ ├── RealTimeVo.java │ │ │ ├── RegionOrderVo.java │ │ │ └── StatVo.java │ └── resources │ │ ├── application.yml │ │ ├── db │ │ └── migration │ │ │ └── mysql │ │ │ └── V1.1__create_ads_region_daycount.sql │ │ ├── map │ │ ├── 100000.json │ │ ├── 110000.json │ │ ├── 110100.json │ │ ├── 120000.json │ │ ├── 120100.json │ │ ├── 130000.json │ │ ├── 130100.json │ │ ├── 130200.json │ │ ├── 130300.json │ │ ├── 130400.json │ │ ├── 130500.json │ │ ├── 130600.json │ │ ├── 130700.json │ │ ├── 130800.json │ │ ├── 130900.json │ │ ├── 131000.json │ │ ├── 131100.json │ │ ├── 140000.json │ │ ├── 140100.json │ │ ├── 140200.json │ │ ├── 140300.json │ │ ├── 140400.json │ │ ├── 140500.json │ │ ├── 140600.json │ │ ├── 140700.json │ │ ├── 140800.json │ │ ├── 140900.json │ │ ├── 141000.json │ │ ├── 141100.json │ │ ├── 150000.json │ │ ├── 150100.json │ │ ├── 150200.json │ │ ├── 150300.json │ │ ├── 150400.json │ │ ├── 150500.json │ │ ├── 150600.json │ │ ├── 150700.json │ │ ├── 150800.json │ │ ├── 150900.json │ │ ├── 152200.json │ │ ├── 152500.json │ │ ├── 152900.json │ │ ├── 210000.json │ │ ├── 210100.json │ │ ├── 210200.json │ │ ├── 210300.json │ │ ├── 210400.json │ │ ├── 210500.json │ │ ├── 210600.json │ │ ├── 210700.json │ │ ├── 210800.json │ │ ├── 210900.json │ │ ├── 211000.json │ │ ├── 211100.json │ │ ├── 211200.json │ │ ├── 211300.json │ │ ├── 211400.json │ │ ├── 220000.json │ │ ├── 220100.json │ │ ├── 220200.json │ │ ├── 220300.json │ │ ├── 220400.json │ │ ├── 220500.json │ │ ├── 220600.json │ │ ├── 220700.json │ │ ├── 220800.json │ │ ├── 222400.json │ │ ├── 230000.json │ │ ├── 230100.json │ │ ├── 230200.json │ │ ├── 230300.json │ │ ├── 230400.json │ │ ├── 230500.json │ │ ├── 230600.json │ │ ├── 230700.json │ │ ├── 230800.json │ │ ├── 230900.json │ │ ├── 231000.json │ │ ├── 231100.json │ │ ├── 231200.json │ │ ├── 232700.json │ │ ├── 310000.json │ │ ├── 310100.json │ │ ├── 310200.json │ │ ├── 320000.json │ │ ├── 320100.json │ │ ├── 320200.json │ │ ├── 320300.json │ │ ├── 320400.json │ │ ├── 320500.json │ │ ├── 320600.json │ │ ├── 320700.json │ │ ├── 320800.json │ │ ├── 320900.json │ │ ├── 321000.json │ │ ├── 321100.json │ │ ├── 321200.json │ │ ├── 321300.json │ │ ├── 330000.json │ │ ├── 330100.json │ │ ├── 330200.json │ │ ├── 330300.json │ │ ├── 330400.json │ │ ├── 330500.json │ │ ├── 330600.json │ │ ├── 330700.json │ │ ├── 330800.json │ │ ├── 330900.json │ │ ├── 331000.json │ │ ├── 331100.json │ │ ├── 340000.json │ │ ├── 340100.json │ │ ├── 340200.json │ │ ├── 340300.json │ │ ├── 340400.json │ │ ├── 340500.json │ │ ├── 340600.json │ │ ├── 340700.json │ │ ├── 340800.json │ │ ├── 341000.json │ │ ├── 341100.json │ │ ├── 341200.json │ │ ├── 341300.json │ │ ├── 341500.json │ │ ├── 341600.json │ │ ├── 341700.json │ │ ├── 341800.json │ │ ├── 350000.json │ │ ├── 350100.json │ │ ├── 350200.json │ │ ├── 350300.json │ │ ├── 350400.json │ │ ├── 350500.json │ │ ├── 350600.json │ │ ├── 350700.json │ │ ├── 350800.json │ │ ├── 350900.json │ │ ├── 360000.json │ │ ├── 360100.json │ │ ├── 360200.json │ │ ├── 360300.json │ │ ├── 360400.json │ │ ├── 360500.json │ │ ├── 360600.json │ │ ├── 360700.json │ │ ├── 360800.json │ │ ├── 360900.json │ │ ├── 361000.json │ │ ├── 361100.json │ │ ├── 370000.json │ │ ├── 370100.json │ │ ├── 370200.json │ │ ├── 370300.json │ │ ├── 370400.json │ │ ├── 370500.json │ │ ├── 370600.json │ │ ├── 370700.json │ │ ├── 370800.json │ │ ├── 370900.json │ │ ├── 371000.json │ │ ├── 371100.json │ │ ├── 371200.json │ │ ├── 371300.json │ │ ├── 371400.json │ │ ├── 371500.json │ │ ├── 371600.json │ │ ├── 371700.json │ │ ├── 410000.json │ │ ├── 410100.json │ │ ├── 410200.json │ │ ├── 410300.json │ │ ├── 410400.json │ │ ├── 410500.json │ │ ├── 410600.json │ │ ├── 410700.json │ │ ├── 410800.json │ │ ├── 410900.json │ │ ├── 411000.json │ │ ├── 411100.json │ │ ├── 411200.json │ │ ├── 411300.json │ │ ├── 411400.json │ │ ├── 411500.json │ │ ├── 411600.json │ │ ├── 411700.json │ │ ├── 420000.json │ │ ├── 420100.json │ │ ├── 420200.json │ │ ├── 420300.json │ │ ├── 420500.json │ │ ├── 420600.json │ │ ├── 420700.json │ │ ├── 420800.json │ │ ├── 420900.json │ │ ├── 421000.json │ │ ├── 421100.json │ │ ├── 421200.json │ │ ├── 421300.json │ │ ├── 422800.json │ │ ├── 429000.json │ │ ├── 430000.json │ │ ├── 430100.json │ │ ├── 430200.json │ │ ├── 430300.json │ │ ├── 430400.json │ │ ├── 430500.json │ │ ├── 430600.json │ │ ├── 430700.json │ │ ├── 430800.json │ │ ├── 430900.json │ │ ├── 431000.json │ │ ├── 431100.json │ │ ├── 431200.json │ │ ├── 431300.json │ │ ├── 433100.json │ │ ├── 440000.json │ │ ├── 440100.json │ │ ├── 440200.json │ │ ├── 440300.json │ │ ├── 440400.json │ │ ├── 440500.json │ │ ├── 440600.json │ │ ├── 440700.json │ │ ├── 440800.json │ │ ├── 440900.json │ │ ├── 441000.json │ │ ├── 441200.json │ │ ├── 441300.json │ │ ├── 441400.json │ │ ├── 441500.json │ │ ├── 441600.json │ │ ├── 441700.json │ │ ├── 441800.json │ │ ├── 441900.json │ │ ├── 442000.json │ │ ├── 445100.json │ │ ├── 445200.json │ │ ├── 445300.json │ │ ├── 450000.json │ │ ├── 450100.json │ │ ├── 450200.json │ │ ├── 450300.json │ │ ├── 450400.json │ │ ├── 450500.json │ │ ├── 450600.json │ │ ├── 450700.json │ │ ├── 450800.json │ │ ├── 450900.json │ │ ├── 451000.json │ │ ├── 451100.json │ │ ├── 451200.json │ │ ├── 451300.json │ │ ├── 451400.json │ │ ├── 460000.json │ │ ├── 460100.json │ │ ├── 460200.json │ │ ├── 460300.json │ │ ├── 469000.json │ │ ├── 500000.json │ │ ├── 500100.json │ │ ├── 510000.json │ │ ├── 510100.json │ │ ├── 510300.json │ │ ├── 510400.json │ │ ├── 510500.json │ │ ├── 510600.json │ │ ├── 510700.json │ │ ├── 510800.json │ │ ├── 510900.json │ │ ├── 511000.json │ │ ├── 511100.json │ │ ├── 511300.json │ │ ├── 511400.json │ │ ├── 511500.json │ │ ├── 511600.json │ │ ├── 511700.json │ │ ├── 511800.json │ │ ├── 511900.json │ │ ├── 512000.json │ │ ├── 513200.json │ │ ├── 513300.json │ │ ├── 513400.json │ │ ├── 520000.json │ │ ├── 520100.json │ │ ├── 520200.json │ │ ├── 520300.json │ │ ├── 520400.json │ │ ├── 522200.json │ │ ├── 522300.json │ │ ├── 522400.json │ │ ├── 522600.json │ │ ├── 522700.json │ │ ├── 530000.json │ │ ├── 530100.json │ │ ├── 530300.json │ │ ├── 530400.json │ │ ├── 530500.json │ │ ├── 530600.json │ │ ├── 530700.json │ │ ├── 530800.json │ │ ├── 530900.json │ │ ├── 532300.json │ │ ├── 532500.json │ │ ├── 532600.json │ │ ├── 532800.json │ │ ├── 532900.json │ │ ├── 533100.json │ │ ├── 533300.json │ │ ├── 533400.json │ │ ├── 540000.json │ │ ├── 540100.json │ │ ├── 542100.json │ │ ├── 542200.json │ │ ├── 542300.json │ │ ├── 542400.json │ │ ├── 542500.json │ │ ├── 542600.json │ │ ├── 610000.json │ │ ├── 610100.json │ │ ├── 610200.json │ │ ├── 610300.json │ │ ├── 610400.json │ │ ├── 610500.json │ │ ├── 610600.json │ │ ├── 610700.json │ │ ├── 610800.json │ │ ├── 610900.json │ │ ├── 611000.json │ │ ├── 620000.json │ │ ├── 620100.json │ │ ├── 620200.json │ │ ├── 620300.json │ │ ├── 620400.json │ │ ├── 620500.json │ │ ├── 620600.json │ │ ├── 620700.json │ │ ├── 620800.json │ │ ├── 620900.json │ │ ├── 621000.json │ │ ├── 621100.json │ │ ├── 621200.json │ │ ├── 622900.json │ │ ├── 623000.json │ │ ├── 630000.json │ │ ├── 630100.json │ │ ├── 632100.json │ │ ├── 632200.json │ │ ├── 632300.json │ │ ├── 632500.json │ │ ├── 632600.json │ │ ├── 632700.json │ │ ├── 632800.json │ │ ├── 640000.json │ │ ├── 640100.json │ │ ├── 640200.json │ │ ├── 640300.json │ │ ├── 640400.json │ │ ├── 640500.json │ │ ├── 650000.json │ │ ├── 650100.json │ │ ├── 650200.json │ │ ├── 652100.json │ │ ├── 652200.json │ │ ├── 652300.json │ │ ├── 652700.json │ │ ├── 652800.json │ │ ├── 652900.json │ │ ├── 653000.json │ │ ├── 653100.json │ │ ├── 653200.json │ │ ├── 654000.json │ │ ├── 654200.json │ │ ├── 654300.json │ │ ├── 659000.json │ │ ├── 710000.json │ │ ├── 810000.json │ │ ├── 810100.json │ │ ├── 820000.json │ │ ├── aomen.json │ │ └── taiwan.json │ │ └── mapper │ │ ├── AdsAppraiseBadTopnMapper.xml │ │ ├── AdsBackCountMapper.xml │ │ ├── AdsContinuityUvCountMapper.xml │ │ ├── AdsContinuityWkCountMapper.xml │ │ ├── AdsDateTopicMapper.xml │ │ ├── AdsNewMidCountMapper.xml │ │ ├── AdsOrderDaycountMapper.xml │ │ ├── AdsPaymentDaycountMapper.xml │ │ ├── AdsProductCartTopnMapper.xml │ │ ├── AdsProductFavorTopnMapper.xml │ │ ├── AdsProductInfoMapper.xml │ │ ├── AdsProductRefundTopnMapper.xml │ │ ├── AdsProductSaleTopnMapper.xml │ │ ├── AdsRegionDayCountMapper.xml │ │ ├── AdsSaleBrandCategory1StatMnMapper.xml │ │ ├── AdsSilentCountMapper.xml │ │ ├── AdsUserActionConvertDayMapper.xml │ │ ├── AdsUserRetentionDayRateMapper.xml │ │ ├── AdsUserTopicMapper.xml │ │ ├── AdsUvCountMapper.xml │ │ └── AdsWastageCountMapper.xml │ └── test │ └── java │ └── org │ └── tlh │ └── dw │ ├── auth │ └── AuthServiceTest.java │ └── service │ ├── DashBoardServiceTest.java │ ├── IAdsAppraiseBadTopnServiceTest.java │ ├── OrderWideServiceTest.java │ └── impl │ └── ReportBoardServiceImplTest.java ├── litemall ├── .gitbook.yaml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTE.md ├── LICENSE ├── README.md ├── deploy │ ├── .gitignore │ ├── README.md │ ├── db │ │ └── .gitkeep │ ├── litemall │ │ └── application.yml │ └── util │ │ ├── lazy.sh │ │ └── package.sh ├── doc │ ├── FAQ.md │ ├── README.md │ ├── admin.md │ ├── api.md │ ├── conf │ │ └── nginx.conf │ ├── database.md │ ├── mobmall.md │ ├── note.md │ ├── performance.md │ ├── pics │ │ ├── admin │ │ │ ├── get.png │ │ │ ├── get_no_token.png │ │ │ ├── get_with_token.png │ │ │ ├── login.png │ │ │ ├── post_no_token.png │ │ │ └── post_with_token.png │ │ ├── database │ │ │ ├── admin.png │ │ │ ├── goods.png │ │ │ ├── order-status.png │ │ │ ├── order.png │ │ │ ├── others.png │ │ │ └── user.png │ │ ├── faq │ │ │ └── excluded.png │ │ ├── platform │ │ │ ├── db-main.png │ │ │ └── mybatis-generator.png │ │ ├── project │ │ │ ├── deploy-single.png │ │ │ ├── develop-stage.png │ │ │ ├── idea-maven-insatll.png │ │ │ ├── idea-run-all.png │ │ │ ├── maven-profile.png │ │ │ ├── online-deploy.png │ │ │ ├── project-structure.png │ │ │ ├── security-group.png │ │ │ ├── spring-profile.png │ │ │ ├── stage.png │ │ │ └── yml-resource.png │ │ └── readme │ │ │ ├── admin-dashboard.png │ │ │ ├── litemall_wx_demo.png │ │ │ ├── mobmall.png │ │ │ ├── project-structure.png │ │ │ ├── qq3.png │ │ │ ├── renard_wx_demo.png │ │ │ └── technology-stack.png │ ├── platform.md │ ├── project.md │ ├── unused │ │ ├── 3.png │ │ ├── 5.gif │ │ ├── litemall.ico │ │ ├── litemall.png │ │ ├── qq.png │ │ └── qq2.png │ └── wxmall.md ├── docker │ ├── .gitignore │ ├── README.md │ ├── db │ │ ├── conf.d │ │ │ └── my.cnf │ │ ├── data │ │ │ └── .gitkeep │ │ └── init-sql │ │ │ └── .gitkeep │ ├── docker-compose.yml │ ├── litemall │ │ ├── .gitkeep │ │ ├── Dockerfile │ │ └── application.yml │ └── util │ │ ├── lazy.sh │ │ └── package.sh ├── litemall-admin-api │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── linlinjava │ │ │ │ └── litemall │ │ │ │ └── admin │ │ │ │ ├── AdminApplication.java │ │ │ │ ├── annotation │ │ │ │ └── RequiresPermissionsDesc.java │ │ │ │ ├── config │ │ │ │ ├── AdminSwagger2Configuration.java │ │ │ │ ├── ShiroConfig.java │ │ │ │ └── ShiroExceptionHandler.java │ │ │ │ ├── dto │ │ │ │ └── GoodsAllinone.java │ │ │ │ ├── job │ │ │ │ ├── CouponJob.java │ │ │ │ ├── DbJob.java │ │ │ │ └── OrderJob.java │ │ │ │ ├── service │ │ │ │ ├── AdminGoodsService.java │ │ │ │ ├── AdminOrderService.java │ │ │ │ └── LogHelper.java │ │ │ │ ├── shiro │ │ │ │ ├── AdminAuthorizingRealm.java │ │ │ │ └── AdminWebSessionManager.java │ │ │ │ ├── task │ │ │ │ ├── AdminTaskStartupRunner.java │ │ │ │ └── GrouponRuleExpiredTask.java │ │ │ │ ├── util │ │ │ │ ├── AdminResponseCode.java │ │ │ │ ├── Permission.java │ │ │ │ └── PermissionUtil.java │ │ │ │ ├── vo │ │ │ │ ├── CatVo.java │ │ │ │ ├── CategoryVo.java │ │ │ │ ├── PermVo.java │ │ │ │ ├── RegionVo.java │ │ │ │ └── StatVo.java │ │ │ │ └── web │ │ │ │ ├── AdminAdController.java │ │ │ │ ├── AdminAddressController.java │ │ │ │ ├── AdminAdminController.java │ │ │ │ ├── AdminAftersaleController.java │ │ │ │ ├── AdminAuthController.java │ │ │ │ ├── AdminBrandController.java │ │ │ │ ├── AdminCategoryController.java │ │ │ │ ├── AdminCollectController.java │ │ │ │ ├── AdminCommentController.java │ │ │ │ ├── AdminConfigController.java │ │ │ │ ├── AdminCouponController.java │ │ │ │ ├── AdminDashbordController.java │ │ │ │ ├── AdminFeedbackController.java │ │ │ │ ├── AdminFootprintController.java │ │ │ │ ├── AdminGoodsController.java │ │ │ │ ├── AdminGrouponController.java │ │ │ │ ├── AdminHistoryController.java │ │ │ │ ├── AdminIndexController.java │ │ │ │ ├── AdminIssueController.java │ │ │ │ ├── AdminKeywordController.java │ │ │ │ ├── AdminLogController.java │ │ │ │ ├── AdminNoticeController.java │ │ │ │ ├── AdminOrderController.java │ │ │ │ ├── AdminProfileController.java │ │ │ │ ├── AdminRegionController.java │ │ │ │ ├── AdminRoleController.java │ │ │ │ ├── AdminStatController.java │ │ │ │ ├── AdminStorageController.java │ │ │ │ ├── AdminTopicController.java │ │ │ │ └── AdminUserController.java │ │ └── resources │ │ │ ├── application-admin.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── org │ │ └── linlinjava │ │ └── litemall │ │ └── admin │ │ ├── AdminConfigTest.java │ │ ├── BcryptTest.java │ │ ├── CreateShareImageTest.java │ │ ├── DbTest.java │ │ └── PermissionTest.java ├── litemall-admin │ ├── .editorconfig │ ├── .env.deployment │ ├── .env.development │ ├── .env.production │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.json │ ├── babel.config.js │ ├── build │ │ └── index.js │ ├── jest.config.js │ ├── jsconfig.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── tinymce4.7.5 │ │ │ ├── langs │ │ │ └── zh_CN.js │ │ │ ├── plugins │ │ │ ├── codesample │ │ │ │ └── css │ │ │ │ │ └── prism.css │ │ │ ├── emoticons │ │ │ │ └── img │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ └── smiley-yell.gif │ │ │ └── visualblocks │ │ │ │ └── css │ │ │ │ └── visualblocks.css │ │ │ ├── skins │ │ │ └── lightgray │ │ │ │ ├── content.inline.min.css │ │ │ │ ├── content.min.css │ │ │ │ ├── fonts │ │ │ │ ├── tinymce-mobile.woff │ │ │ │ ├── tinymce-small.eot │ │ │ │ ├── tinymce-small.svg │ │ │ │ ├── tinymce-small.ttf │ │ │ │ ├── tinymce-small.woff │ │ │ │ ├── tinymce.eot │ │ │ │ ├── tinymce.svg │ │ │ │ ├── tinymce.ttf │ │ │ │ └── tinymce.woff │ │ │ │ ├── img │ │ │ │ ├── anchor.gif │ │ │ │ ├── loader.gif │ │ │ │ ├── object.gif │ │ │ │ └── trans.gif │ │ │ │ ├── skin.min.css │ │ │ │ └── skin.min.css.map │ │ │ └── tinymce.min.js │ ├── src │ │ ├── App.vue │ │ ├── api │ │ │ ├── ad.js │ │ │ ├── admin.js │ │ │ ├── aftersale.js │ │ │ ├── brand.js │ │ │ ├── category.js │ │ │ ├── comment.js │ │ │ ├── config.js │ │ │ ├── coupon.js │ │ │ ├── dashboard.js │ │ │ ├── dw │ │ │ │ ├── profile.js │ │ │ │ └── report.js │ │ │ ├── goods.js │ │ │ ├── groupon.js │ │ │ ├── issue.js │ │ │ ├── keyword.js │ │ │ ├── log.js │ │ │ ├── login.js │ │ │ ├── notice.js │ │ │ ├── order.js │ │ │ ├── profile.js │ │ │ ├── region.js │ │ │ ├── role.js │ │ │ ├── stat.js │ │ │ ├── storage.js │ │ │ ├── topic.js │ │ │ └── user.js │ │ ├── assets │ │ │ ├── 401_images │ │ │ │ └── 401.gif │ │ │ ├── 404_images │ │ │ │ ├── 404.png │ │ │ │ └── 404_cloud.png │ │ │ └── theme │ │ │ │ └── chalk.js │ │ ├── components │ │ │ ├── BackToTop │ │ │ │ └── index.vue │ │ │ ├── Breadcrumb │ │ │ │ └── index.vue │ │ │ ├── Hamburger │ │ │ │ └── index.vue │ │ │ ├── Notice │ │ │ │ └── index.vue │ │ │ ├── Pagination │ │ │ │ └── index.vue │ │ │ ├── Screenfull │ │ │ │ └── index.vue │ │ │ ├── ScrollPane │ │ │ │ └── index.vue │ │ │ ├── SizeSelect │ │ │ │ └── index.vue │ │ │ └── SvgIcon │ │ │ │ └── index.vue │ │ ├── directive │ │ │ ├── clipboard │ │ │ │ ├── clipboard.js │ │ │ │ └── index.js │ │ │ └── permission │ │ │ │ ├── index.js │ │ │ │ └── permission.js │ │ ├── filters │ │ │ └── index.js │ │ ├── icons │ │ │ ├── index.js │ │ │ ├── svg │ │ │ │ ├── 404.svg │ │ │ │ ├── bug.svg │ │ │ │ ├── chart.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── component.svg │ │ │ │ ├── dashboard.svg │ │ │ │ ├── documentation.svg │ │ │ │ ├── drag.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── email.svg │ │ │ │ ├── example.svg │ │ │ │ ├── excel.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── form.svg │ │ │ │ ├── guide 2.svg │ │ │ │ ├── guide.svg │ │ │ │ ├── icon.svg │ │ │ │ ├── info.svg │ │ │ │ ├── international.svg │ │ │ │ ├── language.svg │ │ │ │ ├── link.svg │ │ │ │ ├── list.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── message.svg │ │ │ │ ├── money.svg │ │ │ │ ├── nested.svg │ │ │ │ ├── password.svg │ │ │ │ ├── people.svg │ │ │ │ ├── peoples.svg │ │ │ │ ├── qq.svg │ │ │ │ ├── shopping.svg │ │ │ │ ├── size.svg │ │ │ │ ├── star.svg │ │ │ │ ├── tab.svg │ │ │ │ ├── table.svg │ │ │ │ ├── theme.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── user.svg │ │ │ │ ├── wechat.svg │ │ │ │ └── zip.svg │ │ │ └── svgo.yml │ │ ├── main.js │ │ ├── permission.js │ │ ├── router │ │ │ └── index.js │ │ ├── store │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── modules │ │ │ │ ├── app.js │ │ │ │ ├── permission.js │ │ │ │ ├── tagsView.js │ │ │ │ ├── theme.js │ │ │ │ └── user.js │ │ ├── styles │ │ │ ├── btn.scss │ │ │ ├── element-ui.scss │ │ │ ├── element-variables.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── report.scss │ │ │ ├── sidebar.scss │ │ │ ├── transition.scss │ │ │ └── variables.scss │ │ ├── utils │ │ │ ├── auth.js │ │ │ ├── clipboard.js │ │ │ ├── dateUtil.js │ │ │ ├── index.js │ │ │ ├── mapUtil.js │ │ │ ├── openWindow.js │ │ │ ├── permission.js │ │ │ ├── print.js │ │ │ ├── request.js │ │ │ ├── scrollTo.js │ │ │ └── validate.js │ │ ├── vendor │ │ │ └── Export2Excel.js │ │ └── views │ │ │ ├── config │ │ │ ├── express.vue │ │ │ ├── mall.vue │ │ │ ├── order.vue │ │ │ └── wx.vue │ │ │ ├── dashboard │ │ │ └── index.vue │ │ │ ├── errorPage │ │ │ ├── 401.vue │ │ │ └── 404.vue │ │ │ ├── goods │ │ │ ├── comment.vue │ │ │ ├── create.vue │ │ │ ├── edit.vue │ │ │ └── list.vue │ │ │ ├── layout │ │ │ ├── Layout.vue │ │ │ ├── components │ │ │ │ ├── AppMain.vue │ │ │ │ ├── Navbar.vue │ │ │ │ ├── Sidebar │ │ │ │ │ ├── FixiOSBug.js │ │ │ │ │ ├── Item.vue │ │ │ │ │ ├── Link.vue │ │ │ │ │ ├── SidebarItem.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── TagsView │ │ │ │ │ ├── ScrollPane.vue │ │ │ │ │ └── index.vue │ │ │ │ └── index.js │ │ │ └── mixin │ │ │ │ └── ResizeHandler.js │ │ │ ├── login │ │ │ ├── authredirect.vue │ │ │ └── index.vue │ │ │ ├── mall │ │ │ ├── aftersale.vue │ │ │ ├── brand.vue │ │ │ ├── category.vue │ │ │ ├── issue.vue │ │ │ ├── keyword.vue │ │ │ ├── order.vue │ │ │ └── region.vue │ │ │ ├── profile │ │ │ ├── notice.vue │ │ │ └── password.vue │ │ │ ├── promotion │ │ │ ├── ad.vue │ │ │ ├── coupon.vue │ │ │ ├── couponDetail.vue │ │ │ ├── grouponActivity.vue │ │ │ ├── grouponRule.vue │ │ │ ├── topic.vue │ │ │ ├── topicCreate.vue │ │ │ └── topicEdit.vue │ │ │ ├── redirect │ │ │ └── index.vue │ │ │ ├── report │ │ │ ├── appraiseBad.vue │ │ │ ├── components │ │ │ │ ├── Favor.vue │ │ │ │ ├── Funnel.vue │ │ │ │ ├── Map.vue │ │ │ │ ├── OrderSpeed.vue │ │ │ │ ├── RealOrder.vue │ │ │ │ └── Sale.vue │ │ │ └── index.vue │ │ │ ├── stat │ │ │ ├── goods.vue │ │ │ ├── order.vue │ │ │ └── user.vue │ │ │ ├── sys │ │ │ ├── admin.vue │ │ │ ├── log.vue │ │ │ ├── notice.vue │ │ │ ├── os.vue │ │ │ └── role.vue │ │ │ ├── tag │ │ │ ├── approveTag.vue │ │ │ ├── basicTag.vue │ │ │ ├── components │ │ │ │ ├── CreateMergeTag.vue │ │ │ │ └── TagView.vue │ │ │ ├── macroProfile.vue │ │ │ ├── mergeTag.vue │ │ │ └── miniProfile.vue │ │ │ └── user │ │ │ ├── address.vue │ │ │ ├── collect.vue │ │ │ ├── feedback.vue │ │ │ ├── footprint.vue │ │ │ ├── history.vue │ │ │ └── user.vue │ └── vue.config.js ├── litemall-all-war │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── linlinjava │ │ │ └── litemall │ │ │ └── Application.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml ├── litemall-all │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── linlinjava │ │ │ │ └── litemall │ │ │ │ └── Application.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ │ └── test │ │ └── java │ │ └── org │ │ └── linlinjava │ │ └── litemall │ │ └── allinone │ │ └── AllinoneConfigTest.java ├── litemall-core │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── linlinjava │ │ │ │ └── litemall │ │ │ │ └── core │ │ │ │ ├── config │ │ │ │ ├── AsyncConfig.java │ │ │ │ ├── CorsConfig.java │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ ├── JacksonConfig.java │ │ │ │ ├── ValidatorConfiguration.java │ │ │ │ ├── WxConfig.java │ │ │ │ └── WxProperties.java │ │ │ │ ├── express │ │ │ │ ├── ExpressService.java │ │ │ │ ├── config │ │ │ │ │ ├── ExpressAutoConfiguration.java │ │ │ │ │ └── ExpressProperties.java │ │ │ │ └── dao │ │ │ │ │ ├── ExpressInfo.java │ │ │ │ │ └── Traces.java │ │ │ │ ├── notify │ │ │ │ ├── AliyunSmsSender.java │ │ │ │ ├── NotifyService.java │ │ │ │ ├── NotifyType.java │ │ │ │ ├── SmsResult.java │ │ │ │ ├── SmsSender.java │ │ │ │ ├── TencentSmsSender.java │ │ │ │ └── config │ │ │ │ │ ├── NotifyAutoConfiguration.java │ │ │ │ │ └── NotifyProperties.java │ │ │ │ ├── qcode │ │ │ │ └── QCodeService.java │ │ │ │ ├── storage │ │ │ │ ├── AliyunStorage.java │ │ │ │ ├── LocalStorage.java │ │ │ │ ├── QiniuStorage.java │ │ │ │ ├── Storage.java │ │ │ │ ├── StorageService.java │ │ │ │ ├── TencentStorage.java │ │ │ │ └── config │ │ │ │ │ ├── StorageAutoConfiguration.java │ │ │ │ │ └── StorageProperties.java │ │ │ │ ├── system │ │ │ │ ├── SystemConfig.java │ │ │ │ └── SystemInistService.java │ │ │ │ ├── task │ │ │ │ ├── Task.java │ │ │ │ └── TaskService.java │ │ │ │ ├── util │ │ │ │ ├── BeanUtil.java │ │ │ │ ├── CharUtil.java │ │ │ │ ├── DateTimeUtil.java │ │ │ │ ├── HttpUtil.java │ │ │ │ ├── IpUtil.java │ │ │ │ ├── JacksonUtil.java │ │ │ │ ├── RegexUtil.java │ │ │ │ ├── ResponseUtil.java │ │ │ │ ├── SystemInfoPrinter.java │ │ │ │ └── bcrypt │ │ │ │ │ ├── BCrypt.java │ │ │ │ │ └── BCryptPasswordEncoder.java │ │ │ │ └── validator │ │ │ │ ├── Order.java │ │ │ │ ├── OrderValidator.java │ │ │ │ ├── Sort.java │ │ │ │ └── SortValidator.java │ │ └── resources │ │ │ ├── application-core.yml │ │ │ ├── application.yml │ │ │ ├── back.png │ │ │ └── back_groupon.png │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── linlinjava │ │ │ └── litemall │ │ │ └── core │ │ │ ├── AliyunStorageTest.java │ │ │ ├── Application.java │ │ │ ├── AsyncTask.java │ │ │ ├── AsyncTest.java │ │ │ ├── CoreConfigTest.java │ │ │ ├── ExpressTest.java │ │ │ ├── IntegerTest.java │ │ │ ├── LocalStorageTest.java │ │ │ ├── MailTest.java │ │ │ ├── QiniuStorageTest.java │ │ │ ├── SmsTest.java │ │ │ ├── TaskTest.java │ │ │ ├── TencentStorageTest.java │ │ │ └── util │ │ │ └── bcrypt │ │ │ └── BCryptTest.java │ │ └── resources │ │ └── litemall.png ├── litemall-db │ ├── .gitignore │ ├── mybatis-generator │ │ └── generatorConfig.xml │ ├── pom.xml │ ├── sql │ │ ├── README.md │ │ ├── litemall_data.sql │ │ ├── litemall_schema.sql │ │ └── litemall_table.sql │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── linlinjava │ │ │ │ └── litemall │ │ │ │ └── db │ │ │ │ ├── dao │ │ │ │ ├── GoodsProductMapper.java │ │ │ │ ├── LitemallAdMapper.java │ │ │ │ ├── LitemallAddressMapper.java │ │ │ │ ├── LitemallAdminMapper.java │ │ │ │ ├── LitemallAftersaleMapper.java │ │ │ │ ├── LitemallBrandMapper.java │ │ │ │ ├── LitemallCartMapper.java │ │ │ │ ├── LitemallCategoryMapper.java │ │ │ │ ├── LitemallCollectMapper.java │ │ │ │ ├── LitemallCommentMapper.java │ │ │ │ ├── LitemallCouponMapper.java │ │ │ │ ├── LitemallCouponUserMapper.java │ │ │ │ ├── LitemallFeedbackMapper.java │ │ │ │ ├── LitemallFootprintMapper.java │ │ │ │ ├── LitemallGoodsAttributeMapper.java │ │ │ │ ├── LitemallGoodsMapper.java │ │ │ │ ├── LitemallGoodsProductMapper.java │ │ │ │ ├── LitemallGoodsSpecificationMapper.java │ │ │ │ ├── LitemallGrouponMapper.java │ │ │ │ ├── LitemallGrouponRulesMapper.java │ │ │ │ ├── LitemallIssueMapper.java │ │ │ │ ├── LitemallKeywordMapper.java │ │ │ │ ├── LitemallLogMapper.java │ │ │ │ ├── LitemallNoticeAdminMapper.java │ │ │ │ ├── LitemallNoticeMapper.java │ │ │ │ ├── LitemallOrderGoodsMapper.java │ │ │ │ ├── LitemallOrderMapper.java │ │ │ │ ├── LitemallPermissionMapper.java │ │ │ │ ├── LitemallRegionMapper.java │ │ │ │ ├── LitemallRoleMapper.java │ │ │ │ ├── LitemallSearchHistoryMapper.java │ │ │ │ ├── LitemallStorageMapper.java │ │ │ │ ├── LitemallSystemMapper.java │ │ │ │ ├── LitemallTopicMapper.java │ │ │ │ ├── LitemallUserMapper.java │ │ │ │ ├── OrderMapper.java │ │ │ │ └── StatMapper.java │ │ │ │ ├── domain │ │ │ │ ├── LitemallAd.java │ │ │ │ ├── LitemallAdExample.java │ │ │ │ ├── LitemallAddress.java │ │ │ │ ├── LitemallAddressExample.java │ │ │ │ ├── LitemallAdmin.java │ │ │ │ ├── LitemallAdminExample.java │ │ │ │ ├── LitemallAftersale.java │ │ │ │ ├── LitemallAftersaleExample.java │ │ │ │ ├── LitemallBrand.java │ │ │ │ ├── LitemallBrandExample.java │ │ │ │ ├── LitemallCart.java │ │ │ │ ├── LitemallCartExample.java │ │ │ │ ├── LitemallCategory.java │ │ │ │ ├── LitemallCategoryExample.java │ │ │ │ ├── LitemallCollect.java │ │ │ │ ├── LitemallCollectExample.java │ │ │ │ ├── LitemallComment.java │ │ │ │ ├── LitemallCommentExample.java │ │ │ │ ├── LitemallCoupon.java │ │ │ │ ├── LitemallCouponExample.java │ │ │ │ ├── LitemallCouponUser.java │ │ │ │ ├── LitemallCouponUserExample.java │ │ │ │ ├── LitemallFeedback.java │ │ │ │ ├── LitemallFeedbackExample.java │ │ │ │ ├── LitemallFootprint.java │ │ │ │ ├── LitemallFootprintExample.java │ │ │ │ ├── LitemallGoods.java │ │ │ │ ├── LitemallGoodsAttribute.java │ │ │ │ ├── LitemallGoodsAttributeExample.java │ │ │ │ ├── LitemallGoodsExample.java │ │ │ │ ├── LitemallGoodsProduct.java │ │ │ │ ├── LitemallGoodsProductExample.java │ │ │ │ ├── LitemallGoodsSpecification.java │ │ │ │ ├── LitemallGoodsSpecificationExample.java │ │ │ │ ├── LitemallGroupon.java │ │ │ │ ├── LitemallGrouponExample.java │ │ │ │ ├── LitemallGrouponRules.java │ │ │ │ ├── LitemallGrouponRulesExample.java │ │ │ │ ├── LitemallIssue.java │ │ │ │ ├── LitemallIssueExample.java │ │ │ │ ├── LitemallKeyword.java │ │ │ │ ├── LitemallKeywordExample.java │ │ │ │ ├── LitemallLog.java │ │ │ │ ├── LitemallLogExample.java │ │ │ │ ├── LitemallNotice.java │ │ │ │ ├── LitemallNoticeAdmin.java │ │ │ │ ├── LitemallNoticeAdminExample.java │ │ │ │ ├── LitemallNoticeExample.java │ │ │ │ ├── LitemallOrder.java │ │ │ │ ├── LitemallOrderExample.java │ │ │ │ ├── LitemallOrderGoods.java │ │ │ │ ├── LitemallOrderGoodsExample.java │ │ │ │ ├── LitemallPermission.java │ │ │ │ ├── LitemallPermissionExample.java │ │ │ │ ├── LitemallRegion.java │ │ │ │ ├── LitemallRegionExample.java │ │ │ │ ├── LitemallRole.java │ │ │ │ ├── LitemallRoleExample.java │ │ │ │ ├── LitemallSearchHistory.java │ │ │ │ ├── LitemallSearchHistoryExample.java │ │ │ │ ├── LitemallStorage.java │ │ │ │ ├── LitemallStorageExample.java │ │ │ │ ├── LitemallSystem.java │ │ │ │ ├── LitemallSystemExample.java │ │ │ │ ├── LitemallTopic.java │ │ │ │ ├── LitemallTopicExample.java │ │ │ │ ├── LitemallUser.java │ │ │ │ ├── LitemallUserExample.java │ │ │ │ └── UserVo.java │ │ │ │ ├── mybatis │ │ │ │ ├── JsonIntegerArrayTypeHandler.java │ │ │ │ ├── JsonNodeTypeHandler.java │ │ │ │ └── JsonStringArrayTypeHandler.java │ │ │ │ ├── service │ │ │ │ ├── CouponAssignService.java │ │ │ │ ├── CouponVerifyService.java │ │ │ │ ├── LitemallAdService.java │ │ │ │ ├── LitemallAddressService.java │ │ │ │ ├── LitemallAdminService.java │ │ │ │ ├── LitemallAftersaleService.java │ │ │ │ ├── LitemallBrandService.java │ │ │ │ ├── LitemallCartService.java │ │ │ │ ├── LitemallCategoryService.java │ │ │ │ ├── LitemallCollectService.java │ │ │ │ ├── LitemallCommentService.java │ │ │ │ ├── LitemallCouponService.java │ │ │ │ ├── LitemallCouponUserService.java │ │ │ │ ├── LitemallFeedbackService.java │ │ │ │ ├── LitemallFootprintService.java │ │ │ │ ├── LitemallGoodsAttributeService.java │ │ │ │ ├── LitemallGoodsProductService.java │ │ │ │ ├── LitemallGoodsService.java │ │ │ │ ├── LitemallGoodsSpecificationService.java │ │ │ │ ├── LitemallGrouponRulesService.java │ │ │ │ ├── LitemallGrouponService.java │ │ │ │ ├── LitemallIssueService.java │ │ │ │ ├── LitemallKeywordService.java │ │ │ │ ├── LitemallLogService.java │ │ │ │ ├── LitemallNoticeAdminService.java │ │ │ │ ├── LitemallNoticeService.java │ │ │ │ ├── LitemallOrderGoodsService.java │ │ │ │ ├── LitemallOrderService.java │ │ │ │ ├── LitemallPermissionService.java │ │ │ │ ├── LitemallRegionService.java │ │ │ │ ├── LitemallRoleService.java │ │ │ │ ├── LitemallSearchHistoryService.java │ │ │ │ ├── LitemallStorageService.java │ │ │ │ ├── LitemallSystemConfigService.java │ │ │ │ ├── LitemallTopicService.java │ │ │ │ ├── LitemallUserService.java │ │ │ │ └── StatService.java │ │ │ │ └── util │ │ │ │ ├── AftersaleConstant.java │ │ │ │ ├── CouponConstant.java │ │ │ │ ├── CouponUserConstant.java │ │ │ │ ├── DbUtil.java │ │ │ │ ├── GrouponConstant.java │ │ │ │ ├── OrderHandleOption.java │ │ │ │ └── OrderUtil.java │ │ └── resources │ │ │ ├── application-db.yml │ │ │ ├── application.yml │ │ │ └── org │ │ │ └── linlinjava │ │ │ └── litemall │ │ │ └── db │ │ │ └── dao │ │ │ ├── GoodsProductMapper.xml │ │ │ ├── LitemallAdMapper.xml │ │ │ ├── LitemallAddressMapper.xml │ │ │ ├── LitemallAdminMapper.xml │ │ │ ├── LitemallAftersaleMapper.xml │ │ │ ├── LitemallBrandMapper.xml │ │ │ ├── LitemallCartMapper.xml │ │ │ ├── LitemallCategoryMapper.xml │ │ │ ├── LitemallCollectMapper.xml │ │ │ ├── LitemallCommentMapper.xml │ │ │ ├── LitemallCouponMapper.xml │ │ │ ├── LitemallCouponUserMapper.xml │ │ │ ├── LitemallFeedbackMapper.xml │ │ │ ├── LitemallFootprintMapper.xml │ │ │ ├── LitemallGoodsAttributeMapper.xml │ │ │ ├── LitemallGoodsMapper.xml │ │ │ ├── LitemallGoodsProductMapper.xml │ │ │ ├── LitemallGoodsSpecificationMapper.xml │ │ │ ├── LitemallGrouponMapper.xml │ │ │ ├── LitemallGrouponRulesMapper.xml │ │ │ ├── LitemallIssueMapper.xml │ │ │ ├── LitemallKeywordMapper.xml │ │ │ ├── LitemallLogMapper.xml │ │ │ ├── LitemallNoticeAdminMapper.xml │ │ │ ├── LitemallNoticeMapper.xml │ │ │ ├── LitemallOrderGoodsMapper.xml │ │ │ ├── LitemallOrderMapper.xml │ │ │ ├── LitemallPermissionMapper.xml │ │ │ ├── LitemallRegionMapper.xml │ │ │ ├── LitemallRoleMapper.xml │ │ │ ├── LitemallSearchHistoryMapper.xml │ │ │ ├── LitemallStorageMapper.xml │ │ │ ├── LitemallSystemMapper.xml │ │ │ ├── LitemallTopicMapper.xml │ │ │ ├── LitemallUserMapper.xml │ │ │ ├── OrderMapper.xml │ │ │ └── StatMapper.xml │ │ └── test │ │ └── java │ │ └── org │ │ └── linlinjava │ │ └── litemall │ │ └── db │ │ ├── Application.java │ │ ├── DbConfigTest.java │ │ ├── DbTest.java │ │ ├── DbUtilTest.java │ │ ├── MapperReturnTest.java │ │ ├── StatMapperTest.java │ │ └── StockTest.java ├── litemall-vue │ ├── .env.deployment │ ├── .env.development │ ├── .env.production │ ├── .eslintrc.js │ ├── .gitignore │ ├── .postcssrc.js │ ├── .prettierrc.js │ ├── babel.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api │ │ │ ├── api.js │ │ │ └── log.js │ │ ├── assets │ │ │ ├── images │ │ │ │ ├── ali_pay.png │ │ │ │ ├── avatar_default.png │ │ │ │ ├── goods_default.png │ │ │ │ ├── is_empty.png │ │ │ │ ├── mx_be_to.png │ │ │ │ ├── mx_start.png │ │ │ │ ├── not_enough.png │ │ │ │ ├── store_default.png │ │ │ │ ├── trumpet.png │ │ │ │ ├── user_head_bg.png │ │ │ │ └── wx_pay.png │ │ │ └── scss │ │ │ │ ├── _mixin.scss │ │ │ │ ├── _vant-theme.scss │ │ │ │ ├── _var.scss │ │ │ │ ├── common.scss │ │ │ │ ├── global.scss │ │ │ │ ├── iconfont │ │ │ │ ├── iconfont.css │ │ │ │ └── iconfont.ttf │ │ │ │ └── mixin │ │ │ │ └── _one-border.scss │ │ ├── components │ │ │ ├── Header │ │ │ │ └── index.vue │ │ │ ├── Tabbar │ │ │ │ └── index.vue │ │ │ ├── comment │ │ │ │ └── index.vue │ │ │ ├── field-group │ │ │ │ └── index.vue │ │ │ ├── field │ │ │ │ └── index.vue │ │ │ └── is-empty │ │ │ │ └── index.vue │ │ ├── filter │ │ │ └── index.js │ │ ├── main.js │ │ ├── mixin │ │ │ └── scroll-fixed.js │ │ ├── router │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ ├── items.js │ │ │ ├── login.js │ │ │ ├── order.js │ │ │ └── user.js │ │ ├── store │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ ├── mutation-types.js │ │ │ └── mutations.js │ │ ├── utils │ │ │ ├── auth.js │ │ │ ├── local-storage.js │ │ │ ├── location-param.js │ │ │ ├── request.js │ │ │ ├── scroll.js │ │ │ └── validate.js │ │ └── views │ │ │ ├── home │ │ │ └── tabbar-home.vue │ │ │ ├── items │ │ │ ├── brand-list │ │ │ │ └── index.vue │ │ │ ├── brand │ │ │ │ └── index.vue │ │ │ ├── category │ │ │ │ └── index.vue │ │ │ ├── comment │ │ │ │ └── index.vue │ │ │ ├── detail │ │ │ │ ├── index.vue │ │ │ │ └── popup-props.vue │ │ │ ├── groupon │ │ │ │ └── index.vue │ │ │ ├── hot │ │ │ │ └── index.vue │ │ │ ├── new │ │ │ │ └── index.vue │ │ │ ├── search │ │ │ │ └── index.vue │ │ │ ├── tabbar-catalog.vue │ │ │ ├── topic-list │ │ │ │ └── index.vue │ │ │ └── topic │ │ │ │ └── index.vue │ │ │ ├── login │ │ │ ├── forget-reset │ │ │ │ └── index.vue │ │ │ ├── forget-status │ │ │ │ └── index.vue │ │ │ ├── forget │ │ │ │ └── index.vue │ │ │ ├── login.vue │ │ │ ├── register-getCode │ │ │ │ └── index.vue │ │ │ ├── register-status │ │ │ │ └── index.vue │ │ │ └── register-submit │ │ │ │ └── index.vue │ │ │ ├── order │ │ │ ├── checkout.vue │ │ │ ├── comment │ │ │ │ └── index.vue │ │ │ ├── order-detail │ │ │ │ └── index.vue │ │ │ ├── payment-status │ │ │ │ └── index.vue │ │ │ ├── payment │ │ │ │ └── index.vue │ │ │ └── tabbar-cart.vue │ │ │ └── user │ │ │ ├── coupon-list │ │ │ └── index.vue │ │ │ ├── module-address-edit │ │ │ ├── area.json │ │ │ └── index.vue │ │ │ ├── module-address │ │ │ └── index.vue │ │ │ ├── module-collect │ │ │ └── index.vue │ │ │ ├── module-feedback │ │ │ └── index.vue │ │ │ ├── module-help │ │ │ └── index.vue │ │ │ ├── module-server │ │ │ └── index.vue │ │ │ ├── order-list │ │ │ └── index.vue │ │ │ ├── refund-list │ │ │ └── index.vue │ │ │ ├── tabbar-user-coupon.vue │ │ │ ├── tabbar-user-header.vue │ │ │ ├── tabbar-user-module.vue │ │ │ ├── tabbar-user-order.vue │ │ │ ├── tabbar-user.vue │ │ │ └── user-information-set │ │ │ ├── index.vue │ │ │ ├── set-mobile │ │ │ └── index.vue │ │ │ ├── set-nickname │ │ │ └── index.vue │ │ │ └── set-password │ │ │ └── index.vue │ └── vue.config.js ├── litemall-wx-api │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── linlinjava │ │ │ │ └── litemall │ │ │ │ └── wx │ │ │ │ ├── WxApplication.java │ │ │ │ ├── annotation │ │ │ │ ├── LoginUser.java │ │ │ │ └── support │ │ │ │ │ └── LoginUserHandlerMethodArgumentResolver.java │ │ │ │ ├── config │ │ │ │ ├── WxSwagger2Configuration.java │ │ │ │ └── WxWebMvcConfiguration.java │ │ │ │ ├── dto │ │ │ │ ├── CaptchaItem.java │ │ │ │ ├── OrderCommentPost.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserToken.java │ │ │ │ └── WxLoginInfo.java │ │ │ │ ├── service │ │ │ │ ├── CaptchaCodeManager.java │ │ │ │ ├── GetRegionService.java │ │ │ │ ├── HomeCacheManager.java │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserTokenManager.java │ │ │ │ ├── WxGrouponRuleService.java │ │ │ │ └── WxOrderService.java │ │ │ │ ├── task │ │ │ │ ├── OrderUnpaidTask.java │ │ │ │ └── TaskStartupRunner.java │ │ │ │ ├── util │ │ │ │ ├── JwtHelper.java │ │ │ │ └── WxResponseCode.java │ │ │ │ ├── vo │ │ │ │ ├── CouponVo.java │ │ │ │ ├── GrouponRuleVo.java │ │ │ │ ├── OrderCommentVo.java │ │ │ │ └── VantUploaderVo.java │ │ │ │ └── web │ │ │ │ ├── WxAddressController.java │ │ │ │ ├── WxAftersaleController.java │ │ │ │ ├── WxAuthController.java │ │ │ │ ├── WxBrandController.java │ │ │ │ ├── WxCartController.java │ │ │ │ ├── WxCatalogController.java │ │ │ │ ├── WxCollectController.java │ │ │ │ ├── WxCommentController.java │ │ │ │ ├── WxCouponController.java │ │ │ │ ├── WxFeedbackController.java │ │ │ │ ├── WxFootprintController.java │ │ │ │ ├── WxGoodsController.java │ │ │ │ ├── WxGrouponController.java │ │ │ │ ├── WxHomeController.java │ │ │ │ ├── WxIndexController.java │ │ │ │ ├── WxIssueController.java │ │ │ │ ├── WxOrderController.java │ │ │ │ ├── WxSearchController.java │ │ │ │ ├── WxStorageController.java │ │ │ │ ├── WxTopicController.java │ │ │ │ └── WxUserController.java │ │ └── resources │ │ │ ├── application-wx.yml │ │ │ ├── application.yml │ │ │ └── logback.xml │ │ └── test │ │ └── java │ │ └── org │ │ └── linlinjava │ │ └── litemall │ │ └── wx │ │ ├── BigDecimalTest.java │ │ └── WxConfigTest.java ├── litemall-wx │ ├── app.js │ ├── app.json │ ├── app.wxss │ ├── config │ │ └── api.js │ ├── lib │ │ ├── vant-weapp │ │ │ ├── action-sheet │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── area │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── button │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── card │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── cell-group │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── cell │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── checkbox-group │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── checkbox │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── circle │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── col │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── collapse-item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── collapse │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── common │ │ │ │ ├── color.d.ts │ │ │ │ ├── color.js │ │ │ │ ├── component.d.ts │ │ │ │ ├── component.js │ │ │ │ ├── index.wxss │ │ │ │ ├── style │ │ │ │ │ ├── clearfix.wxss │ │ │ │ │ ├── ellipsis.wxss │ │ │ │ │ ├── hairline.wxss │ │ │ │ │ ├── mixins │ │ │ │ │ │ ├── clearfix.wxss │ │ │ │ │ │ ├── ellipsis.wxss │ │ │ │ │ │ └── hairline.wxss │ │ │ │ │ ├── theme.wxss │ │ │ │ │ └── var.wxss │ │ │ │ ├── utils.d.ts │ │ │ │ └── utils.js │ │ │ ├── count-down │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxss │ │ │ │ ├── utils.d.ts │ │ │ │ └── utils.js │ │ │ ├── datetime-picker │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── definitions │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── weapp.d.ts │ │ │ │ └── weapp.js │ │ │ ├── dialog │ │ │ │ ├── dialog.d.ts │ │ │ │ ├── dialog.js │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── divider │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── dropdown-item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── dropdown-menu │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ │ ├── field │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── goods-action-button │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── goods-action-icon │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── goods-action │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── grid-item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── grid │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── icon │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── image │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── index-anchor │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── index-bar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── info │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── loading │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── mixins │ │ │ │ ├── basic.d.ts │ │ │ │ ├── basic.js │ │ │ │ ├── button.d.ts │ │ │ │ ├── button.js │ │ │ │ ├── link.d.ts │ │ │ │ ├── link.js │ │ │ │ ├── observer │ │ │ │ │ ├── behavior.d.ts │ │ │ │ │ ├── behavior.js │ │ │ │ │ ├── index.d.ts │ │ │ │ │ └── index.js │ │ │ │ ├── open-type.d.ts │ │ │ │ ├── open-type.js │ │ │ │ ├── touch.d.ts │ │ │ │ ├── touch.js │ │ │ │ ├── transition.d.ts │ │ │ │ └── transition.js │ │ │ ├── nav-bar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── notice-bar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── notify │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxss │ │ │ │ ├── notify.d.ts │ │ │ │ └── notify.js │ │ │ ├── overlay │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── panel │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── picker-column │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ │ ├── picker │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxss │ │ │ │ ├── shared.d.ts │ │ │ │ └── shared.js │ │ │ ├── popup │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── progress │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ │ ├── radio-group │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── radio │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── rate │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── row │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── search │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── sidebar-item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── sidebar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── skeleton │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── slider │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── stepper │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── steps │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── sticky │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── submit-bar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── swipe-cell │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── switch │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── tab │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── tabbar-item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── tabbar │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── tabs │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ │ ├── tag │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── toast │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxss │ │ │ │ ├── toast.d.ts │ │ │ │ └── toast.js │ │ │ ├── transition │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ ├── tree-select │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ │ ├── uploader │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxss │ │ │ │ ├── utils.d.ts │ │ │ │ └── utils.js │ │ │ └── wxs │ │ │ │ ├── array.wxs │ │ │ │ ├── bem.wxs │ │ │ │ ├── memoize.wxs │ │ │ │ ├── object.wxs │ │ │ │ └── utils.wxs │ │ └── wxParse │ │ │ ├── html2json.js │ │ │ ├── htmlparser.js │ │ │ ├── showdown.js │ │ │ ├── wxDiscode.js │ │ │ ├── wxParse.js │ │ │ ├── wxParse.wxml │ │ │ └── wxParse.wxss │ ├── pages │ │ ├── about │ │ │ ├── about.js │ │ │ ├── about.json │ │ │ ├── about.wxml │ │ │ └── about.wxss │ │ ├── auth │ │ │ ├── accountLogin │ │ │ │ ├── accountLogin.js │ │ │ │ ├── accountLogin.json │ │ │ │ ├── accountLogin.wxml │ │ │ │ └── accountLogin.wxss │ │ │ ├── login │ │ │ │ ├── login.js │ │ │ │ ├── login.json │ │ │ │ ├── login.wxml │ │ │ │ └── login.wxss │ │ │ ├── register │ │ │ │ ├── register.js │ │ │ │ ├── register.json │ │ │ │ ├── register.wxml │ │ │ │ └── register.wxss │ │ │ └── reset │ │ │ │ ├── reset.js │ │ │ │ ├── reset.json │ │ │ │ ├── reset.wxml │ │ │ │ └── reset.wxss │ │ ├── brand │ │ │ ├── brand.js │ │ │ ├── brand.json │ │ │ ├── brand.wxml │ │ │ └── brand.wxss │ │ ├── brandDetail │ │ │ ├── brandDetail.js │ │ │ ├── brandDetail.json │ │ │ ├── brandDetail.wxml │ │ │ └── brandDetail.wxss │ │ ├── cart │ │ │ ├── cart.js │ │ │ ├── cart.json │ │ │ ├── cart.wxml │ │ │ └── cart.wxss │ │ ├── catalog │ │ │ ├── catalog.js │ │ │ ├── catalog.json │ │ │ ├── catalog.wxml │ │ │ └── catalog.wxss │ │ ├── category │ │ │ ├── category.js │ │ │ ├── category.json │ │ │ ├── category.wxml │ │ │ └── category.wxss │ │ ├── checkout │ │ │ ├── checkout.js │ │ │ ├── checkout.json │ │ │ ├── checkout.wxml │ │ │ └── checkout.wxss │ │ ├── comment │ │ │ ├── comment.js │ │ │ ├── comment.json │ │ │ ├── comment.wxml │ │ │ └── comment.wxss │ │ ├── commentPost │ │ │ ├── commentPost.js │ │ │ ├── commentPost.json │ │ │ ├── commentPost.wxml │ │ │ └── commentPost.wxss │ │ ├── coupon │ │ │ ├── coupon.js │ │ │ ├── coupon.json │ │ │ ├── coupon.wxml │ │ │ └── coupon.wxss │ │ ├── goods │ │ │ ├── goods.js │ │ │ ├── goods.json │ │ │ ├── goods.wxml │ │ │ └── goods.wxss │ │ ├── groupon │ │ │ ├── grouponDetail │ │ │ │ ├── grouponDetail.js │ │ │ │ ├── grouponDetail.json │ │ │ │ ├── grouponDetail.wxml │ │ │ │ └── grouponDetail.wxss │ │ │ ├── grouponList │ │ │ │ ├── grouponList.js │ │ │ │ ├── grouponList.json │ │ │ │ ├── grouponList.wxml │ │ │ │ └── grouponList.wxss │ │ │ └── myGroupon │ │ │ │ ├── myGroupon.js │ │ │ │ ├── myGroupon.json │ │ │ │ ├── myGroupon.wxml │ │ │ │ └── myGroupon.wxss │ │ ├── help │ │ │ ├── help.js │ │ │ ├── help.json │ │ │ ├── help.wxml │ │ │ └── help.wxss │ │ ├── hotGoods │ │ │ ├── hotGoods.js │ │ │ ├── hotGoods.json │ │ │ ├── hotGoods.wxml │ │ │ └── hotGoods.wxss │ │ ├── index │ │ │ ├── index.js │ │ │ ├── index.json │ │ │ ├── index.wxml │ │ │ └── index.wxss │ │ ├── newGoods │ │ │ ├── newGoods.js │ │ │ ├── newGoods.json │ │ │ ├── newGoods.wxml │ │ │ └── newGoods.wxss │ │ ├── payResult │ │ │ ├── payResult.js │ │ │ ├── payResult.json │ │ │ ├── payResult.wxml │ │ │ └── payResult.wxss │ │ ├── search │ │ │ ├── search.js │ │ │ ├── search.json │ │ │ ├── search.wxml │ │ │ └── search.wxss │ │ ├── topic │ │ │ ├── topic.js │ │ │ ├── topic.json │ │ │ ├── topic.wxml │ │ │ └── topic.wxss │ │ ├── topicComment │ │ │ ├── topicComment.js │ │ │ ├── topicComment.json │ │ │ ├── topicComment.wxml │ │ │ └── topicComment.wxss │ │ ├── topicCommentPost │ │ │ ├── topicCommentPost.js │ │ │ ├── topicCommentPost.json │ │ │ ├── topicCommentPost.wxml │ │ │ └── topicCommentPost.wxss │ │ ├── topicDetail │ │ │ ├── topicDetail.js │ │ │ ├── topicDetail.json │ │ │ ├── topicDetail.wxml │ │ │ └── topicDetail.wxss │ │ └── ucenter │ │ │ ├── address │ │ │ ├── address.js │ │ │ ├── address.json │ │ │ ├── address.wxml │ │ │ └── address.wxss │ │ │ ├── addressAdd │ │ │ ├── addressAdd.js │ │ │ ├── addressAdd.json │ │ │ ├── addressAdd.wxml │ │ │ └── addressAdd.wxss │ │ │ ├── aftersale │ │ │ ├── aftersale.js │ │ │ ├── aftersale.json │ │ │ ├── aftersale.wxml │ │ │ └── aftersale.wxss │ │ │ ├── aftersaleDetail │ │ │ ├── aftersaleDetail.js │ │ │ ├── aftersaleDetail.json │ │ │ ├── aftersaleDetail.wxml │ │ │ └── aftersaleDetail.wxss │ │ │ ├── aftersaleList │ │ │ ├── aftersaleList.js │ │ │ ├── aftersaleList.json │ │ │ ├── aftersaleList.wxml │ │ │ └── aftersaleList.wxss │ │ │ ├── collect │ │ │ ├── collect.js │ │ │ ├── collect.json │ │ │ ├── collect.wxml │ │ │ └── collect.wxss │ │ │ ├── couponList │ │ │ ├── couponList.js │ │ │ ├── couponList.json │ │ │ ├── couponList.wxml │ │ │ └── couponList.wxss │ │ │ ├── couponSelect │ │ │ ├── couponSelect.js │ │ │ ├── couponSelect.json │ │ │ ├── couponSelect.wxml │ │ │ └── couponSelect.wxss │ │ │ ├── feedback │ │ │ ├── feedback.js │ │ │ ├── feedback.json │ │ │ ├── feedback.wxml │ │ │ └── feedback.wxss │ │ │ ├── footprint │ │ │ ├── footprint.js │ │ │ ├── footprint.json │ │ │ ├── footprint.wxml │ │ │ └── footprint.wxss │ │ │ ├── index │ │ │ ├── index.js │ │ │ ├── index.json │ │ │ ├── index.wxml │ │ │ └── index.wxss │ │ │ ├── order │ │ │ ├── order.js │ │ │ ├── order.json │ │ │ ├── order.wxml │ │ │ └── order.wxss │ │ │ └── orderDetail │ │ │ ├── orderDetail.js │ │ │ ├── orderDetail.json │ │ │ ├── orderDetail.wxml │ │ │ └── orderDetail.wxss │ ├── project.config.json │ ├── sitemap.json │ ├── static │ │ └── images │ │ │ ├── about.png │ │ │ ├── address.png │ │ │ ├── aftersale.png │ │ │ ├── cart.png │ │ │ ├── cart@selected.png │ │ │ ├── category.png │ │ │ ├── category@selected.png │ │ │ ├── collect.png │ │ │ ├── comment.png │ │ │ ├── coupon.png │ │ │ ├── customer.png │ │ │ ├── feedback.png │ │ │ ├── footprint.png │ │ │ ├── friend.png │ │ │ ├── group.png │ │ │ ├── help.png │ │ │ ├── home.png │ │ │ ├── home@selected.png │ │ │ ├── hot.png │ │ │ ├── icon_error.png │ │ │ ├── mobile.png │ │ │ ├── my.png │ │ │ ├── my@selected.png │ │ │ ├── new.png │ │ │ ├── pendpay.png │ │ │ ├── receive.png │ │ │ ├── send.png │ │ │ └── wechat.png │ └── utils │ │ ├── area.js │ │ ├── check.js │ │ ├── user.js │ │ └── util.js ├── pom.xml └── renard-wx │ ├── app.js │ ├── app.json │ ├── app.wxss │ ├── components │ ├── capsule │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── good │ │ ├── good.js │ │ ├── good.json │ │ ├── good.wxml │ │ └── good.wxss │ ├── goodList │ │ ├── goodList.js │ │ ├── goodList.json │ │ ├── goodList.wxml │ │ └── goodList.wxss │ ├── icon │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── notice-bar │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── notify │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ └── sharePop │ │ ├── sharePop.js │ │ ├── sharePop.json │ │ ├── sharePop.wxml │ │ └── sharePop.wxss │ ├── config │ └── api.js │ ├── images │ ├── Cool-love-o.png │ ├── Cool-love.png │ ├── Coupons-icon-f.png │ ├── Coupons-icon-o.png │ ├── Edit-icon.png │ ├── Hot-cart.png │ ├── Hot-love-o.png │ ├── Hot-love.png │ ├── Plaus-icon.png │ ├── about-icon.png │ ├── confirm.png │ ├── goods-chat.png │ ├── goods-share.png │ ├── my-icon-1.png │ ├── my-icon-2.png │ ├── my-icon-3.png │ ├── my-icon-4.png │ ├── right-icon.png │ └── tabbar │ │ ├── cart-f.png │ │ ├── cart-o.png │ │ ├── like-f.png │ │ ├── like-o.png │ │ ├── menu-f.png │ │ ├── menu-o.png │ │ ├── user-f.png │ │ └── user-o.png │ ├── lib │ └── wxParse │ │ ├── html2json.js │ │ ├── htmlparser.js │ │ ├── showdown.js │ │ ├── wxDiscode.js │ │ ├── wxParse.js │ │ ├── wxParse.wxml │ │ └── wxParse.wxss │ ├── pages │ ├── auth │ │ └── login │ │ │ ├── login.js │ │ │ ├── login.json │ │ │ ├── login.wxml │ │ │ └── login.wxss │ ├── brand │ │ ├── brand.js │ │ ├── brand.json │ │ ├── brand.wxml │ │ └── brand.wxss │ ├── brandDetail │ │ ├── brandDetail.js │ │ ├── brandDetail.json │ │ ├── brandDetail.wxml │ │ └── brandDetail.wxss │ ├── cart │ │ ├── cart.js │ │ ├── cart.json │ │ ├── cart.wxml │ │ └── cart.wxss │ ├── catalog │ │ ├── catalog.js │ │ ├── catalog.json │ │ ├── catalog.wxml │ │ └── catalog.wxss │ ├── category │ │ ├── category.js │ │ ├── category.json │ │ ├── category.wxml │ │ └── category.wxss │ ├── commentPost │ │ ├── commentPost.js │ │ ├── commentPost.json │ │ ├── commentPost.wxml │ │ └── commentPost.wxss │ ├── goods │ │ ├── goods.js │ │ ├── goods.json │ │ ├── goods.wxml │ │ └── goods.wxss │ ├── groupon │ │ ├── grouponDetail │ │ │ ├── grouponDetail.js │ │ │ ├── grouponDetail.json │ │ │ ├── grouponDetail.wxml │ │ │ └── grouponDetail.wxss │ │ ├── grouponList │ │ │ ├── grouponList.js │ │ │ ├── grouponList.json │ │ │ ├── grouponList.wxml │ │ │ └── grouponList.wxss │ │ └── myGroupon │ │ │ ├── myGroupon.js │ │ │ ├── myGroupon.json │ │ │ ├── myGroupon.wxml │ │ │ └── myGroupon.wxss │ ├── hotGoods │ │ ├── hotGoods.js │ │ ├── hotGoods.json │ │ ├── hotGoods.wxml │ │ └── hotGoods.wxss │ ├── index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── newGoods │ │ ├── newGoods.js │ │ ├── newGoods.json │ │ ├── newGoods.wxml │ │ └── newGoods.wxss │ ├── payResult │ │ ├── payResult.js │ │ ├── payResult.json │ │ ├── payResult.wxml │ │ └── payResult.wxss │ ├── search │ │ ├── search.js │ │ ├── search.json │ │ ├── search.wxml │ │ └── search.wxss │ ├── shopping │ │ └── checkout │ │ │ ├── checkout.js │ │ │ ├── checkout.json │ │ │ ├── checkout.wxml │ │ │ └── checkout.wxss │ ├── topic │ │ ├── topic.js │ │ ├── topic.json │ │ ├── topic.wxml │ │ └── topic.wxss │ ├── topicDetail │ │ ├── topicDetail.js │ │ ├── topicDetail.json │ │ ├── topicDetail.wxml │ │ └── topicDetail.wxss │ └── ucenter │ │ ├── address │ │ ├── address.js │ │ ├── address.json │ │ ├── address.wxml │ │ └── address.wxss │ │ ├── addressAdd │ │ ├── addressAdd.js │ │ ├── addressAdd.json │ │ ├── addressAdd.wxml │ │ └── addressAdd.wxss │ │ ├── coupon │ │ ├── coupon.js │ │ ├── coupon.json │ │ ├── coupon.wxml │ │ └── coupon.wxss │ │ ├── index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── order │ │ ├── order.js │ │ ├── order.json │ │ ├── order.wxml │ │ └── order.wxss │ │ └── orderDetail │ │ ├── orderDetail.js │ │ ├── orderDetail.json │ │ ├── orderDetail.wxml │ │ └── orderDetail.wxss │ ├── project.config.json │ ├── sitemap.json │ ├── static │ └── images │ │ ├── address-bg-bd.png │ │ ├── address_right.png │ │ ├── checkbox.png │ │ ├── clear_input.png │ │ ├── del-address.png │ │ ├── detail_back.png │ │ ├── detail_kefu.png │ │ ├── edit-address.png │ │ ├── go.png │ │ ├── ic_menu_choice_nor.png │ │ ├── ic_menu_choice_pressed.png │ │ ├── ic_menu_me_nor.png │ │ ├── ic_menu_me_pressed.png │ │ ├── ic_menu_shoping_nor.png │ │ ├── ic_menu_shoping_pressed.png │ │ ├── ic_menu_sort_nor.png │ │ ├── ic_menu_sort_pressed.png │ │ ├── ic_menu_topic_nor.png │ │ ├── ic_menu_topic_pressed.png │ │ ├── icon_close.png │ │ ├── icon_collect.png │ │ ├── icon_collect_checked.png │ │ ├── icon_error.png │ │ ├── icon_go_more.png │ │ ├── selnum.png │ │ └── wxpay.png │ └── utils │ ├── area.js │ ├── check.js │ ├── user.js │ └── util.js ├── pom.xml ├── spark-commons ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── tlh │ │ └── spark │ │ └── util │ │ └── JedisUtil.java │ ├── resources │ ├── mongo.conf │ └── redis.properties │ └── scala │ └── org │ └── tlh │ └── spark │ └── util │ ├── DateUtil.scala │ ├── Helpers.scala │ ├── JsonScalaUtil.scala │ └── MongoUtil.scala └── user-profile ├── pom.xml ├── profile-admin-api ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── tlh │ │ │ └── profile │ │ │ ├── UserProfileApplication.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── ProfileProperties.java │ │ │ ├── SearchAutoConfig.java │ │ │ ├── UserProfileConfiguration.java │ │ │ └── UserProfileExceptionHandler.java │ │ │ ├── controller │ │ │ ├── TbBasicTagController.java │ │ │ ├── TbMergeTagController.java │ │ │ ├── TbMergeTagDetailController.java │ │ │ ├── TbTagMetadataController.java │ │ │ ├── TbTagModelController.java │ │ │ └── UserTagSearchController.java │ │ │ ├── converter │ │ │ └── SolrDocumentToMapConverter.java │ │ │ ├── dto │ │ │ ├── ApproveModelDto.java │ │ │ ├── BasicTagDto.java │ │ │ ├── DeleteTagDto.java │ │ │ ├── MergeTagDetailDto.java │ │ │ ├── MergeTagDto.java │ │ │ ├── MergeTagSolrDto.java │ │ │ └── ModelTagDto.java │ │ │ ├── entity │ │ │ ├── TbBasicTag.java │ │ │ ├── TbMergeTag.java │ │ │ ├── TbMergeTagDetail.java │ │ │ ├── TbTagMetadata.java │ │ │ ├── TbTagModel.java │ │ │ └── solr │ │ │ │ ├── FacetEntity.java │ │ │ │ └── UserTag.java │ │ │ ├── enums │ │ │ ├── MetaDataType.java │ │ │ ├── ModelTaskState.java │ │ │ ├── OozieScheduleType.java │ │ │ └── QueryCondition.java │ │ │ ├── exception │ │ │ └── OozieTaskException.java │ │ │ ├── mapper │ │ │ ├── TbBasicTagMapper.java │ │ │ ├── TbMergeTagDetailMapper.java │ │ │ ├── TbMergeTagMapper.java │ │ │ ├── TbTagMetadataMapper.java │ │ │ └── TbTagModelMapper.java │ │ │ ├── service │ │ │ ├── ITbBasicTagService.java │ │ │ ├── ITbMergeTagDetailService.java │ │ │ ├── ITbMergeTagService.java │ │ │ ├── ITbTagMetadataService.java │ │ │ ├── ITbTagModelService.java │ │ │ ├── IUserTagSearchService.java │ │ │ └── impl │ │ │ │ ├── TbBasicTagServiceImpl.java │ │ │ │ ├── TbMergeTagDetailServiceImpl.java │ │ │ │ ├── TbMergeTagServiceImpl.java │ │ │ │ ├── TbTagMetadataServiceImpl.java │ │ │ │ ├── TbTagModelServiceImpl.java │ │ │ │ └── UserTagSearchServiceImpl.java │ │ │ ├── util │ │ │ ├── CodeGenerator.java │ │ │ ├── HDfsUtils.java │ │ │ ├── ModelMetaDataParseUtil.java │ │ │ ├── OozieUtil.java │ │ │ ├── PinyinUtil.java │ │ │ └── ResponseUtil.java │ │ │ └── vo │ │ │ ├── BasicTagFacetVo.java │ │ │ ├── BasicTagListVo.java │ │ │ ├── EChartsGraphVo.java │ │ │ ├── ElementTreeVo.java │ │ │ └── MergeTagListVo.java │ └── resources │ │ ├── application.yml │ │ ├── db │ │ └── migration │ │ │ └── mysql │ │ │ ├── V1.1__init.sql │ │ │ ├── V1.2__alter_tb_model.sql │ │ │ ├── V1.3__alter_tb_metadata.sql │ │ │ ├── V1.4__alter_tb_metadata.sql │ │ │ └── V1.5__alter_tb_basic_tag.sql │ │ ├── mapper │ │ ├── TbBasicTagMapper.xml │ │ ├── TbMergeTagDetailMapper.xml │ │ ├── TbMergeTagMapper.xml │ │ ├── TbTagMetadataMapper.xml │ │ └── TbTagModelMapper.xml │ │ └── oozie │ │ ├── coordinator │ │ └── spark │ │ │ └── coordinator.xml │ │ └── workflow │ │ └── spark │ │ ├── job.properties │ │ └── workflow.xml │ └── test │ └── java │ └── org │ └── tlh │ └── profile │ ├── service │ ├── IUserTagSearchServiceTest.java │ └── impl │ │ └── TbMergeTagServiceImplTest.java │ └── util │ └── PinyinUtilTest.java ├── spark-hbase ├── pom.xml └── src │ ├── main │ ├── resources │ │ ├── META-INF │ │ │ └── services │ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── log4j.properties │ └── scala │ │ └── org │ │ └── tlh │ │ └── spark │ │ └── sql │ │ └── hbase │ │ ├── DefaultSource.scala │ │ ├── HBaseRelation.scala │ │ ├── ReadConfig.scala │ │ └── filter │ │ └── DateFilter.scala │ └── test │ └── scala │ └── org │ └── tlh │ └── spark │ └── sql │ └── hbase │ ├── DateFilterTest.scala │ └── HBaseRelationTest.scala └── tags-model ├── pom.xml └── src ├── main ├── resources │ ├── application.conf │ ├── core-site.xml │ ├── hdfs-site.xml │ ├── log4j.properties │ └── spark.conf └── scala │ └── org │ └── tlh │ └── profile │ ├── conf │ └── ModelConf.scala │ ├── entity │ ├── MetaData.scala │ └── package.scala │ ├── enums │ ├── MLType.scala │ └── MetaDataTypeEnum.scala │ └── model │ ├── BaseModel.scala │ ├── SingleMetaModel.scala │ ├── ml │ ├── MLBase.scala │ ├── PSMModel.scala │ └── RFMModel.scala │ ├── pattern │ ├── AgeModel.scala │ └── GenderModel.scala │ └── statistics │ ├── ConsumptionAbilityModel.scala │ ├── ConsumptionModel.scala │ ├── CouponModel.scala │ ├── DiscountModel.scala │ ├── HighSingleModel.scala │ ├── OrderFrequencyModel.scala │ ├── PCTModel.scala │ └── RefundModel.scala └── test └── scala └── org └── tlh └── tag └── test ├── RegTest.scala └── ShcTest.scala /data-pretreatment/kafka-extractor/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /data-pretreatment/kafka-extractor/src/main/scala/org/tlh/dw/entity/package.scala: -------------------------------------------------------------------------------- 1 | package org.tlh.dw 2 | 3 | /** 4 | * @author 离歌笑 5 | * @desc 6 | * @date 2021-01-22 7 | */ 8 | package object entity { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /data-pretreatment/profile-hbase-bulkload/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | namaspace = litemall 2 | family = cf 3 | hfileDir = /tmp/litemall -------------------------------------------------------------------------------- /data-pretreatment/profile-hbase-bulkload/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/bean/events/AppCar.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.bean.events; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 加购物 7 | * 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2020-11-20 11 | */ 12 | @Data 13 | public class AppCar { 14 | 15 | private int userId;//用户ID 16 | private int goodsId;//商品ID 17 | private int skuId;//库存ID 18 | private int num;//加购数量 19 | private String addTime; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/bean/events/AppFavorites.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.bean.events; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-11-20 9 | */ 10 | @Data 11 | public class AppFavorites { 12 | 13 | private int id;//主键 14 | private int courseId;//商品id 15 | private int userId;//用户ID 16 | private String addTime;//创建时间 17 | 18 | } 19 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/dto/CollectDto.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-12-14 9 | */ 10 | @Data 11 | public class CollectDto { 12 | 13 | private int type; 14 | private int valueId; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/dto/OrderConfirm.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-12-14 9 | */ 10 | @Data 11 | public class OrderConfirm { 12 | 13 | private int orderId; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/dto/ResultMsg.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-11-20 9 | */ 10 | @Data 11 | public class ResultMsg { 12 | 13 | private int code; 14 | private String msg; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/dto/UserBase.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-12-14 9 | */ 10 | @Data 11 | public class UserBase { 12 | 13 | private String username; 14 | private String password; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/dto/UserRegister.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-12-14 9 | */ 10 | @Data 11 | public class UserRegister extends UserBase { 12 | 13 | private String mobile; 14 | private String code; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /data-simulate/src/main/java/org/tlh/dw/util/RandomNum.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.util; 2 | 3 | import java.util.Random; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2020-11-20 9 | */ 10 | public class RandomNum { 11 | 12 | public static final int getRandInt(int fromNum, int toNum) { 13 | return fromNum + (new Random()).nextInt(toNum - fromNum + 1); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /data-simulate/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: db, simulate 4 | messages: 5 | encoding: UTF-8 6 | 7 | logging: 8 | level: 9 | root: ERROR 10 | org.springframework: ERROR 11 | org.mybatis: ERROR 12 | org.linlinjava.litemall: ERROR 13 | org.tlh.dw: info -------------------------------------------------------------------------------- /docs/ranger/hdfs-ranger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/docs/ranger/hdfs-ranger.png -------------------------------------------------------------------------------- /docs/ranger/hive-ranger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/docs/ranger/hive-ranger.png -------------------------------------------------------------------------------- /docs/ranger/range-hdfs-hive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/docs/ranger/range-hdfs-hive.png -------------------------------------------------------------------------------- /docs/scripts/azkaban/litemall.project: -------------------------------------------------------------------------------- 1 | azkaban-flow-version: 2.0 -------------------------------------------------------------------------------- /docs/scripts/kafka/wx_extractor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | JAVA_HOME=/opt/jdk1.8.0_131 4 | JAR_DIR=/home/hadoop/project/litemall/kafka 5 | APP=kafka-extractor-1.0.0.jar 6 | 7 | case $1 in 8 | start) 9 | nohup ${JAVA_HOME}/bin/java -cp ${JAR_DIR}/${APP} org.tlh.dw.LitemallWxExtractor >/dev/null 2>&1 & 10 | ;; 11 | stop) 12 | ps -ef | grep kafka-extractor-1.0.0.jar | grep -v grep|awk '{print $2}' | xargs kill 13 | ;; 14 | esac -------------------------------------------------------------------------------- /docs/scripts/log/data-simuldate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | JAVA_HOME=/opt/jdk1.8.0_131 4 | 5 | case $1 in 6 | start) 7 | nohup $JAVA_HOME/bin/java -jar data-simulate-1.0.0.jar >/dev/null 2>&1 & 8 | ;; 9 | stop) 10 | ps -ef | grep data-simulate-1.0.0.jar | grep -v grep|awk '{print $2}' | xargs kill 11 | ;; 12 | esac -------------------------------------------------------------------------------- /docs/scripts/log/kafka_to_hdfs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | FLUME_HOME=/opt/apache-flume-1.9.0-bin 4 | 5 | case $1 in 6 | start) 7 | nohup $FLUME_HOME/bin/flume-ng agent -c $FLUME_HOME/conf -f $FLUME_HOME/conf/litemall_kafka_to_hdfs.conf --name a1 -Dflume.root.logger=INFO,console >$FLUME_HOME/logs/litemall 2>&1 & 8 | ;; 9 | stop) 10 | ps -ef | grep litemall_kafka_to_hdfs | grep -v grep|awk '{print $2}' | xargs kill 11 | ;; 12 | esac -------------------------------------------------------------------------------- /docs/scripts/log/wx-api/wx-api.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | JAVA_HOME=/opt/jdk1.8.0_131 4 | 5 | case $1 in 6 | start) 7 | nohup $JAVA_HOME/bin/java -jar litemall-wx-api-0.1.0-exec.jar >/dev/null 2>&1 & 8 | ;; 9 | stop) 10 | ps -ef | grep litemall-wx-api-0.1.0-exec.jar | grep -v grep|awk '{print $2}' | xargs kill 11 | ;; 12 | esac -------------------------------------------------------------------------------- /docs/scripts/maxwell/maxwell-bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MAXWELL_HOME=/home/hadoop/project/litemall/maxwell 4 | 5 | $MAXWELL_HOME/bin/maxwell-bootstrap --config $MAXWELL_HOME/config.properties --client_id client_1 --database litemall --table $1 -------------------------------------------------------------------------------- /docs/scripts/maxwell/maxwell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MAXWELL_HOME=/home/hadoop/project/litemall/maxwell 4 | 5 | case $1 in 6 | start) 7 | nohup $MAXWELL_HOME/bin/maxwell --config $MAXWELL_HOME/config.properties >/dev/null 2>&1 & 8 | ;; 9 | stop) 10 | ps -ef | grep maxwell | grep -v grep|awk '{print $2}'|xargs kill 11 | ;; 12 | esac 13 | -------------------------------------------------------------------------------- /docs/scripts/spark/real-time-submit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SPARK_HOME=/opt/spark-3.0.0 4 | JAR_DIR=/home/hadoop/project/litemall/spark 5 | APP=litemall-real-time-1.0.0.jar 6 | 7 | $SPARK_HOME/bin/spark-submit \ 8 | --class org.tlh.dw.DwRealTimeDriver \ 9 | --master spark://hadoop-master:7077 \ 10 | --executor-memory 2G \ 11 | --total-executor-cores 2 \ 12 | $JAR_DIR/$APP \ 13 | 5 -------------------------------------------------------------------------------- /docs/vagrant/files_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/docs/vagrant/files_structure.png -------------------------------------------------------------------------------- /docs/vagrant/provision/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = no 3 | 4 | [ssh_connection] 5 | ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -------------------------------------------------------------------------------- /docs/vagrant/provision/group_vars/all.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # 使用的网卡 3 | iface: enp0s8 4 | 5 | # ntp 6 | ntpservers: 7 | - 0.pool.ntp.org 8 | - 1.pool.ntp.org 9 | - 2.pool.ntp.org 10 | 11 | common: 12 | timezone: Asia/Shanghai 13 | -------------------------------------------------------------------------------- /docs/vagrant/provision/group_vars/masters.yml: -------------------------------------------------------------------------------- 1 | --- 2 | clouderauser: cloudera-scm 3 | dbs: 4 | - scm 5 | - amon 6 | - rman 7 | - hue 8 | - metastore 9 | - sentry 10 | - nav 11 | - navms 12 | - oozie 13 | - hive 14 | 15 | mysql: 16 | root_password: cmmysqlroot 17 | -------------------------------------------------------------------------------- /docs/vagrant/provision/requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: 3 | - community.mysql 4 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/cm/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Start CM 3 | service: name=cloudera-scm-server state=started enabled=yes 4 | tags: cm 5 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/common/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart ntp 3 | service: name=ntpd state=restarted 4 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/common/tasks/set_timezone.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set timezone 3 | command: timedatectl set-timezone {{ common.timezone }} 4 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/common/templates/hosts.j2: -------------------------------------------------------------------------------- 1 | 127.0.0.1 localhost 2 | {% for host in groups['all'] %} 3 | {{ hostvars[host]['ansible_' + iface].ipv4.address }} {{ host }} 4 | {% endfor %} -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/common/templates/ntp.conf.j2: -------------------------------------------------------------------------------- 1 | driftfile /var/lib/ntp/drift 2 | 3 | restrict 127.0.0.1 4 | restrict -6 ::1 5 | 6 | {% for item in ntpservers %} 7 | server {{ item }} 8 | {% endfor %} 9 | 10 | includefile /etc/ntp/crypto/pw 11 | 12 | keys /etc/ntp/keys -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/mysql/files/mysql-community-release-el7-5.noarch.rpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/docs/vagrant/provision/roles/mysql/files/mysql-community-release-el7-5.noarch.rpm -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/mysql/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart mysql 3 | service: name=mysqld state=restarted 4 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/mysql/tasks/init_cm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Mkdir 3 | shell: | 4 | mkdir -p /usr/share/java/ 5 | tags: mysql 6 | 7 | - name: Create Driver 8 | copy: 9 | src: mysql-connector-java-5.1.47.jar 10 | dest: /usr/share/java/mysql-connector-java.jar 11 | tags: mysql 12 | 13 | - name: Init CM DB 14 | shell: | 15 | sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm 16 | tags: mysql 17 | -------------------------------------------------------------------------------- /docs/vagrant/provision/roles/scm/files/cloudera-manager.repo: -------------------------------------------------------------------------------- 1 | [cloudera-manager] 2 | name=Cloudera Manager 6.3.1 3 | baseurl=http://master-1/cloudera-repos/cm6/6.3.1/redhat7/yum/ 4 | gpgkey=http://master-1/cloudera-repos/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera 5 | gpgcheck=1 6 | enabled=1 7 | autorefresh=0 8 | type=rpm-md -------------------------------------------------------------------------------- /docs/vagrant/provision/site.yml: -------------------------------------------------------------------------------- 1 | - hosts: all 2 | roles: 3 | - role: common 4 | - hosts: masters 5 | roles: 6 | - role: httpd 7 | - role: scm 8 | - role: mysql 9 | - role: cm 10 | -------------------------------------------------------------------------------- /litemall-auth/admin-auth-starter/src/main/java/org/tlh/litemall/admin/exception/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package org.tlh.litemall.admin.exception; 2 | 3 | /** 4 | * @author 离歌笑 5 | * @desc 6 | * @date 2021-07-02 7 | */ 8 | public class AuthenticationException extends IllegalStateException{ 9 | 10 | public AuthenticationException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /litemall-auth/admin-auth-starter/src/main/java/org/tlh/litemall/admin/holder/UserInfo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.litemall.admin.holder; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2021-07-02 11 | */ 12 | @Data 13 | public class UserInfo { 14 | 15 | private String userName; 16 | private List roles; 17 | private List perms; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /litemall-auth/admin-auth-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.tlh.litemall.admin.AdminAuthAutoConfiguration 3 | -------------------------------------------------------------------------------- /litemall-auth/admin-auth-starter/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | auth: 2 | admin: 3 | enable: true 4 | host: http://localhost:8083 5 | auth-info: /admin/auth/info -------------------------------------------------------------------------------- /litemall-real-time/buried-computation/src/main/scala/org/tlh/dw/process/AbstractProcess.scala: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.process 2 | 3 | import org.apache.spark.rdd.RDD 4 | import org.tlh.dw.entity.OriginalData 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2020-12-16 10 | */ 11 | trait AbstractProcess { 12 | 13 | def process(rdd: RDD[OriginalData]): Unit 14 | 15 | } 16 | -------------------------------------------------------------------------------- /litemall-real-time/buried-computation/src/main/scala/org/tlh/dw/process/LoginProcess.scala: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.process 2 | 3 | import org.apache.spark.rdd.RDD 4 | import org.tlh.dw.entity.OriginalData 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2020-12-16 10 | */ 11 | object LoginProcess extends AbstractProcess { 12 | 13 | override def process(rdd: RDD[OriginalData]): Unit = { 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /litemall-real-time/data-warehouse-flink/src/main/resources/hdfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | dfs.client.use.datanode.hostname 5 | true 6 | 7 | -------------------------------------------------------------------------------- /litemall-real-time/data-warehouse-flink/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %p %c{2}: %m%n -------------------------------------------------------------------------------- /litemall-real-time/data-warehouse/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | # phoenix 2 | phoenix.driver="org.apache.phoenix.jdbc.PhoenixDriver" 3 | phoenix.url="jdbc:phoenix:hadoop-master" 4 | # kafka 5 | kafka.servers="kafka-master:9092" 6 | # hbase 7 | hbase.zk="hadoop-master:2181" 8 | # clickhouse 9 | clickhouse.driver="ru.yandex.clickhouse.ClickHouseDriver" 10 | clickhouse.url="jdbc:clickhouse://hadoop-master:8123/litemall" 11 | clickhouse.user="default" -------------------------------------------------------------------------------- /litemall-real-time/data-warehouse/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /litemall-recommendation/offline-recommendation/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /litemall-recommendation/online-recommendation/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/auth/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.auth; 2 | 3 | /** 4 | * @author 离歌笑 5 | * @desc 6 | * @date 2020-12-07 7 | */ 8 | public class AuthenticationException extends IllegalStateException { 9 | 10 | public AuthenticationException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/auth/holder/UserInfo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.auth.holder; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2020-12-06 11 | */ 12 | @Data 13 | public class UserInfo { 14 | 15 | private String userName; 16 | private List roles; 17 | private List perms; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/entity/LitemallRegionGeo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.entity; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-01-15 9 | */ 10 | @Data 11 | public class LitemallRegionGeo { 12 | 13 | private int regionId; 14 | private String geo; 15 | private String countryName; 16 | private String cityName; 17 | private String provinceName; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsAppraiseBadTopnMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsAppraiseBadTopn; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品差评率 TopN Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsAppraiseBadTopnMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsBackCountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsBackCount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 本周回流用户数 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsBackCountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsNewMidCountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsNewMidCount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 每日新增设备信息数量 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsNewMidCountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsOrderDaycountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsOrderDaycount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 每日订单总计表 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsOrderDaycountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsPaymentDaycountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsPaymentDaycount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 每日支付总计表 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsPaymentDaycountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsProductCartTopnMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsProductCartTopn; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品加入购物车 TopN Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsProductCartTopnMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsProductFavorTopnMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsProductFavorTopn; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品收藏 TopN Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsProductFavorTopnMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsProductInfoMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsProductInfo; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品个数信息 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsProductInfoMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsProductRefundTopnMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsProductRefundTopn; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品退款率 TopN Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsProductRefundTopnMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsProductSaleTopnMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsProductSaleTopn; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 商品个数信息 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsProductSaleTopnMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsSilentCountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsSilentCount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 沉默用户数 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsSilentCountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsUserTopicMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsUserTopic; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 会员主题信息表 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsUserTopicMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsUvCountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsUvCount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 活跃设备数 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsUvCountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/AdsWastageCountMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import org.tlh.dw.entity.AdsWastageCount; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 流失用户数 Mapper 接口 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface AdsWastageCountMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/LitemallRegionGeoMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.tlh.dw.entity.LitemallRegionGeo; 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2021-01-15 10 | */ 11 | public interface LitemallRegionGeoMapper extends BaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/mapper/ck/OrderWideMapper.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.mapper.ck; 2 | 3 | import com.baomidou.dynamic.datasource.annotation.DS; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.tlh.dw.entity.ck.OrderWide; 6 | 7 | /** 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2021-08-31 11 | */ 12 | @DS("clickhouse") 13 | public interface OrderWideMapper extends BaseMapper { 14 | } 15 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsBackCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsBackCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 本周回流用户数 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsBackCountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsNewMidCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsNewMidCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 每日新增设备信息数量 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsNewMidCountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsOrderDaycountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsOrderDaycount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 每日订单总计表 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsOrderDaycountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsPaymentDaycountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsPaymentDaycount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 每日支付总计表 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsPaymentDaycountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsProductInfoService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsProductInfo; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 商品个数信息 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsProductInfoService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsProductSaleTopnService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsProductSaleTopn; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 商品个数信息 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsProductSaleTopnService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsRegionDayCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.tlh.dw.entity.AdsRegionDayCount; 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2020-12-10 10 | */ 11 | public interface IAdsRegionDayCountService extends IService { 12 | } 13 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsSilentCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsSilentCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 沉默用户数 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsSilentCountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsUserTopicService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsUserTopic; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 会员主题信息表 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsUserTopicService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsUvCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsUvCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 活跃设备数 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsUvCountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/IAdsWastageCountService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import org.tlh.dw.entity.AdsWastageCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 流失用户数 服务类 9 | *

10 | * 11 | * @author 离歌笑 12 | * @since 2020-12-05 13 | */ 14 | public interface IAdsWastageCountService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/LitemallRegionGeoService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.tlh.dw.entity.LitemallRegionGeo; 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2021-01-15 10 | */ 11 | public interface LitemallRegionGeoService extends IService { 12 | } 13 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/service/OrderWideService.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import org.tlh.dw.entity.ck.OrderWide; 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2021-08-31 10 | */ 11 | public interface OrderWideService extends IService { 12 | } 13 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/vo/EchartBarVo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2021-01-04 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class EchartBarVo { 16 | 17 | private String name; 18 | private Number value; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/vo/OrderSpeedVo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author 离歌笑 9 | * @desc 10 | * @date 2021-01-05 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class OrderSpeedVo { 16 | 17 | private String date; 18 | private long speed; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /litemall-report/src/main/java/org/tlh/dw/vo/RealTimeVo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.dw.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-01-05 9 | */ 10 | @Data 11 | public class RealTimeVo { 12 | 13 | private long orderCount; 14 | private double orderAmount; 15 | private long payCount; 16 | private double payAmount; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsAppraiseBadTopnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsBackCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsContinuityUvCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsContinuityWkCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsNewMidCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsOrderDaycountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsPaymentDaycountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsProductCartTopnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsProductFavorTopnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsProductInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsProductRefundTopnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsProductSaleTopnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsSaleBrandCategory1StatMnMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsSilentCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsUserActionConvertDayMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsUserRetentionDayRateMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsUserTopicMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsUvCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall-report/src/main/resources/mapper/AdsWastageCountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall/.gitbook.yaml: -------------------------------------------------------------------------------- 1 | structure: 2 | summary: doc/README.md -------------------------------------------------------------------------------- /litemall/deploy/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /db/litemall.sql 3 | /litemall/litemall.jar 4 | -------------------------------------------------------------------------------- /litemall/deploy/db/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/deploy/db/.gitkeep -------------------------------------------------------------------------------- /litemall/doc/README.md: -------------------------------------------------------------------------------- 1 | # Table of Contents 2 | 3 | * [介绍](../README.md) 4 | * [更新日志](../CHANGELOG.md) 5 | * [贡献指南](../CONTRIBUTE.md) 6 | * [FAQ](./FAQ.md) 7 | * [API](./api.md) 8 | * [数据库](./database.md) 9 | * [1. 系统架构](./project.md) 10 | * [2. 基础系统](./platform.md) 11 | * [3. 小商场](./wxmall.md) 12 | * [4. 管理后台](./admin.md) 13 | * [5. 轻商城](./mobmall.md) -------------------------------------------------------------------------------- /litemall/doc/note.md: -------------------------------------------------------------------------------- 1 | # 项目笔记 2 | 3 | 记录本项目开发中一些关键技术点。 4 | 5 | 注意: 6 | > 这些技术并不是绝对正确或者唯一,而是目前项目所采用。 7 | 8 | ## 1. 前后端交互技术 9 | 10 | ## 2. 错误码 -------------------------------------------------------------------------------- /litemall/doc/performance.md: -------------------------------------------------------------------------------- 1 | # 性能 2 | 3 | ## 1 小程序性能 4 | 5 | ## 2 VUE性能 6 | 7 | ## 3 Spring Boot性能 8 | 9 | ### 3.1 gzip压缩 10 | 11 | 在litemall-all模块中配置gzip压缩 12 | ``` 13 | server: 14 | compression: 15 | enabled: true 16 | min-response-size: 2048 17 | mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain 18 | ``` 19 | 20 | ## 4 数据库性能 21 | 22 | ## 5 其他 -------------------------------------------------------------------------------- /litemall/doc/pics/admin/get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/get.png -------------------------------------------------------------------------------- /litemall/doc/pics/admin/get_no_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/get_no_token.png -------------------------------------------------------------------------------- /litemall/doc/pics/admin/get_with_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/get_with_token.png -------------------------------------------------------------------------------- /litemall/doc/pics/admin/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/login.png -------------------------------------------------------------------------------- /litemall/doc/pics/admin/post_no_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/post_no_token.png -------------------------------------------------------------------------------- /litemall/doc/pics/admin/post_with_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/admin/post_with_token.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/admin.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/goods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/goods.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/order-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/order-status.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/order.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/others.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/others.png -------------------------------------------------------------------------------- /litemall/doc/pics/database/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/database/user.png -------------------------------------------------------------------------------- /litemall/doc/pics/faq/excluded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/faq/excluded.png -------------------------------------------------------------------------------- /litemall/doc/pics/platform/db-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/platform/db-main.png -------------------------------------------------------------------------------- /litemall/doc/pics/platform/mybatis-generator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/platform/mybatis-generator.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/deploy-single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/deploy-single.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/develop-stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/develop-stage.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/idea-maven-insatll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/idea-maven-insatll.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/idea-run-all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/idea-run-all.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/maven-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/maven-profile.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/online-deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/online-deploy.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/project-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/project-structure.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/security-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/security-group.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/spring-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/spring-profile.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/stage.png -------------------------------------------------------------------------------- /litemall/doc/pics/project/yml-resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/project/yml-resource.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/admin-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/admin-dashboard.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/litemall_wx_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/litemall_wx_demo.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/mobmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/mobmall.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/project-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/project-structure.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/qq3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/qq3.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/renard_wx_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/renard_wx_demo.png -------------------------------------------------------------------------------- /litemall/doc/pics/readme/technology-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/pics/readme/technology-stack.png -------------------------------------------------------------------------------- /litemall/doc/unused/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/3.png -------------------------------------------------------------------------------- /litemall/doc/unused/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/5.gif -------------------------------------------------------------------------------- /litemall/doc/unused/litemall.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/litemall.ico -------------------------------------------------------------------------------- /litemall/doc/unused/litemall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/litemall.png -------------------------------------------------------------------------------- /litemall/doc/unused/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/qq.png -------------------------------------------------------------------------------- /litemall/doc/unused/qq2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/doc/unused/qq2.png -------------------------------------------------------------------------------- /litemall/docker/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /litemall/litemall.jar 3 | /db/init-sql/litemall.sql 4 | -------------------------------------------------------------------------------- /litemall/docker/db/conf.d/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | wait_timeout=1814400 3 | max_allowed_packet = 100M 4 | default-time_zone = '+8:00' 5 | character-set-server=utf8mb4 6 | collation-server=utf8mb4_unicode_ci -------------------------------------------------------------------------------- /litemall/docker/db/data/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/docker/db/data/.gitkeep -------------------------------------------------------------------------------- /litemall/docker/db/init-sql/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/docker/db/init-sql/.gitkeep -------------------------------------------------------------------------------- /litemall/docker/litemall/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/docker/litemall/.gitkeep -------------------------------------------------------------------------------- /litemall/docker/litemall/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | COPY application.yml application.yml 3 | COPY litemall.jar litemall.jar 4 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","litemall.jar"] -------------------------------------------------------------------------------- /litemall/litemall-admin-api/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-admin-api.iml 4 | -------------------------------------------------------------------------------- /litemall/litemall-admin-api/src/main/resources/application-admin.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin-api/src/main/resources/application-admin.yml -------------------------------------------------------------------------------- /litemall/litemall-admin-api/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: db, core, admin 4 | messages: 5 | encoding: UTF-8 6 | 7 | server: 8 | port: 8083 9 | 10 | logging: 11 | level: 12 | root: ERROR 13 | org.springframework: ERROR 14 | org.mybatis: ERROR 15 | org.linlinjava.litemall.admin: DEBUG 16 | org.linlinjava.litemall: ERROR 17 | 18 | swagger: 19 | production: false -------------------------------------------------------------------------------- /litemall/litemall-admin/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /litemall/litemall-admin/.env.deployment: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | 3 | # just a flag 4 | ENV = 'deploymenet' 5 | 6 | # base api 7 | VUE_APP_BASE_API = 'http://122.51.199.160:8080' 8 | VUE_DW_BASE_API = 'http://localhost:8085' 9 | VUE_TAG_BASE_API = 'http://localhost:8086' 10 | -------------------------------------------------------------------------------- /litemall/litemall-admin/.env.production: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | 3 | # just a flag 4 | ENV = 'production' 5 | 6 | # base api 7 | VUE_APP_BASE_API = 'https://www.example.com' 8 | VUE_DW_BASE_API = 'http://localhost:8085' 9 | VUE_TAG_BASE_API = 'http://localhost:8086' 10 | -------------------------------------------------------------------------------- /litemall/litemall-admin/.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | src/assets 3 | public 4 | dist 5 | -------------------------------------------------------------------------------- /litemall/litemall-admin/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | yarn.lock 24 | -------------------------------------------------------------------------------- /litemall/litemall-admin/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false 4 | } 5 | -------------------------------------------------------------------------------- /litemall/litemall-admin/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /litemall/litemall-admin/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@/*": ["src/*"] 6 | } 7 | }, 8 | "exclude": ["node_modules", "dist"] 9 | } -------------------------------------------------------------------------------- /litemall/litemall-admin/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /litemall/litemall-admin/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/favicon.ico -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/public/tinymce4.7.5/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/api/comment.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listComment(query) { 4 | return request({ 5 | url: '/admin/comment/list', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | 11 | export function deleteComment(data) { 12 | return request({ 13 | url: '/admin/comment/delete', 14 | method: 'post', 15 | data 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/api/dashboard.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function info(query) { 4 | return request({ 5 | url: '/admin/dashboard', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/api/log.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listLog(query) { 4 | return request({ 5 | url: '/admin/log/list', 6 | method: 'get', 7 | params: query 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/api/region.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listRegion() { 4 | return request({ 5 | url: '/admin/region/list', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function listSubRegion(query) { 11 | return request({ 12 | url: '/admin/region/clist', 13 | method: 'get', 14 | params: query 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /litemall/litemall-admin/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/src/assets/404_images/404.png -------------------------------------------------------------------------------- /litemall/litemall-admin/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-admin/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /litemall/litemall-admin/src/directive/clipboard/index.js: -------------------------------------------------------------------------------- 1 | import Clipboard from './clipboard' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('Clipboard', Clipboard) 5 | } 6 | 7 | if (window.Vue) { 8 | window.clipboard = Clipboard 9 | Vue.use(install); // eslint-disable-line 10 | } 11 | 12 | Clipboard.install = install 13 | export default Clipboard 14 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/directive/permission/index.js: -------------------------------------------------------------------------------- 1 | import permission from './permission' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('permission', permission) 5 | } 6 | 7 | if (window.Vue) { 8 | window['permission'] = permission 9 | Vue.use(install); // eslint-disable-line 10 | } 11 | 12 | permission.install = install 13 | export default permission 14 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg组件 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/component.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/guide 2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/store/modules/theme.js: -------------------------------------------------------------------------------- 1 | const theme = { 2 | state: { 3 | theme: 'chalk' 4 | }, 5 | mutations: { 6 | changeTheme(state) { 7 | if (state.theme === 'chalk') { 8 | state.theme = 'macarons' 9 | } else { 10 | state.theme = 'chalk' 11 | } 12 | } 13 | } 14 | } 15 | 16 | export default theme 17 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/styles/report.scss: -------------------------------------------------------------------------------- 1 | .com-container { 2 | width: 100%; 3 | height: 100%; 4 | overflow: hidden; 5 | } 6 | .com-chart { 7 | width: 100%; 8 | height: 100%; 9 | overflow: hidden; 10 | } -------------------------------------------------------------------------------- /litemall/litemall-admin/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'X-Litemall-Admin-Token' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export function setToken(token) { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export function removeToken() { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/views/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as AppMain } from './AppMain' 2 | export { default as Navbar } from './Navbar' 3 | export { default as Sidebar } from './Sidebar/index.vue' 4 | export { default as TagsView } from './TagsView/index.vue' 5 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/views/login/authredirect.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /litemall/litemall-admin/src/views/redirect/index.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /litemall/litemall-all-war/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-all-war.iml 4 | -------------------------------------------------------------------------------- /litemall/litemall-all-war/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: db, core, admin, wx 4 | messages: 5 | encoding: UTF-8 6 | servlet: 7 | multipart: 8 | max-file-size: 20MB 9 | max-request-size: 20MB 10 | 11 | logging: 12 | config: classpath:logback-spring.xml -------------------------------------------------------------------------------- /litemall/litemall-all/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-all.iml 4 | -------------------------------------------------------------------------------- /litemall/litemall-core/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-core.iml 4 | /storage/ 5 | -------------------------------------------------------------------------------- /litemall/litemall-core/src/main/java/org/linlinjava/litemall/core/config/AsyncConfig.java: -------------------------------------------------------------------------------- 1 | package org.linlinjava.litemall.core.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.scheduling.annotation.EnableAsync; 5 | 6 | @Configuration 7 | @EnableAsync 8 | public class AsyncConfig { 9 | } 10 | -------------------------------------------------------------------------------- /litemall/litemall-core/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: core, db 4 | messages: 5 | encoding: UTF-8 6 | 7 | logging: 8 | level: 9 | root: ERROR 10 | org.springframework: ERROR 11 | org.mybatis: ERROR 12 | org.linlinjava.litemall.core: DEBUG -------------------------------------------------------------------------------- /litemall/litemall-core/src/main/resources/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-core/src/main/resources/back.png -------------------------------------------------------------------------------- /litemall/litemall-core/src/main/resources/back_groupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-core/src/main/resources/back_groupon.png -------------------------------------------------------------------------------- /litemall/litemall-core/src/test/resources/litemall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-core/src/test/resources/litemall.png -------------------------------------------------------------------------------- /litemall/litemall-db/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-db.iml 4 | -------------------------------------------------------------------------------- /litemall/litemall-db/sql/litemall_schema.sql: -------------------------------------------------------------------------------- 1 | drop database if exists litemall; 2 | drop user if exists 'litemall'@'%'; 3 | -- 支持emoji:需要mysql数据库参数: character_set_server=utf8mb4 4 | create database litemall default character set utf8mb4 collate utf8mb4_unicode_ci; 5 | use litemall; 6 | create user 'litemall'@'%' identified by 'litemall123456'; 7 | grant all privileges on litemall.* to 'litemall'@'%'; 8 | flush privileges; -------------------------------------------------------------------------------- /litemall/litemall-db/src/main/java/org/linlinjava/litemall/db/dao/GoodsProductMapper.java: -------------------------------------------------------------------------------- 1 | package org.linlinjava.litemall.db.dao; 2 | 3 | import org.apache.ibatis.annotations.Param; 4 | 5 | public interface GoodsProductMapper { 6 | int addStock(@Param("id") Integer id, @Param("num") Short num); 7 | int reduceStock(@Param("id") Integer id, @Param("num") Short num); 8 | } -------------------------------------------------------------------------------- /litemall/litemall-db/src/main/java/org/linlinjava/litemall/db/dao/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package org.linlinjava.litemall.db.dao; 2 | 3 | import org.apache.ibatis.annotations.Param; 4 | import org.linlinjava.litemall.db.domain.LitemallOrder; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | public interface OrderMapper { 9 | int updateWithOptimisticLocker(@Param("lastUpdateTime") LocalDateTime lastUpdateTime, @Param("order") LitemallOrder order); 10 | } -------------------------------------------------------------------------------- /litemall/litemall-db/src/main/java/org/linlinjava/litemall/db/dao/StatMapper.java: -------------------------------------------------------------------------------- 1 | package org.linlinjava.litemall.db.dao; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | public interface StatMapper { 7 | List statUser(); 8 | 9 | List statOrder(); 10 | 11 | List statGoods(); 12 | } -------------------------------------------------------------------------------- /litemall/litemall-db/src/main/java/org/linlinjava/litemall/db/util/CouponUserConstant.java: -------------------------------------------------------------------------------- 1 | package org.linlinjava.litemall.db.util; 2 | 3 | public class CouponUserConstant { 4 | public static final Short STATUS_USABLE = 0; 5 | public static final Short STATUS_USED = 1; 6 | public static final Short STATUS_EXPIRED = 2; 7 | public static final Short STATUS_OUT = 3; 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-db/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: db 4 | messages: 5 | encoding: UTF-8 6 | 7 | logging: 8 | level: 9 | root: ERROR 10 | org.springframework: ERROR 11 | org.mybatis: ERROR 12 | org.linlinjava.litemall.db: DEBUG -------------------------------------------------------------------------------- /litemall/litemall-vue/.env.deployment: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'production' 3 | 4 | # base api 5 | VUE_APP_BASE_API = 'http://122.51.199.160:8080/' 6 | 7 | VUE_LOG_BASE_API = 'http://log-center' -------------------------------------------------------------------------------- /litemall/litemall-vue/.env.production: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'production' 3 | 4 | # base api 5 | VUE_APP_BASE_API = 'https://www.example.com/' 6 | 7 | VUE_LOG_BASE_API = 'http://log-center' -------------------------------------------------------------------------------- /litemall/litemall-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /litemall/litemall-vue/.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /litemall/litemall-vue/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | tabWidth: 2, 3 | singleQuote: true, 4 | semi: false 5 | }; 6 | -------------------------------------------------------------------------------- /litemall/litemall-vue/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'], 3 | plugins: [ 4 | 'lodash', 5 | [ 6 | 'import', 7 | { 8 | libraryName: 'vant', 9 | libraryDirectory: 'es', 10 | style: true 11 | }, 12 | 'vant' 13 | ] 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /litemall/litemall-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/public/favicon.ico -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/ali_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/ali_pay.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/avatar_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/avatar_default.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/goods_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/goods_default.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/is_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/is_empty.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/mx_be_to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/mx_be_to.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/mx_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/mx_start.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/not_enough.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/store_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/store_default.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/trumpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/trumpet.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/user_head_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/user_head_bg.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/images/wx_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/images/wx_pay.png -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/scss/_mixin.scss: -------------------------------------------------------------------------------- 1 | @import "./mixin/one-border"; -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/scss/_var.scss: -------------------------------------------------------------------------------- 1 | $red: #db3d3c; 2 | $gray-deep: #999; 3 | $gray: #bfbfbf; 4 | $gray-shallow: #e5e5e5; 5 | $gray-shallow-more: #f2f2f2; 6 | 7 | $icon-bg: #f9f3e8; 8 | 9 | //字体变量 10 | $font-color-gray: $gray-deep; 11 | $font-size-small: 12px; 12 | $font-size-normal: 14px; 13 | $font-size-big: 16px; 14 | 15 | $border-color: $gray-shallow; 16 | $bg-color: $gray-shallow-more; -------------------------------------------------------------------------------- /litemall/litemall-vue/src/assets/scss/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-vue/src/assets/scss/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /litemall/litemall-vue/src/store/getters.js: -------------------------------------------------------------------------------- 1 | export const showHeader = state => state.showHeader 2 | 3 | export const titleHeader = state => state.title -------------------------------------------------------------------------------- /litemall/litemall-vue/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import * as getters from './getters' 4 | import mutations from './mutations' 5 | 6 | Vue.use(Vuex) 7 | 8 | const state = { 9 | showHeader: true, 10 | title: '' 11 | } 12 | 13 | export default new Vuex.Store({ 14 | strict: process.env.NODE_ENV !== 'production', 15 | state, 16 | getters, 17 | mutations 18 | }) 19 | -------------------------------------------------------------------------------- /litemall/litemall-vue/src/store/mutation-types.js: -------------------------------------------------------------------------------- 1 | export const CHANGE_HEADER= 'CHANGE_HEADER' 2 | -------------------------------------------------------------------------------- /litemall/litemall-vue/src/store/mutations.js: -------------------------------------------------------------------------------- 1 | import * as types from './mutation-types' 2 | 3 | export default { 4 | [types.CHANGE_HEADER](state, payload) { 5 | state.showHeader = payload.showHeader 6 | state.title = payload.title 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-vue/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'X-Litemall-Admin-Token' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export function setToken(token) { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export function removeToken() { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /litemall/litemall-vue/src/utils/location-param.js: -------------------------------------------------------------------------------- 1 | export default name => { 2 | const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`); 3 | const r = window.location.search.substr(1).match(reg); 4 | if (r != null) return decodeURIComponent(r[2]); 5 | return ''; 6 | }; 7 | -------------------------------------------------------------------------------- /litemall/litemall-vue/src/utils/validate.js: -------------------------------------------------------------------------------- 1 | export const idCard = /^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/; 2 | 3 | export const mobileReg = /^1[0-9]{10}$/; 4 | 5 | export const address = val => { 6 | const value = val.trim(); 7 | return value.length >= 5 && value.length <= 100; 8 | }; 9 | 10 | export const userName = /^[a-zA-Z0-9_\u4e00-\u9fa5]{3,20}$/; 11 | 12 | export const emailReg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/; 13 | -------------------------------------------------------------------------------- /litemall/litemall-wx-api/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /target/ 3 | /litemall-wx-api.iml 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx-api/src/main/resources/application-wx.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | servlet: 3 | multipart: 4 | max-file-size: 10MB 5 | max-request-size: 100MB 6 | 7 | 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx-api/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: db, core, wx 4 | messages: 5 | encoding: UTF-8 6 | 7 | server: 8 | port: 8082 9 | 10 | logging: 11 | level: 12 | root: ERROR 13 | org.springframework: ERROR 14 | org.mybatis: ERROR 15 | org.linlinjava.litemall.wx: DEBUG 16 | org.linlinjava.litemall: ERROR 17 | 18 | swagger: 19 | production: false -------------------------------------------------------------------------------- /litemall/litemall-wx/app.wxss: -------------------------------------------------------------------------------- 1 | /**app.wxss**/ 2 | 3 | .container { 4 | box-sizing: border-box; 5 | background-color: #f4f4f4; 6 | font-family: PingFangSC-Light, helvetica, 'Heiti SC'; 7 | } 8 | 9 | view, image, text, navigator { 10 | box-sizing: border-box; 11 | padding: 0; 12 | margin: 0; 13 | } 14 | 15 | view, text { 16 | font-family: PingFangSC-Light, helvetica, 'Heiti SC'; 17 | font-size: 29rpx; 18 | color: #333; 19 | } 20 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/action-sheet/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/action-sheet/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-popup": "../popup/index", 6 | "van-loading": "../loading/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/area/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/area/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-picker": "../picker/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/area/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/button/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/button/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/card/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/card/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-tag": "../tag/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell-group/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | title: String, 5 | border: { 6 | type: Boolean, 7 | value: true 8 | } 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell-group/index.wxml: -------------------------------------------------------------------------------- 1 | 5 | {{ title }} 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-cell-group__title{padding:16px 16px 8px;padding:var(--cell-group-title-padding,16px 16px 8px);font-size:14px;font-size:var(--cell-group-title-font-size,14px);line-height:16px;line-height:var(--cell-group-title-line-height,16px);color:#969799;color:var(--cell-group-title-color,#969799)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox-group/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/checkbox/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/circle/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/circle/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/circle/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ text }} 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/circle/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-circle{position:relative;display:inline-block;text-align:center}.van-circle__text{position:absolute;top:50%;left:0;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#323233;color:var(--circle-text-color,#323233)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/col/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/col/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/col/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/collapse/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/color.d.ts: -------------------------------------------------------------------------------- 1 | export declare const RED = "#ee0a24"; 2 | export declare const BLUE = "#1989fa"; 3 | export declare const WHITE = "#fff"; 4 | export declare const GREEN = "#07c160"; 5 | export declare const ORANGE = "#ff976a"; 6 | export declare const GRAY = "#323233"; 7 | export declare const GRAY_DARK = "#969799"; 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/color.js: -------------------------------------------------------------------------------- 1 | export const RED = '#ee0a24'; 2 | export const BLUE = '#1989fa'; 3 | export const WHITE = '#fff'; 4 | export const GREEN = '#07c160'; 5 | export const ORANGE = '#ff976a'; 6 | export const GRAY = '#323233'; 7 | export const GRAY_DARK = '#969799'; 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/component.d.ts: -------------------------------------------------------------------------------- 1 | import { VantComponentOptions, CombinedComponentInstance } from '../definitions/index'; 2 | declare function VantComponent(vantOptions?: VantComponentOptions>): void; 3 | export { VantComponent }; 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/clearfix.wxss: -------------------------------------------------------------------------------- 1 | .van-clearfix:after{display:table;clear:both;content:""} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/ellipsis.wxss: -------------------------------------------------------------------------------- 1 | .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/mixins/clearfix.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/common/style/mixins/clearfix.wxss -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/mixins/ellipsis.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/common/style/mixins/ellipsis.wxss -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/mixins/hairline.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/common/style/mixins/hairline.wxss -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/theme.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/common/style/theme.wxss -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/common/style/var.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/common/style/var.wxss -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/count-down/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/count-down/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/count-down/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ formattedTime }} 4 | 5 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/count-down/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-count-down{color:#323233;color:var(--count-down-text-color,#323233);font-size:14px;font-size:var(--count-down-font-size,14px);line-height:20px;line-height:var(--count-down-line-height,20px)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/datetime-picker/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/datetime-picker/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-picker": "../picker/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/datetime-picker/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/definitions/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/definitions/index.js -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/definitions/weapp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/lib/vant-weapp/definitions/weapp.js -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dialog/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dialog/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-popup": "../popup/index", 5 | "van-button": "../button/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/divider/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/divider/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/divider/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dropdown-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dropdown-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-popup": "../popup/index", 5 | "van-cell": "../cell/index", 6 | "van-icon": "../icon/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dropdown-menu/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/dropdown-menu/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/field/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/field/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index", 5 | "van-icon": "../icon/index" 6 | } 7 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action-button/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action-button/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-button": "../button/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action-icon/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action-icon/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-button": "../button/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/goods-action/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-goods-action{position:fixed;right:0;bottom:0;left:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;background-color:#fff;background-color:var(--goods-action-background-color,#fff)}.van-goods-action--safe{padding-bottom:env(safe-area-inset-bottom)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/grid/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-grid{position:relative;box-sizing:border-box;overflow:hidden} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/icon/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/icon/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/image/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/image/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/index-anchor/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/index-anchor/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/index-anchor/index.wxml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | 11 | {{ index }} 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/index-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/index-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/info/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/info/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | dot: Boolean, 5 | info: null, 6 | customStyle: String 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/info/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/info/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ dot ? '' : info }} 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/loading/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/loading/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const basic: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/button.d.ts: -------------------------------------------------------------------------------- 1 | export declare const button: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/link.d.ts: -------------------------------------------------------------------------------- 1 | export declare const link: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/observer/behavior.d.ts: -------------------------------------------------------------------------------- 1 | export declare const behavior: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/observer/index.d.ts: -------------------------------------------------------------------------------- 1 | export declare function observe(vantOptions: any, options: any): void; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/open-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const openType: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/touch.d.ts: -------------------------------------------------------------------------------- 1 | export declare const touch: string; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/mixins/transition.d.ts: -------------------------------------------------------------------------------- 1 | export declare const transition: (showDefaultValue: boolean) => any; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/nav-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/nav-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/notice-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/notice-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/notify/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/notify/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-transition": "../transition/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/overlay/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/overlay/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-transition": "../transition/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/overlay/index.wxml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/overlay/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);background-color:var(--overlay-background-color,rgba(0,0,0,.7))} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/panel/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/panel/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | classes: ['header-class', 'footer-class'], 4 | props: { 5 | desc: String, 6 | title: String, 7 | status: String, 8 | useFooterSlot: Boolean 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/panel/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/panel/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-panel{background:#fff;background:var(--panel-background-color,#fff)}.van-panel__header-value{color:#ee0a24;color:var(--panel-header-value-color,#ee0a24)}.van-panel__footer{padding:8px 16px;padding:var(--panel-footer-padding,8px 16px)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/picker-column/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/picker-column/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/picker-column/index.wxs: -------------------------------------------------------------------------------- 1 | function isObj(x) { 2 | var type = typeof x; 3 | return x !== null && (type === 'object' || type === 'function'); 4 | } 5 | 6 | module.exports = function (option, valueKey) { 7 | return isObj(option) && option[valueKey] != null ? option[valueKey] : option; 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/picker/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/picker/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "picker-column": "../picker-column/index", 5 | "loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/popup/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/popup/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-overlay": "../overlay/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/progress/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/progress/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/progress/index.wxs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | text: function(pivotText, percentage) { 3 | return pivotText || percentage + '%'; 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio-group/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/radio/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/rate/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/rate/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/row/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/row/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/row/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/row/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-row:after{display:table;clear:both;content:""} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/search/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/search/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-field": "../field/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sidebar/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-sidebar{width:85px;width:var(--sidebar-width,85px)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/skeleton/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/skeleton/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/slider/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/slider/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/stepper/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/stepper/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/steps/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/steps/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sticky/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sticky/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sticky/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/sticky/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{position:fixed;right:0;left:0} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/submit-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/submit-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-button": "../button/index", 5 | "van-icon": "../icon/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/swipe-cell/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/swipe-cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/swipe-cell/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-swipe-cell{position:relative;overflow:hidden}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/switch/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/switch/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-loading": "../loading/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tab/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tab/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tab/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tab/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';:host{-webkit-flex-shrink:0;flex-shrink:0;width:100%}.van-tab__pane,:host{box-sizing:border-box}.van-tab__pane{overflow-y:auto}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-info": "../info/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabbar/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-tabbar{display:-webkit-flex;display:flex;width:100%;height:50px;height:var(--tabbar-height,50px);background-color:#fff;background-color:var(--tabbar-background-color,#fff)}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--safe{padding-bottom:env(safe-area-inset-bottom)} -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabs/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tabs/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index", 5 | "van-sticky": "../sticky/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tag/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tag/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/toast/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/toast/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index", 6 | "van-overlay": "../overlay/index", 7 | "van-transition": "../transition/index" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/transition/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/transition/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | import { transition } from '../mixins/transition'; 3 | VantComponent({ 4 | classes: [ 5 | 'enter-class', 6 | 'enter-active-class', 7 | 'enter-to-class', 8 | 'leave-class', 9 | 'leave-active-class', 10 | 'leave-to-class' 11 | ], 12 | mixins: [transition(true)] 13 | }); 14 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/transition/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/transition/index.wxml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tree-select/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tree-select/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-sidebar": "../sidebar/index", 6 | "van-sidebar-item": "../sidebar-item/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/tree-select/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var array = require('../wxs/array.wxs'); 3 | 4 | function isActive (activeList, itemId) { 5 | if (array.isArray(activeList)) { 6 | return activeList.indexOf(itemId) > -1; 7 | } 8 | 9 | return activeList === itemId; 10 | } 11 | 12 | module.exports.isActive = isActive; 13 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/uploader/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/uploader/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/uploader/utils.d.ts: -------------------------------------------------------------------------------- 1 | interface File { 2 | path: string; 3 | url: string; 4 | size: number; 5 | name: string; 6 | type: string; 7 | time: number; 8 | image: boolean; 9 | } 10 | export declare function isImageUrl(url: string): boolean; 11 | export declare function isImageFile(item: File): boolean; 12 | export {}; 13 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/wxs/array.wxs: -------------------------------------------------------------------------------- 1 | function isArray(array) { 2 | return array && array.constructor === 'Array'; 3 | } 4 | 5 | module.exports.isArray = isArray; 6 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/wxs/object.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var REGEXP = getRegExp('{|}|"', 'g'); 3 | 4 | function keys(obj) { 5 | return JSON.stringify(obj) 6 | .replace(REGEXP, '') 7 | .split(',') 8 | .map(function(item) { 9 | return item.split(':')[0]; 10 | }); 11 | } 12 | 13 | module.exports.keys = keys; 14 | -------------------------------------------------------------------------------- /litemall/litemall-wx/lib/vant-weapp/wxs/utils.wxs: -------------------------------------------------------------------------------- 1 | var bem = require('./bem.wxs').bem; 2 | var memoize = require('./memoize.wxs').memoize; 3 | 4 | module.exports = { 5 | bem: memoize(bem), 6 | memoize: memoize 7 | }; 8 | -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/about/about.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/auth/accountLogin/accountLogin.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "账号登录" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/auth/login/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "登录" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/auth/login/login.wxml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/auth/register/register.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "注册" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/auth/reset/reset.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "密码重置" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/brand/brand.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "品牌商直供" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/brandDetail/brandDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "品牌商详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/cart/cart.json: -------------------------------------------------------------------------------- 1 | { 2 | "enablePullDownRefresh": true, 3 | "navigationBarTitleText": "购物车" 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/catalog/catalog.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "分类" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/category/category.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/checkout/checkout.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "填写订单" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/comment/comment.json: -------------------------------------------------------------------------------- 1 | { 2 | "enablePullDownRefresh": true, 3 | "navigationBarTitleText": "评价" 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/commentPost/commentPost.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "评价" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/coupon/coupon.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "优惠券专区" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/goods/goods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "商品详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/groupon/grouponDetail/grouponDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "团购详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/groupon/grouponList/grouponList.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "团购专区" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/groupon/myGroupon/myGroupon.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的团购" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/help/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "帮助中心" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/hotGoods/hotGoods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "人气推荐" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "首页", 3 | "enablePullDownRefresh": true 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/newGoods/newGoods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "新品首发" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/payResult/payResult.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "付款结果", 3 | "navigationBarBackgroundColor": "#fafafa" 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/search/search.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "搜索" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/topic/topic.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "专题" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/topicComment/topicComment.json: -------------------------------------------------------------------------------- 1 | { 2 | "enablePullDownRefresh": true, 3 | "navigationBarTitleText": "评论" 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/topicCommentPost/topicCommentPost.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "评论" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/topicDetail/topicDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "专题详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/address/address.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "地址管理" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/addressAdd/addressAdd.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "编辑地址" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/aftersale/aftersale.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "售后" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/aftersaleDetail/aftersaleDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "售后详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/aftersaleList/aftersaleList.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的售后" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/collect/collect.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的收藏" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/couponList/couponList.json: -------------------------------------------------------------------------------- 1 | { 2 | "enablePullDownRefresh": true, 3 | "navigationBarTitleText": "我的优惠券" 4 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/couponSelect/couponSelect.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "选择优惠券" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/feedback/feedback.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "意见反馈" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/footprint/footprint.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的足迹" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "backgroundColor": "#f4f4f4", 3 | "navigationBarTitleText": "个人中心", 4 | "enablePullDownRefresh": false 5 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/order/order.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的订单" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/pages/ucenter/orderDetail/orderDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "订单详情" 3 | } -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/about.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/address.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/aftersale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/aftersale.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/cart.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/cart@selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/cart@selected.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/category.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/category@selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/category@selected.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/collect.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/comment.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/coupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/coupon.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/customer.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/feedback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/feedback.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/footprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/footprint.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/friend.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/group.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/help.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/home.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/home@selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/home@selected.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/hot.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/icon_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/icon_error.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/mobile.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/my.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/my@selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/my@selected.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/new.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/pendpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/pendpay.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/receive.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/send.png -------------------------------------------------------------------------------- /litemall/litemall-wx/static/images/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/litemall-wx/static/images/wechat.png -------------------------------------------------------------------------------- /litemall/litemall-wx/utils/check.js: -------------------------------------------------------------------------------- 1 | function isValidPhone(str) { 2 | var myreg = /^[1][3,4,5,7,8][0-9]{9}$/; 3 | if (!myreg.test(str)) { 4 | return false; 5 | } else { 6 | return true; 7 | } 8 | } 9 | 10 | module.exports = { 11 | isValidPhone 12 | } -------------------------------------------------------------------------------- /litemall/renard-wx/components/capsule/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/good/good.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /litemall/renard-wx/components/good/good.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{title}} 4 | 5 | 原价:¥{{counterPrice}} 6 | 现价:¥{{retailPrice}} 7 | 8 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/goodList/goodList.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "good": "../good/good" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/components/icon/index.js: -------------------------------------------------------------------------------- 1 | Component({ 2 | externalClasses: ['custom-class'], 3 | 4 | properties: { 5 | info: null, 6 | name: String, 7 | size: String, 8 | color: String 9 | }, 10 | 11 | methods: { 12 | onClick() { 13 | this.triggerEvent('click'); 14 | } 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/icon/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/icon/index.wxml: -------------------------------------------------------------------------------- 1 | 6 | {{ info }} 7 | 8 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/notice-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/components/notify/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/components/notify/index.wxml: -------------------------------------------------------------------------------- 1 | 5 | {{ text }} 6 | 7 | -------------------------------------------------------------------------------- /litemall/renard-wx/components/sharePop/sharePop.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /litemall/renard-wx/images/Cool-love-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Cool-love-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Cool-love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Cool-love.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Coupons-icon-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Coupons-icon-f.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Coupons-icon-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Coupons-icon-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Edit-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Edit-icon.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Hot-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Hot-cart.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Hot-love-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Hot-love-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Hot-love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Hot-love.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/Plaus-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/Plaus-icon.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/about-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/about-icon.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/confirm.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/goods-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/goods-chat.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/goods-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/goods-share.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/my-icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/my-icon-1.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/my-icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/my-icon-2.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/my-icon-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/my-icon-3.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/my-icon-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/my-icon-4.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/right-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/right-icon.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/cart-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/cart-f.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/cart-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/cart-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/like-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/like-f.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/like-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/like-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/menu-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/menu-f.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/menu-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/menu-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/user-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/user-f.png -------------------------------------------------------------------------------- /litemall/renard-wx/images/tabbar/user-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/images/tabbar/user-o.png -------------------------------------------------------------------------------- /litemall/renard-wx/pages/auth/login/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "登录" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/auth/login/login.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /litemall/renard-wx/pages/brand/brand.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "品牌商直供" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/brandDetail/brandDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "品牌商详情", 3 | "usingComponents": { 4 | "goodList": "/components/goodList/goodList" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/cart/cart.json: -------------------------------------------------------------------------------- 1 | { 2 | "backgroundColor": "#f4f4f4", 3 | "navigationBarTitleText": "购物车" 4 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/catalog/catalog.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "分类" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/category/category.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": { 3 | "goodList": "/components/goodList/goodList" 4 | } 5 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/commentPost/commentPost.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "评价" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/goods/goods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "商品详情", 3 | "usingComponents": { 4 | "sharePop": "/components/sharePop/sharePop", 5 | "goodList": "/components/goodList/goodList", 6 | "van-notify": "/components/notify/index" 7 | } 8 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/groupon/grouponDetail/grouponDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "团购详情", 3 | "usingComponents": { 4 | "sharePop": "/components/sharePop/sharePop" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/groupon/grouponList/grouponList.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "团购专区", 3 | "usingComponents": { 4 | "zan-capsule": "/components/capsule/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/groupon/myGroupon/myGroupon.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的团购", 3 | "usingComponents": { 4 | "zan-capsule": "/components/capsule/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/hotGoods/hotGoods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "人气推荐" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "首页", 3 | "usingComponents": { 4 | "zan-capsule": "/components/capsule/index", 5 | "goodList": "/components/goodList/goodList", 6 | "van-notice-bar": "/components/notice-bar/index" 7 | } 8 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/newGoods/newGoods.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "新品首发", 3 | "usingComponents": { 4 | "goodList": "/components/goodList/goodList" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/payResult/payResult.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "付款结果", 3 | "navigationBarBackgroundColor": "#fafafa" 4 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/search/search.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "搜索", 3 | "usingComponents": { 4 | "goodList": "/components/goodList/goodList" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/shopping/checkout/checkout.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "填写订单" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/topic/topic.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "专题" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/topicDetail/topicDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "专题详情", 3 | "enablePullDownRefresh": false 4 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/address/address.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "地址管理" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/addressAdd/addressAdd.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "编辑地址" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/coupon/coupon.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "优惠券" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "backgroundColor": "#f4f4f4", 3 | "navigationBarTitleText": "个人中心", 4 | "enablePullDownRefresh": false 5 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/order/order.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "我的订单", 3 | "usingComponents": { 4 | "zan-capsule": "/components/capsule/index" 5 | } 6 | } -------------------------------------------------------------------------------- /litemall/renard-wx/pages/ucenter/orderDetail/orderDetail.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "订单详情" 3 | } -------------------------------------------------------------------------------- /litemall/renard-wx/sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/address-bg-bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/address-bg-bd.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/address_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/address_right.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/checkbox.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/clear_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/clear_input.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/del-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/del-address.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/detail_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/detail_back.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/detail_kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/detail_kefu.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/edit-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/edit-address.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/go.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_choice_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_choice_nor.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_choice_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_choice_pressed.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_me_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_me_nor.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_me_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_me_pressed.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_shoping_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_shoping_nor.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_shoping_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_shoping_pressed.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_sort_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_sort_nor.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_sort_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_sort_pressed.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_topic_nor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_topic_nor.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/ic_menu_topic_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/ic_menu_topic_pressed.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/icon_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/icon_close.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/icon_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/icon_collect.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/icon_collect_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/icon_collect_checked.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/icon_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/icon_error.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/icon_go_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/icon_go_more.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/selnum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/selnum.png -------------------------------------------------------------------------------- /litemall/renard-wx/static/images/wxpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tlhhup/litemall-dw/1d413a92be6096e30055c2517e7de5f95435f291/litemall/renard-wx/static/images/wxpay.png -------------------------------------------------------------------------------- /litemall/renard-wx/utils/check.js: -------------------------------------------------------------------------------- 1 | function isValidPhone(str) { 2 | var myreg = /^[1][3,4,5,7,8][0-9]{9}$/; 3 | if (!myreg.test(str)) { 4 | return false; 5 | } else { 6 | return true; 7 | } 8 | } 9 | 10 | module.exports = { 11 | isValidPhone 12 | } -------------------------------------------------------------------------------- /spark-commons/src/main/resources/mongo.conf: -------------------------------------------------------------------------------- 1 | mongo.url = "mongodb://"${mongo.host}":"${mongo.port} 2 | 3 | # \u914D\u7F6E\u4FE1\u606F 4 | mongo.host = storage 5 | mongo.port = 27017 6 | mongo.db = litemall -------------------------------------------------------------------------------- /spark-commons/src/main/resources/redis.properties: -------------------------------------------------------------------------------- 1 | redis.maxIdle=30 2 | redis.minIdle=10 3 | redis.maxTotal=100 4 | redis.host=storage 5 | redis.port=6379 -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/java/org/tlh/profile/dto/ApproveModelDto.java: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-03-27 9 | */ 10 | @Data 11 | public class ApproveModelDto { 12 | 13 | private long tagId; 14 | private long modelId; 15 | private int state; 16 | private String remake; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/java/org/tlh/profile/dto/DeleteTagDto.java: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-03-25 9 | */ 10 | @Data 11 | public class DeleteTagDto { 12 | 13 | private long id; 14 | private int level; 15 | private Long pId; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/java/org/tlh/profile/dto/MergeTagDetailDto.java: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-04-02 9 | */ 10 | @Data 11 | public class MergeTagDetailDto { 12 | 13 | private long tagId; 14 | private int condition; 15 | private String name; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/java/org/tlh/profile/entity/solr/FacetEntity.java: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.entity.solr; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author 离歌笑 7 | * @desc 8 | * @date 2021-07-03 9 | */ 10 | @Data 11 | public class FacetEntity { 12 | 13 | private Long id; 14 | private long count; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/java/org/tlh/profile/vo/MergeTagListVo.java: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.vo; 2 | 3 | import lombok.Data; 4 | import org.tlh.profile.dto.MergeTagDto; 5 | 6 | /** 7 | * @author 离歌笑 8 | * @desc 9 | * @date 2021-04-02 10 | */ 11 | @Data 12 | public class MergeTagListVo extends MergeTagDto { 13 | 14 | private long id; 15 | private String remark; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/db/migration/mysql/V1.2__alter_tb_model.sql: -------------------------------------------------------------------------------- 1 | alter table tb_tag_model add column oozie_task_id varchar(200) comment 'oozie调度任务ID'; -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/db/migration/mysql/V1.3__alter_tb_metadata.sql: -------------------------------------------------------------------------------- 1 | alter table tb_tag_metadata 2 | add column row_key varchar(100) comment 'hBase 的rowkey' AFTER hbase_table, 3 | add column hbase_namespace varchar(100) comment 'hBase 表的 namespace' AFTER zk_hosts; -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/db/migration/mysql/V1.4__alter_tb_metadata.sql: -------------------------------------------------------------------------------- 1 | alter table tb_tag_metadata 2 | add column zk_port int comment 'zookeeper主机端口号' AFTER zk_hosts; -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/db/migration/mysql/V1.5__alter_tb_basic_tag.sql: -------------------------------------------------------------------------------- 1 | alter table tb_basic_tag 2 | add column hbase_fields varchar(100) comment '冗余字段,对应hbase中的列名'; -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/mapper/TbMergeTagDetailMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /user-profile/profile-admin-api/src/main/resources/oozie/coordinator/spark/coordinator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | ${wf_app_path} 7 | 8 | 9 | -------------------------------------------------------------------------------- /user-profile/spark-hbase/src/main/resources/META-INF/services/org.apache.spark.sql.sources.DataSourceRegister: -------------------------------------------------------------------------------- 1 | org.tlh.spark.sql.hbase.DefaultSource -------------------------------------------------------------------------------- /user-profile/spark-hbase/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/resources/core-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | fs.defaultFS 5 | hdfs://cdh-master:8020 6 | 7 | -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/resources/hdfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | dfs.client.use.datanode.hostname 5 | true 6 | 7 | -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p --- [%50t] %-80c(line:%5L) : %m%n -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/resources/spark.conf: -------------------------------------------------------------------------------- 1 | spark.master = "local[*]" -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/scala/org/tlh/profile/enums/MLType.scala: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.enums 2 | 3 | /** 4 | * @author 离歌笑 5 | * @desc 6 | * @date 2021-04-28 7 | */ 8 | object MLType extends Enumeration { 9 | 10 | type MLType = Value 11 | 12 | val RFM, RFE, PSM, USG, BP = Value 13 | 14 | } 15 | -------------------------------------------------------------------------------- /user-profile/tags-model/src/main/scala/org/tlh/profile/enums/MetaDataTypeEnum.scala: -------------------------------------------------------------------------------- 1 | package org.tlh.profile.enums 2 | 3 | /** 4 | * @author 离歌笑 5 | * @desc 6 | * @date 2021-04-09 7 | */ 8 | object MetaDataTypeEnum extends Enumeration { 9 | 10 | type MetaDataTypeEnum = Value 11 | 12 | val RDBMS, HDFS, HBASE, HIVE = Value 13 | 14 | } 15 | --------------------------------------------------------------------------------