sYDtqZ*_2vvJV)9N5md|R=#e%r
zNRDRWxB5eQv1t(&Nv4Pi_&bQ4#eEv7-vqjah=GrwtA-Ew>n}`%;(Itw&v_mF`Xk4v
z*Os94G@Z4v4!(|uy>$|*acsckJ0D&YEsdWWVGMjP?M<)C_U4N~E^VS^fGQ*G`8#>G
z3wO6@Oq%!oW&^24rUVNVB2Te^Qa5JHm{xQyQrH7S3$Muv=E8=LGjj$@zV31hxyCAC
zhI&RGn(hQ06Q)TgT&Z0si|+f80tjv+_lB=W`&@&9wzk*D~G9~nWf)cbN4JLP%l&8W#|II%?f;GSc2zbl(WfdnJF4N4nWb+q_>k9Jx6ed*4td{g8%sJn{G%pTX7A4S#0<+^H7b|I3l0*S9bTyWp
zE&0R!hit=%Vs{WqHgiI`0}eR4vC#5koI~2&cCnQMf*TIKs4=U!HpTO9e^ioq)K$t!
z3-~c)JyTRF9uJ?VZDx7{+}IxnKNZDk6JwLJVbDqwuDl^NDB{X%G%`5V=(Z3}HxS@ML2&5<0&=YB=%;W(
zUWs=cw-Z8VPNL{(sxx?;vxGf&pgzPVxHL)VOzcjI3bw?f5YtaF5i`f9-saSr4k$O!
ztgW)iaug`SL~48y#Lxx%BQy>30OQq>6Wv<@WjhV8x}%1Q483#BFGMTBEv_5t0)Ec3
zWrszpOS7w8$L7ps=PGql65CE@1_m^^7gL$xP`t&W=C5G_loR~?cL(q{Y=;8VlQXme
z!*rh55%TRCDBFP0h-UitML!cYUdBm|nI~FIV8O@r+nRx7Jr_UQyid{P-}v%ji;!?@)0d>1;pb^Z5S_
z@}h9IGcqR9Y)SQWFf60_y
zyXY6xynF()3-D<%Dc@!{BU6^+kVYkTZ9teR<)7qIIuhAu1C_LxbG2$cgte$>1PZh?
zOt*xwg5c)6sKixB?YD2x3uaA)YutOxTpM6(Lp@$&eFLM#00hjW3P=#>56TA{Q(6g?
z$YCGW!M2>VOVzk|ml5gBxNq(as7upcay!Rfob1)xn~$qXr@bb1Rm#@1{$%O*!?HR<
zh{sQ-$NE9-yDEDBkE1r%9otDNaCpQw*$5IK7@#Ex;{*Fo6sd%*xjG>T4nfjZjNi$o
z2@q)WGsjd_hUA!-zS*^4qwCCPQd=-j)N@lmqvbA6
zTCHw-ZyvTa-;NmQXA>d#VwRRHvz=Km!v*2z72G}RR=i!%7R}+@pt1;vewJk5rMQ6&(
z^L}fA~jn{~BTE^TB
zU$ju|)F4mOSdmCn6V8$o4YQ0T8*#xg=Y!SB=FHzD$X4XaFh{
z6u%)96xzS`jEje@`OnR=sJ9zEuZ0Va>H!-S24IBB-F@z^iKpX8{aC9KOs|89o%2~b
zg8+qQginFL#ho7;Z6M%F(9u^SJ}KtV_SD5N1WI8g5M+Mj0xPoX56%P9-^^aOFV-d#a0zJd1%|_
z!FuFfz8_HbstwB#)K4(&Q@rLyQH5^{RUSUG`-0d@Qmjzpct0JzI!bwNi7@ik;^i}G
zVxRz08kOJ!Wvt=SUe~Ka%2=6(7UmL1u^W)fc6u`NAWs3$=qbj~-u%pWLa$CD^Ap76
zt7)`SwJ`CI-cyu@qG#hoJ5;^7hp27CtpZwU9*^z$W
z_-wK(vGCd#Z8!DC3&fr{+B~l-2o%n&_`Ga>X6|KkR_`+51dzj7&yCvjY{P+?>m0fo
z>e!ht=viOaWXTfjC`4y^3nwCq#6|4W4Zu#?5Z`zUG_1CCav^XCNTEHb7Rp@LJX
z^U@ep3_?2)kZg@KBCu1G`BmB_rr!^z)%f!|k4!iXs+{nBH7;aRLeA9W8Ee-gcjk*O
zH*oznwN_v}!8DPQ!P%E$yudW;N>DN>H(W6j
zaNXJ3autkcHI53deE+6ul5!pOI5J#>M@GA1o;`?w$r2fl5I(ibdg{jvqsxq_KTFx9
ziLrk(3dL3`?|ULQsoY?4!}^9C=jXEz9YNWJN7pyUn4a{oTmAVlKXsDV9pS
zvR!(!IvvnQa_ur?um*)qari@}q(*r?u>L}m0wqS-Ftg%b-}D)Kx-cwLb
zi!u*te(ogUJ5a98=bay#B5k=`k!eq?2Zlg9w)b3^hE*Cw>b**?=HKYZ658{uHS#N3
zsd+d~W>zgEA9NNX`E`b(H|Ek7zYG{gq!V1*I6C_b+8Ly9?%2HHpm@tiQ)j}_Wa(2YMbqbv9)}|{!EcR90NE1wyhf({VW|Y$IeOX49`D9jJ30hzg*Yo7SYt$-4lNcj#dQ)zvwb%l+-#fEz
z&BJQd*WGt)=SX}2FKe1|
z(qcr|y_czE8rs3Q;M8Q?)EFFA9AJawOf8BASbbvB&4~sOT%UHRV}jag3;Kv*<+q{g
zJ~-;$B&C)@i4m)i7?6BU*IRp#p<+{qGvOx&%1we?(WbA24?>O4O=#-ULuBY++k>{9
zw8!j_P>!`)>u^x(-P5aXzUw3iA8~LmV;v?;d7mT0&O}tu96&$FNlXjIRg*1h^1J_m
zFCse-17AnA>uArYT7vYtZru|pcs#C`YK9MAL-u_Wb3#%@f5iOB2c0fw5z~xbbH{lS
zNm*VgH8ov!63vMDiw`<@4g1D|1`G8eQ`L=j7`w--^@0^iy>?z&(fE*G>foC3Y9RvX
zg!qQCl@Nh7$H!y&qalRkxw-kQC(V?Kcw4D;9{YN-r{l_pEjDME&|?cvJW*d;#J5FW
z#W&HjJ0g_yaA(yiOy|Rub#^k`;b
z9AuIm7wg-kVh5cU2@$ALmo851%m*oB>iG^^iBGgAS+wtvkzNbrPmzPDPcT9O=
z`y^toqMp)lX8O7x?&ZG}$8kS-2f#`LpB?w-ESz1K8W3h-=hvzOghF|dW5i=hjxhb{
z)I}CW$!Q6(kDnG;GA4CV!1TG1$Hl*F7w~u%f0UwhtT9+%G7$|_1fN+tf!*Sp-5_)+$;3&cQg9S`
zOm=QBh1rgo`m>3Nw@c|u4?s$E3{3)TKoNCxR__lFsS;5sIU&KYp;JqxU`yWS`x<=3
z>>f%1JT(9wb@tmgH_`ll$Aj@9uStCzZiWdO
zemUytsi6j~F>0*#1U7rfxdvUy)jcuqHr04)!aYTwfEKMMAG+`;DB$D@aDvwg<0$Vl
z#d~k&iCY1=W?{UW;U{0FPD@16^g&y#gL;adjffRC0#`qU7+wQ9JLUpmQLfid9^Zr;
zmjPl-TR-&Mqp@Xs4I+S(YNhBmKOZe_(e)=4FqkNnFcn$|qF;)1f~!~9baDUXf1wPs
zsZ=A^)_q-r&1u^Y^72}w_@qd9!+X`eFi#eT&(w2UyT*Y>P~7Q^i)R2A*)}8);i}qan4ZKu}H7G0&$hi_4yOrZwW(RX5xVWaW#q+c_Me
ztf45fhOYLW&=ymSW3N?o-pSUGcYBLFB)Z&7S{W6p;GK?-A9)aI0E05
zF;ksuu}0>(i}tm}@Q5`w8=d2hK&of;oFwGMi3cwpXe~Vs8Zmg3LgtopJqZ16h74Z!NLG$nC)gA<
zX-@0vRJKf5)0vyTeZ_W}AelcmH|Vrikw0L@ubzz96DDWhC$*vDcFi81z6~nu=6gq4PL$0^9Qte
zA;k(C*gjvK`W=wHaoF7FibP9Cm)S;4Vh)Y$jz1$w_8e&v-l9{+-YwKrQpM
zyJ`ANL{p1`19X*(t%4IV>P_e9eoq(a+dT@lHk+IDx#O$!+E+jmI4
z1m!Oo=10lOxUVujteAa=0f(3yZSrooSl?V&$oJ&UeEd@6z@yYpo5C#ssX;VJ(cGp@Akg8~%g7r{y=z?qBIWf5n3fvG#
zm}91l)%R8zWe?$}i?s5LmW5vMiXIFZPv#VO=dY)73TxH!{#Wf3_X-Tmk{%#aAa+p`k-JnUIP~3nnxP
zz2Fqp@P!|G?T(D8{dx+d;Z!-p*TNGMn_Zo;W4g6NQhY&FdAndr_WqvrBo84jLn)^d
zrgFFc8_R!@@BaOnX@}(^)
zGf72e-Bt!LKP~7N)0Y&+ggkuK-%#ZMa3m`r0>S|iS}%vC<`=*6hO)>_B39+l%V2KF
ze`r0#@#d^@QzQ$mYw$!O!IhKxP!0sv19>e+k_XOX#ortkbg=cmrW@pa&V>ue`a#11T0
zx^`zaGdsn=(D7w?AAja(oAc*+eHF%`86$3+E(c!1MG3tGXmaIwOIG(Pzx3pXW5waXomOBc3!?C8dtRU5G*pp1CBLYhv%A*vdh
z;ll~^^IS1UhrtL(B$sty|WbAe7ZMmhQ{%`>kx$^a1!0eigq
zinK7y$RzSu)i#$MKNWjqT=fmE*)2aFv%us0pf?+C9rXwA^1^gP*znj|pU84Io;W@C
z5mo?|wW~+Xo=ub{2@|5oVyTVRR|qHiQv#^bUS@&KWJyh
zH{`B9JJ^cDooA6}O6|$@V~Wt)Ld9`SWnCPUJdbESkDW$%SQN$+6j5*~_1grtJ40!2
zz#R?sUl(7Vj(q5@r91!pWPfCNlSy>Wr)+!aye+oAow4P#^VF344nav48V2Vl_xG!J
z?F>Q~v4i&jyu8;a~n}{;u|~c9lON`m+J!w{|e(k^al+zuPhXRR6Pu
z;I}#qgg^YP{#Qf6|GMeNLiw-pc+>iDKf}%cQurrI4TU
zkFfTqoj*zD-*(0z{23%X{s-m!r-eT$x8D}vAssM}7XBjO{{QdYAMvN^zw4*}d_w-L
zp#Jt)@^`i0_0&J7{3j>;+W>=d-&(f|LlBt
g)cv(;W&ff3yAMK17XIgE#e%dHAwuL<0FQeA59^QK0RR91
literal 0
HcmV?d00001
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoPageReqVO.java
index 8e761bd..7fa4dba 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoPageReqVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoPageReqVO.java
@@ -29,7 +29,7 @@ public class PhotoPageReqVO extends PageParam {
private PhotoResourceTypeEnum resourceType;
@Schema(description = "资源地址")
- private Long address;
+ private String address;
@Schema(description = "tag_json")
private String tagJson;
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoRespVO.java
index 6862a65..ae85657 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoRespVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoRespVO.java
@@ -32,7 +32,7 @@ public class PhotoRespVO {
@Schema(description = "资源地址", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("资源地址")
- private Long address;
+ private String address;
@Schema(description = "tag")
@ExcelProperty("tag-json")
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoSaveReqVO.java
index 598c559..67bb159 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoSaveReqVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/photo/vo/PhotoSaveReqVO.java
@@ -25,7 +25,7 @@ public class PhotoSaveReqVO {
@Schema(description = "资源地址", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "资源地址不能为空")
- private Long address;
+ private String address;
@Schema(description = "tag")
private String tagJson;
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/photo/vo/AppUploadReqVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/photo/vo/AppUploadReqVo.java
index 5d49347..62233ff 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/photo/vo/AppUploadReqVo.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/photo/vo/AppUploadReqVo.java
@@ -22,7 +22,7 @@ public class AppUploadReqVo {
@Schema(description = "资源地址")
@NotNull(message = "资源地址不能为空")
- private Long address;
+ private String address;
@Schema(description = "发布-经度")
private Double issueLong;
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateReqVO.java
index 0adbf2b..66fb030 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateReqVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateReqVO.java
@@ -1,10 +1,14 @@
package cn.iocoder.yudao.module.member.controller.app.user.vo;
+import cn.iocoder.yudao.module.member.enums.photo.PhotoResourceTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.URL;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
+import java.util.List;
@Schema(description = "用户 App - 会员用户更新 Request VO")
@Data
@@ -32,4 +36,20 @@ public class AppMemberUserUpdateReqVO {
@Schema(description = "个人介绍")
private String description;
+ @Schema(description = "用户相册")
+ private List photo;
+
+ @Data
+ public static class UploadReqVo {
+
+ @Schema(description = "资源类型")
+ @NotEmpty(message = "上传途径不能为空")
+ private PhotoResourceTypeEnum resourceType;
+
+ @Schema(description = "资源地址")
+ @NotNull(message = "资源地址不能为空")
+ private String address;
+
+ }
+
}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/photo/PhotoDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/photo/PhotoDO.java
index a480985..44cee17 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/photo/PhotoDO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/photo/PhotoDO.java
@@ -46,7 +46,7 @@ public class PhotoDO extends BaseDO {
/**
* 资源地址
*/
- private Long address;
+ private String address;
/**
* tag-json
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
index 6f1744d..b5d7c4f 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -13,8 +13,12 @@ import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateR
import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
+import cn.iocoder.yudao.module.member.dal.dataobject.photo.PhotoDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
+import cn.iocoder.yudao.module.member.dal.mysql.photo.PhotoMapper;
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
+import cn.iocoder.yudao.module.member.enums.photo.PhotoBizTypeEnum;
+import cn.iocoder.yudao.module.member.enums.photo.PhotoResourceTypeEnum;
import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer;
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
@@ -34,6 +38,8 @@ import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
@@ -51,6 +57,8 @@ public class MemberUserServiceImpl implements MemberUserService {
@Resource
private MemberUserMapper memberUserMapper;
+ @Resource
+ private PhotoMapper photoMapper;
@Resource
private SmsCodeApi smsCodeApi;
@@ -144,6 +152,17 @@ public class MemberUserServiceImpl implements MemberUserService {
public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) {
MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId);
memberUserMapper.updateById(updateObj);
+ if (ObjectUtil.isNotEmpty(reqVO.getPhoto())) {
+ List photoList = reqVO.getPhoto().stream().map(item -> {
+ PhotoDO entity = new PhotoDO();
+ entity.setMemberId(userId);
+ entity.setBizType(PhotoBizTypeEnum.USER_PHOTO.getType());
+ entity.setResourceType(item.getResourceType().getType());
+ entity.setAddress(item.getAddress());
+ return entity;
+ }).collect(Collectors.toList());
+ photoMapper.insert(photoList);
+ }
}
@Override
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java
index cb9e568..7b0d673 100644
--- a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java
@@ -77,6 +77,7 @@ public interface ErrorCodeConstants {
// ========== 钱包用户转账模块 1-007-010-000 ==========
ErrorCode WALLET_USER_TRANSFER_NOT_FOUND = new ErrorCode(1_007_010_000, "用户转账单不存在");
+ ErrorCode WALLET_USER_TRANSFER_NOT_SELF = new ErrorCode(1_007_010_001, "自己不能给自己送出礼物");
// ========== 示例订单 1-007-900-000 ==========
ErrorCode DEMO_ORDER_NOT_FOUND = new ErrorCode(1_007_900_000, "示例订单不存在");
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
index 5fec2f2..3a6e117 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
@@ -127,7 +127,7 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
public Long sendGift(AppPayWalletGiftSendReqVo dto) {
// 自己不能给自己送出礼物
if (ObjectUtil.equals(dto.getTargetMemberId(), dto.getOperationMemberId())) {
- throw new RuntimeException("自己不能给自己送出礼物");
+ throw exception(WALLET_USER_TRANSFER_NOT_SELF);
}
// 查询目标用户钱包