diff --git a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java index 08cb137d..1dee7e8e 100755 --- a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/WechatLoginController.java +++ b/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.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @@ -117,6 +118,27 @@ public class WechatLoginController extends BaseController { ? 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); + } + /** * 修改保存 */ diff --git a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/WechatService.java b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/WechatService.java index 2da8a83e..b10cea74 100644 --- a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/WechatService.java +++ b/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.knowledge.domain.WechatLoginRequest; import com.zdxt.knowledge.domain.WechatUser; +import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @@ -34,4 +35,6 @@ public interface WechatService { ZDResponse showMyMedal(WechatUser wechatUser); Map MyMedal(String guid); + + ZDResponse editUserAvatar(MultipartFile[] files,String guid); } diff --git a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java index 35a68a43..07beac1c 100644 --- a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java +++ b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/WechatServiceImpl.java @@ -1,14 +1,17 @@ package com.zdxt.knowledge.service.impl; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; 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.util.Convert; import com.zdxt.common.util.StringUtils; +import com.zdxt.common.zdxtFile.ZdxtFileCommon; import com.zdxt.knowledge.domain.*; import com.zdxt.knowledge.jwt.JwtClaimsConstant; -import com.zdxt.knowledge.domain.JwtProperties; import com.zdxt.knowledge.jwt.JwtUtil; import com.zdxt.knowledge.mapper.SceneMedalMapper; import com.zdxt.knowledge.mapper.WechatLoginMapper; @@ -19,6 +22,7 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.encoders.Base64; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; @@ -47,6 +51,12 @@ public class WechatServiceImpl implements WechatService { @Autowired private JwtProperties jwtProperties; + @Autowired + private FileUploadApi fileUploadApi; + + @Autowired + private ZdxtFileCommonApi zdxtFileCommonApi; + @Override public List selectList(WechatUser wechatUser) { @@ -99,9 +109,13 @@ public class WechatServiceImpl implements WechatService { insertOrUpdateDO.setToken(getToken(insertOrUpdateDO.getGuid(), insertOrUpdateDO.getNickname())); wechatLoginMapper.insertUser(insertOrUpdateDO); userInfoMap.put("openId", openId); + userInfoMap.put("userName", insertOrUpdateDO.getNickname()); + userInfoMap.put("avatarUrl", insertOrUpdateDO.getAvatarUrl()); userInfoMap.put("userId", insertOrUpdateDO.getGuid()); } else { userInfoMap.put("openId", openId); + userInfoMap.put("userName", user.getNickname()); + userInfoMap.put("avatarUrl", user.getAvatarUrl()); userInfoMap.put("userId", user.getGuid()); // 已存在,做已存在的处理,如更新用户的头像,昵称等,根据openID更新 //wechatLoginMapper.updateByOpenId(insertOrUpdateDO); @@ -137,6 +151,31 @@ public class WechatServiceImpl implements WechatService { 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 { Map requestUrlParam = new HashMap<>(); @@ -160,7 +199,7 @@ public class WechatServiceImpl implements WechatService { if (loginRequest.getRawData() != null) { 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.setGender(rawDataDO.getGender()); wechatUserDO.setCity(rawDataDO.getCity()); diff --git a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml index 61d70cce..96756578 100644 --- a/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml +++ b/lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/resources/mapper/SceneMedalMapper.xml @@ -119,7 +119,7 @@