|
|
|
@ -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<WechatUser> 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<String, String> 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()); |
|
|
|
|