成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

接下來(lái),我們應(yīng)該通過(guò)用戶的id,調(diào)用后端的接口,查詢出來(lái)點(diǎn)贊的數(shù)量,關(guān)注的數(shù)量,粉絲數(shù)量,直接更新頭像圖片。源碼:https://github.com/limingios/wxProgram.git 中wx-springboot 和 No.15

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出吉首免費(fèi)做網(wǎng)站回饋大家。

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

后端開(kāi)發(fā)

spring boot-service 增加通過(guò)user的id,獲得Users的方法

  • UserService.java

package?com.idig8.service;

import?com.idig8.pojo.Users;

public?interface?UserService?{

????/**
?????*?判斷用戶名是否存在
?????*?@param?username
?????*?@return
?????*/
????public?boolean?queryUsernameIsExist(String?username);

????/**
?????*?保存用戶
?????*?@param?user
?????*?@return
?????*/
????public?void?saveUser(Users?user);

????/**
?????*?查詢用戶對(duì)象
?????*?@param?username
?????*?@return
?????*/
????public?Users?queryUserIsExist(Users?user);

????/**
?????*?更新對(duì)象
?????*?@param?username
?????*?@return
?????*/
????public?void?updateUser(Users?user);


????/**
?????*?userId查詢用戶對(duì)象
?????*?@param?username
?????*?@return
?????*/
????public?Users?queryUserId(String?userId);

}

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

  • UserServiceImpl.java

package?com.idig8.service;

import?org.n3r.idworker.Sid;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.boot.autoconfigure.security.SecurityProperties.User;
import?org.springframework.stereotype.Service;
import?org.springframework.transaction.annotation.Propagation;
import?org.springframework.transaction.annotation.Transactional;

import?com.idig8.mapper.UsersMapper;
import?com.idig8.pojo.Users;
import?com.idig8.utils.MD5Utils;

import?tk.mybatis.mapper.entity.Example;
import?tk.mybatis.mapper.entity.Example.Criteria;

@Service
public?class?UserServiceImpl?implements?UserService?{

????@Autowired
????private?UsersMapper?usersMapper;

????@Autowired
????private?Sid?sid;

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?boolean?queryUsernameIsExist(String?username)?{
????????Users?user?=?new?Users();
????????user.setUsername(username);
????????Users?result?=?usersMapper.selectOne(user);
????????return?result==null??false:true;
????}

????@Transactional(propagation?=Propagation.REQUIRED)
????@Override
????public?void?saveUser(Users?user)?{
????????String?userId?=sid.nextShort();
????????user.setId(userId);
????????usersMapper.insert(user);
????}

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?Users?queryUserIsExist(Users?user)?{
????????Example?queryExample?=?new?Example(Users.class);
????????Criteria?criteria?=?queryExample.createCriteria();
????????criteria.andEqualTo("username",user.getUsername());
????????try?{
????????????criteria.andEqualTo("password",MD5Utils.getMD5Str(user.getPassword()));
????????}?catch?(Exception?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}
????????Users?userOne?=??usersMapper.selectOneByExample(queryExample);
????????return?userOne;
????}

????@Transactional(propagation?=Propagation.REQUIRED)
????@Override
????public?void?updateUser(Users?user)?{

????????Example?userExample?=?new?Example(Users.class);
????????Criteria?criteria?=?userExample.createCriteria();
????????criteria.andEqualTo("id",?user.getId());
????????usersMapper.updateByExampleSelective(user,?userExample);
????}

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?Users?queryUserId(String?userId){
????????Example?queryExample?=?new?Example(Users.class);
????????Criteria?criteria?=?queryExample.createCriteria();
????????criteria.andEqualTo("id",userId);
????????Users?userOne?=??usersMapper.selectOneByExample(queryExample);
????????return?userOne;
????}

}

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

  • spring boot -api 中 在UserController中添加方法

增加controller 接口,傳遞user中的id參數(shù)

package?com.idig8.controller;

import?org.apache.commons.lang3.StringUtils;
import?org.springframework.beans.BeanUtils;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.beans.factory.annotation.Value;
import?org.springframework.web.bind.annotation.PostMapping;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestParam;
import?org.springframework.web.bind.annotation.RestController;
import?org.springframework.web.multipart.MultipartFile;

import?com.idig8.pojo.Users;
import?com.idig8.pojo.vo.UsersVO;
import?com.idig8.service.UserService;
import?com.idig8.utils.JSONResult;
import?com.idig8.utils.file.FileUtil;

import?io.swagger.annotations.Api;
import?io.swagger.annotations.ApiImplicitParam;
import?io.swagger.annotations.ApiImplicitParams;
import?io.swagger.annotations.ApiOperation;

@RestController
@Api(value="用戶接口",tags={"用戶的controller"})
@RequestMapping(value?=?"/user")
public?class?UserController?extends?BasicController{

????@Autowired
????private?UserService?userService;

????@Value("${server.face.path}")
????private?String?fileSpace;

????@ApiOperation(value="用戶上傳頭像",notes="用戶上傳頭像的接口")
????@ApiImplicitParams({
????????@ApiImplicitParam(name="userId",value="用戶id",required=true,dataType="String",paramType="query"),
????????@ApiImplicitParam(name="file",value="文件上傳",required=true,dataType="String",paramType="query"),
????})
????@PostMapping("/uploadFace")
????public?JSONResult?uploadFace(String?userId,@RequestParam("file")?MultipartFile?file)?{
????????if?(StringUtils.isBlank(userId))?{
????????????return?JSONResult.errorMsg("用戶id不能為空...");
????????}

????????//?文件保存的命名空間
????????String?fileName?=?file.getOriginalFilename();
????????//?保存到數(shù)據(jù)庫(kù)中的相對(duì)路徑
????????String?path?=?"";
?????????try?{
?????????????path?=?FileUtil.uploadFile(file.getBytes(),?fileSpace,?fileName);
????????????}?catch?(Exception?e)?{
????????????????e.getStackTrace();
????????????????return?JSONResult.errorMsg(e.getMessage());
????????????}

?????????Users?user?=?new?Users();
?????????user.setId(userId);
?????????user.setFaceImage(path);
?????????userService.updateUser(user);


????????return?JSONResult.ok(path);
????}

????@ApiOperation(value="通過(guò)用戶Id獲取用戶信息",notes="通過(guò)用戶Id獲取用戶信息的接口")
????@ApiImplicitParam(name="userId",value="用戶id",required=true,dataType="String",paramType="query")
????@PostMapping("/queryByUserId")
????public?JSONResult?queryByUserId(String?userId)?{
????????if?(StringUtils.isBlank(userId))?{
????????????return?JSONResult.errorMsg("用戶id不能為空...");
????????}

????????Users?user?=?userService.queryUserId(userId);
????????UsersVO?usersVO=?new?UsersVO();
????????BeanUtils.copyProperties(user,?usersVO);


????????return?JSONResult.ok(usersVO);
????}


}

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

  • 運(yùn)行后端項(xiàng)目,查看swagger2的效果

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

小程序開(kāi)發(fā)

主要通過(guò)的是小程序生命周期中的onload方法,當(dāng)進(jìn)入頁(yè)面的時(shí)候請(qǐng)求后臺(tái)獲取信息,用于頁(yè)面的展示。

//?pages/mine/mine.js
const?app?=?getApp()
Page({

??/**
???*?頁(yè)面的初始數(shù)據(jù)
???*/
??data:?{
????faceImage:?"../../resource/images/noneface.png",
????nickname:?"昵稱",
????fansCounts:?0,
????followCounts:?0,
????receiveLikeCounts:?0,
??},
??/**
???*?用戶注銷(xiāo)
???*/
??logout:function(e){
????var?user?=?app.userInfo;
????wx.showLoading({
??????title:?'正在注銷(xiāo)中。。。'
????});
????wx.request({
??????url:?app.serverUrl?+?"/logout?userId="+user.id,
??????method:?"POST",
??????header:?{
????????'content-type':?'application/json'?//?默認(rèn)值
??????},
??????success:?function?(res)?{
????????console.log(res.data);
????????var?status?=?res.data.status;
????????wx.hideLoading();
????????if?(status?==?200)?{
??????????wx.showToast({
????????????title:?"用戶注銷(xiāo)成功~!",
????????????icon:?'none',
????????????duration:?3000
??????????})
??????????app.userInfo?=?null;
??????????wx.redirectTo({
????????????url:?'../userRegister/userRegister',
??????????})

????????}?else?if?(status?==?500)?{
??????????wx.showToast({
????????????title:?res.data.msg,
????????????icon:?'none',
????????????duration:?3000
??????????})
????????}
??????}
????})
??},
??/**
???*?頭像上傳
???*/
??uploadFace:function(e){
????var?user?=?app.userInfo;
????var?me?=?this;
????wx.chooseImage({
??????count:?1,?//?默認(rèn)9
??????sizeType:?['compressed'],?//?可以指定是原圖還是壓縮圖,默認(rèn)二者都有
??????sourceType:?['album',?'camera'],?//?可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
??????success:?function?(res)?{
????????//?返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片
????????var?tempFilePaths?=?res.tempFilePaths
????????if?(tempFilePaths.length>0){
??????????console.log(tempFilePaths[0]);
??????????????wx.uploadFile({
????????????????url:?app.serverUrl?+?"/user/uploadFace?userId="?+?user.id,?//僅為示例,非真實(shí)的接口地址
????????????????filePath:?tempFilePaths[0],
????????????????name:?'file',
????????????????success:?function?(res)?{
??????????????????var?data?=?JSON.parse(res.data);
??????????????????console.log(data);
???????????????????wx.hideLoading();
??????????????????if?(data.status?==?200)?{
????????????????????wx.showToast({
??????????????????????title:?"用戶上傳成功~!",
??????????????????????icon:?'none',
??????????????????????duration:?3000
????????????????????})
????????????????????me.setData({
??????????????????????faceUrl:?app.serverUrl+data.data
????????????????????})


??????????????????}?else?if?(data.status?==?500)?{
????????????????????wx.showToast({
??????????????????????title:?data.msg,
??????????????????????icon:?'none',
??????????????????????duration:?3000
????????????????????})
??????????????????}
????????????????}
??????????????})
????????}

??????}
????})
??},
??/**
???*?生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
???*/
??onLoad:?function?(options)?{
????var?me?=?this;
????wx.showLoading({
??????title:?'正在獲取用戶信息。。。'
????});
????wx.request({
??????url:?app.serverUrl?+?"/user/queryByUserId?userId="?+?app.userInfo.id,
??????method:?"POST",
??????header:?{
????????'content-type':?'application/json'?//?默認(rèn)值
??????},
??????success:?function?(res)?{
????????console.log(res.data);
????????var?status?=?res.data.status;
????????var?userInfo?=?res.data.data;
????????wx.hideLoading();
????????var?faceImage?=?me.data.faceUrl;
????????if?(userInfo.faceImage?!=?null?&&?userInfo.faceImage?!=?''?&&?userInfo.faceImage!=undefined){
??????????faceImage?=?app.serverUrl?+userInfo.faceImage;
????????}
????????me.setData({
??????????faceImage:?faceImage,
??????????fansCounts:?userInfo.fansCounts,
??????????followCounts:?userInfo.followCounts,
??????????receiveLikeCounts:?userInfo.receiveLikeCounts,
??????????nickname:?userInfo.nickname
????????})
??????}
????})
??},

??/**
???*?生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成
???*/
??onReady:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示
???*/
??onShow:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面隱藏
???*/
??onHide:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面卸載
???*/
??onUnload:?function?()?{

??},

??/**
???*?頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽(tīng)用戶下拉動(dòng)作
???*/
??onPullDownRefresh:?function?()?{

??},

??/**
???*?頁(yè)面上拉觸底事件的處理函數(shù)
???*/
??onReachBottom:?function?()?{

??},

??/**
???*?用戶點(diǎn)擊右上角分享
???*/
??onShareAppMessage:?function?()?{

??}
})

「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)

PS:這個(gè)小程序獲取用戶信息和后端的一個(gè)聯(lián)調(diào)。

網(wǎng)站題目:「小程序JAVA實(shí)戰(zhàn)」小程序頭像圖片上傳(下)(45)
文章地址:http://jinyejixie.com/article28/gpshjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)Google、虛擬主機(jī)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
宣威市| 丰镇市| 西乌| 马龙县| 万全县| 镶黄旗| 永和县| 登封市| 正安县| 德阳市| 沂水县| 桃园市| 贵港市| 拜泉县| 合江县| 崇礼县| 潮州市| 曲阳县| 惠东县| 错那县| 偏关县| 荣成市| 庆阳市| 高阳县| 墨江| 正蓝旗| 阿拉善盟| 琼结县| 绥棱县| 隆化县| 北海市| 北碚区| 济阳县| 孟村| 福贡县| 洱源县| 永川市| 汝阳县| 伊金霍洛旗| 乌拉特中旗| 崇礼县|