接下來(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)站回饋大家。
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); }
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; ????} }
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); ????} }
運(yùn)行后端項(xiàng)目,查看swagger2的效果
主要通過(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?()?{ ??} })
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)
全網(wǎng)營(yíng)銷(xiāo)推廣知識(shí)