123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- var Parse = getApp().Parse;
- var company = getApp().globalData.company
- const request = require("../../../utils/request");
- const qiniuUploader = require("../../../utils/qiniuUploader");
- //获取应用实例
- const app = getApp()
- /**
- * @class NovaAppAuth
- * @memberof module:components
- * @tutorial userauth
- * @desc 通用登录组件
- * # 登录组件相关数据表
- * - _User
- */
- Page({
- data: {
- showModal: false,
- logo: "https://file-cloud.fmode.cn/MldI5PBNt7/20210928/g0k1jb034826.png",
- name: "未来商城",
- desc: "江西脑控科技有限公司是国内领先的IT技术企业。专注于互联网+服务,面向政府提供区块链、大数据、物联网、人工智能解决方案",
- wxModel: false,
- avatarUrl: '',
- avatar: '',
- nickname: ''
- },
- onLoad: async function (options) {
- console.log(company)
- let Company = new Parse.Query('Company')
- Company.equalTo("objectId", company)
- let currentCompany = await Company.first()
- if (currentCompany && currentCompany.id) {
- this.setData({
- logo: currentCompany.get('logo'),
- name: currentCompany.get('name'),
- desc: currentCompany.get('desc')
- })
- }
- this.getUptoken()
- },
- async getUptoken() {
- let res = await Parse.Cloud.run('qiniu_uptoken', {
- company: company
- })
- this.setData({
- uptokenURL: res.uptoken,
- domain: res.domain,
- uploadURL: res.zoneUrl
- })
- },
- onShow: function () {
- let userInfo = wx.getStorageSync('userLogin');
- if (userInfo != '') {
- wx.navigateBack();
- };
- },
- onReady: function () {},
- getUserProfile() {
- wx.getUserProfile({
- desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
- success: async (res) => {
- console.log(res);
- let myInfo = res.userInfo;
- wx.setStorageSync("userLogin", myInfo);
- let userInfo = wx.getStorageSync("userInfo");
- let appId = app.globalData.appid;
- let username, password;
- username = userInfo.openid; // openid作为用户名
- password = userInfo.openid.substr(username.length - 6, 6); // 后六位作为登录密码
- let query = new Parse.Query("_User");
- query.equalTo(`wxapp.${appId}.openid`, username);
- let current = await query.first();
- console.log(current, username, password);
- if (current) {
- let loginUser = await Parse.User.logIn(username, password);
- if (loginUser) {
- // 登陆成功则,更新用户资料,并返回用户信息
- if (!loginUser.get('avatar') || loginUser.get('nickname') == '微信用户') {
- await this.updataUserInfo(myInfo);
- }
- let u = Parse.User.current()
- if (!loginUser.get('mobile')) {
- this.showDialogBtn()
- return;
- } else if (u.get('nickname') == '微信用户' || u.get('nickname') == '' || !u.get('nickname')) {
- this.setData({
- wxModel: true
- })
- return
- }
- setTimeout(() => {
- this.backLoad()
- }, 500)
- }
- } else {
- let user = new Parse.User();
- user.set("username", username);
- user.set("password", password);
- let wxapp = {};
- wxapp[getApp().globalData.appid] = {
- openid: userInfo.openid,
- uniacid: userInfo.uniacid,
- uid: userInfo.id,
- };
- user.set("wxapp", wxapp);
- let signuser = await user.signUp();
- if (signuser) {
- this.updataUserInfo(myInfo);
- this.showDialogBtn()
- }
- }
- this.setData({
- userInfo: res.userInfo,
- hasUserInfo: true
- })
- }
- })
- },
- showDialogBtn() {
- this.setData({
- showModal: true
- })
- },
- async getPhoneNumber(e) {
- let {
- code
- } = e.detail
- console.log(code);
- let phoneNumber = await request.getPhone(code)
- let user = Parse.User.current();
- if(phoneNumber) {
- user.set("mobile", phoneNumber);
- user.save().then(res => {})
- }
- if (!user.get('avatar') || user.get('nickname') == '微信用户' || !user.get('nickname')) {
- this.setData({
- showModal: false,
- wxModel: true
- })
- return
- }
- this.backLoad()
- },
- hideModal: function () {
- this.setData({
- showModal: false
- })
- },
- // 用户授权,更新用户信息
- async updataUserInfo(myInfo) {
- let user = Parse.User.current();
- let agentLevel = user.get("agentLevel")
- let invite = wx.getStorageSync('invite')
- user.set("nickname", myInfo.nickName);
- user.set("sex", myInfo.sex);
- user.set("city", myInfo.city);
- user.set("province", myInfo.province);
- user.set("country", myInfo.country);
- user.set("avatar", myInfo.avatarUrl);
- user.set("company", {
- __type: "Pointer",
- className: 'Company',
- objectId: company
- });
- if (invite) {
- let query = new Parse.Query("_User")
- let result = await query.get(invite)
- if (result && result.id && result.get("invite") == user.id) {
- console.error('邀请人不能是自己的下级')
- return
- }
- // 用户没有邀请人, 并且邀请人不是自己
- if (!user.get('invite') && user.id != invite) {
- user.set('invite', {
- __type: "Pointer",
- className: "_User",
- objectId: invite
- })
- user.set('agent', {
- __type: "Pointer",
- className: "_User",
- objectId: invite
- })
- }
- }
- if (agentLevel && agentLevel.id) {
- user.set("agentLevel", {
- __type: "Pointer",
- className: 'UserAgentLevel',
- objectId: agentLevel.id
- });
- }
- user.save().then(res => {
- this.setAccount(res.id)
- });
- },
- async setAccount(user) {
- let qeuryAccount = new Parse.Query("Account")
- qeuryAccount.equalTo("user", user)
- let accountInfo = await qeuryAccount.first()
- if (accountInfo && accountInfo.id) {
- return
- }
- let balance = await this.getalance(user)
- let Account = Parse.Object.extend("Account")
- let account = new Account()
- account.set("user", {
- __type: 'Pointer',
- className: "_User",
- objectId: user
- })
- account.set("company", {
- __type: "Pointer",
- className: 'Company',
- objectId: company
- });
- account.set("balance", balance)
- account.set("bonus", 0)
- account.set("credit", 0)
- account.save().then(Res => {
- return
- })
- },
- async getalance(uid) {
- let sql = `select sum("serviceTime") from "ActivityRegister"
- where "user" = '${uid}'
- and "isComplete" is true
- and "company" = 'pmAYN1NesE'
- `;
- let res = await request.customSQL(sql);
- return res[0].sum || 0
- },
- setInvite() {
- let invite = wx.getStorageSync('invite')
- if (invite) {
- // this.getInvite(Parse.User.current(),invite)
- let User = Parse.User.current()
- // console.log(User.get('invite'))
- // console.log(User.id)
- if (invite == User.id || User.get('invite')) {
- console.error('已有邀请人或邀请人不能为自己')
- return
- }
- if (!User.get('invite') && invite) {
- User.set('invite', {
- __type: 'Pointer',
- className: '_User',
- objectId: invite
- })
- User.save().then(res => {
- console.log(res)
- })
- }
- }
- },
- backLoad() {
- let pages = getCurrentPages();
- let beforePage = pages[pages.length - 2];
- let options = {
- isInit: true
- }
- beforePage.onLoad(options)
- wx.navigateBack({
- delta: 1,
- })
- },
- goBack: function () {
- wx.navigateBack({
- delta: 1,
- })
- },
- //手动获取微信头像
- onChooseAvatar(e) {
- console.log(e);
- let {
- avatarUrl
- } = e.detail
- console.log(avatarUrl);
- this.setData({
- avatarUrl
- })
- },
- //获取昵称
- onChangeName(e) {
- console.log('1111');
- console.log(e);
- },
- //确定头像昵称
- async onComplete() {
- let {
- nickname,
- avatarUrl
- } = this.data
- console.log(nickname, avatarUrl);
- if (!nickname || !avatarUrl) {
- wx.showToast({
- title: '请填写完整信息',
- icon: 'none',
- image: '',
- duration: 1500,
- mask: false,
- });
- return
- }
- //关键注释: https://up-z2.qiniup.com 合法域名必须配置
- try {
- let avatar = await this.updataAvatar(avatarUrl)
- let user = Parse.User.current()
- user.set("avatar", avatar)
- user.set("nickname", nickname)
- user.save().then(res => {
- this.onClose()
- this.backLoad()
- })
- } catch (err) {
- console.warn('https://up-z2.qiniup.com 合法域名必须配置');
- console.log(err);
- this.onClose()
- this.backLoad()
- }
- },
- //关闭弹窗
- onClose() {
- this.setData({
- wxModel: false
- })
- },
- //上传头像
- updataAvatar(url) {
- let that = this;
- return new Promise((resolve, rejcet) => {
- qiniuUploader.upload(
- url,
- async (res) => {
- let img = res.imageURL;
- resolve(img)
- },
- (error) => {
- console.log("error: " + error);
- resolve(false)
- }, {
- region: "SCN",
- uploadURL: that.data.uploadURL,
- domain: that.data.domain,
- uptoken: that.data.uptokenURL,
- }
- );
- })
- },
- })
|