├── .gitignore ├── LICENSE ├── README.md ├── admin ├── .eslintrc.cjs ├── .gitignore ├── .vscode │ ├── extensions.json │ └── settings.json ├── README.md ├── global.d.ts ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── scripts │ └── build.mjs ├── src │ ├── App.vue │ ├── api │ │ ├── ai │ │ │ ├── aiconfig.ts │ │ │ ├── artcode.ts │ │ │ └── artcodemodel.ts │ │ ├── app.ts │ │ ├── app │ │ │ └── recharge.ts │ │ ├── article.ts │ │ ├── channel │ │ │ ├── h5.ts │ │ │ ├── weapp.ts │ │ │ ├── wx_oa.ts │ │ │ └── wx_op.ts │ │ ├── consumer.ts │ │ ├── decoration.ts │ │ ├── file.ts │ │ ├── finance.ts │ │ ├── message.ts │ │ ├── org │ │ │ ├── department.ts │ │ │ └── post.ts │ │ ├── perms │ │ │ ├── admin.ts │ │ │ ├── menu.ts │ │ │ └── role.ts │ │ ├── setting │ │ │ ├── dict.ts │ │ │ ├── pay.ts │ │ │ ├── search.ts │ │ │ ├── storage.ts │ │ │ ├── system.ts │ │ │ ├── user.ts │ │ │ └── website.ts │ │ ├── tools │ │ │ └── code.ts │ │ ├── user.ts │ │ └── user │ │ │ ├── chargrecord.ts │ │ │ ├── order.ts │ │ │ ├── points.ts │ │ │ └── userecord.ts │ ├── assets │ │ ├── icons │ │ │ ├── Androidfanhui.svg │ │ │ ├── KMSguanli.svg │ │ │ ├── KTVyuding.svg │ │ │ ├── a-tixingdengpao.svg │ │ │ ├── anquan.svg │ │ │ ├── anquan_mian.svg │ │ │ ├── anquan_mian1.svg │ │ │ ├── banxing_mian.svg │ │ │ ├── baoxian.svg │ │ │ ├── bendishenghuodaxue.svg │ │ │ ├── bianji.svg │ │ │ ├── biaoqing.svg │ │ │ ├── bukejian.svg │ │ │ ├── caipinguanli.svg │ │ │ ├── caiwu.svg │ │ │ ├── caiwu_jifen.svg │ │ │ ├── caiwu_tixian.svg │ │ │ ├── canyinfuwu.svg │ │ │ ├── carryout.svg │ │ │ ├── chexiao.svg │ │ │ ├── chihuohongbao.svg │ │ │ ├── chuangyiwuliao.svg │ │ │ ├── close.svg │ │ │ ├── daiyunying.svg │ │ │ ├── danwei.svg │ │ │ ├── danxuankuang.svg │ │ │ ├── danxuanxuanzhong.svg │ │ │ ├── dayin.svg │ │ │ ├── dayin_mian.svg │ │ │ ├── del.svg │ │ │ ├── diancanshezhi.svg │ │ │ ├── dianhua.svg │ │ │ ├── dianhua_mian.svg │ │ │ ├── dianpu_fengge.svg │ │ │ ├── dianputuijian.svg │ │ │ ├── dianzifapiao.svg │ │ │ ├── dingcan.svg │ │ │ ├── dingdan.svg │ │ │ ├── dingdan1.svg │ │ │ ├── dingdan_mian.svg │ │ │ ├── dingwei.svg │ │ │ ├── dingwei_mian.svg │ │ │ ├── ditu.svg │ │ │ ├── ditu_mian.svg │ │ │ ├── duizhang.svg │ │ │ ├── elemo.svg │ │ │ ├── ezhanggui.svg │ │ │ ├── falvfuwubaoxiaohei.svg │ │ │ ├── fengniaopaotui.svg │ │ │ ├── fenxiang.svg │ │ │ ├── fukuan.svg │ │ │ ├── fukuan_mian.svg │ │ │ ├── fullscreen-exit.svg │ │ │ ├── fullscreen.svg │ │ │ ├── fuwushichang.svg │ │ │ ├── fuzhi.svg │ │ │ ├── gaode.svg │ │ │ ├── gengduo.svg │ │ │ ├── gengduoandroid.svg │ │ │ ├── gift.svg │ │ │ ├── gongyingshang.svg │ │ │ ├── goods.svg │ │ │ ├── gou.svg │ │ │ ├── gouwuche.svg │ │ │ ├── gouxuan.svg │ │ │ ├── gouxuan_mian.svg │ │ │ ├── guanbi.svg │ │ │ ├── guanli.svg │ │ │ ├── guanli_mian.svg │ │ │ ├── gukefapiao.svg │ │ │ ├── haibaosheji.svg │ │ │ ├── heshoujilu.svg │ │ │ ├── heshoujilu1.svg │ │ │ ├── hexiao_order.svg │ │ │ ├── hide-2.svg │ │ │ ├── hide.svg │ │ │ ├── hongbao.svg │ │ │ ├── huiche.svg │ │ │ ├── huiyuanyingxiao.svg │ │ │ ├── huodongbaoming.svg │ │ │ ├── huodongguanli.svg │ │ │ ├── huodongzhongxin.svg │ │ │ ├── huojian.svg │ │ │ ├── huojian_mian.svg │ │ │ ├── huolala.svg │ │ │ ├── iOSfanhui.svg │ │ │ ├── jia.svg │ │ │ ├── jia_mian.svg │ │ │ ├── jian.svg │ │ │ ├── jian_mian.svg │ │ │ ├── jianpan.svg │ │ │ ├── jianpanshanchu.svg │ │ │ ├── jianshao.svg │ │ │ ├── jiaopeiwangputong.svg │ │ │ ├── jiaoyi.svg │ │ │ ├── jiedan.svg │ │ │ ├── jiekuan.svg │ │ │ ├── jingshi.svg │ │ │ ├── jingshi_mian.svg │ │ │ ├── jingshi_mian1.svg │ │ │ ├── jingyin.svg │ │ │ ├── jingyin_mian.svg │ │ │ ├── jingying.svg │ │ │ ├── jingying_mian.svg │ │ │ ├── jingyinggonglve.svg │ │ │ ├── jingzhunyingxiao.svg │ │ │ ├── jinhuo.svg │ │ │ ├── kaitongwaimai.svg │ │ │ ├── kanjia.svg │ │ │ ├── kefu.svg │ │ │ ├── kejian.svg │ │ │ ├── kejian_mian.svg │ │ │ ├── keziyuyue.svg │ │ │ ├── kezizhongxin.svg │ │ │ ├── koubei.svg │ │ │ ├── kuaijiehuifu.svg │ │ │ ├── ladu_mian.svg │ │ │ ├── lanyadingwei.svg │ │ │ ├── list-2.svg │ │ │ ├── mendiandongtai.svg │ │ │ ├── mishiyuding.svg │ │ │ ├── mishiyuding1.svg │ │ │ ├── notice_buyer.svg │ │ │ ├── open.svg │ │ │ ├── paiduiquhao.svg │ │ │ ├── paimai.svg │ │ │ ├── pingjia.svg │ │ │ ├── pingtaifapiao.svg │ │ │ ├── pinpai.svg │ │ │ ├── qianbao.svg │ │ │ ├── qianbao_mian.svg │ │ │ ├── qiehuan.svg │ │ │ ├── qingchu.svg │ │ │ ├── qingchu_mian.svg │ │ │ ├── qishoupeisong.svg │ │ │ ├── qiyedingcan.svg │ │ │ ├── qiyedingcan1.svg │ │ │ ├── quanbu.svg │ │ │ ├── quanping.svg │ │ │ ├── qudao.svg │ │ │ ├── qudao_xiaochengxu.svg │ │ │ ├── rencaizhaopin.svg │ │ │ ├── rili.svg │ │ │ ├── rili2.svg │ │ │ ├── rizhi.svg │ │ │ ├── saoma.svg │ │ │ ├── set_pay.svg │ │ │ ├── set_peisong.svg │ │ │ ├── set_user.svg │ │ │ ├── set_weihu.svg │ │ │ ├── shanchu.svg │ │ │ ├── shanchu_mian.svg │ │ │ ├── shangchuan.svg │ │ │ ├── shangchuanzhaopian.svg │ │ │ ├── shangpinguanli.svg │ │ │ ├── shangpinzhushou.svg │ │ │ ├── shangpuyuding.svg │ │ │ ├── shebeiguanli.svg │ │ │ ├── shengfuwangputong.svg │ │ │ ├── shengyin.svg │ │ │ ├── shengyin_mian.svg │ │ │ ├── shezhi.svg │ │ │ ├── shezhi_mian.svg │ │ │ ├── shichang.svg │ │ │ ├── shichang_mian.svg │ │ │ ├── shijian.svg │ │ │ ├── shijian_mian.svg │ │ │ ├── shoudan.svg │ │ │ ├── shouqi.svg │ │ │ ├── shouqi_mian.svg │ │ │ ├── shouye.svg │ │ │ ├── shouye_mian.svg │ │ │ ├── shouyiren.svg │ │ │ ├── show.svg │ │ │ ├── shuangjiantouxiangyou.svg │ │ │ ├── shuangjiantouxiangzuo.svg │ │ │ ├── shuaxin.svg │ │ │ ├── shuju.svg │ │ │ ├── shuju2.svg │ │ │ ├── shuju_liuliang.svg │ │ │ ├── shuju_mian.svg │ │ │ ├── sort.svg │ │ │ ├── sousuo.svg │ │ │ ├── sucai.svg │ │ │ ├── tianjia.svg │ │ │ ├── tishi.svg │ │ │ ├── tishi_mian.svg │ │ │ ├── tongxunlu_mian.svg │ │ │ ├── tongzhi.svg │ │ │ ├── tongzhi_mian.svg │ │ │ ├── tuichuquanping.svg │ │ │ ├── tuiguang.svg │ │ │ ├── tuiguang_mian.svg │ │ │ ├── tupian.svg │ │ │ ├── tupian_mian.svg │ │ │ ├── user_biaoqian.svg │ │ │ ├── user_gaikuang.svg │ │ │ ├── user_guanli.svg │ │ │ ├── wangpudiandan.svg │ │ │ ├── weixin.svg │ │ │ ├── weixin_mian.svg │ │ │ ├── wode.svg │ │ │ ├── wode_mian.svg │ │ │ ├── xiangji.svg │ │ │ ├── xiaoxi.svg │ │ │ ├── xiazai.svg │ │ │ ├── xitongquanxian.svg │ │ │ ├── yingxiao_qipao.svg │ │ │ ├── yingyezizhi.svg │ │ │ ├── yinhangka.svg │ │ │ ├── yiwen.svg │ │ │ ├── youhui.svg │ │ │ ├── youjian.svg │ │ │ ├── youjiantou.svg │ │ │ ├── yulibao.svg │ │ │ ├── yuyin.svg │ │ │ ├── yuyueguanli.svg │ │ │ ├── yuyueguanlishezhi.svg │ │ │ ├── zhankai.svg │ │ │ ├── zhankai_mian.svg │ │ │ ├── zhibo.svg │ │ │ ├── zhibo_mian.svg │ │ │ ├── zhuangxiu.svg │ │ │ ├── zhuangxiu_mian.svg │ │ │ ├── zhuoweiguanli.svg │ │ │ ├── zichanzhuanrang.svg │ │ │ ├── zuliao.svg │ │ │ └── zuliaoyuding.svg │ │ └── images │ │ │ ├── icon_folder.png │ │ │ ├── no_perms.png │ │ │ ├── theme_black.png │ │ │ └── theme_white.png │ ├── components │ │ ├── app-link │ │ │ └── index.vue │ │ ├── color-picker │ │ │ └── index.vue │ │ ├── daterange-picker │ │ │ └── index.vue │ │ ├── del-wrap │ │ │ └── index.vue │ │ ├── dict-value │ │ │ └── index.vue │ │ ├── editor │ │ │ └── index.vue │ │ ├── footer-btns │ │ │ └── index.vue │ │ ├── icon │ │ │ ├── index.ts │ │ │ ├── index.vue │ │ │ ├── picker.vue │ │ │ └── svg-icon.vue │ │ ├── image-contain │ │ │ └── index.vue │ │ ├── link │ │ │ ├── custom-link.vue │ │ │ ├── index.ts │ │ │ ├── index.vue │ │ │ ├── picker.vue │ │ │ └── shop-pages.vue │ │ ├── material │ │ │ ├── file.vue │ │ │ ├── hook.ts │ │ │ ├── index.vue │ │ │ ├── picker.vue │ │ │ └── preview.vue │ │ ├── overflow-tooltip │ │ │ └── index.vue │ │ ├── pagination │ │ │ └── index.vue │ │ ├── popover-input │ │ │ └── index.vue │ │ ├── popup │ │ │ └── index.vue │ │ ├── upload │ │ │ └── index.vue │ │ └── video-player │ │ │ └── index.vue │ ├── config │ │ ├── index.ts │ │ └── setting.ts │ ├── enums │ │ ├── appEnums.ts │ │ ├── cacheEnums.ts │ │ ├── pageEnum.ts │ │ └── requestEnums.ts │ ├── hooks │ │ ├── useDictOptions.ts │ │ ├── useLockFn.ts │ │ ├── useMultipleTabs.ts │ │ ├── usePaging.ts │ │ └── useWatchRoute.ts │ ├── install │ │ ├── directives │ │ │ ├── copy.ts │ │ │ └── perms.ts │ │ ├── index.ts │ │ └── plugins │ │ │ ├── echart.ts │ │ │ ├── element.ts │ │ │ ├── hljs.ts │ │ │ ├── pinia.ts │ │ │ └── router.ts │ ├── layout │ │ ├── components │ │ │ └── footer.vue │ │ └── default │ │ │ ├── components │ │ │ ├── header │ │ │ │ ├── breadcrumb.vue │ │ │ │ ├── fold.vue │ │ │ │ ├── full-screen.vue │ │ │ │ ├── index.vue │ │ │ │ ├── multiple-tabs.vue │ │ │ │ ├── refresh.vue │ │ │ │ └── user-drop-down.vue │ │ │ ├── main.vue │ │ │ ├── setting │ │ │ │ ├── drawer.vue │ │ │ │ └── index.vue │ │ │ └── sidebar │ │ │ │ ├── index.vue │ │ │ │ ├── logo.vue │ │ │ │ ├── menu-item.vue │ │ │ │ ├── menu.vue │ │ │ │ └── side.vue │ │ │ └── index.vue │ ├── main.ts │ ├── permission.ts │ ├── router │ │ ├── index.ts │ │ └── routes.ts │ ├── stores │ │ ├── index.ts │ │ └── modules │ │ │ ├── app.ts │ │ │ ├── multipleTabs.ts │ │ │ ├── setting.ts │ │ │ └── user.ts │ ├── styles │ │ ├── dark.css │ │ ├── element.scss │ │ ├── index.scss │ │ ├── public.scss │ │ ├── tailwind.css │ │ └── var.css │ ├── utils │ │ ├── auth.ts │ │ ├── cache.ts │ │ ├── env.ts │ │ ├── feedback.ts │ │ ├── file.ts │ │ ├── request │ │ │ ├── axios.ts │ │ │ ├── cancel.ts │ │ │ ├── index.ts │ │ │ └── type.d.ts │ │ ├── theme.ts │ │ ├── util.ts │ │ ├── validate.ts │ │ └── wxLogin.ts │ └── views │ │ ├── account │ │ ├── images │ │ │ └── login_bg.png │ │ └── login.vue │ │ ├── ai │ │ ├── aiconfig │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── artcode │ │ │ ├── artqr │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ │ └── model │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── app │ │ └── recharge │ │ │ └── index.vue │ │ ├── article │ │ ├── column │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── lists │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── channel │ │ ├── h5.vue │ │ ├── weapp.vue │ │ ├── wx_oa │ │ │ ├── config.vue │ │ │ ├── menu.vue │ │ │ ├── menu_com │ │ │ │ ├── oa-attr.vue │ │ │ │ ├── oa-menu-form-edit.vue │ │ │ │ ├── oa-menu-form.vue │ │ │ │ ├── oa-phone.vue │ │ │ │ └── useMenuOa.ts │ │ │ └── reply │ │ │ │ ├── default_reply.vue │ │ │ │ ├── edit.vue │ │ │ │ ├── follow_reply.vue │ │ │ │ └── keyword_reply.vue │ │ └── wx_op.vue │ │ ├── consumer │ │ ├── components │ │ │ └── account-adjust.vue │ │ └── lists │ │ │ ├── detail.vue │ │ │ └── index.vue │ │ ├── decoration │ │ ├── component │ │ │ ├── add-nav.vue │ │ │ ├── decoration-img.vue │ │ │ ├── pages │ │ │ │ ├── attr-setting.vue │ │ │ │ ├── menu.vue │ │ │ │ ├── preview-pc.vue │ │ │ │ └── preview.vue │ │ │ └── widgets │ │ │ │ ├── banner │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── customer-service │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── index.ts │ │ │ │ ├── my-service │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── nav │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── news │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── search │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ ├── user-banner │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ │ │ └── user-info │ │ │ │ ├── attr.vue │ │ │ │ ├── content.vue │ │ │ │ ├── images │ │ │ │ ├── default_avatar.png │ │ │ │ └── my_topbg.png │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ ├── image │ │ │ └── pc_index.png │ │ ├── pages │ │ │ └── index.vue │ │ ├── pc.vue │ │ └── tabbar.vue │ │ ├── dev_tools │ │ ├── code │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── components │ │ │ ├── code-preview.vue │ │ │ └── data-table.vue │ │ ├── error │ │ ├── 403.vue │ │ ├── 404.vue │ │ └── components │ │ │ └── error.vue │ │ ├── finance │ │ ├── balance_details.vue │ │ ├── component │ │ │ └── refund-log.vue │ │ ├── recharge_record.vue │ │ └── refund_record.vue │ │ ├── material │ │ └── index.vue │ │ ├── message │ │ ├── notice │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── short_letter │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── organization │ │ ├── department │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── post │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── permission │ │ ├── admin │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── menu │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── role │ │ │ ├── auth.vue │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── setting │ │ ├── dict │ │ │ ├── data │ │ │ │ ├── edit.vue │ │ │ │ └── index.vue │ │ │ └── type │ │ │ │ ├── edit.vue │ │ │ │ └── index.vue │ │ ├── pay │ │ │ ├── config │ │ │ │ ├── edit.vue │ │ │ │ └── index.vue │ │ │ └── method │ │ │ │ └── index.vue │ │ ├── search │ │ │ └── index.vue │ │ ├── storage │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── system │ │ │ ├── cache.vue │ │ │ ├── environment.vue │ │ │ ├── journal.vue │ │ │ ├── login_log.vue │ │ │ └── scheduled_task │ │ │ │ ├── edit.vue │ │ │ │ └── index.vue │ │ ├── user │ │ │ ├── login_register.vue │ │ │ └── setup.vue │ │ └── website │ │ │ ├── filing.vue │ │ │ ├── information.vue │ │ │ └── protocol.vue │ │ ├── template │ │ └── component │ │ │ ├── file.vue │ │ │ ├── icon.vue │ │ │ ├── link.vue │ │ │ ├── overflow.vue │ │ │ ├── popover_input.vue │ │ │ ├── rich_text.vue │ │ │ └── upload.vue │ │ ├── user │ │ ├── chargrecord │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── order │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── points │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── setting.vue │ │ └── userecord │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── workbench │ │ ├── image │ │ ├── menu_admin.png │ │ ├── menu_auth.png │ │ ├── menu_dept.png │ │ ├── menu_dict.png │ │ ├── menu_file.png │ │ ├── menu_generator.png │ │ ├── menu_role.png │ │ ├── menu_web.png │ │ ├── oa_code.png │ │ └── service_code.png │ │ └── index.vue ├── tailwind.config.js ├── tsconfig.config.json ├── tsconfig.json ├── typings │ ├── index.d.ts │ └── router.d.ts ├── vite.config.ts └── yarn.lock ├── docker ├── .gitignore └── config │ └── mysql │ └── mysqld.cnf ├── image ├── 001.png ├── 002.png ├── 003.png ├── 004.png ├── 005.png ├── 006.png ├── 007.png ├── 009.png ├── 010.png ├── 1.png ├── 10.png ├── 11.png ├── 111.png ├── 12.png ├── 13.png ├── 14.png ├── 15.png ├── 2.png ├── 222.png ├── 3.PNG ├── 333.png ├── 4.PNG ├── 444.png ├── 5.png ├── 555.png ├── 6.png ├── 666.png ├── 7.png ├── 777.png ├── 8.png ├── 888.png ├── 9.png └── xmgcode88-02.png ├── pc ├── .env ├── .env.development ├── .env.production ├── .eslintrc.cjs ├── .gitignore ├── README.md ├── api │ ├── account.ts │ ├── ai.ts │ ├── app.ts │ ├── hot.ts │ ├── news.ts │ ├── shop.ts │ └── user.ts ├── app.vue ├── assets │ ├── images │ │ ├── empty_news.png │ │ ├── icon │ │ │ └── icon_wx.png │ │ ├── mj │ │ │ ├── mj-niji.png │ │ │ ├── mj-v4.jpg │ │ │ ├── mj-v5.1.jpg │ │ │ ├── mj-v5.2.png │ │ │ ├── mj-v5.jpg │ │ │ ├── mj-v6.png │ │ │ ├── nj1.jpg │ │ │ ├── nj2.jpg │ │ │ ├── nj3.jpg │ │ │ ├── nj4.jpg │ │ │ ├── rate_16_9.png │ │ │ ├── rate_1_1.png │ │ │ ├── rate_1_2.png │ │ │ ├── rate_2_1.png │ │ │ ├── rate_3_4.png │ │ │ ├── rate_4_3.png │ │ │ └── rate_9_16.png │ │ ├── model.png │ │ ├── placeholder.png │ │ ├── result.png │ │ ├── xmgcode88.png │ │ └── yangli.png │ └── styles │ │ ├── custom-scroll.css │ │ ├── element.scss │ │ ├── iconfont │ │ ├── iconfont.css │ │ ├── iconfont.js │ │ ├── iconfont.json │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ │ ├── image-mj.css │ │ ├── images-wall.css │ │ ├── index.scss │ │ ├── public.scss │ │ └── var.css ├── components │ ├── cropper-upload │ │ └── index.vue │ ├── icon │ │ ├── index.vue │ │ └── svg-icon.vue │ ├── information │ │ ├── card.vue │ │ └── items.vue │ ├── popover-input │ │ └── index.vue │ ├── verification-code │ │ └── index.vue │ └── waterfall │ │ └── index.vue ├── composables │ ├── useLockFn.ts │ └── useMenu.ts ├── constants │ └── menu.ts ├── ecosystem.config.js ├── enums │ ├── appEnums.ts │ ├── cacheEnums.ts │ ├── pageEnum.ts │ └── requestEnums.ts ├── global.d.ts ├── layouts │ ├── blank.vue │ ├── components │ │ ├── account │ │ │ ├── bind-mobile.vue │ │ │ ├── forgot-pwd.vue │ │ │ ├── index.vue │ │ │ ├── login.vue │ │ │ ├── login_back.vue │ │ │ ├── register.vue │ │ │ ├── to-login.vue │ │ │ └── useAccount.ts │ │ ├── footer │ │ │ └── index.vue │ │ ├── header │ │ │ ├── admin.vue │ │ │ ├── hotdata.vue │ │ │ ├── index.vue │ │ │ ├── information.vue │ │ │ ├── logo.vue │ │ │ ├── mobile.vue │ │ │ ├── navbar.vue │ │ │ ├── search.vue │ │ │ └── user.vue │ │ ├── leftright │ │ │ └── index.vue │ │ ├── main │ │ │ └── index.vue │ │ ├── menu │ │ │ ├── index.vue │ │ │ └── menu-item.vue │ │ └── wangedit │ │ │ └── wangedit.vue │ └── default.vue ├── middleware │ ├── route.global.ts │ └── wxlogin.global.ts ├── nuxt.config.ts ├── nuxt │ └── env.ts ├── package-lock.json ├── package.json ├── pages │ ├── about │ │ └── index.vue │ ├── account │ │ └── security.vue │ ├── ai │ │ ├── gpt │ │ │ └── dalle.vue │ │ └── mj │ │ │ ├── aiswap.vue │ │ │ └── imagemj.vue │ ├── artcode │ │ ├── history │ │ │ └── index.vue │ │ └── index.vue │ ├── consult │ │ └── index.vue │ ├── index.vue │ ├── information │ │ ├── [source] │ │ │ └── index.vue │ │ ├── detail │ │ │ └── [id].vue │ │ └── index.vue │ ├── member │ │ └── index.vue │ ├── policy │ │ └── [type].vue │ └── user │ │ ├── collection.vue │ │ ├── consumred.vue │ │ ├── info.vue │ │ └── points.vue ├── plugins │ ├── element-plus.ts │ ├── fetch.ts │ ├── icons.ts │ ├── v3-waterfall.ts │ └── vue-waterfall-plugin.client.ts ├── public │ └── robots.txt ├── scripts │ └── build.mjs ├── static │ └── image │ │ ├── pc_favicon.ico │ │ └── pc_logo.png ├── stores │ ├── app.ts │ └── user.ts ├── tailwind.config.js ├── tsconfig.json ├── typings │ ├── fetch.d.ts │ ├── modules.d.ts │ └── router.d.ts ├── utils │ ├── env.ts │ ├── feedback.ts │ ├── http │ │ ├── index.ts │ │ └── request.ts │ ├── util.ts │ ├── validate.ts │ └── waterfall │ │ ├── data.js │ │ └── utils.js └── yarn.lock ├── public ├── admin │ ├── assets │ │ ├── @ctrl.82a509e0.js │ │ ├── @element-plus.196c7323.js │ │ ├── @floating-ui.dd8b295f.js │ │ ├── @highlightjs.2cdc8407.js │ │ ├── @vue.e8706010.js │ │ ├── @vueuse.fc17487b.js │ │ ├── @wangeditor.4f35b623.css │ │ ├── @wangeditor.d48d1b87.js │ │ ├── async-validator.fb49d0f5.js │ │ ├── attr.752f55fa.js │ │ ├── attr.95cc7310.js │ │ ├── attr.e16a4f7e.js │ │ ├── attr.vue_vue_type_script_setup_true_lang.775b5e18.js │ │ ├── attr.vue_vue_type_script_setup_true_lang.bc88ba14.js │ │ ├── attr.vue_vue_type_script_setup_true_lang.d0ae40ff.js │ │ ├── axios.06925f6c.js │ │ ├── balanced-match.d2a36341.js │ │ ├── cache.e0b12ca0.css │ │ ├── clipboard.76245de3.js │ │ ├── clone.5619a585.js │ │ ├── color-convert.755d189f.js │ │ ├── color-name.e7a4e1d3.js │ │ ├── color-string.e356f5de.js │ │ ├── color.6da4a849.js │ │ ├── content.0b4d2f25.css │ │ ├── content.3c393d61.css │ │ ├── content.4695f43d.css │ │ ├── content.4bb46171.css │ │ ├── content.4d8784cd.css │ │ ├── css-color-function.7abf4e2f.js │ │ ├── dayjs.3764c6e3.js │ │ ├── debug.ae36b0a9.js │ │ ├── decoration-img.e03f874f.css │ │ ├── default_avatar.fa19527b.png │ │ ├── echarts.234b3572.js │ │ ├── element-plus.867f7792.css │ │ ├── element-plus.9e4db7f4.js │ │ ├── error.1aaeb02c.css │ │ ├── escape-html.e5dfadb9.js │ │ ├── highlight.5f5db245.css │ │ ├── highlight.js.4ebdf9a4.js │ │ ├── index.01c45ba6.css │ │ ├── index.0d25a475.css │ │ ├── index.4ef4ca84.css │ │ ├── index.884eedb3.css │ │ ├── index.8d99c3e6.css │ │ ├── index.b540c16b.css │ │ ├── index.bb3c88e6.css │ │ ├── index.e22a84c9.css │ │ ├── index.eb14270f.css │ │ ├── index.vue_vue_type_script_setup_true_lang.08afbb86.js │ │ ├── index.vue_vue_type_script_setup_true_lang.828a88d6.js │ │ ├── index.vue_vue_type_script_setup_true_lang.bf966a50.js │ │ ├── lodash-es.29c53eac.js │ │ ├── lodash-unified.d120b703.js │ │ ├── lodash.3ab71cea.js │ │ ├── login.732452a5.css │ │ ├── login_bg.2f630cea.png │ │ ├── memoize-one.5eaee740.js │ │ ├── menu.c64cbd13.css │ │ ├── menu_role.4823a023.png │ │ ├── ms.a9ae1d6d.js │ │ ├── my_topbg.137a6c56.png │ │ ├── no_perms.a56e95a5.png │ │ ├── normalize-wheel-es.8aeb3683.js │ │ ├── nprogress.1bd59592.js │ │ ├── nprogress.a2a0c377.css │ │ ├── oa-phone.775e30e3.css │ │ ├── oa_code.3084d316.png │ │ ├── pc.fb45f680.css │ │ ├── pc_index.4913b73d.png │ │ ├── picker.c39738e6.css │ │ ├── picker.d164339d.css │ │ ├── pinia.dfca86b4.js │ │ ├── popover_input.88deb438.js │ │ ├── preview-pc.658c5668.css │ │ ├── preview.705e23a4.css │ │ ├── resize-detector.4e96b72b.js │ │ ├── service_code.2a6ca2f5.png │ │ ├── sortablejs.838531f1.js │ │ ├── tabbar.b24245a3.css │ │ ├── tslib.60310f1a.js │ │ ├── usePaging.c4d9405a.js │ │ ├── vue-clipboard3.4b33564b.js │ │ ├── vue-demi.ebc8116b.js │ │ ├── vue-echarts.1b5f7c6f.js │ │ ├── vue-router.12d45bc3.js │ │ ├── vue.452dc980.js │ │ ├── vue3-video-play.4851e3ad.js │ │ ├── vue3-video-play.c9f7fe01.css │ │ ├── vuedraggable.8e550993.js │ │ └── zrender.8ee1a698.js │ └── index.html ├── index.html ├── mobile │ ├── assets │ │ ├── as_us.a2f8b82c.css │ │ ├── bind_mobile.d6fec8d5.css │ │ ├── change_password.a7a587c2.css │ │ ├── collection.c4157529.css │ │ ├── emitter.5b880544.js │ │ ├── forget_pwd.4dcdda84.css │ │ ├── icon_visit.9ad00ab7.js │ │ ├── icon_wx.a848c744.png │ │ ├── index.28d89b6b.js │ │ ├── index.4df2ba90.css │ │ ├── index.ffcb57f7.css │ │ ├── login.4d41b1b0.css │ │ ├── my_topbg.e2ef645f.png │ │ ├── news-card.7e0a6d3c.js │ │ ├── news-card.9d2e9b2e.css │ │ ├── news.2a891860.js │ │ ├── news.cf577e19.css │ │ ├── news_detail.3a6411e3.css │ │ ├── packages-pages-recharge-recharge.10b74052.js │ │ ├── packages-pages-recharge_record-recharge_record.23b9bd0a.js │ │ ├── packages-pages-user_wallet-user_wallet.dd991f41.js │ │ ├── pages-agreement-agreement.8f0336eb.js │ │ ├── pages-as_us-as_us.8b18af63.js │ │ ├── pages-bind_mobile-bind_mobile.3cb6a079.js │ │ ├── pages-change_password-change_password.3b965b01.js │ │ ├── pages-collection-collection.0cc7a9f7.js │ │ ├── pages-customer_service-customer_service.0e2978c5.js │ │ ├── pages-empty-empty.ea4d445d.js │ │ ├── pages-forget_pwd-forget_pwd.cade6601.js │ │ ├── pages-index-index.75f750cc.js │ │ ├── pages-login-login.0de8202c.js │ │ ├── pages-news-news.919b1732.js │ │ ├── pages-news_detail-news_detail.5bdac89e.js │ │ ├── pages-payment_result-payment_result.dcd74b8a.js │ │ ├── pages-register-register.ff549c3d.js │ │ ├── pages-search-search.c57b5789.js │ │ ├── pages-user-user.f54023db.js │ │ ├── pages-user_data-user_data.add67d98.js │ │ ├── pages-user_set-user_set.d3eb3332.js │ │ ├── pages-webview-webview.f86b5d57.js │ │ ├── pay.58f44799.css │ │ ├── pay.bfa574a6.js │ │ ├── payment_result.4b7a68e2.css │ │ ├── plugin-vue_export-helper.21dcd24c.js │ │ ├── recharge.ce883c99.js │ │ ├── recharge.f77e36a4.css │ │ ├── register.4507cc80.css │ │ ├── search.c7afcc50.css │ │ ├── shop.f075f092.js │ │ ├── tabbar.00967d70.js │ │ ├── tabbar.0ded8ef7.css │ │ ├── u-avatar-cropper.91a54bb1.css │ │ ├── u-avatar.4f6d8a8b.js │ │ ├── u-avatar.dfe1b6cb.css │ │ ├── u-badge.313e5461.js │ │ ├── u-badge.e5ec9c3e.css │ │ ├── u-button.322cee95.js │ │ ├── u-button.48af928a.css │ │ ├── u-checkbox.787b773d.js │ │ ├── u-checkbox.c93b1db2.css │ │ ├── u-form-item.c7eecfd1.js │ │ ├── u-form-item.e55e5c90.css │ │ ├── u-form.4bbd92fa.js │ │ ├── u-icon.81bcc25e.css │ │ ├── u-icon.be7b466a.js │ │ ├── u-image.37b37f6b.js │ │ ├── u-image.a7813cd9.css │ │ ├── u-parse.93f983af.css │ │ ├── u-parse.d3a00f41.js │ │ ├── u-popup.02696d97.js │ │ ├── u-popup.3b64afbe.css │ │ ├── u-search.022012cd.js │ │ ├── u-search.35cfd0ff.css │ │ ├── u-verification-code.9b4aba97.js │ │ ├── u-verification-code.e967c1e9.css │ │ ├── uni.830f39b2.css │ │ ├── uni_modules-vk-uview-ui-components-u-avatar-cropper-u-avatar-cropper.f8320afd.js │ │ ├── useLockFn.9942a0a1.js │ │ ├── user.bfaffbd1.css │ │ ├── user_data.fbd6c979.css │ │ ├── user_set.3bc68286.css │ │ ├── user_wallet.65835499.css │ │ ├── util.7e7bd150.js │ │ ├── z-paging.7a94f2f9.css │ │ └── z-paging.c35b85e2.js │ ├── index.html │ ├── packages │ │ └── static │ │ │ └── images │ │ │ └── recharge_success.png │ └── static │ │ └── images │ │ ├── icon │ │ ├── icon_code.png │ │ ├── icon_mobile.png │ │ ├── icon_password.png │ │ ├── icon_user.png │ │ ├── icon_visit.png │ │ └── icon_wx.png │ │ ├── payment │ │ ├── icon_succeed.png │ │ └── icon_waiting.png │ │ ├── tabs │ │ ├── home.png │ │ ├── home_s.png │ │ ├── news.png │ │ ├── news_s.png │ │ ├── user.png │ │ └── user_s.png │ │ └── user │ │ ├── default_avatar.png │ │ └── my_topbg.png ├── pc │ ├── 200.html │ ├── 404.html │ ├── _nuxt │ │ ├── _plugin-vue_export-helper.a1a6add7.js │ │ ├── aiswap.acca740c.css │ │ ├── consumred.60278b2b.css │ │ ├── default.adaf44da.css │ │ ├── empty_news.35f4c0a6.png │ │ ├── empty_news.eefe82f5.js │ │ ├── entry.9c36544c.css │ │ ├── error-404.18ced855.css │ │ ├── error-500.e60962de.css │ │ ├── icon_wx.7943fed9.png │ │ ├── iconfont.6889fc8c.woff2 │ │ ├── iconfont.69fb8cbd.woff │ │ ├── iconfont.95981ae5.ttf │ │ ├── image-mj.c33caab9.css │ │ ├── index.370a8fa9.css │ │ ├── index.5846caca.css │ │ ├── index.8c120c5b.css │ │ ├── index.fafbf1b0.css │ │ ├── info.87e46673.css │ │ ├── news.8419498b.js │ │ ├── placeholder.1ccc50b9.png │ │ ├── points.83304249.css │ │ ├── security.55b8188b.css │ │ ├── shop.d1b2f4ce.js │ │ ├── yangli.443b9b25.png │ │ └── yangli.576cdc19.js │ ├── index.html │ └── robots.txt └── uploads │ └── index.html ├── server ├── .gitignore ├── DirectoryV2.xml ├── like-admin │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── mdd │ │ │ └── admin │ │ │ ├── LikeAdminApplication.java │ │ │ ├── LikeAdminInterceptor.java │ │ │ ├── LikeAdminThreadLocal.java │ │ │ ├── aop │ │ │ ├── Log.java │ │ │ └── aspect │ │ │ │ ├── LogAspect.java │ │ │ │ └── RequestType.java │ │ │ ├── cache │ │ │ └── CaptchaCache.java │ │ │ ├── config │ │ │ ├── KaptChaConfig.java │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── SwaggerConfig.java │ │ │ ├── WebMvcConfig.java │ │ │ ├── quartz │ │ │ │ ├── CronUtils.java │ │ │ │ ├── InvokeUtils.java │ │ │ │ ├── QuartzUtils.java │ │ │ │ ├── TaskConstants.java │ │ │ │ └── exceution │ │ │ │ │ ├── AbstractQuartzJob.java │ │ │ │ │ ├── QuartzDisExecution.java │ │ │ │ │ └── QuartzJobExecution.java │ │ │ └── stp │ │ │ │ ├── StpInException.java │ │ │ │ └── StpInterConfig.java │ │ │ ├── controller │ │ │ ├── AlbumsController.java │ │ │ ├── ArtCateController.java │ │ │ ├── ArticleController.java │ │ │ ├── CrontabController.java │ │ │ ├── IndexController.java │ │ │ ├── UploadController.java │ │ │ ├── UserController.java │ │ │ ├── ai │ │ │ │ ├── AiArtcodeController.java │ │ │ │ ├── AiArtcodeModelController.java │ │ │ │ ├── AiConfigController.java │ │ │ │ └── AiTaskController.java │ │ │ ├── channel │ │ │ │ ├── ChannelH5Controller.java │ │ │ │ ├── ChannelMpController.java │ │ │ │ ├── ChannelOaCallBackController.java │ │ │ │ ├── ChannelOaController.java │ │ │ │ ├── ChannelOaMenuController.java │ │ │ │ ├── ChannelOaReplyDefaultController.java │ │ │ │ ├── ChannelOaReplyFollowController.java │ │ │ │ ├── ChannelOaReplyKeywordController.java │ │ │ │ └── ChannelOpController.java │ │ │ ├── decorate │ │ │ │ ├── DecorateDataController.java │ │ │ │ ├── DecoratePagesController.java │ │ │ │ └── DecorateTabbarController.java │ │ │ ├── finance │ │ │ │ ├── FinanceRechargerController.java │ │ │ │ ├── FinanceRefundController.java │ │ │ │ └── FinanceWalletController.java │ │ │ ├── marketing │ │ │ │ └── MarketingRechargeController.java │ │ │ ├── monitor │ │ │ │ ├── MonitorCacheController.java │ │ │ │ └── MonitorServerController.java │ │ │ ├── setting │ │ │ │ ├── SettingCopyrightController.java │ │ │ │ ├── SettingDictDataController.java │ │ │ │ ├── SettingDictTypeController.java │ │ │ │ ├── SettingLoginController.java │ │ │ │ ├── SettingNoticeController.java │ │ │ │ ├── SettingPaymentController.java │ │ │ │ ├── SettingProtocolController.java │ │ │ │ ├── SettingSearchController.java │ │ │ │ ├── SettingSmsController.java │ │ │ │ ├── SettingStorageController.java │ │ │ │ ├── SettingUserController.java │ │ │ │ └── SettingWebsiteController.java │ │ │ ├── system │ │ │ │ ├── SystemAuthAdminController.java │ │ │ │ ├── SystemAuthDeptController.java │ │ │ │ ├── SystemAuthMenuController.java │ │ │ │ ├── SystemAuthPostController.java │ │ │ │ ├── SystemAuthRoleController.java │ │ │ │ ├── SystemCacheController.java │ │ │ │ ├── SystemLoginController.java │ │ │ │ └── SystemLogsController.java │ │ │ └── user │ │ │ │ ├── UserPointsChargrecordController.java │ │ │ │ ├── UserPointsController.java │ │ │ │ ├── UserPointsOrderController.java │ │ │ │ └── UserPointsUserecordController.java │ │ │ ├── crontab │ │ │ ├── AiMjImgTaskJob.java │ │ │ ├── AiSwapTaskJob.java │ │ │ ├── AiTaskJob.java │ │ │ └── TaskScheduler.java │ │ │ ├── service │ │ │ ├── IAiArtcodeModelService.java │ │ │ ├── IAiArtcodeService.java │ │ │ ├── IAiConfigService.java │ │ │ ├── IAiMidjourneyService.java │ │ │ ├── IAiTaskService.java │ │ │ ├── IAlbumsService.java │ │ │ ├── IArtCateService.java │ │ │ ├── IArticleService.java │ │ │ ├── IChannelH5ConfigService.java │ │ │ ├── IChannelMpConfigService.java │ │ │ ├── IChannelOaCallBackService.java │ │ │ ├── IChannelOaConfigService.java │ │ │ ├── IChannelOaMenusService.java │ │ │ ├── IChannelOaReplyDefaultService.java │ │ │ ├── IChannelOaReplyFollowService.java │ │ │ ├── IChannelOaReplyKeywordService.java │ │ │ ├── IChannelOpService.java │ │ │ ├── ICrontabService.java │ │ │ ├── IDecorateDataService.java │ │ │ ├── IDecoratePageService.java │ │ │ ├── IDecorateTabbarService.java │ │ │ ├── IFinanceRechargerService.java │ │ │ ├── IFinanceRefundService.java │ │ │ ├── IFinanceWalletService.java │ │ │ ├── IIndexService.java │ │ │ ├── IMarketingRechargeService.java │ │ │ ├── ISettingCopyrightService.java │ │ │ ├── ISettingDictDataService.java │ │ │ ├── ISettingDictTypeService.java │ │ │ ├── ISettingLoginService.java │ │ │ ├── ISettingNoticeService.java │ │ │ ├── ISettingPaymentService.java │ │ │ ├── ISettingProtocolService.java │ │ │ ├── ISettingSearchService.java │ │ │ ├── ISettingSmsService.java │ │ │ ├── ISettingStorageService.java │ │ │ ├── ISettingUserService.java │ │ │ ├── ISettingWebsiteService.java │ │ │ ├── ISystemAuthAdminService.java │ │ │ ├── ISystemAuthDeptService.java │ │ │ ├── ISystemAuthMenuService.java │ │ │ ├── ISystemAuthPermService.java │ │ │ ├── ISystemAuthPostService.java │ │ │ ├── ISystemAuthRoleService.java │ │ │ ├── ISystemCacheService.java │ │ │ ├── ISystemLoginService.java │ │ │ ├── ISystemLogsServer.java │ │ │ ├── IUserPointsChargrecordService.java │ │ │ ├── IUserPointsOrderService.java │ │ │ ├── IUserPointsService.java │ │ │ ├── IUserPointsUserecordService.java │ │ │ ├── IUserService.java │ │ │ └── impl │ │ │ │ ├── AiArtcodeModelServiceImpl.java │ │ │ │ ├── AiArtcodeServiceImpl.java │ │ │ │ ├── AiConfigServiceImpl.java │ │ │ │ ├── AiTaskServiceImpl.java │ │ │ │ ├── AlbumsServiceImpl.java │ │ │ │ ├── ArtCateServiceImpl.java │ │ │ │ ├── ArticleServiceImpl.java │ │ │ │ ├── ChannelH5ConfigServiceImpl.java │ │ │ │ ├── ChannelMpConfigServiceImpl.java │ │ │ │ ├── ChannelOaCallBackServiceImpl.java │ │ │ │ ├── ChannelOaConfigServiceImpl.java │ │ │ │ ├── ChannelOaMenusServiceImpl.java │ │ │ │ ├── ChannelOaReplyDefaultServiceImpl.java │ │ │ │ ├── ChannelOaReplyFollowServiceImpl.java │ │ │ │ ├── ChannelOaReplyKeywordServiceImpl.java │ │ │ │ ├── ChannelOpServiceImpl.java │ │ │ │ ├── CrontabServiceImpl.java │ │ │ │ ├── DecorateDataServiceImpl.java │ │ │ │ ├── DecoratePageServiceImpl.java │ │ │ │ ├── DecorateTabbarServiceImpl.java │ │ │ │ ├── FinanceRechargerServiceImpl.java │ │ │ │ ├── FinanceRefundServiceImpl.java │ │ │ │ ├── FinanceWalletServiceImpl.java │ │ │ │ ├── IAiMidjourneyServiceImpl.java │ │ │ │ ├── IndexServiceImpl.java │ │ │ │ ├── MarketingRechargeServiceImpl.java │ │ │ │ ├── SettingCopyrightServiceImpl.java │ │ │ │ ├── SettingDictDataServiceImpl.java │ │ │ │ ├── SettingDictTypeServiceImpl.java │ │ │ │ ├── SettingLoginServiceImpl.java │ │ │ │ ├── SettingNoticeServiceImpl.java │ │ │ │ ├── SettingPaymentServiceImpl.java │ │ │ │ ├── SettingProtocolServiceImpl.java │ │ │ │ ├── SettingSearchServiceImpl.java │ │ │ │ ├── SettingSmsServiceImpl.java │ │ │ │ ├── SettingStorageServiceImpl.java │ │ │ │ ├── SettingUserServiceImpl.java │ │ │ │ ├── SettingWebsiteServiceImpl.java │ │ │ │ ├── SystemAuthAdminServiceImpl.java │ │ │ │ ├── SystemAuthDeptServiceImpl.java │ │ │ │ ├── SystemAuthMenuServiceImpl.java │ │ │ │ ├── SystemAuthPermServiceImpl.java │ │ │ │ ├── SystemAuthPostServiceImpl.java │ │ │ │ ├── SystemAuthRoleServiceImpl.java │ │ │ │ ├── SystemCacheServiceImpl.java │ │ │ │ ├── SystemLoginServiceImpl.java │ │ │ │ ├── SystemLogsServerImpl.java │ │ │ │ ├── UserPointsChargrecordServiceImpl.java │ │ │ │ ├── UserPointsOrderServiceImpl.java │ │ │ │ ├── UserPointsServiceImpl.java │ │ │ │ ├── UserPointsUserecordServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ ├── validate │ │ │ ├── ai │ │ │ │ ├── aiconfig │ │ │ │ │ ├── AiConfigCreateValidate.java │ │ │ │ │ ├── AiConfigSearchValidate.java │ │ │ │ │ └── AiConfigUpdateValidate.java │ │ │ │ ├── artcode │ │ │ │ │ ├── AiArtcodeCreateValidate.java │ │ │ │ │ ├── AiArtcodeSearchValidate.java │ │ │ │ │ ├── AiArtcodeUpdateValidate.java │ │ │ │ │ └── AiQrModelCreateValidate.java │ │ │ │ ├── mj │ │ │ │ │ ├── AiMjCreateValidate.java │ │ │ │ │ └── AiMjFaceSwapValidate.java │ │ │ │ ├── model │ │ │ │ │ ├── AiArtcodeModelCreateValidate.java │ │ │ │ │ ├── AiArtcodeModelSearchValidate.java │ │ │ │ │ └── AiArtcodeModelUpdateValidate.java │ │ │ │ └── task │ │ │ │ │ ├── AiTaskCreateValidate.java │ │ │ │ │ ├── AiTaskSearchValidate.java │ │ │ │ │ └── AiTaskUpdateValidate.java │ │ │ ├── album │ │ │ │ ├── AlbumCateValidate.java │ │ │ │ ├── AlbumMoveValidate.java │ │ │ │ ├── AlbumRenameValidate.java │ │ │ │ └── AlbumSearchValidate.java │ │ │ ├── article │ │ │ │ ├── ArtCateCreateValidate.java │ │ │ │ ├── ArtCateSearchValidate.java │ │ │ │ ├── ArtCateUpdateValidate.java │ │ │ │ ├── ArticleCreateValidate.java │ │ │ │ ├── ArticleSearchValidate.java │ │ │ │ └── ArticleUpdateValidate.java │ │ │ ├── channel │ │ │ │ ├── ChannelH5Validate.java │ │ │ │ ├── ChannelMpValidate.java │ │ │ │ ├── ChannelOaValidate.java │ │ │ │ ├── ChannelOpValidate.java │ │ │ │ ├── ChannelRpDefaultValidate.java │ │ │ │ ├── ChannelRpFollowsValidate.java │ │ │ │ └── ChannelRpKeywordValidate.java │ │ │ ├── commons │ │ │ │ ├── IdValidate.java │ │ │ │ ├── IdsValidate.java │ │ │ │ └── PageValidate.java │ │ │ ├── crontab │ │ │ │ ├── CrontabCreateValidate.java │ │ │ │ └── CrontabUpdateValidate.java │ │ │ ├── decorate │ │ │ │ ├── DecoratePageValidate.java │ │ │ │ └── DecorateTabsValidate.java │ │ │ ├── finance │ │ │ │ ├── FinanceRechargeSearchValidate.java │ │ │ │ ├── FinanceRefundSearchValidate.java │ │ │ │ └── FinanceWalletSearchValidate.java │ │ │ ├── marketing │ │ │ │ └── MarketingRechargeValidate.java │ │ │ ├── setting │ │ │ │ ├── DictDataCreateValidate.java │ │ │ │ ├── DictDataUpdateValidate.java │ │ │ │ ├── DictTypeCreateValidate.java │ │ │ │ ├── DictTypeUpdateValidate.java │ │ │ │ ├── SettingCopyrightValidate.java │ │ │ │ ├── SettingLoginValidate.java │ │ │ │ ├── SettingPayConfigValidate.java │ │ │ │ ├── SettingPayMethodValidate.java │ │ │ │ ├── SettingProtocolValidate.java │ │ │ │ ├── SettingSearchValidate.java │ │ │ │ ├── SettingUserValidate.java │ │ │ │ └── SettingWebsiteValidate.java │ │ │ ├── system │ │ │ │ ├── SystemAdminCreateValidate.java │ │ │ │ ├── SystemAdminLoginsValidate.java │ │ │ │ ├── SystemAdminSearchValidate.java │ │ │ │ ├── SystemAdminUpInfoValidate.java │ │ │ │ ├── SystemAdminUpdateValidate.java │ │ │ │ ├── SystemDeptCreateValidate.java │ │ │ │ ├── SystemDeptSearchValidate.java │ │ │ │ ├── SystemDeptUpdateValidate.java │ │ │ │ ├── SystemMenuCreateValidate.java │ │ │ │ ├── SystemMenuUpdateValidate.java │ │ │ │ ├── SystemPostCreateValidate.java │ │ │ │ ├── SystemPostSearchValidate.java │ │ │ │ ├── SystemPostUpdateValidate.java │ │ │ │ ├── SystemRoleCreateValidate.java │ │ │ │ ├── SystemRoleUpdateValidate.java │ │ │ │ ├── SystemSearchLoginsValidate.java │ │ │ │ └── SystemSearchOperateValidate.java │ │ │ └── user │ │ │ │ ├── UserPointsChargrecordCreateValidate.java │ │ │ │ ├── UserPointsChargrecordSearchValidate.java │ │ │ │ ├── UserPointsChargrecordUpdateValidate.java │ │ │ │ ├── UserPointsCreateValidate.java │ │ │ │ ├── UserPointsOrderCreateValidate.java │ │ │ │ ├── UserPointsOrderSearchValidate.java │ │ │ │ ├── UserPointsOrderUpdateValidate.java │ │ │ │ ├── UserPointsSearchValidate.java │ │ │ │ ├── UserPointsUpdateValidate.java │ │ │ │ ├── UserPointsUserecordCreateValidate.java │ │ │ │ ├── UserPointsUserecordSearchValidate.java │ │ │ │ ├── UserPointsUserecordUpdateValidate.java │ │ │ │ ├── UserSearchValidate.java │ │ │ │ ├── UserUpdateValidate.java │ │ │ │ └── UserWalletValidate.java │ │ │ └── vo │ │ │ ├── CrontabDetailVo.java │ │ │ ├── CrontabListedVo.java │ │ │ ├── ai │ │ │ ├── aiconfig │ │ │ │ ├── AiConfigDetailVo.java │ │ │ │ └── AiConfigListedVo.java │ │ │ ├── artcode │ │ │ │ ├── AiArtcodeDetailVo.java │ │ │ │ └── AiArtcodeListedVo.java │ │ │ ├── model │ │ │ │ ├── AiArtcodeModelDetailVo.java │ │ │ │ └── AiArtcodeModelListedVo.java │ │ │ └── task │ │ │ │ ├── AiTaskDetailVo.java │ │ │ │ └── AiTaskListedVo.java │ │ │ ├── album │ │ │ ├── AlbumCateVo.java │ │ │ └── AlbumVo.java │ │ │ ├── article │ │ │ ├── ArticleCateVo.java │ │ │ ├── ArticleDetailVo.java │ │ │ └── ArticleListedVo.java │ │ │ ├── channel │ │ │ ├── ChannelH5Vo.java │ │ │ ├── ChannelMpVo.java │ │ │ ├── ChannelOaVo.java │ │ │ ├── ChannelOpVo.java │ │ │ ├── ChannelRpDefaultVo.java │ │ │ ├── ChannelRpFollowsVo.java │ │ │ └── ChannelRpKeywordVo.java │ │ │ ├── decorate │ │ │ ├── DecorateDataArticleVo.java │ │ │ ├── DecoratePageVo.java │ │ │ ├── DecorateTabbarVo.java │ │ │ ├── DecorateTabsListsVo.java │ │ │ └── DecorateTabsStyleVo.java │ │ │ ├── finance │ │ │ ├── FinanceRechargeListVo.java │ │ │ ├── FinanceRefundListVo.java │ │ │ ├── FinanceRefundLogVo.java │ │ │ └── FinanceWalletListVo.java │ │ │ ├── marketing │ │ │ └── MarketingRechargeVo.java │ │ │ ├── setting │ │ │ ├── SettingCopyrightVo.java │ │ │ ├── SettingDictDataVo.java │ │ │ ├── SettingDictTypeVo.java │ │ │ ├── SettingLoginVo.java │ │ │ ├── SettingNoticeDetailVo.java │ │ │ ├── SettingNoticeListedVo.java │ │ │ ├── SettingPaymentDetailVo.java │ │ │ ├── SettingPaymentMethodVo.java │ │ │ ├── SettingProtocolDetailVo.java │ │ │ ├── SettingProtocolObjectVo.java │ │ │ ├── SettingSearchDetailVo.java │ │ │ ├── SettingSearchObjectVo.java │ │ │ ├── SettingUserVo.java │ │ │ └── SettingWebsiteVo.java │ │ │ ├── system │ │ │ ├── SystemAuthAdminDetailVo.java │ │ │ ├── SystemAuthAdminInformVo.java │ │ │ ├── SystemAuthAdminListedVo.java │ │ │ ├── SystemAuthAdminSelvesVo.java │ │ │ ├── SystemAuthDeptVo.java │ │ │ ├── SystemAuthMenuVo.java │ │ │ ├── SystemAuthPostVo.java │ │ │ ├── SystemAuthRoleVo.java │ │ │ ├── SystemCaptchaVo.java │ │ │ ├── SystemLogLoginVo.java │ │ │ ├── SystemLogOperateVo.java │ │ │ └── SystemLoginVo.java │ │ │ └── user │ │ │ ├── UserPointsChargrecordDetailVo.java │ │ │ ├── UserPointsChargrecordListedVo.java │ │ │ ├── UserPointsDetailVo.java │ │ │ ├── UserPointsListedVo.java │ │ │ ├── UserPointsOrderDetailVo.java │ │ │ ├── UserPointsOrderListedVo.java │ │ │ ├── UserPointsUserecordDetailVo.java │ │ │ ├── UserPointsUserecordListedVo.java │ │ │ └── UserVo.java │ │ └── resources │ │ ├── META-INF │ │ └── additional-spring-configuration-metadata.json │ │ ├── application-dev.yml │ │ ├── application-prod.yml │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── log4j2-spring.xml │ │ └── mapper │ │ └── hot163 │ │ └── Hot163Mapper.xml ├── like-common │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── mdd │ │ │ └── common │ │ │ ├── aop │ │ │ ├── NotLogin.java │ │ │ └── NotPower.java │ │ │ ├── cache │ │ │ └── ConfigCache.java │ │ │ ├── config │ │ │ ├── GlobalConfig.java │ │ │ ├── RedisConfig.java │ │ │ ├── ThreadPoolConfig.java │ │ │ └── wechat │ │ │ │ ├── WxMnpConfiguration.java │ │ │ │ └── WxPayConfiguration.java │ │ │ ├── core │ │ │ ├── AjaxResult.java │ │ │ ├── PageResult.java │ │ │ ├── ServerResult.java │ │ │ ├── Test.java │ │ │ └── basics │ │ │ │ └── IBaseMapper.java │ │ │ ├── entity │ │ │ ├── Crontab.java │ │ │ ├── OfficialReply.java │ │ │ ├── RechargeOrder.java │ │ │ ├── RefundLog.java │ │ │ ├── RefundRecord.java │ │ │ ├── ai │ │ │ │ ├── AiArtcode.java │ │ │ │ ├── AiArtcodeModel.java │ │ │ │ ├── AiConfig.java │ │ │ │ └── AiTask.java │ │ │ ├── album │ │ │ │ ├── Album.java │ │ │ │ └── AlbumCate.java │ │ │ ├── apif │ │ │ │ ├── DataApif.java │ │ │ │ ├── DataApifNorms.java │ │ │ │ ├── DataApifOrder.java │ │ │ │ ├── DataApifUser.java │ │ │ │ └── DataApifUserLog.java │ │ │ ├── article │ │ │ │ ├── Article.java │ │ │ │ ├── ArticleCategory.java │ │ │ │ └── ArticleCollect.java │ │ │ ├── decorate │ │ │ │ ├── DecoratePage.java │ │ │ │ └── DecorateTabbar.java │ │ │ ├── hot │ │ │ │ ├── DataClassify.java │ │ │ │ ├── DataContents.java │ │ │ │ ├── HotBatch.java │ │ │ │ ├── HotBilibili.java │ │ │ │ ├── HotDouyin.java │ │ │ │ ├── HotJuejin.java │ │ │ │ ├── HotPaper.java │ │ │ │ ├── HotQq.java │ │ │ │ ├── HotSougou.java │ │ │ │ ├── HotSspai.java │ │ │ │ ├── HotTencent.java │ │ │ │ ├── HotTieba.java │ │ │ │ ├── HotToutiao.java │ │ │ │ ├── HotWeibo.java │ │ │ │ ├── HotWxread.java │ │ │ │ ├── HotZhihu.java │ │ │ │ └── MkHot163.java │ │ │ ├── log │ │ │ │ └── LogMoney.java │ │ │ ├── notice │ │ │ │ ├── NoticeRecord.java │ │ │ │ └── NoticeSetting.java │ │ │ ├── server │ │ │ │ ├── Cpu.java │ │ │ │ ├── Disk.java │ │ │ │ ├── Jvm.java │ │ │ │ ├── Mem.java │ │ │ │ └── Sys.java │ │ │ ├── setting │ │ │ │ ├── DevPayConfig.java │ │ │ │ ├── DevPayWay.java │ │ │ │ ├── DictData.java │ │ │ │ ├── DictType.java │ │ │ │ └── HotSearch.java │ │ │ ├── system │ │ │ │ ├── SystemAuthAdmin.java │ │ │ │ ├── SystemAuthDept.java │ │ │ │ ├── SystemAuthMenu.java │ │ │ │ ├── SystemAuthPerm.java │ │ │ │ ├── SystemAuthPost.java │ │ │ │ ├── SystemAuthRole.java │ │ │ │ ├── SystemConfig.java │ │ │ │ ├── SystemLogLogin.java │ │ │ │ └── SystemLogOperate.java │ │ │ └── user │ │ │ │ ├── User.java │ │ │ │ ├── UserAuth.java │ │ │ │ ├── UserPoints.java │ │ │ │ ├── UserPointsChargrecord.java │ │ │ │ ├── UserPointsOrder.java │ │ │ │ └── UserPointsUserecord.java │ │ │ ├── enums │ │ │ ├── AiEnum.java │ │ │ ├── AlbumEnum.java │ │ │ ├── ClientEnum.java │ │ │ ├── ErrorEnum.java │ │ │ ├── HotApiEnum.java │ │ │ ├── LogMoneyEnum.java │ │ │ ├── NoticeEnum.java │ │ │ ├── PaymentEnum.java │ │ │ └── RefundEnum.java │ │ │ ├── exception │ │ │ ├── BaseException.java │ │ │ ├── GlobalException.java │ │ │ ├── LoginException.java │ │ │ ├── OperateException.java │ │ │ └── PaymentException.java │ │ │ ├── mapper │ │ │ ├── CrontabMapper.java │ │ │ ├── OfficialReplyMapper.java │ │ │ ├── RechargeOrderMapper.java │ │ │ ├── RefundLogMapper.java │ │ │ ├── RefundRecordMapper.java │ │ │ ├── ai │ │ │ │ ├── AiArtcodeMapper.java │ │ │ │ ├── AiArtcodeModelMapper.java │ │ │ │ ├── AiConfigMapper.java │ │ │ │ └── AiTaskMapper.java │ │ │ ├── album │ │ │ │ ├── AlbumCateMapper.java │ │ │ │ └── AlbumMapper.java │ │ │ ├── apif │ │ │ │ ├── DataApifMapper.java │ │ │ │ ├── DataApifNormsMapper.java │ │ │ │ ├── DataApifOrderMapper.java │ │ │ │ ├── DataApifUserLogMapper.java │ │ │ │ └── DataApifUserMapper.java │ │ │ ├── article │ │ │ │ ├── ArticleCategoryMapper.java │ │ │ │ ├── ArticleCollectMapper.java │ │ │ │ └── ArticleMapper.java │ │ │ ├── decorate │ │ │ │ ├── DecoratePageMapper.java │ │ │ │ └── DecorateTabbarMapper.java │ │ │ ├── hot │ │ │ │ ├── DataClassifyMapper.java │ │ │ │ ├── DataContentsMapper.java │ │ │ │ ├── HotBatchMapper.java │ │ │ │ ├── HotBilibiliMapper.java │ │ │ │ ├── HotDouyinMapper.java │ │ │ │ ├── HotJuejinMapper.java │ │ │ │ ├── HotPaperMapper.java │ │ │ │ ├── HotQqMapper.java │ │ │ │ ├── HotSougouMapper.java │ │ │ │ ├── HotSspaiMapper.java │ │ │ │ ├── HotTencentMapper.java │ │ │ │ ├── HotTiebaMapper.java │ │ │ │ ├── HotToutiaoMapper.java │ │ │ │ ├── HotWeiboMapper.java │ │ │ │ ├── HotWxreadMapper.java │ │ │ │ ├── HotZhihuMapper.java │ │ │ │ └── MkHot163Mapper.java │ │ │ ├── log │ │ │ │ └── LogMoneyMapper.java │ │ │ ├── notice │ │ │ │ ├── NoticeRecordMapper.java │ │ │ │ └── NoticeSettingMapper.java │ │ │ ├── setting │ │ │ │ ├── DevPayConfigMapper.java │ │ │ │ ├── DevPayWayMapper.java │ │ │ │ ├── DictDataMapper.java │ │ │ │ ├── DictTypeMapper.java │ │ │ │ └── HotSearchMapper.java │ │ │ ├── system │ │ │ │ ├── SystemAuthAdminMapper.java │ │ │ │ ├── SystemAuthDeptMapper.java │ │ │ │ ├── SystemAuthMenuMapper.java │ │ │ │ ├── SystemAuthPermMapper.java │ │ │ │ ├── SystemAuthPostMapper.java │ │ │ │ ├── SystemAuthRoleMapper.java │ │ │ │ ├── SystemConfigMapper.java │ │ │ │ ├── SystemLogLoginMapper.java │ │ │ │ └── SystemLogOperateMapper.java │ │ │ └── user │ │ │ │ ├── UserAuthMapper.java │ │ │ │ ├── UserMapper.java │ │ │ │ ├── UserPointsChargrecordMapper.java │ │ │ │ ├── UserPointsMapper.java │ │ │ │ ├── UserPointsOrderMapper.java │ │ │ │ └── UserPointsUserecordMapper.java │ │ │ ├── plugin │ │ │ ├── notice │ │ │ │ ├── NoticeCheck.java │ │ │ │ ├── NoticeDriver.java │ │ │ │ ├── engine │ │ │ │ │ ├── MpNoticeHandle.java │ │ │ │ │ ├── OaNoticeHandle.java │ │ │ │ │ └── SmsNoticeHandle.java │ │ │ │ ├── template │ │ │ │ │ └── SmsTemplate.java │ │ │ │ └── vo │ │ │ │ │ └── NoticeSmsVo.java │ │ │ ├── sms │ │ │ │ ├── SmsDriver.java │ │ │ │ └── engine │ │ │ │ │ ├── AliSms.java │ │ │ │ │ ├── HuaweiSms.java │ │ │ │ │ └── TencentSms.java │ │ │ ├── storage │ │ │ │ ├── StorageDriver.java │ │ │ │ ├── UploadFilesVo.java │ │ │ │ └── engine │ │ │ │ │ ├── AliyunStorage.java │ │ │ │ │ ├── LocalStorage.java │ │ │ │ │ ├── QcloudStorage.java │ │ │ │ │ └── QiniuStorage.java │ │ │ └── wechat │ │ │ │ ├── WxMnpDriver.java │ │ │ │ ├── WxPayDriver.java │ │ │ │ └── request │ │ │ │ ├── PaymentRequestV3.java │ │ │ │ └── RefundRequestV3.java │ │ │ ├── util │ │ │ ├── AmountUtil.java │ │ │ ├── ApiKeyPointUtils.java │ │ │ ├── ArithUtils.java │ │ │ ├── Base64Util.java │ │ │ ├── ConfigUtils.java │ │ │ ├── DateUtil.java │ │ │ ├── HttpClientMyUtil.java │ │ │ ├── HttpClientUtil.java │ │ │ ├── HttpUtils.java │ │ │ ├── IpUtils.java │ │ │ ├── ListUtils.java │ │ │ ├── MapUtils.java │ │ │ ├── RedisUtils.java │ │ │ ├── RequestUtils.java │ │ │ ├── SnowIdUtil.java │ │ │ ├── SpringUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── TimeUtils.java │ │ │ ├── ToolUtils.java │ │ │ ├── UrlUtils.java │ │ │ └── YmlUtils.java │ │ │ ├── validator │ │ │ ├── IDMustValidator.java │ │ │ ├── IntArrayEmptyValidator.java │ │ │ ├── IntegerContainsValidator.java │ │ │ ├── StringContainsValidator.java │ │ │ └── annotation │ │ │ │ ├── IDMust.java │ │ │ │ ├── IntArrayEmpty.java │ │ │ │ ├── IntegerContains.java │ │ │ │ └── StringContains.java │ │ │ └── vo │ │ │ ├── ai │ │ │ └── AiApiKeyVo.java │ │ │ ├── apif │ │ │ └── DataApifVo.java │ │ │ └── wechat │ │ │ ├── WechatWebLoginData.java │ │ │ └── WechatWebLoginResponse.java │ │ └── resources │ │ ├── mapper │ │ └── hot │ │ │ ├── ApifMapper.xml │ │ │ └── ContentsMapper.xml │ │ └── static │ │ ├── ad01.jpg │ │ ├── article01.png │ │ ├── article02.jpeg │ │ ├── article03.png │ │ ├── backend_avatar.png │ │ ├── backend_backdrop.png │ │ ├── backend_favicon.ico │ │ ├── backend_logo.png │ │ ├── balance_pay.png │ │ ├── banner01.png │ │ ├── banner02.png │ │ ├── default_avatar.png │ │ ├── nav01.png │ │ ├── nav02.png │ │ ├── nav03.png │ │ ├── nav04.png │ │ ├── nav05.png │ │ ├── pc_favicon.ico │ │ ├── pc_logo - 副本.png │ │ ├── pc_logo.png │ │ ├── shop_logo.png │ │ ├── tabbar_home.png │ │ ├── tabbar_home_sel.png │ │ ├── tabbar_me.png │ │ ├── tabbar_me_sel.png │ │ ├── tabbar_text.png │ │ ├── tabbar_text_sel.png │ │ ├── user_about.png │ │ ├── user_collect.png │ │ ├── user_kefu.png │ │ ├── user_money.png │ │ ├── user_setting.png │ │ └── wechat_pay.png ├── like-front │ ├── logs │ │ └── front │ │ │ └── error.log │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── mdd │ │ │ └── front │ │ │ ├── LikeFrontApplication.java │ │ │ ├── LikeFrontInterceptor.java │ │ │ ├── LikeFrontThreadLocal.java │ │ │ ├── cache │ │ │ └── ScanLoginCache.java │ │ │ ├── config │ │ │ ├── AiCachConfig.java │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── SwaggerConfig.java │ │ │ ├── WebMvcConfig.java │ │ │ └── stp │ │ │ │ └── StpInException.java │ │ │ ├── controller │ │ │ ├── AiArtController.java │ │ │ ├── AiMidjourneyController.java │ │ │ ├── ArticleController.java │ │ │ ├── IndexController.java │ │ │ ├── LoginController.java │ │ │ ├── LogsController.java │ │ │ ├── MyHttpUtils.java │ │ │ ├── PayController.java │ │ │ ├── PcController.java │ │ │ ├── RechargeController.java │ │ │ ├── TestController.java │ │ │ ├── UploadController.java │ │ │ ├── UserController.java │ │ │ └── WechatController.java │ │ │ ├── service │ │ │ ├── IAiArtService.java │ │ │ ├── IAiMidjourneyService.java │ │ │ ├── IArticleService.java │ │ │ ├── IIndexService.java │ │ │ ├── ILoginService.java │ │ │ ├── ILogsService.java │ │ │ ├── IPayService.java │ │ │ ├── IPcService.java │ │ │ ├── IRechargeService.java │ │ │ ├── IUserService.java │ │ │ ├── IWechatService.java │ │ │ └── impl │ │ │ │ ├── AiArtServiceImpl.java │ │ │ │ ├── ArticleServiceImpl.java │ │ │ │ ├── IAiMidjourneyServiceImpl.java │ │ │ │ ├── IndexServiceImpl.java │ │ │ │ ├── LoginServiceImpl.java │ │ │ │ ├── LogsServiceImpl.java │ │ │ │ ├── PayServiceImpl.java │ │ │ │ ├── PcServiceImpI.java │ │ │ │ ├── RechargeServiceImpl.java │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── WechatServiceImpl.java │ │ │ ├── validate │ │ │ ├── PaymentValidate.java │ │ │ ├── RechargeValidate.java │ │ │ ├── ai │ │ │ │ ├── artcode │ │ │ │ │ └── AiQrModelCreateValidate.java │ │ │ │ └── mj │ │ │ │ │ ├── AiDalle3CreateValidate.java │ │ │ │ │ ├── AiMjCreateValidate.java │ │ │ │ │ └── AiMjFaceSwapValidate.java │ │ │ ├── article │ │ │ │ ├── ArticleCollectValidate.java │ │ │ │ └── ArticleSearchValidate.java │ │ │ ├── common │ │ │ │ ├── PageValidate.java │ │ │ │ └── SmsValidate.java │ │ │ ├── login │ │ │ │ ├── LoginCodeValidate.java │ │ │ │ ├── LoginOnlyPhoneValidate.java │ │ │ │ ├── LoginPhoneValidate.java │ │ │ │ ├── LoginPwdValidate.java │ │ │ │ ├── LoginScanValidate.java │ │ │ │ └── RegisterValidate.java │ │ │ ├── pay │ │ │ │ ├── WeChatMyPayValidate.java │ │ │ │ ├── WeChatPayReturnValidate.java │ │ │ │ └── WeChatPayValidate.java │ │ │ └── users │ │ │ │ ├── NewUserUpdateValidate.java │ │ │ │ ├── UserBindWechatValidate.java │ │ │ │ ├── UserChangePwdValidate.java │ │ │ │ ├── UserForgetPwdValidate.java │ │ │ │ ├── UserPhoneBindValidate.java │ │ │ │ ├── UserPhoneMnpValidate.java │ │ │ │ └── UserUpdateValidate.java │ │ │ └── vo │ │ │ ├── RechargeConfigVo.java │ │ │ ├── RechargeRecordVo.java │ │ │ ├── ai │ │ │ ├── AiArtcodeOwnModelVo.java │ │ │ ├── AiArtcodeRecordVo.java │ │ │ ├── AiRecordListedVo.java │ │ │ ├── AiRecordSearchValidate.java │ │ │ ├── UserPointsChargrecordVo.java │ │ │ └── UserPointsRecordVo.java │ │ │ ├── article │ │ │ ├── ArticleCateVo.java │ │ │ ├── ArticleCollectVo.java │ │ │ ├── ArticleDetailVo.java │ │ │ ├── ArticleListedVo.java │ │ │ ├── PcArticleCenterVo.java │ │ │ └── PcArticleDetailVo.java │ │ │ ├── login │ │ │ ├── LoginTokenVo.java │ │ │ ├── LoginUrlsVo.java │ │ │ ├── WechatOauthInfo.java │ │ │ ├── WechatOauthInfoData.java │ │ │ └── WechatOauthInfoResponse.java │ │ │ ├── pay │ │ │ ├── PayCommonVo.java │ │ │ ├── PayStatusVo.java │ │ │ ├── PayWayInfoVo.java │ │ │ └── PayWayListVo.java │ │ │ └── user │ │ │ ├── UserCenterVo.java │ │ │ └── UserInfoVo.java │ │ └── resources │ │ ├── META-INF │ │ └── additional-spring-configuration-metadata.json │ │ ├── application-dev.yml │ │ ├── application-prod.yml │ │ ├── application.yml │ │ ├── banner.txt │ │ └── log4j2-spring.xml ├── like-generator │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── mdd │ │ │ └── generator │ │ │ ├── config │ │ │ └── GenConfig.java │ │ │ ├── constant │ │ │ ├── GenConstants.java │ │ │ ├── HtmlConstants.java │ │ │ ├── JavaConstants.java │ │ │ └── SqlConstants.java │ │ │ ├── controller │ │ │ └── GenController.java │ │ │ ├── entity │ │ │ ├── GenTable.java │ │ │ └── GenTableColumn.java │ │ │ ├── mapper │ │ │ ├── GenTableColumnMapper.java │ │ │ └── GenTableMapper.java │ │ │ ├── service │ │ │ ├── IGenerateService.java │ │ │ └── impl │ │ │ │ └── GenerateServiceImpl.java │ │ │ ├── util │ │ │ ├── GenUtil.java │ │ │ └── VelocityUtil.java │ │ │ ├── validate │ │ │ ├── GenParam.java │ │ │ └── PageParam.java │ │ │ └── vo │ │ │ ├── DbColumnVo.java │ │ │ ├── DbTableVo.java │ │ │ ├── GenColumnVo.java │ │ │ └── GenTableVo.java │ │ └── resources │ │ ├── java │ │ ├── controller.java.vm │ │ ├── entity.java.vm │ │ ├── mapper.java.vm │ │ ├── service.java.vm │ │ ├── serviceImpl.java.vm │ │ ├── validateCreate.java.vm │ │ ├── validateSearch.java.vm │ │ ├── validateUpdate.java.vm │ │ ├── voDetail.java.vm │ │ └── voListed.java.vm │ │ └── vue │ │ ├── api.ts.vm │ │ ├── edit.vue.vm │ │ ├── index-tree.vue.vm │ │ └── index.vue.vm └── pom.xml ├── sql └── xmgai-like.sql └── uniapp ├── .env.development.example ├── .env.production.example ├── .eslintrc.js ├── .gitignore ├── .vscode ├── extensions.json └── settings.json ├── index.html ├── package-lock.json ├── package.json ├── scripts └── build.h5.mjs ├── src ├── App.vue ├── api │ ├── account.ts │ ├── app.ts │ ├── news.ts │ ├── pay.ts │ ├── recharge.ts │ ├── shop.ts │ └── user.ts ├── components │ ├── app │ │ └── app.vue │ ├── avatar-upload │ │ └── avatar-upload.vue │ ├── mplogin-popup │ │ └── mplogin-popup.vue │ ├── news-card │ │ └── news-card.vue │ ├── page-status │ │ └── page-status.vue │ ├── payment │ │ └── payment.vue │ ├── price │ │ └── price.vue │ ├── tab │ │ └── tab.vue │ ├── tabbar │ │ └── tabbar.vue │ ├── tabs │ │ └── tabs.vue │ └── widgets │ │ ├── banner │ │ └── banner.vue │ │ ├── customer-service │ │ └── customer-service.vue │ │ ├── my-service │ │ └── my-service.vue │ │ ├── nav │ │ └── nav.vue │ │ ├── search │ │ └── search.vue │ │ ├── user-banner │ │ └── user-banner.vue │ │ └── user-info │ │ └── user-info.vue ├── enums │ ├── agreementEnums.ts │ ├── appEnums.ts │ ├── cacheEnums.ts │ └── requestEnums.ts ├── hooks │ ├── useCopy.ts │ ├── useLockFn.ts │ └── useTouch.ts ├── main.ts ├── manifest.json ├── packages │ ├── pages │ │ ├── recharge │ │ │ └── recharge.vue │ │ ├── recharge_record │ │ │ └── recharge_record.vue │ │ └── user_wallet │ │ │ └── user_wallet.vue │ └── static │ │ └── images │ │ └── recharge_success.png ├── pages.json ├── pages │ ├── agreement │ │ └── agreement.vue │ ├── as_us │ │ └── as_us.vue │ ├── bind_mobile │ │ └── bind_mobile.vue │ ├── change_password │ │ └── change_password.vue │ ├── collection │ │ └── collection.vue │ ├── customer_service │ │ └── customer_service.vue │ ├── empty │ │ └── empty.vue │ ├── forget_pwd │ │ └── forget_pwd.vue │ ├── index │ │ └── index.vue │ ├── login │ │ └── login.vue │ ├── news │ │ ├── component │ │ │ └── news-list.vue │ │ └── news.vue │ ├── news_detail │ │ └── news_detail.vue │ ├── payment_result │ │ └── payment_result.vue │ ├── register │ │ └── register.vue │ ├── search │ │ ├── component │ │ │ └── suggest.vue │ │ └── search.vue │ ├── user │ │ └── user.vue │ ├── user_data │ │ └── user_data.vue │ ├── user_set │ │ └── user_set.vue │ └── webview │ │ └── webview.vue ├── plugins │ ├── index.ts │ └── modules │ │ ├── pinia.ts │ │ ├── uview.ts │ │ └── vconsole.ts ├── router │ ├── index.ts │ └── routes.ts ├── static │ └── images │ │ ├── icon │ │ ├── icon_code.png │ │ ├── icon_mobile.png │ │ ├── icon_password.png │ │ ├── icon_user.png │ │ ├── icon_visit.png │ │ └── icon_wx.png │ │ ├── payment │ │ ├── icon_succeed.png │ │ └── icon_waiting.png │ │ ├── tabs │ │ ├── home.png │ │ ├── home_s.png │ │ ├── news.png │ │ ├── news_s.png │ │ ├── user.png │ │ └── user_s.png │ │ └── user │ │ ├── default_avatar.png │ │ └── my_topbg.png ├── stores │ ├── app.ts │ └── user.ts ├── styles │ ├── index.scss │ ├── public.scss │ ├── tailwind.css │ └── var.css ├── uni.scss ├── uni_modules │ └── vk-uview-ui │ │ ├── changelog.md │ │ ├── components │ │ ├── u-action-sheet │ │ │ └── u-action-sheet.vue │ │ ├── u-alert-tips │ │ │ └── u-alert-tips.vue │ │ ├── u-avatar-cropper │ │ │ ├── u-avatar-cropper.vue │ │ │ └── weCropper.js │ │ ├── u-avatar │ │ │ └── u-avatar.vue │ │ ├── u-back-top │ │ │ └── u-back-top.vue │ │ ├── u-badge │ │ │ └── u-badge.vue │ │ ├── u-button │ │ │ └── u-button.vue │ │ ├── u-calendar │ │ │ └── u-calendar.vue │ │ ├── u-car-keyboard │ │ │ └── u-car-keyboard.vue │ │ ├── u-card │ │ │ └── u-card.vue │ │ ├── u-cell-group │ │ │ └── u-cell-group.vue │ │ ├── u-cell-item │ │ │ └── u-cell-item.vue │ │ ├── u-checkbox-group │ │ │ └── u-checkbox-group.vue │ │ ├── u-checkbox │ │ │ └── u-checkbox.vue │ │ ├── u-circle-progress │ │ │ └── u-circle-progress.vue │ │ ├── u-col │ │ │ └── u-col.vue │ │ ├── u-collapse-item │ │ │ └── u-collapse-item.vue │ │ ├── u-collapse │ │ │ └── u-collapse.vue │ │ ├── u-column-notice │ │ │ └── u-column-notice.vue │ │ ├── u-count-down │ │ │ ├── u-count-down.vue │ │ │ └── utils.js │ │ ├── u-count-to │ │ │ └── u-count-to.vue │ │ ├── u-divider │ │ │ └── u-divider.vue │ │ ├── u-dropdown-item │ │ │ └── u-dropdown-item.vue │ │ ├── u-dropdown │ │ │ └── u-dropdown.vue │ │ ├── u-empty │ │ │ └── u-empty.vue │ │ ├── u-field │ │ │ └── u-field.vue │ │ ├── u-form-item │ │ │ └── u-form-item.vue │ │ ├── u-form │ │ │ └── u-form.vue │ │ ├── u-full-screen │ │ │ └── u-full-screen.vue │ │ ├── u-gap │ │ │ └── u-gap.vue │ │ ├── u-grid-item │ │ │ └── u-grid-item.vue │ │ ├── u-grid │ │ │ └── u-grid.vue │ │ ├── u-icon │ │ │ └── u-icon.vue │ │ ├── u-image │ │ │ └── u-image.vue │ │ ├── u-index-anchor │ │ │ └── u-index-anchor.vue │ │ ├── u-index-list │ │ │ └── u-index-list.vue │ │ ├── u-input │ │ │ └── u-input.vue │ │ ├── u-keyboard │ │ │ └── u-keyboard.vue │ │ ├── u-lazy-load │ │ │ └── u-lazy-load.vue │ │ ├── u-line-progress │ │ │ └── u-line-progress.vue │ │ ├── u-line │ │ │ └── u-line.vue │ │ ├── u-link │ │ │ └── u-link.vue │ │ ├── u-loading-page │ │ │ └── u-loading-page.vue │ │ ├── u-loading │ │ │ └── u-loading.vue │ │ ├── u-loadmore │ │ │ └── u-loadmore.vue │ │ ├── u-mask │ │ │ └── u-mask.vue │ │ ├── u-message-input │ │ │ └── u-message-input.vue │ │ ├── u-modal │ │ │ └── u-modal.vue │ │ ├── u-navbar │ │ │ └── u-navbar.vue │ │ ├── u-no-network │ │ │ └── u-no-network.vue │ │ ├── u-notice-bar │ │ │ └── u-notice-bar.vue │ │ ├── u-number-box │ │ │ └── u-number-box.vue │ │ ├── u-number-keyboard │ │ │ └── u-number-keyboard.vue │ │ ├── u-parse │ │ │ ├── libs │ │ │ │ ├── CssHandler.js │ │ │ │ ├── MpHtmlParser.js │ │ │ │ ├── config.js │ │ │ │ └── trees.vue │ │ │ └── u-parse.vue │ │ ├── u-picker │ │ │ └── u-picker.vue │ │ ├── u-popup │ │ │ └── u-popup.vue │ │ ├── u-radio-group │ │ │ └── u-radio-group.vue │ │ ├── u-radio │ │ │ └── u-radio.vue │ │ ├── u-rate │ │ │ └── u-rate.vue │ │ ├── u-read-more │ │ │ └── u-read-more.vue │ │ ├── u-row-notice │ │ │ └── u-row-notice.vue │ │ ├── u-row │ │ │ └── u-row.vue │ │ ├── u-search │ │ │ └── u-search.vue │ │ ├── u-section │ │ │ └── u-section.vue │ │ ├── u-select │ │ │ └── u-select.vue │ │ ├── u-skeleton │ │ │ └── u-skeleton.vue │ │ ├── u-slider │ │ │ └── u-slider.vue │ │ ├── u-steps │ │ │ └── u-steps.vue │ │ ├── u-sticky │ │ │ └── u-sticky.vue │ │ ├── u-subsection │ │ │ └── u-subsection.vue │ │ ├── u-swipe-action │ │ │ └── u-swipe-action.vue │ │ ├── u-swiper │ │ │ └── u-swiper.vue │ │ ├── u-switch │ │ │ └── u-switch.vue │ │ ├── u-tabbar │ │ │ └── u-tabbar.vue │ │ ├── u-table │ │ │ └── u-table.vue │ │ ├── u-tabs-swiper │ │ │ └── u-tabs-swiper.vue │ │ ├── u-tabs │ │ │ └── u-tabs.vue │ │ ├── u-tag │ │ │ └── u-tag.vue │ │ ├── u-td │ │ │ └── u-td.vue │ │ ├── u-th │ │ │ └── u-th.vue │ │ ├── u-time-line-item │ │ │ └── u-time-line-item.vue │ │ ├── u-time-line │ │ │ └── u-time-line.vue │ │ ├── u-toast │ │ │ └── u-toast.vue │ │ ├── u-top-tips │ │ │ └── u-top-tips.vue │ │ ├── u-tr │ │ │ └── u-tr.vue │ │ ├── u-upload │ │ │ └── u-upload.vue │ │ ├── u-verification-code │ │ │ └── u-verification-code.vue │ │ ├── u-waterfall │ │ │ └── u-waterfall.vue │ │ └── vk-uview-ui │ │ │ └── vk-uview-ui.vue │ │ ├── iconfont.css │ │ ├── index.js │ │ ├── index.scss │ │ ├── libs │ │ ├── address │ │ │ ├── areas.json │ │ │ ├── citys.json │ │ │ └── provinces.json │ │ ├── config │ │ │ ├── config.js │ │ │ └── zIndex.js │ │ ├── css │ │ │ ├── color.scss │ │ │ ├── common.scss │ │ │ ├── style.components.scss │ │ │ ├── style.h5.scss │ │ │ ├── style.mp.scss │ │ │ ├── style.nvue.scss │ │ │ └── style.vue.scss │ │ ├── function │ │ │ ├── $parent.js │ │ │ ├── addUnit.js │ │ │ ├── bem.js │ │ │ ├── color.js │ │ │ ├── colorGradient.js │ │ │ ├── debounce.js │ │ │ ├── deepClone.js │ │ │ ├── deepMerge.js │ │ │ ├── getParent.js │ │ │ ├── guid.js │ │ │ ├── md5.js │ │ │ ├── queryParams.js │ │ │ ├── random.js │ │ │ ├── randomArray.js │ │ │ ├── route.js │ │ │ ├── sys.js │ │ │ ├── test.js │ │ │ ├── throttle.js │ │ │ ├── timeFormat.js │ │ │ ├── timeFrom.js │ │ │ ├── toast.js │ │ │ ├── trim.js │ │ │ └── type2icon.js │ │ ├── mixin │ │ │ ├── mixin.js │ │ │ └── mpShare.js │ │ ├── request │ │ │ └── index.js │ │ ├── store │ │ │ └── index.js │ │ └── util │ │ │ ├── async-validator.js │ │ │ └── emitter.js │ │ ├── package.json │ │ ├── readme.md │ │ └── theme.scss └── utils │ ├── auth.ts │ ├── cache.ts │ ├── client.ts │ ├── env.ts │ ├── file.ts │ ├── pay │ ├── index.ts │ ├── pay.ts │ └── wechat.ts │ ├── request │ ├── cancel.ts │ ├── http.ts │ ├── index.ts │ └── type.d.ts │ ├── util.ts │ └── wechat.ts ├── tailwind.config.js ├── tsconfig.json ├── typings ├── env.d.ts └── uni.d.ts ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iws 3 | *.iml 4 | *.ipr 5 | *.tar 6 | *.gz 7 | target/ 8 | /public/uploads/* 9 | !/public/uploads/index.html 10 | *.yml -------------------------------------------------------------------------------- /admin/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | # unplugin-auto-import 18 | auto-imports.d.ts 19 | components.d.ts 20 | .eslintrc-auto-import.json 21 | 22 | /cypress/videos/ 23 | /cypress/screenshots/ 24 | 25 | # Editor directories and files 26 | .idea 27 | *.suo 28 | *.ntvs* 29 | *.njsproj 30 | *.sln 31 | *.sw? 32 | 33 | # .env 34 | .env.development 35 | .env.production 36 | -------------------------------------------------------------------------------- /admin/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /admin/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.detectIndentation": false, 3 | "editor.tabSize": 4, 4 | "editor.formatOnSave": true, 5 | "editor.codeActionsOnSave": { 6 | "source.fixAll.eslint": true 7 | }, 8 | "css.validate": false, 9 | "less.validate": false, 10 | "scss.validate": false 11 | } 12 | -------------------------------------------------------------------------------- /admin/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /admin/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /admin/src/api/app.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 配置 4 | export function getConfig() { 5 | return request.get({ url: '/index/config' }) 6 | } 7 | 8 | // 工作台主页 9 | export function getWorkbench() { 10 | return request.get({ url: '/index/console' }) 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/api/app/recharge.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getRechargeConfig() { 4 | return request.get({ url: '/marketing/recharge/detail' }) 5 | } 6 | 7 | // 设置 8 | export function setRechargeConfig(params: any) { 9 | return request.post({ url: '/marketing/recharge/save', params }) 10 | } 11 | -------------------------------------------------------------------------------- /admin/src/api/channel/h5.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // H5渠道配置保存 4 | export function setH5Config(params: any) { 5 | return request.post({ url: '/channel/h5/save', params }) 6 | } 7 | 8 | // H5渠道配置详情 9 | export function getH5Config() { 10 | return request.get({ url: '/channel/h5/detail' }) 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/api/channel/weapp.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 微信小程序配置保存 4 | export function setWeappConfig(params: any) { 5 | return request.post({ url: '/channel/mp/save', params }) 6 | } 7 | 8 | // 微信小程序配置详情 9 | export function getWeappConfig() { 10 | return request.get({ url: '/channel/mp/detail' }) 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/api/channel/wx_op.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 微信开发平台配置保存 4 | export function setWxDevConfig(params: any) { 5 | return request.post({ url: '/channel/op/save', params }) 6 | } 7 | 8 | // 微信开发平台配置详情 9 | export function getWxDevConfig() { 10 | return request.get({ url: '/channel/op/detail' }) 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/api/consumer.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 用户列表 4 | export function getUserList(params: any) { 5 | return request.get({ url: '/user/list', params }) 6 | } 7 | 8 | // 用户详情 9 | export function getUserDetail(params: any) { 10 | return request.get({ url: '/user/detail', params }) 11 | } 12 | 13 | // 用户编辑 14 | export function userEdit(params: any) { 15 | return request.post({ url: '/user/edit', params }) 16 | } 17 | -------------------------------------------------------------------------------- /admin/src/assets/icons/banxing_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/dingwei_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/gengduo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/gengduoandroid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/gou.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/guanbi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/jian_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/jianshao.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/jinhuo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/list-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/set_weihu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/shijian_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/shouqi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/shouqi_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/tianjia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/zhankai.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/icons/zhankai_mian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/src/assets/images/icon_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/assets/images/icon_folder.png -------------------------------------------------------------------------------- /admin/src/assets/images/no_perms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/assets/images/no_perms.png -------------------------------------------------------------------------------- /admin/src/assets/images/theme_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/assets/images/theme_black.png -------------------------------------------------------------------------------- /admin/src/assets/images/theme_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/assets/images/theme_white.png -------------------------------------------------------------------------------- /admin/src/components/icon/index.ts: -------------------------------------------------------------------------------- 1 | import * as ElementPlusIcons from '@element-plus/icons-vue' 2 | //@ts-ignore 3 | import localIconsName from 'virtual:svg-icons-names' 4 | 5 | export const LOCAL_ICON_PREFIX = 'local-icon-' 6 | export const EL_ICON_PREFIX = 'el-icon-' 7 | 8 | const elIconsName: string[] = [] 9 | 10 | for (const [, component] of Object.entries(ElementPlusIcons)) { 11 | elIconsName.push(`${EL_ICON_PREFIX}${component.name}`) 12 | } 13 | 14 | export function getElementPlusIconNames() { 15 | return elIconsName 16 | } 17 | export function getLocalIconNames() { 18 | return localIconsName 19 | } 20 | -------------------------------------------------------------------------------- /admin/src/components/link/index.ts: -------------------------------------------------------------------------------- 1 | export enum LinkTypeEnum { 2 | 'SHOP_PAGES' = 'shop', 3 | 'CUSTOM_LINK' = 'custom' 4 | } 5 | 6 | export interface Link { 7 | path: string 8 | name?: string 9 | type: string 10 | query?: Record 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/config/index.ts: -------------------------------------------------------------------------------- 1 | const config = { 2 | terminal: 1, //终端 3 | title: '后台管理系统', //网站默认标题 4 | version: '1.4.0', //版本号 5 | baseUrl: `${import.meta.env.VITE_APP_BASE_URL || ''}/`, //请求接口域名 6 | filePrefix: `${import.meta.env.VITE_FILE_PREFIX || ''}/`, //图片请求前缀 7 | urlPrefix: 'api', //请求默认前缀 8 | timeout: 10 * 1000, //请求超时时长 9 | } 10 | 11 | export default config 12 | -------------------------------------------------------------------------------- /admin/src/enums/cacheEnums.ts: -------------------------------------------------------------------------------- 1 | // 本地缓冲key 2 | 3 | //token 4 | export const TOKEN_KEY = 'token' 5 | //账号 6 | export const ACCOUNT_KEY = 'account' 7 | //设置 8 | export const SETTING_KEY = 'setting' 9 | -------------------------------------------------------------------------------- /admin/src/enums/pageEnum.ts: -------------------------------------------------------------------------------- 1 | export enum PageEnum { 2 | //登录页面 3 | LOGIN = '/login', 4 | //无权限页面 5 | ERROR_403 = '/403', 6 | // 404 7 | ERROR_404 = '/:pathMatch(.*)*', 8 | INDEX = '/' 9 | } 10 | -------------------------------------------------------------------------------- /admin/src/hooks/useLockFn.ts: -------------------------------------------------------------------------------- 1 | import { ref } from 'vue' 2 | 3 | export function useLockFn(fn: (...args: any[]) => Promise) { 4 | const isLock = ref(false) 5 | const lockFn = async (...args: any[]) => { 6 | if (isLock.value) return 7 | isLock.value = true 8 | try { 9 | const res = await fn(...args) 10 | isLock.value = false 11 | return res 12 | } catch (e) { 13 | isLock.value = false 14 | throw e 15 | } 16 | } 17 | return { 18 | isLock, 19 | lockFn 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /admin/src/hooks/useWatchRoute.ts: -------------------------------------------------------------------------------- 1 | import type { RouteLocationNormalizedLoaded } from 'vue-router' 2 | 3 | export function useWatchRoute(callback: (route: RouteLocationNormalizedLoaded) => void) { 4 | const route = useRoute() 5 | watch( 6 | route, 7 | () => { 8 | callback(route) 9 | }, 10 | { 11 | immediate: true 12 | } 13 | ) 14 | return { 15 | route 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /admin/src/install/plugins/element.ts: -------------------------------------------------------------------------------- 1 | import * as ElementPlusIcons from '@element-plus/icons-vue' 2 | import type { App } from 'vue' 3 | //https://github.com/element-plus/element-plus/issues/7293 4 | import 'element-plus/es/components/dialog/style/css' 5 | 6 | export default (app: App) => { 7 | // 全局注册ElementPlus图标 8 | for (const [key, component] of Object.entries(ElementPlusIcons)) { 9 | app.component(key, component) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /admin/src/install/plugins/hljs.ts: -------------------------------------------------------------------------------- 1 | import type { App } from 'vue' 2 | import 'highlight.js/styles/github.css' 3 | import hljs from 'highlight.js/lib/common' 4 | import hljsVuePlugin from '@highlightjs/vue-plugin' 5 | console.log(hljs) 6 | export default (app: App) => { 7 | app.use(hljsVuePlugin) 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/install/plugins/pinia.ts: -------------------------------------------------------------------------------- 1 | import store from '@/stores' 2 | import type { App } from 'vue' 3 | 4 | export default (app: App) => { 5 | app.use(store) 6 | } 7 | -------------------------------------------------------------------------------- /admin/src/install/plugins/router.ts: -------------------------------------------------------------------------------- 1 | import router from '@/router' 2 | import type { App } from 'vue' 3 | 4 | export default (app: App) => { 5 | app.use(router) 6 | } 7 | -------------------------------------------------------------------------------- /admin/src/layout/default/components/header/fold.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /admin/src/layout/default/components/header/full-screen.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /admin/src/layout/default/components/header/refresh.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /admin/src/layout/default/components/setting/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 20 | -------------------------------------------------------------------------------- /admin/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import install from './install' 4 | import './permission' 5 | import './styles/index.scss' 6 | import 'virtual:svg-icons-register' 7 | 8 | const app = createApp(App) 9 | console.log(app) 10 | app.use(install) 11 | app.mount('#app') 12 | -------------------------------------------------------------------------------- /admin/src/stores/index.ts: -------------------------------------------------------------------------------- 1 | import { createPinia } from 'pinia' 2 | const store = createPinia() 3 | export default store 4 | -------------------------------------------------------------------------------- /admin/src/styles/index.scss: -------------------------------------------------------------------------------- 1 | 2 | @import 'element.scss'; 3 | @import 'dark.css'; 4 | @import 'var.css'; 5 | @import 'tailwind.css'; 6 | @import 'public.scss'; 7 | -------------------------------------------------------------------------------- /admin/src/styles/public.scss: -------------------------------------------------------------------------------- 1 | body { 2 | @apply text-base text-tx-primary overflow-hidden min-w-[375px]; 3 | } 4 | .form-tips { 5 | @apply text-tx-secondary text-xs leading-6 mt-1; 6 | } 7 | 8 | .clearfix:after { 9 | content: ''; 10 | display: block; 11 | clear: both; 12 | visibility: hidden; 13 | } 14 | 15 | /* NProgress */ 16 | #nprogress .bar { 17 | @apply bg-primary #{!important}; 18 | } 19 | -------------------------------------------------------------------------------- /admin/src/styles/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /admin/src/utils/auth.ts: -------------------------------------------------------------------------------- 1 | import { TOKEN_KEY } from '@/enums/cacheEnums' 2 | import { resetRouter } from '@/router' 3 | import useTabsStore from '@/stores/modules/multipleTabs' 4 | import useUserStore from '@/stores/modules/user' 5 | import cache from './cache' 6 | 7 | export function getToken() { 8 | return cache.get(TOKEN_KEY) 9 | } 10 | 11 | export function clearAuthInfo() { 12 | const userStore = useUserStore() 13 | const tabsStore = useTabsStore() 14 | userStore.resetState() 15 | tabsStore.$reset() 16 | cache.remove(TOKEN_KEY) 17 | resetRouter() 18 | } 19 | -------------------------------------------------------------------------------- /admin/src/utils/env.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description: 开发模式 3 | */ 4 | export function isDevMode(): boolean { 5 | return import.meta.env.DEV 6 | } 7 | 8 | /** 9 | * @description: 生成模式 10 | */ 11 | export function isProdMode(): boolean { 12 | return import.meta.env.PROD 13 | } 14 | -------------------------------------------------------------------------------- /admin/src/utils/file.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description 3 | * @param file 4 | */ 5 | export function streamFileDownload(file: any, fileName = '文件名称.zip') { 6 | const blob = new Blob([file], { type: 'application/octet-stream;charset=UTF-8' }) 7 | const url = window.URL.createObjectURL(blob) 8 | const link = document.createElement('a') 9 | link.style.display = 'none' 10 | link.href = url 11 | link.setAttribute('download', fileName) 12 | document.body.appendChild(link) 13 | link.click() 14 | document.body.removeChild(link) // 下载完成移除元素 15 | window.URL.revokeObjectURL(url) 16 | } 17 | -------------------------------------------------------------------------------- /admin/src/utils/validate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {string} path 3 | * @returns {Boolean} 4 | */ 5 | export function isExternal(path: string) { 6 | return /^(https?:|mailto:|tel:)/.test(path) 7 | } 8 | -------------------------------------------------------------------------------- /admin/src/utils/wxLogin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/utils/wxLogin.ts -------------------------------------------------------------------------------- /admin/src/views/account/images/login_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/account/images/login_bg.png -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/banner/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/banner/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '首页轮播图', 3 | name: 'banner', 4 | content: { 5 | enabled: 1, 6 | data: [ 7 | { 8 | image: '', 9 | name: '', 10 | link: {} 11 | } 12 | ] 13 | }, 14 | styles: {} 15 | }) 16 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/customer-service/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/customer-service/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '客服设置', 3 | name: 'customer-service', 4 | content: { 5 | title: '添加客服二维码', 6 | time: '', 7 | mobile: '', 8 | qrcode: '' 9 | }, 10 | styles: {} 11 | }) 12 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/index.ts: -------------------------------------------------------------------------------- 1 | const widgets: Record = import.meta.glob('./**/index.ts', { eager: true }) 2 | interface Widget { 3 | attr: any 4 | content: any 5 | options: any 6 | } 7 | console.log(widgets) 8 | const exportWidgets: Record = {} 9 | Object.keys(widgets).forEach((key) => { 10 | const widgetName = key.replace(/^\.\/([\w-]+).*/gi, '$1') 11 | exportWidgets[widgetName] = widgets[key]?.default 12 | }) 13 | 14 | export default exportWidgets 15 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/my-service/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/my-service/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '我的服务', 3 | name: 'my-service', 4 | content: { 5 | style: 1, 6 | title: '我的服务', 7 | data: [ 8 | { 9 | image: '', 10 | name: '导航名称', 11 | link: {} 12 | } 13 | ] 14 | }, 15 | styles: {} 16 | }) 17 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/nav/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/nav/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '导航菜单', 3 | name: 'nav', 4 | content: { 5 | enabled: 1, 6 | data: [ 7 | { 8 | image: '', 9 | name: '导航名称', 10 | link: {} 11 | } 12 | ] 13 | }, 14 | styles: {} 15 | }) 16 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/news/attr.vue: -------------------------------------------------------------------------------- 1 | 4 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/news/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/news/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '资讯', 3 | name: 'news', 4 | disabled: 1, 5 | content: {}, 6 | styles: {} 7 | }) 8 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/search/attr.vue: -------------------------------------------------------------------------------- 1 | 4 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/search/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/search/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '搜索', 3 | name: 'search', 4 | disabled: 1, 5 | content: {}, 6 | styles: {} 7 | }) 8 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-banner/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-banner/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '个人中心广告图', 3 | name: 'user-banner', 4 | content: { 5 | enabled: 1, 6 | data: [ 7 | { 8 | image: '', 9 | name: '', 10 | link: {} 11 | } 12 | ] 13 | }, 14 | styles: {} 15 | }) 16 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/attr.vue: -------------------------------------------------------------------------------- 1 | 4 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/content.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/images/default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/decoration/component/widgets/user-info/images/default_avatar.png -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/images/my_topbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/decoration/component/widgets/user-info/images/my_topbg.png -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/index.ts: -------------------------------------------------------------------------------- 1 | import attr from './attr.vue' 2 | import content from './content.vue' 3 | import options from './options' 4 | export default { 5 | attr, 6 | content, 7 | options 8 | } 9 | -------------------------------------------------------------------------------- /admin/src/views/decoration/component/widgets/user-info/options.ts: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | title: '用户信息', 3 | name: 'user-info', 4 | disabled: 1, 5 | content: {}, 6 | styles: {} 7 | }) 8 | -------------------------------------------------------------------------------- /admin/src/views/decoration/image/pc_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/decoration/image/pc_index.png -------------------------------------------------------------------------------- /admin/src/views/error/403.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /admin/src/views/error/404.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /admin/src/views/template/component/link.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | -------------------------------------------------------------------------------- /admin/src/views/template/component/overflow.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /admin/src/views/template/component/rich_text.vue: -------------------------------------------------------------------------------- 1 | 11 | 17 | -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_admin.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_auth.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_dept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_dept.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_dict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_dict.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_file.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_generator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_generator.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_role.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/menu_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/menu_web.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/oa_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/oa_code.png -------------------------------------------------------------------------------- /admin/src/views/workbench/image/service_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/admin/src/views/workbench/image/service_code.png -------------------------------------------------------------------------------- /admin/tsconfig.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.node.json", 3 | "include": ["vite.config.*"], 4 | "compilerOptions": { 5 | "composite": true, 6 | "types": ["node"] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /admin/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": [ 4 | "global.d.ts", 5 | "src/**/*", 6 | "src/**/*.vue", 7 | "components.d.ts", 8 | "auto-imports.d.ts", 9 | "typings/**/*.d.ts" 10 | ], 11 | "compilerOptions": { 12 | "isolatedModules": true, 13 | "baseUrl": ".", 14 | "paths": { 15 | "@/*": ["./src/*"] 16 | } 17 | }, 18 | "references": [ 19 | { 20 | "path": "./tsconfig.config.json" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /admin/typings/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'vue3-video-play' 2 | 3 | declare module 'css-color-function' 4 | 5 | type PromiseFun = (...arg: any[]) => Promise 6 | -------------------------------------------------------------------------------- /admin/typings/router.d.ts: -------------------------------------------------------------------------------- 1 | import 'vue-router' 2 | declare module 'vue-router' { 3 | // 扩展 RouteMeta 4 | interface RouteMeta { 5 | type?: string 6 | perms?: string 7 | title?: string 8 | icon?: string 9 | hidden?: boolean 10 | activeMenu?: string 11 | hideTab?: boolean 12 | keepAlive?: boolean 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docker/.gitignore: -------------------------------------------------------------------------------- 1 | /data 2 | /log -------------------------------------------------------------------------------- /image/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/001.png -------------------------------------------------------------------------------- /image/002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/002.png -------------------------------------------------------------------------------- /image/003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/003.png -------------------------------------------------------------------------------- /image/004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/004.png -------------------------------------------------------------------------------- /image/005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/005.png -------------------------------------------------------------------------------- /image/006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/006.png -------------------------------------------------------------------------------- /image/007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/007.png -------------------------------------------------------------------------------- /image/009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/009.png -------------------------------------------------------------------------------- /image/010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/010.png -------------------------------------------------------------------------------- /image/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/1.png -------------------------------------------------------------------------------- /image/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/10.png -------------------------------------------------------------------------------- /image/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/11.png -------------------------------------------------------------------------------- /image/111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/111.png -------------------------------------------------------------------------------- /image/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/12.png -------------------------------------------------------------------------------- /image/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/13.png -------------------------------------------------------------------------------- /image/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/14.png -------------------------------------------------------------------------------- /image/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/15.png -------------------------------------------------------------------------------- /image/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/2.png -------------------------------------------------------------------------------- /image/222.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/222.png -------------------------------------------------------------------------------- /image/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/3.PNG -------------------------------------------------------------------------------- /image/333.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/333.png -------------------------------------------------------------------------------- /image/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/4.PNG -------------------------------------------------------------------------------- /image/444.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/444.png -------------------------------------------------------------------------------- /image/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/5.png -------------------------------------------------------------------------------- /image/555.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/555.png -------------------------------------------------------------------------------- /image/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/6.png -------------------------------------------------------------------------------- /image/666.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/666.png -------------------------------------------------------------------------------- /image/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/7.png -------------------------------------------------------------------------------- /image/777.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/777.png -------------------------------------------------------------------------------- /image/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/8.png -------------------------------------------------------------------------------- /image/888.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/888.png -------------------------------------------------------------------------------- /image/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/9.png -------------------------------------------------------------------------------- /image/xmgcode88-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/image/xmgcode88-02.png -------------------------------------------------------------------------------- /pc/.env: -------------------------------------------------------------------------------- 1 | # 版本号 2 | NUXT_VERSION=1.0 3 | 4 | # 接口默认前缀 5 | NUXT_API_PREFIX=/api 6 | 7 | # 客户端类型 8 | NUXT_CLIENT=4 9 | 10 | # 基础路径 11 | NUXT_BASE_URL= 12 | 13 | # 是否开启ssr,填些任意值开启 14 | NUXT_SSR= 15 | 16 | # 端口号 17 | NITRO_PORT=3000 -------------------------------------------------------------------------------- /pc/.env.development: -------------------------------------------------------------------------------- 1 | 2 | # # 请求域名 3 | # NUXT_API_URL="http://pcapi.xmgai.cn" 4 | 5 | # #文件服务器地址 6 | # NUXT_FILE_PREFIX= 'http://image.xmgai.cn' 7 | 8 | 9 | #请求域名 10 | NUXT_API_URL="http://localhost:8084" 11 | 12 | #文件服务器地址 13 | NUXT_FILE_PREFIX= 'http://localhost:8086/' -------------------------------------------------------------------------------- /pc/.env.production: -------------------------------------------------------------------------------- 1 | 2 | # 请求域名 3 | NUXT_API_URL="http://pcapi.xmgai.cn" 4 | 5 | #文件服务器地址 6 | NUXT_FILE_PREFIX= 'http://image.xmgai.cn/' 7 | 8 | 9 | # 请求域名 10 | # NUXT_API_URL="http://47.109.46.37:8084" 11 | 12 | #文件服务器地址 13 | # NUXT_FILE_PREFIX= 'http://47.109.46.37:8086' -------------------------------------------------------------------------------- /pc/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | .nuxt 4 | .nitro 5 | .cache 6 | .output 7 | .vite 8 | dist 9 | -------------------------------------------------------------------------------- /pc/api/shop.ts: -------------------------------------------------------------------------------- 1 | //首页数据 2 | export function getIndex() { 3 | return $request.get({ url: '/pc/index' }) 4 | } 5 | 6 | 7 | 8 | 9 | /**微信支付 */ 10 | export function weChatPay(params) { 11 | return $request.get({ url: '/pay/wxPayCode',params }) 12 | } -------------------------------------------------------------------------------- /pc/assets/images/empty_news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/empty_news.png -------------------------------------------------------------------------------- /pc/assets/images/icon/icon_wx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/icon/icon_wx.png -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-niji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-niji.png -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-v4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-v4.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-v5.1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-v5.1.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-v5.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-v5.2.png -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-v5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-v5.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/mj-v6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/mj-v6.png -------------------------------------------------------------------------------- /pc/assets/images/mj/nj1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/nj1.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/nj2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/nj2.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/nj3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/nj3.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/nj4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/nj4.jpg -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_16_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_16_9.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_1_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_1_1.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_1_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_1_2.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_2_1.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_3_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_3_4.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_4_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_4_3.png -------------------------------------------------------------------------------- /pc/assets/images/mj/rate_9_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/mj/rate_9_16.png -------------------------------------------------------------------------------- /pc/assets/images/model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/model.png -------------------------------------------------------------------------------- /pc/assets/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/placeholder.png -------------------------------------------------------------------------------- /pc/assets/images/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/result.png -------------------------------------------------------------------------------- /pc/assets/images/xmgcode88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/xmgcode88.png -------------------------------------------------------------------------------- /pc/assets/images/yangli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/images/yangli.png -------------------------------------------------------------------------------- /pc/assets/styles/custom-scroll.css: -------------------------------------------------------------------------------- 1 | .custom-scroll ::-webkit-scrollbar { 2 | width: 8px; /* 滚动条宽度 */ 3 | } 4 | .custom-scroll ::-webkit-scrollbar-track { 5 | background-color: #282c34; 6 | } 7 | .custom-scroll ::-webkit-scrollbar-thumb { 8 | background-color: #444; 9 | border-radius: 8px; 10 | } 11 | .custom-scroll ::-webkit-scrollbar-thumb:hover { 12 | background-color: #666; 13 | } 14 | -------------------------------------------------------------------------------- /pc/assets/styles/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/styles/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /pc/assets/styles/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/styles/iconfont/iconfont.woff -------------------------------------------------------------------------------- /pc/assets/styles/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/assets/styles/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /pc/assets/styles/index.scss: -------------------------------------------------------------------------------- 1 | @use 'element.scss'; 2 | @use 'var.css'; 3 | @use 'public.scss'; 4 | -------------------------------------------------------------------------------- /pc/composables/useLockFn.ts: -------------------------------------------------------------------------------- 1 | export function useLockFn(fn: (...args: any[]) => Promise) { 2 | const isLock = ref(false) 3 | const lockFn = async (...args: any[]) => { 4 | if (isLock.value) return 5 | isLock.value = true 6 | try { 7 | const res = await fn(...args) 8 | isLock.value = false 9 | return res 10 | } catch (e) { 11 | isLock.value = false 12 | throw e 13 | } 14 | } 15 | return { 16 | isLock, 17 | lockFn 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /pc/ecosystem.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | apps: [ 3 | { 4 | name: 'NuxtAppName', 5 | script: './.output/server/index.mjs' 6 | } 7 | ] 8 | } -------------------------------------------------------------------------------- /pc/enums/appEnums.ts: -------------------------------------------------------------------------------- 1 | //菜单主题类型 2 | export enum ThemeEnum { 3 | LIGHT = 'light', 4 | DARK = 'dark' 5 | } 6 | 7 | // 菜单类型 8 | export enum MenuEnum { 9 | CATALOGUE = 'M', 10 | MENU = 'C', 11 | BUTTON = 'A' 12 | } 13 | 14 | // 屏幕 15 | export enum ScreenEnum { 16 | SM = 640, 17 | MD = 768, 18 | LG = 1024, 19 | XL = 1280, 20 | '2XL' = 1536 21 | } 22 | 23 | export enum SMSEnum { 24 | LOGIN = 101, 25 | BIND_MOBILE = 102, 26 | CHANGE_MOBILE = 103, 27 | FIND_PASSWORD = 104 28 | } 29 | 30 | export enum PolicyAgreementEnum { 31 | SERVICE = 'service', 32 | PRIVACY = 'privacy' 33 | } 34 | -------------------------------------------------------------------------------- /pc/enums/cacheEnums.ts: -------------------------------------------------------------------------------- 1 | // 本地缓冲key 2 | 3 | //token 4 | export const TOKEN_KEY = 'token' 5 | //账号 6 | export const ACCOUNT_KEY = 'account' 7 | //设置 8 | export const SETTING_KEY = 'setting' 9 | -------------------------------------------------------------------------------- /pc/enums/pageEnum.ts: -------------------------------------------------------------------------------- 1 | export enum PageEnum { 2 | //登录页面 3 | LOGIN = '/login', 4 | //无权限页面 5 | ERROR_403 = '/403', 6 | INDEX = '/' 7 | } 8 | -------------------------------------------------------------------------------- /pc/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { Request } from '@/utils/http/request' 3 | declare global { 4 | const $request: Request 5 | } 6 | -------------------------------------------------------------------------------- /pc/layouts/blank.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /pc/layouts/components/account/to-login.vue: -------------------------------------------------------------------------------- 1 | 7 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /pc/layouts/components/header/hotdata.vue: -------------------------------------------------------------------------------- 1 | 6 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /pc/layouts/components/header/logo.vue: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /pc/plugins/element-plus.ts: -------------------------------------------------------------------------------- 1 | import { ElLoading } from 'element-plus' 2 | 3 | export default defineNuxtPlugin((nuxtApp) => { 4 | const plugins = [ElLoading] 5 | for (const plugin of plugins) { 6 | nuxtApp.vueApp.use(plugin) 7 | } 8 | }) 9 | -------------------------------------------------------------------------------- /pc/plugins/fetch.ts: -------------------------------------------------------------------------------- 1 | import { createRequest } from '~~/utils/http' 2 | 3 | export default defineNuxtPlugin(() => { 4 | const request = createRequest() 5 | //@ts-ignore 添加 6 | globalThis.$request = request 7 | 8 | const $fetchOriginal = globalThis.$fetch 9 | const $fetch: any = (url: string, opts?: any) => { 10 | opts = opts ?? {} 11 | opts.url = url 12 | return request.request(opts, opts.requestOptions) 13 | } 14 | $fetch.raw = $fetchOriginal.raw 15 | $fetch.create = $fetchOriginal.create 16 | //@ts-ignore 重写$fetch 17 | globalThis.$fetch = $fetch 18 | }) 19 | -------------------------------------------------------------------------------- /pc/plugins/v3-waterfall.ts: -------------------------------------------------------------------------------- 1 | // plugins/v3-waterfall.ts 2 | import { defineNuxtPlugin } from '#app' 3 | import V3waterfall from 'v3-waterfall' 4 | import 'v3-waterfall/dist/style.css' 5 | 6 | export default defineNuxtPlugin((nuxtApp) => { 7 | nuxtApp.vueApp.use(V3waterfall) 8 | }) 9 | 10 | -------------------------------------------------------------------------------- /pc/plugins/vue-waterfall-plugin.client.ts: -------------------------------------------------------------------------------- 1 | import { Waterfall, LazyImg } from 'vue-waterfall-plugin-next'; 2 | import 'vue-waterfall-plugin-next/dist/style.css'; 3 | 4 | export default defineNuxtPlugin(nuxtApp => { 5 | console.log('888888888-----vue-waterfall-plugin-next'); 6 | nuxtApp.vueApp.component('Waterfall', Waterfall); 7 | nuxtApp.vueApp.component('LazyImg', LazyImg); 8 | }); 9 | -------------------------------------------------------------------------------- /pc/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /pc/static/image/pc_favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/static/image/pc_favicon.ico -------------------------------------------------------------------------------- /pc/static/image/pc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/static/image/pc_logo.png -------------------------------------------------------------------------------- /pc/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // https://v3.nuxtjs.org/concepts/typescript 3 | "extends": "./.nuxt/tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /pc/typings/modules.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/pc/typings/modules.d.ts -------------------------------------------------------------------------------- /pc/typings/router.d.ts: -------------------------------------------------------------------------------- 1 | import 'vue-router' 2 | declare module 'vue-router' { 3 | // 扩展 RouteMeta 4 | interface RouteMeta { 5 | module?: string 6 | activeMenu?: string 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pc/utils/env.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description 获取客户端类型 3 | */ 4 | export function getClient() { 5 | return useRuntimeConfig().public.client 6 | } 7 | 8 | /** 9 | * @description 获取版本号 10 | */ 11 | export function getVersion() { 12 | return useRuntimeConfig().public.version 13 | } 14 | 15 | /** 16 | * @description 获取请求域名 17 | */ 18 | export function getApiUrl() { 19 | return useRuntimeConfig().public.apiUrl 20 | } 21 | 22 | /** 23 | * @description 获取请求前缀 24 | */ 25 | export function getApiPrefix() { 26 | return useRuntimeConfig().public.apiPrefix 27 | } 28 | -------------------------------------------------------------------------------- /public/admin/assets/@floating-ui.dd8b295f.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.752f55fa.js: -------------------------------------------------------------------------------- 1 | import"./attr.vue_vue_type_script_setup_true_lang.775b5e18.js";import{_ as t}from"./attr.vue_vue_type_script_setup_true_lang.775b5e18.js";import"./@vue.e8706010.js";export{t as default}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.95cc7310.js: -------------------------------------------------------------------------------- 1 | import"./attr.vue_vue_type_script_setup_true_lang.d0ae40ff.js";import{_ as t}from"./attr.vue_vue_type_script_setup_true_lang.d0ae40ff.js";import"./@vue.e8706010.js";export{t as default}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.e16a4f7e.js: -------------------------------------------------------------------------------- 1 | import"./attr.vue_vue_type_script_setup_true_lang.bc88ba14.js";import{_ as t}from"./attr.vue_vue_type_script_setup_true_lang.bc88ba14.js";import"./@vue.e8706010.js";export{t as default}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.vue_vue_type_script_setup_true_lang.775b5e18.js: -------------------------------------------------------------------------------- 1 | import{d as e,o as t,c as o}from"./@vue.e8706010.js";const r=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(c){return(n,a)=>(t(),o("div"))}});export{r as _}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.vue_vue_type_script_setup_true_lang.bc88ba14.js: -------------------------------------------------------------------------------- 1 | import{d as e,o as t,c as o}from"./@vue.e8706010.js";const r=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(c){return(n,a)=>(t(),o("div"))}});export{r as _}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/attr.vue_vue_type_script_setup_true_lang.d0ae40ff.js: -------------------------------------------------------------------------------- 1 | import{d as e,o as t,c as o}from"./@vue.e8706010.js";const r=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(c){return(n,a)=>(t(),o("div"))}});export{r as _}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/balanced-match.d2a36341.js: -------------------------------------------------------------------------------- 1 | var l=function(r,a,e){for(var s=0,t={},n=0;n1?e.substring(t.start+r.length,t.end):"",t.post=e.slice(t.end+a.length),t};export{l as b}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/cache.e0b12ca0.css: -------------------------------------------------------------------------------- 1 | .el-table .el-table__cell[data-v-911c341b]{min-width:120px} 2 | -------------------------------------------------------------------------------- /public/admin/assets/content.0b4d2f25.css: -------------------------------------------------------------------------------- 1 | .search[data-v-3514bdd8]{background-color:#fff;padding:7px 12px}.search .search-con[data-v-3514bdd8]{height:100%;height:36px;border-radius:36px;background:#f4f4f4;color:#999} 2 | -------------------------------------------------------------------------------- /public/admin/assets/content.3c393d61.css: -------------------------------------------------------------------------------- 1 | .customer-service[data-v-2cdedb7a]{margin:10px 18px;border-radius:10px;padding:50px 55px 80px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center} 2 | -------------------------------------------------------------------------------- /public/admin/assets/content.4695f43d.css: -------------------------------------------------------------------------------- 1 | .news .news-title[data-v-9d6ca802]:before{content:"";width:4px;height:17px;display:block;margin-right:5px;background:#4173ff} 2 | -------------------------------------------------------------------------------- /public/admin/assets/content.4bb46171.css: -------------------------------------------------------------------------------- 1 | .my-service[data-v-26886ebe]{margin:10px 10px 0;background-color:#fff;border-radius:7px}.my-service .title[data-v-26886ebe]{border-bottom:1px solid #e5e5e5;font-size:16px;font-weight:500} 2 | -------------------------------------------------------------------------------- /public/admin/assets/content.4d8784cd.css: -------------------------------------------------------------------------------- 1 | .user-info[data-v-4b1b613f]{background:url(/assets/my_topbg.137a6c56.png);height:115px;background-position:bottom;background-size:100% auto} 2 | -------------------------------------------------------------------------------- /public/admin/assets/decoration-img.e03f874f.css: -------------------------------------------------------------------------------- 1 | .el-image[data-v-8b12a43d]{display:block}.el-image .image-slot[data-v-8b12a43d]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#fafafa;color:#909399} 2 | -------------------------------------------------------------------------------- /public/admin/assets/default_avatar.fa19527b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/default_avatar.fa19527b.png -------------------------------------------------------------------------------- /public/admin/assets/error.1aaeb02c.css: -------------------------------------------------------------------------------- 1 | .error[data-v-9a820143]{text-align:center;height:100vh;display:flex;justify-content:center;align-items:center}.error .error-code[data-v-9a820143]{color:var(--el-color-primary);font-size:150px}.error .el-button[data-v-9a820143]{width:176px} 2 | -------------------------------------------------------------------------------- /public/admin/assets/escape-html.e5dfadb9.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * escape-html 3 | * Copyright(c) 2012-2013 TJ Holowaychuk 4 | * Copyright(c) 2015 Andreas Lubbe 5 | * Copyright(c) 2015 Tiancheng "Timothy" Gu 6 | * MIT Licensed 7 | */var i=/["'&<>]/,u=l;function l(n){var a=""+n,c=i.exec(a);if(!c)return a;var r,s="",e=0,t=0;for(e=c.index;e.icon-close[data-v-acafd744]{display:flex}.del-wrap .icon-close[data-v-acafd744]{display:none;position:absolute;top:-8px;right:-8px;width:16px;height:16px;background-color:#0000004d;justify-content:center;align-items:center;border-radius:50%;color:#fff;cursor:pointer} 2 | -------------------------------------------------------------------------------- /public/admin/assets/index.vue_vue_type_script_setup_true_lang.bf966a50.js: -------------------------------------------------------------------------------- 1 | import{d as c,e as s,o as n,c as t,V as v,a7 as d,T as u,u as f}from"./@vue.e8706010.js";const y=c({__name:"index",props:{options:{default:()=>[]},value:null},setup(l){const e=l,o=s(()=>e.value!==null&&typeof e.value<"u"?Array.isArray(e.value)?e.value:String(e.value).split(","):[]),i=s(()=>e.options.filter(a=>o.value.includes(a.value)));return(a,m)=>(n(),t("div",null,[(n(!0),t(v,null,d(f(i),(p,r)=>(n(),t("span",{key:r},u(r!=0?"\u3001":"")+u(p.name),1))),128))]))}});export{y as _}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/lodash-unified.d120b703.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/admin/assets/login.732452a5.css: -------------------------------------------------------------------------------- 1 | .login[data-v-5006b64d]{background-image:url(/assets/login_bg.2f630cea.png);min-height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat}.login .login-card[data-v-5006b64d]{height:400px}.login .login-card[data-v-5006b64d] .el-input-group__prepend{padding:0 15px} 2 | -------------------------------------------------------------------------------- /public/admin/assets/login_bg.2f630cea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/login_bg.2f630cea.png -------------------------------------------------------------------------------- /public/admin/assets/memoize-one.5eaee740.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/admin/assets/menu.c64cbd13.css: -------------------------------------------------------------------------------- 1 | .pages-menu[data-v-95544a93] .el-menu-item{border-color:transparent}.pages-menu[data-v-95544a93] .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)} 2 | -------------------------------------------------------------------------------- /public/admin/assets/menu_role.4823a023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/menu_role.4823a023.png -------------------------------------------------------------------------------- /public/admin/assets/my_topbg.137a6c56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/my_topbg.137a6c56.png -------------------------------------------------------------------------------- /public/admin/assets/no_perms.a56e95a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/no_perms.a56e95a5.png -------------------------------------------------------------------------------- /public/admin/assets/oa_code.3084d316.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/oa_code.3084d316.png -------------------------------------------------------------------------------- /public/admin/assets/pc.fb45f680.css: -------------------------------------------------------------------------------- 1 | .decoration-pages[data-v-2da449ab]{min-height:calc(100vh - var(--navbar-height) - 80px);display:flex;flex-direction:column} 2 | -------------------------------------------------------------------------------- /public/admin/assets/pc_index.4913b73d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/pc_index.4913b73d.png -------------------------------------------------------------------------------- /public/admin/assets/picker.d164339d.css: -------------------------------------------------------------------------------- 1 | .link-menu[data-v-9b4140c5]{--el-menu-item-height: 40px}.link-menu[data-v-9b4140c5] .el-menu-item{border-color:transparent}.link-menu[data-v-9b4140c5] .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.link-picker[data-v-f0325f86] .el-input.is-disabled .el-input__inner,.link-picker[data-v-f0325f86] .el-input.is-disabled .el-input__suffix{cursor:not-allowed}.link-picker[data-v-f0325f86] .el-input .el-input__inner,.link-picker[data-v-f0325f86] .el-input .el-input__suffix{cursor:pointer} 2 | -------------------------------------------------------------------------------- /public/admin/assets/preview-pc.658c5668.css: -------------------------------------------------------------------------------- 1 | .pages-preview[data-v-7e9e2ca0]{width:460px;height:360px;background:url(/assets/pc_index.4913b73d.png);background-size:100% 100%;background-repeat:no-repeat}.pages-preview .select[data-v-7e9e2ca0]{border-style:solid;border-color:var(--el-color-primary)} 2 | -------------------------------------------------------------------------------- /public/admin/assets/preview.705e23a4.css: -------------------------------------------------------------------------------- 1 | .pages-preview[data-v-4eb981b5]{background-color:#f8f8f8;width:360px;height:615px;color:#333}.pages-preview .select[data-v-4eb981b5]{border-style:solid;border-color:var(--el-color-primary)} 2 | -------------------------------------------------------------------------------- /public/admin/assets/service_code.2a6ca2f5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/admin/assets/service_code.2a6ca2f5.png -------------------------------------------------------------------------------- /public/admin/assets/tabbar.b24245a3.css: -------------------------------------------------------------------------------- 1 | .decoration-tabbar[data-v-2d259329]{min-height:calc(100vh - var(--navbar-height) - 80px);display:flex;flex-direction:column}.decoration-tabbar .pages-preview[data-v-2d259329]{background-color:#f7f7f7;width:360px;height:615px;color:#333;position:relative}.decoration-tabbar .pages-preview .tabbar[data-v-2d259329]{position:absolute;height:50px;background-color:#fff;bottom:0;width:100%;border:2px solid var(--el-color-primary)} 2 | -------------------------------------------------------------------------------- /public/admin/assets/vue-clipboard3.4b33564b.js: -------------------------------------------------------------------------------- 1 | import{C as a}from"./clipboard.76245de3.js";const l=o=>{const r=(o==null?void 0:o.appendToBody)===void 0?!0:o.appendToBody;return{toClipboard(c,t){return new Promise((i,u)=>{const e=document.createElement("button"),d=new a(e,{text:()=>c,action:()=>"copy",container:t!==void 0?t:document.body});d.on("success",n=>{d.destroy(),i(n)}),d.on("error",n=>{d.destroy(),u(n)}),r&&document.body.appendChild(e),e.click(),r&&document.body.removeChild(e)})}}};export{l as u}; 2 | -------------------------------------------------------------------------------- /public/admin/assets/vue-demi.ebc8116b.js: -------------------------------------------------------------------------------- 1 | var e=!1,a=void 0;export{a as V,e as i}; 2 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public/mobile/assets/as_us.a2f8b82c.css: -------------------------------------------------------------------------------- 1 | .as-us .img[data-v-31e0ee28]{width:5rem;height:5rem;border-radius:.625rem;margin-top:3rem} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/bind_mobile.d6fec8d5.css: -------------------------------------------------------------------------------- 1 | uni-page-body[data-v-91bee10a]{height:100%} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/change_password.a7a587c2.css: -------------------------------------------------------------------------------- 1 | uni-page-body[data-v-14e4bd27]{height:100%} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/collection.c4157529.css: -------------------------------------------------------------------------------- 1 | .u-swipe-action[data-v-d0fdd334]{width:auto;height:initial;position:relative;overflow:hidden}.u-swipe-view[data-v-d0fdd334]{display:flex;flex-direction:row;height:initial;position:relative}.u-swipe-content[data-v-d0fdd334]{flex:1}.u-swipe-del[data-v-d0fdd334]{position:relative;font-size:.9375rem;color:#fff}.u-btn-text[data-v-d0fdd334]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/emitter.5b880544.js: -------------------------------------------------------------------------------- 1 | function t(t,o,a){}var o={methods:{dispatch(t,o,a){let s=this.$parent||this.$root,n=s.$options.name;for(;s&&(!n||n!==t);)s=s.$parent,s&&(n=s.$options.name);s&&s[o](a)},broadcast(o,a,s){t.call(this,o,a,s)}}};export{o as E}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/forget_pwd.4dcdda84.css: -------------------------------------------------------------------------------- 1 | uni-page-body[data-v-d7bacc08]{height:100%} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/icon_visit.9ad00ab7.js: -------------------------------------------------------------------------------- 1 | var i="/mobile/static/images/icon/icon_visit.png";export{i as _}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/icon_wx.a848c744.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/assets/icon_wx.a848c744.png -------------------------------------------------------------------------------- /public/mobile/assets/index.ffcb57f7.css: -------------------------------------------------------------------------------- 1 | .article-title[data-v-2e305e2b]:before{content:"";width:.25rem;height:1.0625rem;display:block;margin-right:.3125rem;background:#4173ff} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/my_topbg.e2ef645f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/assets/my_topbg.e2ef645f.png -------------------------------------------------------------------------------- /public/mobile/assets/news-card.9d2e9b2e.css: -------------------------------------------------------------------------------- 1 | .news-card[data-v-125d567f]{border-bottom:1px solid #f8f8f8}.news-card-content-title[data-v-125d567f]{-webkit-line-clamp:2;overflow:hidden;word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.news-card-content-intro[data-v-125d567f]{-webkit-line-clamp:1;overflow:hidden;word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/news.2a891860.js: -------------------------------------------------------------------------------- 1 | import{C as t}from"./index.28d89b6b.js";function r(){return t.get({url:"/article/category"})}function a(r){return t.get({url:"/article/list",data:r})}function e(r){return t.get({url:"/article/detail",data:r})}function c(r){return t.post({url:"/article/collectAdd",data:r},{isAuth:!0})}function l(r){return t.post({url:"/article/collectCancel",data:r},{isAuth:!0})}function n(){return t.get({url:"/article/collectList"})}export{r as a,e as b,l as c,c as d,n as e,a as g}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/news_detail.3a6411e3.css: -------------------------------------------------------------------------------- 1 | .news-detail[data-v-3a16a61e]{height:100%}.news-detail-header[data-v-3a16a61e]{border-bottom:.0625rem solid #f8f8f8}.news-detail-section .summary[data-v-3a16a61e]{border-radius:.375rem;background-color:#f7f7f7}.news-detail .panel-btn[data-v-3a16a61e]{position:fixed;right:.9375rem;height:2.5rem;bottom:2.5rem;border-radius:1.25rem;background:rgba(255,255,255,.95);box-shadow:0 0 10px rgba(0,0,0,.16)} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/pages-agreement-agreement.8f0336eb.js: -------------------------------------------------------------------------------- 1 | import{d as a,z as s,W as e,o as t,c as r,w as n,b as o,aE as l,ax as p,r as u,a as c,k as m}from"./index.28d89b6b.js";import{_ as d}from"./u-parse.d3a00f41.js";import"./plugin-vue_export-helper.21dcd24c.js";const i=a({__name:"agreement",setup(a){let i=s("");const f=s("");return e((a=>{a.type&&(i=a.type,(async a=>{const s=await l({type:a});console.log(s,"res"),f.value=s.content,p({title:s.name})})(i))})),(a,s)=>{const e=u(c("u-parse"),d),l=m;return t(),r(l,{class:""},{default:n((()=>[o(e,{html:f.value},null,8,["html"])])),_:1})}}});export{i as default}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/pages-as_us-as_us.8b18af63.js: -------------------------------------------------------------------------------- 1 | import{d as s,u as e,o as a,c as t,w as o,b as r,g as c,l,t as n,n as u,k as d}from"./index.28d89b6b.js";import{_ as f}from"./plugin-vue_export-helper.21dcd24c.js";var i=f(s({__name:"as_us",setup(s){const f=e();return(s,e)=>{const i=u,m=d;return a(),t(m,{class:"as-us flex flex-1 flex-col items-center"},{default:o((()=>[r(i,{src:c(f).config.website.logo,mode:"",class:"img"},null,8,["src"]),r(m,{class:"text-content mt-[20rpx]"},{default:o((()=>[l("当前版本"+n(c(f).config.version),1)])),_:1})])),_:1})}}}),[["__scopeId","data-v-31e0ee28"]]);export{i as default}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/pages-empty-empty.ea4d445d.js: -------------------------------------------------------------------------------- 1 | import{o as r,e}from"./index.28d89b6b.js";import{_ as o}from"./plugin-vue_export-helper.21dcd24c.js";var d=o({},[["render",function(o,d){return r(),e("div")}]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/pages-webview-webview.f86b5d57.js: -------------------------------------------------------------------------------- 1 | import{d as e,z as s,W as a,o as n,c as o,aQ as r}from"./index.28d89b6b.js";const t=e({__name:"webview",setup(e){const t=s("");return a((e=>{t.value=decodeURIComponent(e.url)})),(e,s)=>{const a=r;return n(),o(a,{src:t.value},null,8,["src"])}}});export{t as default}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/payment_result.4b7a68e2.css: -------------------------------------------------------------------------------- 1 | .result-info .result-info__item[data-v-75ec1c10]{display:flex;justify-content:space-between;margin-bottom:.625rem} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/plugin-vue_export-helper.21dcd24c.js: -------------------------------------------------------------------------------- 1 | var o=(o,r)=>{const t=o.__vccOpts||o;for(const[c,s]of r)t[c]=s;return t};export{o as _}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/recharge.ce883c99.js: -------------------------------------------------------------------------------- 1 | import{C as r}from"./index.28d89b6b.js";function e(e){return r.post({url:"/recharge/placeOrder",data:e},{isAuth:!0})}function t(e){return r.get({url:"/recharge/record",data:e},{isAuth:!0})}function a(){return r.get({url:"/recharge/config"},{isAuth:!0})}export{e as a,t as b,a as r}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/register.4507cc80.css: -------------------------------------------------------------------------------- 1 | uni-page-body[data-v-5a57eecc]{height:100%} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/search.c7afcc50.css: -------------------------------------------------------------------------------- 1 | .suggest[data-v-6b91f383]{height:100%}.suggest .keyword[data-v-6b91f383]{display:inline-block;margin:.75rem .5rem 0 0;padding:.25rem .75rem;border-radius:.8125rem;background-color:#f4f4f4}.search-content[data-v-0a13322f]{height:calc(100vh - 46px - env(safe-area-inset-bottom))}.search-content-s[data-v-0a13322f]{height:100%} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/shop.f075f092.js: -------------------------------------------------------------------------------- 1 | import{C as e}from"./index.28d89b6b.js";function n(){return e.get({url:"/index/index"})}function r(n){return e.get({url:"/index/decorate",data:n})}function t(){return e.get({url:"/index/hotSearch"})}export{r as a,t as b,n as g}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/u-image.a7813cd9.css: -------------------------------------------------------------------------------- 1 | .u-image[data-v-48a6dea4]{position:relative;transition:opacity .5s ease-in-out}.u-image__image[data-v-48a6dea4]{width:100%;height:100%}.u-image__loading[data-v-48a6dea4],.u-image__error[data-v-48a6dea4]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;background-color:#f3f4f6;color:#999;font-size:1.4375rem} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/u-parse.93f983af.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes _show-49097824{0%{opacity:0}to{opacity:1}}@keyframes _show-49097824{0%{opacity:0}to{opacity:1}} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/u-verification-code.e967c1e9.css: -------------------------------------------------------------------------------- 1 | .u-code-wrap[data-v-1cef9d0f]{width:0;height:0;position:fixed;z-index:-1} 2 | -------------------------------------------------------------------------------- /public/mobile/assets/useLockFn.9942a0a1.js: -------------------------------------------------------------------------------- 1 | import{z as t}from"./index.28d89b6b.js";function a(a){const n=t(!1);return{isLock:n,lockFn:async(...t)=>{if(!n.value){n.value=!0;try{const o=await a(...t);return n.value=!1,o}catch(o){throw n.value=!1,o}}}}}export{a as u}; 2 | -------------------------------------------------------------------------------- /public/mobile/assets/user.bfaffbd1.css: -------------------------------------------------------------------------------- 1 | .user-info[data-v-c945b380]{background:url(/mobile/assets/my_topbg.e2ef645f.png);height:115px;background-position:bottom;background-size:100% auto} 2 | -------------------------------------------------------------------------------- /public/mobile/packages/static/images/recharge_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/packages/static/images/recharge_success.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_code.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_mobile.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_password.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_user.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_visit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_visit.png -------------------------------------------------------------------------------- /public/mobile/static/images/icon/icon_wx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/icon/icon_wx.png -------------------------------------------------------------------------------- /public/mobile/static/images/payment/icon_succeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/payment/icon_succeed.png -------------------------------------------------------------------------------- /public/mobile/static/images/payment/icon_waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/payment/icon_waiting.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/home.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/home_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/home_s.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/news.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/news_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/news_s.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/user.png -------------------------------------------------------------------------------- /public/mobile/static/images/tabs/user_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/tabs/user_s.png -------------------------------------------------------------------------------- /public/mobile/static/images/user/default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/user/default_avatar.png -------------------------------------------------------------------------------- /public/mobile/static/images/user/my_topbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/mobile/static/images/user/my_topbg.png -------------------------------------------------------------------------------- /public/pc/_nuxt/_plugin-vue_export-helper.a1a6add7.js: -------------------------------------------------------------------------------- 1 | const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/empty_news.35f4c0a6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/empty_news.35f4c0a6.png -------------------------------------------------------------------------------- /public/pc/_nuxt/empty_news.eefe82f5.js: -------------------------------------------------------------------------------- 1 | const e=""+new URL("empty_news.35f4c0a6.png",import.meta.url).href;export{e}; 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/icon_wx.7943fed9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/icon_wx.7943fed9.png -------------------------------------------------------------------------------- /public/pc/_nuxt/iconfont.6889fc8c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/iconfont.6889fc8c.woff2 -------------------------------------------------------------------------------- /public/pc/_nuxt/iconfont.69fb8cbd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/iconfont.69fb8cbd.woff -------------------------------------------------------------------------------- /public/pc/_nuxt/iconfont.95981ae5.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/iconfont.95981ae5.ttf -------------------------------------------------------------------------------- /public/pc/_nuxt/info.87e46673.css: -------------------------------------------------------------------------------- 1 | .user-info .info-item[data-v-ed7fa0a8]{align-items:center;border-bottom:1px solid var(--el-border-color);display:flex;padding:10px 0}.user-info .info-item .item-name[data-v-ed7fa0a8]{color:var(--el-text-color-regular);width:80px}.user-info .avatar[data-v-ed7fa0a8]{cursor:pointer;display:flex;position:relative}.user-info .avatar .change-btn[data-v-ed7fa0a8]{background-color:#00000080;border-bottom-left-radius:9999px;border-bottom-right-radius:9999px;bottom:0;display:none;height:50%;line-height:30px;position:absolute;text-align:center;width:100%}.user-info .avatar:hover .change-btn[data-v-ed7fa0a8]{display:block} 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/news.8419498b.js: -------------------------------------------------------------------------------- 1 | function t(){return $request.get({url:"/article/category"})}function r(e){return $request.get({url:"/article/list",params:e})}function l(){return $request.get({url:"/pc/articleCenter"})}function c(e){return $request.get({url:"/pc/articleDetail",params:e})}function u(e){return $request.post({url:"/article/collectAdd",params:e})}function n(e){return $request.post({url:"/article/collectCancel",params:e})}function i(e){return $request.get({url:"/article/collectList",params:e})}export{c as a,u as b,n as c,l as d,i as e,t as f,r as g}; 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/placeholder.1ccc50b9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/placeholder.1ccc50b9.png -------------------------------------------------------------------------------- /public/pc/_nuxt/security.55b8188b.css: -------------------------------------------------------------------------------- 1 | .user-info .info-item[data-v-90a4e123]{align-items:center;border-bottom:1px solid var(--el-border-color);display:flex;padding:10px 0}.user-info .info-item .item-name[data-v-90a4e123]{color:var(--el-text-color-regular);width:80px} 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/shop.d1b2f4ce.js: -------------------------------------------------------------------------------- 1 | function t(){return $request.get({url:"/pc/index"})}function r(e){return $request.get({url:"/pay/wxPayCode",params:e})}export{t as g,r as w}; 2 | -------------------------------------------------------------------------------- /public/pc/_nuxt/yangli.443b9b25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/pc/_nuxt/yangli.443b9b25.png -------------------------------------------------------------------------------- /public/pc/_nuxt/yangli.576cdc19.js: -------------------------------------------------------------------------------- 1 | const e=""+new URL("yangli.443b9b25.png",import.meta.url).href;export{e as r}; 2 | -------------------------------------------------------------------------------- /public/pc/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/uploads/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/public/uploads/index.html -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | /target/ 3 | /**/target/ 4 | !.mvn/wrapper/maven-wrapper.jar 5 | 6 | ### STS ### 7 | .apt_generated 8 | .classpath 9 | .factorypath 10 | .project 11 | .settings 12 | .springBeans 13 | .sts4-cache 14 | 15 | ### IntelliJ IDEA ### 16 | .idea 17 | *.iws 18 | *.iml 19 | *.ipr 20 | 21 | ### NetBeans ### 22 | /nbproject/private/ 23 | /nbbuild/ 24 | /dist/ 25 | /nbdist/ 26 | /.nb-gradle/ 27 | /build/ 28 | 29 | ### VS Code ### 30 | .vscode/ 31 | rebel-remote.xml 32 | rebel.xml 33 | 34 | ### customize ### 35 | /likeadmin-java.iml 36 | /logs -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/aop/Log.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.aop; 2 | 3 | import com.mdd.admin.aop.aspect.RequestType; 4 | 5 | import java.lang.annotation.*; 6 | 7 | /** 8 | * 日志记录类 9 | */ 10 | @Target({ElementType.METHOD}) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | public @interface Log { 14 | 15 | /** 16 | * 模块名称 17 | * 18 | * @return String 19 | */ 20 | String title() default ""; 21 | 22 | /** 23 | * 请求类型 24 | * 25 | * @return String 26 | */ 27 | RequestType requestType() default RequestType.Default; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/aop/aspect/RequestType.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.aop.aspect; 2 | 3 | /** 4 | * 请求参数类 5 | */ 6 | public enum RequestType { 7 | /** 8 | * 文件类型 9 | */ 10 | File, 11 | /** 12 | * 默认数据类型 13 | */ 14 | Default 15 | 16 | } 17 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/config/quartz/TaskConstants.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.config.quartz; 2 | 3 | /** 4 | * 计划任务常量 5 | */ 6 | public class TaskConstants { 7 | 8 | /** 执行任务名 */ 9 | public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; 10 | 11 | /** 执行目标键 */ 12 | public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; 13 | 14 | /** 状态: 运行 */ 15 | public static final Integer STATUS_RUN = 1; 16 | 17 | /** 状态: 失败 */ 18 | public static final Integer STATUS_FAIL = 2; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/config/quartz/exceution/QuartzJobExecution.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.config.quartz.exceution; 2 | 3 | import com.mdd.admin.config.quartz.InvokeUtils; 4 | import com.mdd.common.entity.Crontab; 5 | import org.quartz.JobExecutionContext; 6 | 7 | /** 8 | * 允许并发任务 9 | */ 10 | public class QuartzJobExecution extends AbstractQuartzJob { 11 | 12 | @Override 13 | protected void doExecute(JobExecutionContext context, Crontab crontab) throws Exception { 14 | InvokeUtils.invokeMethod(crontab); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/service/IChannelOpService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.service; 2 | 3 | import com.mdd.admin.validate.channel.ChannelOpValidate; 4 | import com.mdd.admin.vo.channel.ChannelOpVo; 5 | 6 | /** 7 | * 微信开放渠道设置接口服务类 8 | */ 9 | public interface IChannelOpService { 10 | 11 | /** 12 | * 开放平台设置详情 13 | * 14 | * @author fzr 15 | * @return ChannelOpVo 16 | */ 17 | ChannelOpVo detail(); 18 | 19 | /** 20 | * 开放平台设置保存 21 | * 22 | * @author fzr 23 | * @param opValidate 参数 24 | */ 25 | void save(ChannelOpValidate opValidate); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/service/IDecorateDataService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.service; 2 | 3 | import com.mdd.admin.vo.decorate.DecorateDataArticleVo; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * 装修数据服务接口类 9 | */ 10 | public interface IDecorateDataService { 11 | 12 | /** 13 | * 获取文章数据 14 | * 15 | * @author fzr 16 | * @param limit 条数 17 | * @return List 18 | */ 19 | List article(Integer limit); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/service/IIndexService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.service; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * 主页服务接口类 7 | */ 8 | public interface IIndexService { 9 | 10 | /** 11 | * 控制台数据 12 | * 13 | * @author fzr 14 | * @return Map 15 | */ 16 | Map console(); 17 | 18 | /** 19 | * 公共配置 20 | */ 21 | Map config(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/service/ISystemCacheService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.service; 2 | 3 | /** 4 | * 系统缓存接口类 5 | */ 6 | public interface ISystemCacheService { 7 | 8 | /** 9 | * 清除系统缓存 10 | * 11 | */ 12 | void clear(); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/service/impl/SystemCacheServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.service.impl; 2 | 3 | import com.mdd.admin.service.ISystemCacheService; 4 | import com.mdd.common.cache.ConfigCache; 5 | import org.springframework.stereotype.Service; 6 | 7 | /** 8 | * 系统缓存实现类 9 | */ 10 | @Service 11 | public class SystemCacheServiceImpl implements ISystemCacheService { 12 | 13 | /** 14 | * 清除系统缓存 15 | */ 16 | @Override 17 | public void clear() { 18 | ConfigCache.clear(); 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/validate/article/ArtCateSearchValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.validate.article; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("文章分类搜索参数") 11 | public class ArtCateSearchValidate implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "分类名称") 16 | private String name; 17 | 18 | @ApiModelProperty(value = "是否显示") 19 | private Integer isShow; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/validate/channel/ChannelOpValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.validate.channel; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("开发平台渠道参数") 11 | public class ChannelOpValidate implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "appId") 16 | private String appId; 17 | 18 | @ApiModelProperty(value = "appSecret") 19 | private String appSecret; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/validate/commons/IdValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.validate.commons; 2 | 3 | import com.mdd.common.validator.annotation.IDMust; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | import java.io.Serializable; 9 | 10 | @Data 11 | @ApiModel("ID参数") 12 | public class IdValidate implements Serializable { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | @IDMust(message = "id参数必传且需大于0") 17 | @ApiModelProperty(value = "ID", required = true) 18 | private Integer id; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayMethodValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.validate.setting; 2 | 3 | import com.mdd.admin.vo.setting.SettingPaymentMethodVo; 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @ApiModel("支付方式设置参数") 11 | public class SettingPayMethodValidate { 12 | 13 | List> data; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingUserValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.validate.setting; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("用户设置参数") 11 | public class SettingUserValidate implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "默认头像") 16 | private String defaultAvatar = ""; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/channel/ChannelOpVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.channel; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("开发平台Vo") 11 | public class ChannelOpVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "appId") 16 | private String appId; 17 | 18 | @ApiModelProperty(value = "appSecret") 19 | private String appSecret; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingCopyrightVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("版权设置Vo") 11 | public class SettingCopyrightVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "名称") 16 | private String name; 17 | 18 | @ApiModelProperty(value = "链接") 19 | private String link; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentDetailVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class SettingPaymentDetailVo implements Serializable { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentMethodVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class SettingPaymentMethodVo implements Serializable { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Integer id; 13 | 14 | private String name; 15 | 16 | private String showName; 17 | 18 | private String icon; 19 | 20 | private Integer isDefault; 21 | 22 | private Integer status; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingProtocolObjectVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("政策协议设置对象Vo") 11 | public class SettingProtocolObjectVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "协议名称") 16 | private String name; 17 | 18 | @ApiModelProperty(value = "协议内容") 19 | private String content; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingSearchObjectVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("热门搜索对象Vo") 11 | public class SettingSearchObjectVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "关键词") 16 | private String name; 17 | 18 | @ApiModelProperty(value = "排序") 19 | private Integer sort; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingUserVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.setting; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("用户设置Vo") 11 | public class SettingUserVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "默认头像") 16 | private String defaultAvatar; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemAuthAdminSelvesVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.system; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel("当前系统管理员Vo") 9 | public class SystemAuthAdminSelvesVo { 10 | 11 | @ApiModelProperty(value = "用户信息") 12 | private Object user; 13 | 14 | @ApiModelProperty(value = "权限集合: [[*]=>所有权限, ['article:add']=>部分权限]") 15 | private Object permissions; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemCaptchaVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.system; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | @Data 8 | @ApiModel("验证码") 9 | public class SystemCaptchaVo { 10 | 11 | @ApiModelProperty(value = "标识") 12 | private String uuid; 13 | 14 | @ApiModelProperty(value = "图片") 15 | private String img; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemLoginVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.admin.vo.system; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel("系统登录Vo") 11 | public class SystemLoginVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "管理员ID") 16 | private Integer id; 17 | 18 | @ApiModelProperty(value = "登录令牌") 19 | private String token; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-admin/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | /////////////////////////////////////////////////////// 3 | // _ _ _ _ _ _ // 4 | // | | (_) | __ / \ __| |_ __ ___ (_)_ __ // 5 | // | | | | |/ / / _ \ / _` | '_ ` _ \| | '_ \ // 6 | // | |___| | < / ___ \ (_| | | | | | | | | | | // 7 | // |_____|_|_|\_\/_/ \_\__,_|_| |_| |_|_|_| |_| // 8 | // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // 9 | // 佛祖保佑 永不宕机 永无BUG // 10 | ////////////////////////////////////////////////////// -------------------------------------------------------------------------------- /server/like-admin/src/main/resources/mapper/hot163/Hot163Mapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/aop/NotLogin.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.aop; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 免登录校验注解类 7 | * PS: 改注解无需实现类,由拦截器监听 8 | */ 9 | @Target({ElementType.METHOD}) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface NotLogin { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/aop/NotPower.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.aop; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 免权限校验注解类 7 | * PS: 改注解无需实现类,由拦截器监听 8 | */ 9 | @Target({ElementType.METHOD}) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface NotPower { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/exception/BaseException.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.exception; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * 异常基类 8 | */ 9 | @Data 10 | @EqualsAndHashCode(callSuper = true) 11 | public class BaseException extends RuntimeException { 12 | 13 | private Integer code; 14 | private String msg; 15 | 16 | public BaseException(Integer code, String msg) { 17 | this.code = code; 18 | this.msg = msg; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/exception/LoginException.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.exception; 2 | 3 | /** 4 | * 登录异常类 5 | */ 6 | public class LoginException extends BaseException { 7 | 8 | public LoginException(Integer code, String msg) { 9 | super(code, msg); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/exception/OperateException.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.exception; 2 | 3 | import com.mdd.common.enums.ErrorEnum; 4 | 5 | /** 6 | * 操作系统异常 7 | */ 8 | public class OperateException extends BaseException { 9 | 10 | public OperateException(String msg) { 11 | super(ErrorEnum.FAILED.getCode(), msg); 12 | } 13 | 14 | public OperateException(String msg, Integer errCode) { 15 | super(errCode, msg); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/exception/PaymentException.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.exception; 2 | 3 | import com.mdd.common.enums.ErrorEnum; 4 | 5 | /** 6 | * 支付失败异常 7 | */ 8 | public class PaymentException extends BaseException { 9 | 10 | public PaymentException(String msg) { 11 | super(ErrorEnum.PAYMENT_ERROR.getCode(), msg); 12 | } 13 | 14 | public PaymentException(String msg, Integer errCode) { 15 | super(errCode, msg); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/CrontabMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.Crontab; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 计划任务Mapper 9 | */ 10 | @Mapper 11 | public interface CrontabMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/OfficialReplyMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.OfficialReply; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 公众号回复Mapper 9 | */ 10 | @Mapper 11 | public interface OfficialReplyMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/ai/AiArtcodeMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.ai; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.ai.AiArtcode; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 二维码生成Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface AiArtcodeMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/ai/AiArtcodeModelMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.ai; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.ai.AiArtcodeModel; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 艺术二维码模板Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface AiArtcodeModelMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/ai/AiConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.ai; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.ai.AiConfig; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * AI配置Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface AiConfigMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/ai/AiTaskMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.ai; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.ai.AiTask; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 任务调度Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface AiTaskMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/album/AlbumCateMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.album; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.album.AlbumCate; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 相册分类 9 | */ 10 | @Mapper 11 | public interface AlbumCateMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/album/AlbumMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.album; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.album.Album; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 相册 9 | */ 10 | @Mapper 11 | public interface AlbumMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/apif/DataApifNormsMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.apif; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.apif.DataApifNorms; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * API规格Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface DataApifNormsMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/apif/DataApifOrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.apif; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.apif.DataApifOrder; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 接口订单Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface DataApifOrderMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/apif/DataApifUserLogMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.apif; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.apif.DataApifUserLog; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 接口日志Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface DataApifUserLogMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/apif/DataApifUserMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.apif; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.apif.DataApifUser; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 用户接口Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface DataApifUserMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/article/ArticleCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.article; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.article.ArticleCategory; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 文章分类 9 | */ 10 | @Mapper 11 | public interface ArticleCategoryMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/article/ArticleCollectMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.article; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.article.ArticleCollect; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 文章收藏Mapper 9 | */ 10 | @Mapper 11 | public interface ArticleCollectMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/article/ArticleMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.article; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.article.Article; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 文章 9 | */ 10 | @Mapper 11 | public interface ArticleMapper extends IBaseMapper
{ 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/decorate/DecoratePageMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.decorate; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.decorate.DecoratePage; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 页面装修Mapper 9 | */ 10 | @Mapper 11 | public interface DecoratePageMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/decorate/DecorateTabbarMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.decorate; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.decorate.DecorateTabbar; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 底部导航Mapper 9 | */ 10 | @Mapper 11 | public interface DecorateTabbarMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/DataClassifyMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.DataClassify; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 数据分类Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface DataClassifyMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/DataContentsMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.DataContents; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.apache.ibatis.annotations.Select; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * 数据目录Mapper 12 | * @author xmg 13 | */ 14 | @Mapper 15 | public interface DataContentsMapper extends IBaseMapper { 16 | 17 | // @Select("select * from la_data_contents") 18 | List selectAll(); 19 | } 20 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotBatchMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotBatch; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 热搜批次管理Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotBatchMapper extends IBaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotBilibiliMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotBilibili; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 哔哩热榜Mapper 9 | * @author LikeAdmin 10 | */ 11 | @Mapper 12 | public interface HotBilibiliMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotDouyinMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotDouyin; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 抖音热搜Mapper 9 | * @author LikeAdmin 10 | */ 11 | @Mapper 12 | public interface HotDouyinMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotJuejinMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotJuejin; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 掘金热搜Mapper 9 | * @author LikeAdmin 10 | */ 11 | @Mapper 12 | public interface HotJuejinMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotPaperMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotPaper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 澎湃热榜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotPaperMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotQqMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotQq; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 腾讯热榜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotQqMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotSougouMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotSougou; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 搜狗热榜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotSougouMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotSspaiMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotSspai; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 少数派热搜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotSspaiMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotTencentMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotTencent; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 腾讯热榜Mapper 9 | * @author LikeAdmin 10 | */ 11 | @Mapper 12 | public interface HotTencentMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotTiebaMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotTieba; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 百度贴吧热榜Mapper 9 | * @author LikeAdmin 10 | */ 11 | @Mapper 12 | public interface HotTiebaMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotToutiaoMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotToutiao; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 头条热榜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotToutiaoMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotWeiboMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | 4 | import com.mdd.common.core.basics.IBaseMapper; 5 | import com.mdd.common.entity.hot.HotWeibo; 6 | import org.apache.ibatis.annotations.Mapper; 7 | 8 | /** 9 | * 微博热榜Mapper 10 | * @author xmg 11 | */ 12 | @Mapper 13 | public interface HotWeiboMapper extends IBaseMapper { 14 | } 15 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotWxreadMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotWxread; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 微信阅读热榜Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotWxreadMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/HotZhihuMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.HotZhihu; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 知乎热点Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface HotZhihuMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/hot/MkHot163Mapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.hot; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.hot.MkHot163; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 网易热搜Mapper 9 | * @author ZYJ 10 | */ 11 | @Mapper 12 | public interface MkHot163Mapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/notice/NoticeRecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.notice; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.notice.NoticeRecord; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 通知记录Mapper 9 | */ 10 | @Mapper 11 | public interface NoticeRecordMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/notice/NoticeSettingMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.notice; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.notice.NoticeSetting; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 通知设置Mapper 9 | */ 10 | @Mapper 11 | public interface NoticeSettingMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.setting; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.setting.DevPayConfig; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 支付配置Mapper 9 | */ 10 | @Mapper 11 | public interface DevPayConfigMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayWayMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.setting; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.setting.DevPayWay; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 支付方式Mapper 9 | */ 10 | @Mapper 11 | public interface DevPayWayMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/setting/DictDataMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.setting; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.setting.DictData; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 字典数据Mapper 9 | */ 10 | @Mapper 11 | public interface DictDataMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/setting/DictTypeMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.setting; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.setting.DictType; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 字典类型Mapper 9 | */ 10 | @Mapper 11 | public interface DictTypeMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/setting/HotSearchMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.setting; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.setting.HotSearch; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 热门搜索Mapper 9 | */ 10 | @Mapper 11 | public interface HotSearchMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemAuthDept; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统岗位Mapper 9 | */ 10 | @Mapper 11 | public interface SystemAuthDeptMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemAuthMenu; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统菜单Mapper 9 | */ 10 | @Mapper 11 | public interface SystemAuthMenuMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthPermMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemAuthPerm; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 角色菜单Mapper 9 | */ 10 | @Mapper 11 | public interface SystemAuthPermMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthPostMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemAuthPost; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统岗位Mapper 9 | */ 10 | @Mapper 11 | public interface SystemAuthPostMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthRoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemAuthRole; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统角色Mapper 9 | */ 10 | @Mapper 11 | public interface SystemAuthRoleMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemConfig; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统配置 9 | */ 10 | @Mapper 11 | public interface SystemConfigMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemLogLoginMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemLogLogin; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统登录日志 9 | */ 10 | @Mapper 11 | public interface SystemLogLoginMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/system/SystemLogOperateMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.system; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.system.SystemLogOperate; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 系统操作日志 9 | */ 10 | @Mapper 11 | public interface SystemLogOperateMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserAuthMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.UserAuth; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 用户授权Mapper 9 | */ 10 | @Mapper 11 | public interface UserAuthMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.User; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 用户Mapper 9 | */ 10 | @Mapper 11 | public interface UserMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserPointsChargrecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.UserPointsChargrecord; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 充值记录Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface UserPointsChargrecordMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserPointsMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.UserPoints; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 用户点数Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface UserPointsMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserPointsOrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.UserPointsOrder; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 点数订单Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface UserPointsOrderMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/mapper/user/UserPointsUserecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.mapper.user; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.common.entity.user.UserPointsUserecord; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 使用记录Mapper 9 | * @author xmg 10 | */ 11 | @Mapper 12 | public interface UserPointsUserecordMapper extends IBaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/plugin/notice/engine/MpNoticeHandle.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.plugin.notice.engine; 2 | 3 | import java.util.Map; 4 | 5 | public class MpNoticeHandle { 6 | 7 | public void send(Map config, Map params, Map smsTemplate) { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/plugin/notice/engine/OaNoticeHandle.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.plugin.notice.engine; 2 | 3 | import java.util.Map; 4 | 5 | public class OaNoticeHandle { 6 | 7 | public void send(Map config, Map params, Map smsTemplate) { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/plugin/notice/vo/NoticeSmsVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.plugin.notice.vo; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | @Data 7 | @Accessors(chain = true) 8 | public class NoticeSmsVo { 9 | 10 | private Integer scene; 11 | private String mobile; 12 | private Integer expire; 13 | private String[] params; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/plugin/storage/UploadFilesVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.plugin.storage; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class UploadFilesVo implements Serializable { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Integer id; 13 | private String name; 14 | private Long size; 15 | private String ext; 16 | private String url; 17 | private String path; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/vo/ai/AiApiKeyVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.vo.ai; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | @Data 9 | @ApiModel("apikey校验") 10 | public class AiApiKeyVo implements Serializable { 11 | 12 | private static final long serialVersionUID = 1L; 13 | 14 | /** 15 | * apiKey是否正常 16 | */ 17 | private boolean flag; 18 | 19 | /** 20 | * 返回消息 21 | */ 22 | private String msg; 23 | 24 | /** 25 | * 用户ID 26 | */ 27 | private String userId; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/vo/wechat/WechatWebLoginData.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.vo.wechat; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 微信登录链接数据 7 | */ 8 | @Data 9 | public class WechatWebLoginData { 10 | /** 11 | * 微信APPID 12 | */ 13 | private String appId; 14 | 15 | /** 16 | * 应用授权作用域 17 | */ 18 | private String scope; 19 | 20 | /** 21 | * 交互code 22 | */ 23 | private String state; 24 | 25 | /** 26 | * 授权回调url 27 | */ 28 | private String redirect_uri; 29 | 30 | 31 | } -------------------------------------------------------------------------------- /server/like-common/src/main/java/com/mdd/common/vo/wechat/WechatWebLoginResponse.java: -------------------------------------------------------------------------------- 1 | package com.mdd.common.vo.wechat; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 微信登录链接获取 7 | */ 8 | @Data 9 | public class WechatWebLoginResponse { 10 | /** 11 | * 消息 12 | */ 13 | private String msg; 14 | 15 | /** 16 | * code 17 | */ 18 | private int code; 19 | 20 | /** 21 | * 登录返回数据 22 | */ 23 | private WechatWebLoginData data; 24 | } -------------------------------------------------------------------------------- /server/like-common/src/main/resources/mapper/hot/ApifMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/ad01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/ad01.jpg -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/article01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/article01.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/article02.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/article02.jpeg -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/article03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/article03.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/backend_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/backend_avatar.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/backend_backdrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/backend_backdrop.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/backend_favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/backend_favicon.ico -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/backend_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/backend_logo.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/balance_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/balance_pay.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/banner01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/banner01.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/banner02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/banner02.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/default_avatar.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/nav01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/nav01.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/nav02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/nav02.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/nav03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/nav03.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/nav04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/nav04.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/nav05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/nav05.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/pc_favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/pc_favicon.ico -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/pc_logo - 副本.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/pc_logo - 副本.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/pc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/pc_logo.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/shop_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/shop_logo.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_home.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_home_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_home_sel.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_me.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_me_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_me_sel.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_text.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/tabbar_text_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/tabbar_text_sel.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/user_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/user_about.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/user_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/user_collect.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/user_kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/user_kefu.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/user_money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/user_money.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/user_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/user_setting.png -------------------------------------------------------------------------------- /server/like-common/src/main/resources/static/wechat_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-common/src/main/resources/static/wechat_pay.png -------------------------------------------------------------------------------- /server/like-front/logs/front/error.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/server/like-front/logs/front/error.log -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/service/ILogsService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.service; 2 | 3 | import com.mdd.common.core.PageResult; 4 | import com.mdd.front.validate.common.PageValidate; 5 | import com.mdd.front.vo.RechargeRecordVo; 6 | 7 | /** 8 | * 日志接口服务类 9 | */ 10 | public interface ILogsService { 11 | 12 | PageResult userMoney(PageValidate pageValidate, Integer userId, Integer type); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/service/IWechatService.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.service; 2 | 3 | import java.util.Map; 4 | 5 | public interface IWechatService { 6 | 7 | Map jsConfig(String url) throws Exception; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/validate/RechargeValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.validate; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | 6 | import javax.validation.constraints.NotNull; 7 | import java.io.Serializable; 8 | import java.math.BigDecimal; 9 | 10 | @Data 11 | @ApiModel("新用户更新信息参数") 12 | public class RechargeValidate implements Serializable { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | @NotNull(message = "orderAmount参数缺失") 17 | private BigDecimal orderAmount; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/validate/login/LoginCodeValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.validate.login; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import javax.validation.constraints.NotNull; 8 | 9 | @Data 10 | @ApiModel("微信登录参数") 11 | public class LoginCodeValidate { 12 | 13 | @NotNull(message = "code参数缺失") 14 | @ApiModelProperty(value = "微信code", required = true) 15 | private String code; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/ai/AiRecordSearchValidate.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.ai; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | import java.math.BigDecimal; 9 | 10 | @Data 11 | @ApiModel("搜素参数") 12 | public class AiRecordSearchValidate implements Serializable { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | @ApiModelProperty(value = "用户ID") 17 | private String userId; 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/article/ArticleCateVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.article; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel(value = "文章分类Vo") 11 | public class ArticleCateVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "分类ID") 16 | private Integer id; 17 | 18 | @ApiModelProperty(value = "分类名称") 19 | private String name; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/article/PcArticleCenterVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.article; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel(value = "PC资讯中心Vo") 11 | public class PcArticleCenterVo implements Serializable { 12 | 13 | @ApiModelProperty(value = "ID") 14 | private Integer id; 15 | 16 | @ApiModelProperty(value = "名称") 17 | private String name; 18 | 19 | @ApiModelProperty(value = "文章") 20 | private Object article; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/login/LoginUrlsVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.login; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @ApiModel(value = "跳转链接Vo") 11 | public class LoginUrlsVo implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | @ApiModelProperty(value = "http链接") 16 | private String url; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/login/WechatOauthInfoData.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.login; 2 | 3 | import com.alibaba.fastjson.JSONObject; 4 | import lombok.Data; 5 | 6 | /** 7 | * 微信登录用户数据 8 | */ 9 | @Data 10 | public class WechatOauthInfoData { 11 | /** 12 | * 用户openId 13 | */ 14 | private String openId; 15 | 16 | /** 17 | * 额外参数 18 | */ 19 | private JSONObject params; 20 | 21 | /** 22 | * 微信用户信息 23 | */ 24 | private WechatOauthInfo wxUserInfo; 25 | 26 | /** 27 | * 回调的url 28 | */ 29 | private String callBackUrl; 30 | 31 | } 32 | 33 | -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/login/WechatOauthInfoResponse.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.login; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 微信登录授权信息 7 | */ 8 | @Data 9 | public class WechatOauthInfoResponse { 10 | /** 11 | * 消息 12 | */ 13 | private String msg; 14 | 15 | /** 16 | * code 17 | */ 18 | private int code; 19 | 20 | /** 21 | * 用户数据 22 | */ 23 | private WechatOauthInfoData data; 24 | 25 | } -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/pay/PayCommonVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.pay; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * 微信登录链接获取 7 | */ 8 | @Data 9 | public class PayCommonVo { 10 | /** 11 | * 消息 12 | */ 13 | private String msg; 14 | 15 | /** 16 | * 返回数据(二维码地址或微信的支付连接【取决于传递的type类型】) 17 | */ 18 | private String data; 19 | 20 | /** 21 | * 状态【0:成功;1:失败】 22 | */ 23 | private String code; 24 | } -------------------------------------------------------------------------------- /server/like-front/src/main/java/com/mdd/front/vo/pay/PayWayListVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.front.vo.pay; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | import java.math.BigDecimal; 9 | import java.util.List; 10 | 11 | @Data 12 | @ApiModel(value = "支付方式列表Vo") 13 | public class PayWayListVo implements Serializable { 14 | 15 | @ApiModelProperty(value = "订单金额") 16 | private BigDecimal orderAmount; 17 | 18 | @ApiModelProperty(value = "方式列表") 19 | private List list; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /server/like-front/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | /////////////////////////////////////////////////////// 3 | // _ _ _ _ _ _ // 4 | // | | (_) | __ / \ __| |_ __ ___ (_)_ __ // 5 | // | | | | |/ / / _ \ / _` | '_ ` _ \| | '_ \ // 6 | // | |___| | < / ___ \ (_| | | | | | | | | | | // 7 | // |_____|_|_|\_\/_/ \_\__,_|_| |_| |_|_|_| |_| // 8 | // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // 9 | // 佛祖保佑 永不宕机 永无BUG // 10 | ////////////////////////////////////////////////////// -------------------------------------------------------------------------------- /server/like-generator/src/main/java/com/mdd/generator/config/GenConfig.java: -------------------------------------------------------------------------------- 1 | package com.mdd.generator.config; 2 | 3 | public class GenConfig { 4 | 5 | // 基础包名 6 | public static String packageName = "com.mdd"; 7 | 8 | // 后台应用 9 | public static String adminPackage = "like-admin/src/main/java/com/mdd/admin"; 10 | 11 | // 公共应用 12 | public static String commonPackage = "like-common/src/main/java/com/mdd/common"; 13 | 14 | // 是否去除表前缀 15 | public static Boolean isRemoveTablePrefix = true; 16 | 17 | // 注释类型[top=顶, right=右] 18 | public static String notesType = "right"; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /server/like-generator/src/main/java/com/mdd/generator/constant/JavaConstants.java: -------------------------------------------------------------------------------- 1 | package com.mdd.generator.constant; 2 | 3 | public class JavaConstants { 4 | 5 | /** 字符串类型 */ 6 | public static final String TYPE_STRING = "String"; 7 | 8 | /** 整型 */ 9 | public static final String TYPE_INTEGER = "Integer"; 10 | 11 | /** 长整型 */ 12 | public static final String TYPE_LONG = "Long"; 13 | 14 | /** 高精度计算类型 */ 15 | public static final String TYPE_BIG_DECIMAL = "BigDecimal"; 16 | 17 | /** 时间类型 */ 18 | public static final String TYPE_DATE = "Date"; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /server/like-generator/src/main/java/com/mdd/generator/mapper/GenTableColumnMapper.java: -------------------------------------------------------------------------------- 1 | package com.mdd.generator.mapper; 2 | 3 | import com.mdd.common.core.basics.IBaseMapper; 4 | import com.mdd.generator.entity.GenTableColumn; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | /** 8 | * 代码生成表列 9 | */ 10 | @Mapper 11 | public interface GenTableColumnMapper extends IBaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /server/like-generator/src/main/java/com/mdd/generator/vo/DbColumnVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.generator.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class DbColumnVo implements Serializable { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private String columnName; // 字段名称 13 | private String columnComment; // 字段描述 14 | private String columnType; // 字段类型 15 | 16 | } 17 | -------------------------------------------------------------------------------- /server/like-generator/src/main/java/com/mdd/generator/vo/DbTableVo.java: -------------------------------------------------------------------------------- 1 | package com.mdd.generator.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.Date; 7 | 8 | /*** 9 | * 表实体 10 | */ 11 | @Data 12 | public class DbTableVo implements Serializable { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | private String tableName; // 表的名称 17 | private String tableComment; // 表的描述 18 | private String authorName; // 作者名称 19 | private Date createTime; // 创建时间 20 | private Date updateTime; // 更新时间 21 | 22 | } 23 | -------------------------------------------------------------------------------- /server/like-generator/src/main/resources/java/mapper.java.vm: -------------------------------------------------------------------------------- 1 | package ${packageName}.common.mapper; 2 | 3 | import ${packageName}.common.core.basics.IBaseMapper; 4 | import ${packageName}.common.entity.${EntityName}; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | #set($isAuthor = !$authorName.equals("")) 8 | /** 9 | * ${functionName}Mapper 10 | #if($isAuthor) 11 | * @author ${authorName} 12 | #end 13 | */ 14 | @Mapper 15 | public interface ${EntityName}Mapper extends IBaseMapper<${EntityName}> { 16 | } 17 | -------------------------------------------------------------------------------- /uniapp/.env.development.example: -------------------------------------------------------------------------------- 1 | 2 | # 请求域名 3 | VITE_APP_BASE_URL='' -------------------------------------------------------------------------------- /uniapp/.env.production.example: -------------------------------------------------------------------------------- 1 | 2 | # 请求域名 3 | VITE_APP_BASE_URL='' -------------------------------------------------------------------------------- /uniapp/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | 18 | /cypress/videos/ 19 | /cypress/screenshots/ 20 | 21 | # Editor directories and files 22 | .idea 23 | *.suo 24 | *.ntvs* 25 | *.njsproj 26 | *.sln 27 | *.sw? 28 | .hbuilderx 29 | # .env 30 | .env.development 31 | .env.production 32 | -------------------------------------------------------------------------------- /uniapp/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /uniapp/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.detectIndentation": false, 3 | "editor.tabSize": 4, 4 | "editor.formatOnSave": true, 5 | "editor.codeActionsOnSave": { 6 | "source.fixAll.eslint": true 7 | }, 8 | "css.validate": false, 9 | "less.validate": false, 10 | "scss.validate": false 11 | } 12 | -------------------------------------------------------------------------------- /uniapp/src/api/pay.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | //支付方式 4 | export function getPayWay(data: any) { 5 | return request.get({ url: '/pay/payWay', data }, { isAuth: true }) 6 | } 7 | 8 | // 预支付 9 | export function prepay(data: any) { 10 | return request.post({ url: '/pay/prepay', data }, { isAuth: true }) 11 | } 12 | 13 | // 预支付 14 | export function getPayResult(data: any) { 15 | return request.get({ url: '/pay/payStatus', data }, { isAuth: true }) 16 | } 17 | -------------------------------------------------------------------------------- /uniapp/src/api/recharge.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | //充值 4 | export function recharge(data: any) { 5 | return request.post({ url: '/recharge/placeOrder', data }, { isAuth: true }) 6 | } 7 | 8 | //充值记录 9 | export function rechargeRecord(data: any) { 10 | return request.get({ url: '/recharge/record', data }, { isAuth: true }) 11 | } 12 | 13 | // 充值配置 14 | export function rechargeConfig() { 15 | return request.get({ url: '/recharge/config' }, { isAuth: true }) 16 | } 17 | -------------------------------------------------------------------------------- /uniapp/src/api/shop.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | //首页数据 4 | export function getIndex() { 5 | return request.get({ url: '/index/index' }) 6 | } 7 | 8 | // 装修页面 9 | export function getDecorate(data: any) { 10 | return request.get({ url: '/index/decorate', data }) 11 | } 12 | 13 | /** 14 | * @description 热门搜索 15 | * @return { Promise } 16 | */ 17 | export function getHotSearch() { 18 | return request.get({ url: '/index/hotSearch' }) 19 | } 20 | -------------------------------------------------------------------------------- /uniapp/src/components/app/app.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/components/app/app.vue -------------------------------------------------------------------------------- /uniapp/src/components/widgets/search/search.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /uniapp/src/enums/agreementEnums.ts: -------------------------------------------------------------------------------- 1 | //菜单主题类型 2 | export enum AgreementEnum { 3 | PRIVACY = 'privacy', 4 | SERVICE = 'service' 5 | } 6 | -------------------------------------------------------------------------------- /uniapp/src/enums/cacheEnums.ts: -------------------------------------------------------------------------------- 1 | // 本地缓冲key 2 | 3 | //token 4 | export const TOKEN_KEY = 'token' 5 | 6 | // 搜索历史记录 7 | export const HISTORY = 'history' 8 | 9 | export const BACK_URL = 'back_url' 10 | -------------------------------------------------------------------------------- /uniapp/src/hooks/useCopy.ts: -------------------------------------------------------------------------------- 1 | export function useCopy() { 2 | const copy = (text: string) => { 3 | uni.setClipboardData({ 4 | data: String(text) 5 | }) 6 | } 7 | return { 8 | copy 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /uniapp/src/hooks/useLockFn.ts: -------------------------------------------------------------------------------- 1 | import { ref } from 'vue' 2 | 3 | export function useLockFn(fn: (...args: any[]) => Promise) { 4 | const isLock = ref(false) 5 | const lockFn = async (...args: any[]) => { 6 | if (isLock.value) return 7 | isLock.value = true 8 | try { 9 | const res = await fn(...args) 10 | isLock.value = false 11 | return res 12 | } catch (e) { 13 | isLock.value = false 14 | throw e 15 | } 16 | } 17 | return { 18 | isLock, 19 | lockFn 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /uniapp/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createSSRApp } from 'vue' 2 | import App from './App.vue' 3 | import plugins from './plugins' 4 | import { setupRouter } from './router' 5 | import './styles/index.scss' 6 | export function createApp() { 7 | const app = createSSRApp(App) 8 | 9 | Promise.resolve().then(() => { 10 | setupRouter() 11 | }) 12 | app.use(plugins) 13 | return { 14 | app 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /uniapp/src/packages/static/images/recharge_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/packages/static/images/recharge_success.png -------------------------------------------------------------------------------- /uniapp/src/pages/empty/empty.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uniapp/src/pages/webview/webview.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /uniapp/src/plugins/index.ts: -------------------------------------------------------------------------------- 1 | import { isFunction } from '@vue/shared' 2 | import { App } from 'vue' 3 | const modules = import.meta.globEager('./modules/**/*.ts') 4 | 5 | export default { 6 | install: (app: App) => { 7 | for (const module of Object.values(modules)) { 8 | const fun = module.default 9 | isFunction(fun) && fun(app) 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /uniapp/src/plugins/modules/pinia.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { createPinia } from 'pinia' 3 | const pinia = createPinia() 4 | export default (app: App) => { 5 | app.use(pinia) 6 | } 7 | -------------------------------------------------------------------------------- /uniapp/src/plugins/modules/uview.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import uView from '@/uni_modules/vk-uview-ui' 3 | 4 | export default (app: App) => { 5 | // 使用 uView UI 6 | app.use(uView) 7 | } 8 | -------------------------------------------------------------------------------- /uniapp/src/plugins/modules/vconsole.ts: -------------------------------------------------------------------------------- 1 | // #ifdef H5 2 | // 提交前需要注释 本地调试使用 3 | import Vconsole from 'vconsole' 4 | import { isDevMode } from '@/utils/env' 5 | // #endif 6 | 7 | export default () => { 8 | // #ifdef H5 9 | if (isDevMode()) { 10 | const vConsole = new Vconsole() 11 | return vConsole 12 | } 13 | // #endif 14 | } 15 | -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_code.png -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_mobile.png -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_password.png -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_user.png -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_visit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_visit.png -------------------------------------------------------------------------------- /uniapp/src/static/images/icon/icon_wx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/icon/icon_wx.png -------------------------------------------------------------------------------- /uniapp/src/static/images/payment/icon_succeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/payment/icon_succeed.png -------------------------------------------------------------------------------- /uniapp/src/static/images/payment/icon_waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/payment/icon_waiting.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/home.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/home_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/home_s.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/news.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/news_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/news_s.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/user.png -------------------------------------------------------------------------------- /uniapp/src/static/images/tabs/user_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/tabs/user_s.png -------------------------------------------------------------------------------- /uniapp/src/static/images/user/default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/user/default_avatar.png -------------------------------------------------------------------------------- /uniapp/src/static/images/user/my_topbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/static/images/user/my_topbg.png -------------------------------------------------------------------------------- /uniapp/src/styles/index.scss: -------------------------------------------------------------------------------- 1 | @import './tailwind.css'; 2 | @import './public.scss'; 3 | @import '../uni_modules/vk-uview-ui/index.scss'; 4 | -------------------------------------------------------------------------------- /uniapp/src/styles/public.scss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: $u-bg-color; 3 | font-size: 28rpx; 4 | } 5 | -------------------------------------------------------------------------------- /uniapp/src/styles/tailwind.css: -------------------------------------------------------------------------------- 1 | /* #ifdef H5 */ 2 | @tailwind base; 3 | /* #endif */ 4 | 5 | @tailwind utilities; 6 | -------------------------------------------------------------------------------- /uniapp/src/styles/var.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmgcode/xmgai-like/0dd739d52f3398988c11582f1c7c041cc3e14a08/uniapp/src/styles/var.css -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/components/u-loading-page/u-loading-page.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/components/u-tr/u-tr.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 18 | 19 | 26 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/components/vk-uview-ui/vk-uview-ui.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 7 | 8 | 13 | 14 | 16 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/index.scss: -------------------------------------------------------------------------------- 1 | // 引入公共基础类 2 | @import "./libs/css/common.scss"; 3 | @import "./libs/css/color.scss"; 4 | 5 | // 非nvue的样式 6 | /* #ifndef APP-NVUE */ 7 | @import "./libs/css/style.vue.scss"; 8 | /* #endif */ 9 | 10 | // nvue的特有样式 11 | /* #ifdef APP-NVUE */ 12 | @import "./libs/css/style.nvue.scss"; 13 | /* #endif */ 14 | 15 | // 小程序特有的样式 16 | /* #ifdef MP */ 17 | @import "./libs/css/style.mp.scss"; 18 | /* #endif */ 19 | 20 | // H5特有的样式 21 | /* #ifdef H5 */ 22 | @import "./libs/css/style.h5.scss"; 23 | /* #endif */ -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/config/config.js: -------------------------------------------------------------------------------- 1 | // 第一版 1.10.1 版本发布于2021-11-18 2 | let version = '1.10.1'; 3 | 4 | export default { 5 | v: version, 6 | version: version, 7 | // 主题名称 8 | type: [ 9 | 'primary', 10 | 'success', 11 | 'info', 12 | 'error', 13 | 'warning' 14 | ] 15 | } -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/config/zIndex.js: -------------------------------------------------------------------------------- 1 | // uniapp在H5中各API的z-index值如下: 2 | /** 3 | * actionsheet: 999 4 | * modal: 999 5 | * navigate: 998 6 | * tabbar: 998 7 | * toast: 999 8 | */ 9 | 10 | export default { 11 | toast: 10090, 12 | noNetwork: 10080, 13 | // popup包含popup,actionsheet,keyboard,picker的值 14 | popup: 10075, 15 | mask: 10070, 16 | navbar: 980, 17 | topTips: 975, 18 | sticky: 970, 19 | indexListSticky: 965, 20 | } -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/css/style.components.scss: -------------------------------------------------------------------------------- 1 | // 定义混入指令,用于在非nvue环境下的flex定义,因为nvue没有display属性,会报错 2 | @mixin vue-flex($direction: row) { 3 | /* #ifndef APP-NVUE */ 4 | display: flex; 5 | flex-direction: $direction; 6 | /* #endif */ 7 | } -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/css/style.h5.scss: -------------------------------------------------------------------------------- 1 | /* H5的时候,隐藏滚动条 */ 2 | ::-webkit-scrollbar { 3 | display: none; 4 | width: 0 !important; 5 | height: 0 !important; 6 | -webkit-appearance: none; 7 | background: transparent; 8 | } 9 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/css/style.nvue.scss: -------------------------------------------------------------------------------- 1 | .nvue { 2 | font-size: 24rpx; 3 | } -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/addUnit.js: -------------------------------------------------------------------------------- 1 | import validation from './test.js'; 2 | 3 | // 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾 4 | export default function addUnit(value = 'auto', unit = 'rpx') { 5 | value = String(value); 6 | // 用uView内置验证规则中的number判断是否为数值 7 | return validation.number(value) ? `${value}${unit}` : value; 8 | } -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/bem.js: -------------------------------------------------------------------------------- 1 | function bem(name, conf) { 2 | 3 | } 4 | export default { bem } 5 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/random.js: -------------------------------------------------------------------------------- 1 | function random(min, max) { 2 | if (min >= 0 && max > 0 && max >= min) { 3 | let gab = max - min + 1; 4 | return Math.floor(Math.random() * gab + min); 5 | } else { 6 | return 0; 7 | } 8 | } 9 | 10 | export default random; 11 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/randomArray.js: -------------------------------------------------------------------------------- 1 | // 打乱数组 2 | function randomArray(array = []) { 3 | // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0 4 | return array.sort(() => Math.random() - 0.5); 5 | } 6 | 7 | export default randomArray 8 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/sys.js: -------------------------------------------------------------------------------- 1 | export function os() { 2 | return uni.getSystemInfoSync().platform; 3 | }; 4 | 5 | export function sys() { 6 | return uni.getSystemInfoSync(); 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/toast.js: -------------------------------------------------------------------------------- 1 | function toast(title, duration = 1500) { 2 | uni.showToast({ 3 | title: title, 4 | icon: 'none', 5 | duration: duration 6 | }) 7 | } 8 | 9 | export default toast 10 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/function/trim.js: -------------------------------------------------------------------------------- 1 | function trim(str, pos = 'both') { 2 | if (pos == 'both') { 3 | return str.replace(/^\s+|\s+$/g, ""); 4 | } else if (pos == "left") { 5 | return str.replace(/^\s*/, ''); 6 | } else if (pos == 'right') { 7 | return str.replace(/(\s*$)/g, ""); 8 | } else if (pos == 'all') { 9 | return str.replace(/\s+/g, ""); 10 | } else { 11 | return str; 12 | } 13 | } 14 | 15 | export default trim 16 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/mixin/mpShare.js: -------------------------------------------------------------------------------- 1 | export default { 2 | onLoad() { 3 | // 设置默认的转发参数 4 | this.$u.mpShare = { 5 | title: '', // 默认为小程序名称 6 | path: '', // 默认为当前页面路径 7 | imageUrl: '' // 默认为当前页面的截图 8 | } 9 | }, 10 | onShareAppMessage() { 11 | return this.$u.mpShare 12 | }, 13 | // #ifdef MP-WEIXIN 14 | onShareTimeline() { 15 | return this.$u.mpShare 16 | } 17 | // #endif 18 | } 19 | -------------------------------------------------------------------------------- /uniapp/src/uni_modules/vk-uview-ui/libs/store/index.js: -------------------------------------------------------------------------------- 1 | // 暂时不用vuex模块方式实现,将该方法直接放入到/store/index.js中 2 | const module = { 3 | actions: { 4 | $uStore({rootState}, params) { 5 | let nameArr = params.name.split('.'); 6 | if(nameArr.length >= 2) { 7 | let obj = rootState[nameArr[0]]; 8 | for(let i = 1; i < nameArr.length - 1; i ++) { 9 | obj = obj[nameArr[i]]; 10 | } 11 | obj[nameArr[nameArr.length - 1]] = params.value; 12 | } else { 13 | rootState[params.name] = params.value; 14 | } 15 | } 16 | } 17 | } 18 | 19 | export default module -------------------------------------------------------------------------------- /uniapp/src/utils/auth.ts: -------------------------------------------------------------------------------- 1 | import { TOKEN_KEY } from '@/enums/cacheEnums' 2 | import cache from './cache' 3 | 4 | export function getToken() { 5 | return cache.get(TOKEN_KEY) || '' 6 | } 7 | -------------------------------------------------------------------------------- /uniapp/src/utils/env.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description: 开发模式 3 | */ 4 | export function isDevMode(): boolean { 5 | return import.meta.env.DEV 6 | } 7 | 8 | /** 9 | * @description: 生成模式 10 | */ 11 | export function isProdMode(): boolean { 12 | return import.meta.env.PROD 13 | } 14 | -------------------------------------------------------------------------------- /uniapp/src/utils/pay/index.ts: -------------------------------------------------------------------------------- 1 | import { Pay } from './pay' 2 | import { Wechat } from './wechat' 3 | 4 | // 支付方式 5 | enum PayWayEnum { 6 | BALANCE = 1, 7 | WECHAT = 2, 8 | ALIPAY = 3 9 | } 10 | const wechat = new Wechat() 11 | // 注入微信支付 12 | Pay.inject(PayWayEnum[2], wechat) 13 | const pay = new Pay() 14 | export { pay, PayWayEnum } 15 | -------------------------------------------------------------------------------- /uniapp/typings/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | 10 | declare interface Window { 11 | signLink: string 12 | } 13 | 14 | declare module 'uview-plus' 15 | declare module 'weixin-js-sdk' 16 | -------------------------------------------------------------------------------- /uniapp/typings/uni.d.ts: -------------------------------------------------------------------------------- 1 | interface Uni { 2 | $u: any 3 | } 4 | --------------------------------------------------------------------------------