Browse Source

支持自定义小程序用户名称及头像

master
yanyan 2 years ago
parent
commit
ec854eb5b3
  1. 22
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java
  2. 3
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/WechatService.java
  3. 43
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java
  4. 2
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml

22
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java

@ -18,6 +18,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -117,6 +118,27 @@ public class WechatLoginController extends BaseController {
? ZDResponse.success() : ZDResponse.error("编辑失败"); ? ZDResponse.success() : ZDResponse.error("编辑失败");
} }
/**
* 修改保存
*/
@PostMapping("/editInfo")
@ResponseBody
@Applet
public ZDResponse editInfo(@RequestBody WechatUser wechatUser) {
return wechatService.update(wechatUser) > 0
? ZDResponse.success() : ZDResponse.error("编辑失败");
}
/**
* 修改保存
*/
@PostMapping("/editUserAvatar")
@ResponseBody
public ZDResponse editUserAvatar(@RequestParam("file") MultipartFile[] file, @RequestParam("guid") String guid) {
return wechatService.editUserAvatar(file, guid);
}
/** /**
* 修改保存 * 修改保存
*/ */

3
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/WechatService.java

@ -3,6 +3,7 @@ package com.zdxt.knowledge.service;
import com.zdxt.common.ZDResponse; import com.zdxt.common.ZDResponse;
import com.zdxt.knowledge.domain.WechatLoginRequest; import com.zdxt.knowledge.domain.WechatLoginRequest;
import com.zdxt.knowledge.domain.WechatUser; import com.zdxt.knowledge.domain.WechatUser;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -34,4 +35,6 @@ public interface WechatService {
ZDResponse showMyMedal(WechatUser wechatUser); ZDResponse showMyMedal(WechatUser wechatUser);
Map<String, String> MyMedal(String guid); Map<String, String> MyMedal(String guid);
ZDResponse editUserAvatar(MultipartFile[] files,String guid);
} }

43
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java

@ -1,14 +1,17 @@
package com.zdxt.knowledge.service.impl; package com.zdxt.knowledge.service.impl;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zdxt.auth.feign.FileUploadApi;
import com.zdxt.auth.feign.ZdxtFileCommonApi;
import com.zdxt.common.ZDResponse; import com.zdxt.common.ZDResponse;
import com.zdxt.common.util.Convert; import com.zdxt.common.util.Convert;
import com.zdxt.common.util.StringUtils; import com.zdxt.common.util.StringUtils;
import com.zdxt.common.zdxtFile.ZdxtFileCommon;
import com.zdxt.knowledge.domain.*; import com.zdxt.knowledge.domain.*;
import com.zdxt.knowledge.jwt.JwtClaimsConstant; import com.zdxt.knowledge.jwt.JwtClaimsConstant;
import com.zdxt.knowledge.domain.JwtProperties;
import com.zdxt.knowledge.jwt.JwtUtil; import com.zdxt.knowledge.jwt.JwtUtil;
import com.zdxt.knowledge.mapper.SceneMedalMapper; import com.zdxt.knowledge.mapper.SceneMedalMapper;
import com.zdxt.knowledge.mapper.WechatLoginMapper; import com.zdxt.knowledge.mapper.WechatLoginMapper;
@ -19,6 +22,7 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64; import org.bouncycastle.util.encoders.Base64;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
@ -47,6 +51,12 @@ public class WechatServiceImpl implements WechatService {
@Autowired @Autowired
private JwtProperties jwtProperties; private JwtProperties jwtProperties;
@Autowired
private FileUploadApi fileUploadApi;
@Autowired
private ZdxtFileCommonApi zdxtFileCommonApi;
@Override @Override
public List<WechatUser> selectList(WechatUser wechatUser) { public List<WechatUser> selectList(WechatUser wechatUser) {
@ -99,9 +109,13 @@ public class WechatServiceImpl implements WechatService {
insertOrUpdateDO.setToken(getToken(insertOrUpdateDO.getGuid(), insertOrUpdateDO.getNickname())); insertOrUpdateDO.setToken(getToken(insertOrUpdateDO.getGuid(), insertOrUpdateDO.getNickname()));
wechatLoginMapper.insertUser(insertOrUpdateDO); wechatLoginMapper.insertUser(insertOrUpdateDO);
userInfoMap.put("openId", openId); userInfoMap.put("openId", openId);
userInfoMap.put("userName", insertOrUpdateDO.getNickname());
userInfoMap.put("avatarUrl", insertOrUpdateDO.getAvatarUrl());
userInfoMap.put("userId", insertOrUpdateDO.getGuid()); userInfoMap.put("userId", insertOrUpdateDO.getGuid());
} else { } else {
userInfoMap.put("openId", openId); userInfoMap.put("openId", openId);
userInfoMap.put("userName", user.getNickname());
userInfoMap.put("avatarUrl", user.getAvatarUrl());
userInfoMap.put("userId", user.getGuid()); userInfoMap.put("userId", user.getGuid());
// 已存在,做已存在的处理,如更新用户的头像,昵称等,根据openID更新 // 已存在,做已存在的处理,如更新用户的头像,昵称等,根据openID更新
//wechatLoginMapper.updateByOpenId(insertOrUpdateDO); //wechatLoginMapper.updateByOpenId(insertOrUpdateDO);
@ -137,6 +151,31 @@ public class WechatServiceImpl implements WechatService {
return myMedalMap; return myMedalMap;
} }
@Override
public ZDResponse editUserAvatar(MultipartFile[] files, String guid) {
if (ObjectUtil.isEmpty(files) || files.length > 1) {
return ZDResponse.error("文件不能为空且只允许上传一张图片");
}
WechatUser wechatUser = new WechatUser();
String uploadPath = fileUploadApi.upload(files[0]);
wechatUser.setAvatarUrl(uploadPath);
wechatUser.setGuid(guid);
int result = wechatLoginMapper.updateById(wechatUser);
// 上传文件,并在附件表中添加记录
if (result > 0) {
zdxtFileCommonApi.deleteZdxtFileByIds(guid);
ZdxtFileCommon zdxtFileCommon = new ZdxtFileCommon();
zdxtFileCommon.setUploadPersonId("0000");
zdxtFileCommon.setUploadPersonName("AppletSystem");
zdxtFileCommon.setUploadPath(uploadPath);
zdxtFileCommon.setGuid(StringUtils.getUUID());
zdxtFileCommon.setBusinessId(guid);
zdxtFileCommonApi.insertZdxtFileToApp(files[0], zdxtFileCommon);
return ZDResponse.success("成功",uploadPath);
}
return ZDResponse.error("编辑头像失败");
}
private JSONObject getSessionKeyOrOpenId(String code) throws Exception { private JSONObject getSessionKeyOrOpenId(String code) throws Exception {
Map<String, String> requestUrlParam = new HashMap<>(); Map<String, String> requestUrlParam = new HashMap<>();
@ -160,7 +199,7 @@ public class WechatServiceImpl implements WechatService {
if (loginRequest.getRawData() != null) { if (loginRequest.getRawData() != null) {
RawDataDO rawDataDO = JSON.parseObject(loginRequest.getRawData(), RawDataDO.class); RawDataDO rawDataDO = JSON.parseObject(loginRequest.getRawData(), RawDataDO.class);
wechatUserDO.setNickname(rawDataDO.getNickName()); wechatUserDO.setNickname("用户GSL_" + (int) (Math.random() * 9000 + 1000));
wechatUserDO.setAvatarUrl(rawDataDO.getAvatarUrl()); wechatUserDO.setAvatarUrl(rawDataDO.getAvatarUrl());
wechatUserDO.setGender(rawDataDO.getGender()); wechatUserDO.setGender(rawDataDO.getGender());
wechatUserDO.setCity(rawDataDO.getCity()); wechatUserDO.setCity(rawDataDO.getCity());

2
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml

@ -119,7 +119,7 @@
</delete> </delete>
<select id="selectSceneMedalByIds" parameterType="String" resultMap="SceneMedalResult"> <select id="selectSceneMedalByIds" parameterType="String" resultMap="SceneMedalResult">
<include refid="selectSceneMedalVo"/> where guid in <include refid="selectSceneMedalVo"/> where hide = 1 and guid in
<foreach item="guid" collection="array" open="(" separator="," close=")"> <foreach item="guid" collection="array" open="(" separator="," close=")">
#{guid} #{guid}
</foreach> </foreach>

Loading…
Cancel
Save