1:修改礼物背包送礼异常

2:修改添加照片出现错乱问题
3:修改头像框不显示的问题
4:修改我的背包显示不正确的问题
5:修改明细、收支时间问题
This commit is contained in:
2025-09-08 17:22:58 +08:00
parent 77b801cca6
commit 54014fe0f6
27 changed files with 497 additions and 354 deletions

View File

@@ -47,10 +47,11 @@ import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
*@author qx
*@data 2025/6/6
*@description: 相册详情
* @author qx
* @data 2025/6/6
* @description: 相册详情
*/
@Route(path = ARouteConstants.USER_ALBUM_DETAIL)
public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, ActivityAlbumDetailBinding> implements AlbumDetailConacts.View {
@@ -208,6 +209,9 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
.forResult(requestCode); //结果回调onActivityResult code
}
private int totalUploadCount;//需要上传的数据的总数
private int uploadedCount;//已经上传的数据的个数
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -223,6 +227,9 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
imageFiles.add(new File(path));
}
// 记录需要上传的文件总数
totalUploadCount = imageFiles.size();
uploadedCount = 0;
// 开始批量上传
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
@@ -234,21 +241,29 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
public void upLoadSuccess(String url, int type, int index, int total) {
if (index >= 0 && index < uploadedUrls.size()) {
uploadedUrls.add(index, url); // 插入到对应位置
} else {
uploadedUrls.add(url); // 添加到最后
}
// if (uploadedUrls.size() == total) {
updateAdapterData(); // 所有图片上传完成,更新适配器数据
// 增加已上传计数
uploadedCount++;
uploadedUrls.add(url);
// if (index >= 0 && index < uploadedUrls.size()) {
// uploadedUrls.add(index, url); // 插入到对应位置
// } else {
// uploadedUrls.add(url); // 添加到最后
// }
// 当所有图片都上传完成时,更新适配器数据
if (uploadedCount == totalUploadCount) {
updateAdapterData();
// 重置计数器
uploadedCount = 0;
totalUploadCount = 0;
}
}
@Override
public void upAddAlbum() {
uploadedUrls.clear();
// 添加图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, page + "", "10");
}
@@ -263,7 +278,7 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
TextView tvTitle = dialog.findViewById(com.xscm.moduleutil.R.id.tv_title);
tvTitle.setText("选择相册");
assert recyclerView != null;
recyclerView.setLayoutManager(new GridLayoutManager(this,4));
recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
SingleChoiceAdapter sadapter = new SingleChoiceAdapter();
recyclerView.setAdapter(sadapter);
sadapter.setNewData(data);
@@ -287,11 +302,15 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
public void moveAlbum() {
// 移动图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@Override
public void deleteAlbum() {
// 删除图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@@ -302,8 +321,8 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
public void findAlbum() {
mBinding.smartRefreshLayout.finishRefresh() ;
mBinding.smartRefreshLayout.finishLoadMore() ;
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
private void updateAdapterData() {
@@ -314,7 +333,7 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
protected void onResume() {
super.onResume();
page=1;
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@@ -331,9 +350,9 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
private void updateZanButtonUI(AlbumBean albumBean) {
if (albumBean.getIs_like().equals("0")) {
mBinding.zanImage.setImageResource(com.xscm.moduleutil.R.mipmap.shousz); // 已点赞图标
if (Integer.parseInt(albumBean.getLike_num())==0){
if (Integer.parseInt(albumBean.getLike_num()) == 0) {
mBinding.dyComment.setText("0");
}else {
} else {
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) - 1 + "");
}
} else {
@@ -396,16 +415,19 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
if (albumBean.getImage_list() != null && !albumBean.getImage_list().isEmpty()) {
List<AlbumBean.ImageList> allImages = albumBean.getImage_list();
List<AlbumBean.ImageList> groupedPhotos = groupPhotos(allImages);
if (page==1) {
if (page == 1) {
adapter.setNewData(groupedPhotos);
}else {
} else {
adapter.addData(groupedPhotos);
}
}else {
page=1;
if (albumBean.getCount()==null || albumBean.getCount().equals("0")){
adapter.setNewData( new ArrayList<>());
} else {
if (page == 1) {
adapter.setNewData(new ArrayList<>());
}
// page=1;
// if (albumBean.getCount()==null || albumBean.getCount().equals("0")){
// adapter.setNewData( new ArrayList<>());
// }
}

View File

@@ -39,6 +39,7 @@ import com.xscm.moduleutil.utils.DateSelectDialog;
import com.xscm.moduleutil.utils.GlideEngine;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.Constants;
import com.xscm.moduleutil.widget.img.FullScreenUtil;
import com.xscm.moduleutil.widget.picker.PictureSelectorUtil;
import com.stx.xhb.xbanner.XBanner;
@@ -98,8 +99,14 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
updateAdapterData();
} else {
if (item.equals(UserPhotoWallAdapter.ADD_PHOTO)) {
// 点击的是“+”号,启动图片选择
startChoosePhoto(1, PictureConfig.REQUEST_CAMERA, false, 9);
// 修改判断条件考虑已上传的图片和ADD_PHOTO项
int maxSelectable = 6 - uploadedUrls.size();
if (maxSelectable > 0) {
// 点击的是"+"'号,启动图片选择
startChoosePhoto(1, PictureConfig.REQUEST_CAMERA, false, maxSelectable, false);
} else {
ToastUtils.showShort("最多只能选择6张图片");
}
} else {
// 查看大图或其他操作
FullScreenUtil.showFullScreenDialog(EditUserInfoActivity.this, position, list);
@@ -131,7 +138,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
private void onClick(View view) {
if (view.getId() == R.id.rv_user_head) {
startChoosePhoto(1, PictureConfig.REQUEST_GO_SETTING, false, 1);
startChoosePhoto(1, PictureConfig.REQUEST_GO_SETTING, false, 1,true);
} else if (view.getId() == R.id.rl_1) {
startActivity(new Intent(this, ChangeNicknameActivity.class));
} else if (view.getId() == R.id.rl_3) {
@@ -155,7 +162,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
return new EditUserPresenter(this, this);
}
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type) {
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type , boolean isCq) {
// PictureSelector.create(this)
// .openGallery(mimeType)
@@ -169,80 +176,97 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
// .setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
// .forResult(requestCode); //结果回调onActivityResult code
PictureSelectorUtil pictureSelectorUtil = new PictureSelectorUtil();
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setMaxSelectNum(type)
.isPreviewImage(false)
.setImageEngine(GlideEngine.createGlideEngine())
.setImageEngine(GlideEngine.createGlideEngine()) // 选择器展示不出图片则添加
.setCropEngine(new CropFileEngine() {
@Override
public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList<String> dataSource, int requestCode) {
UCrop.Options options = pictureSelectorUtil.buildOptions();
UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource);
uCrop.withOptions(options);
uCrop.setImageEngine(new UCropImageEngine() {
@Override
public void loadImage(Context context, String url, ImageView imageView) {
// if (!ImageLoaderUtils.assertValidRequest(context)) {
// return;
// }
Glide.with(context).load(url).override(180, 180).into(imageView);
}
if (!isCq) {
@Override
public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @org.jetbrains.annotations.Nullable Transition<? super Bitmap> transition) {
if (call != null) {
call.onCall(resource);
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isDisplayCamera(true)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)
.forResult(requestCode); //结果回调onActivityResult code
} else {
PictureSelectorUtil pictureSelectorUtil = new PictureSelectorUtil();
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setMaxSelectNum(type)
.isPreviewImage(false)
.setImageEngine(GlideEngine.createGlideEngine())
.setImageEngine(GlideEngine.createGlideEngine()) // 选择器展示不出图片则添加
.setCropEngine(new CropFileEngine() {
@Override
public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList<String> dataSource, int requestCode) {
UCrop.Options options = pictureSelectorUtil.buildOptions();
UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource);
uCrop.withOptions(options);
uCrop.setImageEngine(new UCropImageEngine() {
@Override
public void loadImage(Context context, String url, ImageView imageView) {
Glide.with(context).load(url).override(180, 180).into(imageView);
}
@Override
public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @org.jetbrains.annotations.Nullable Transition<? super Bitmap> transition) {
if (call != null) {
call.onCall(resource);
}
}
}
@Override
public void onLoadCleared(@org.jetbrains.annotations.Nullable Drawable placeholder) {
if (call != null) {
call.onCall(null);
@Override
public void onLoadCleared(@org.jetbrains.annotations.Nullable Drawable placeholder) {
if (call != null) {
call.onCall(null);
}
}
}
});
}
});
uCrop.start(fragment.requireActivity(), fragment, requestCode);
}
})
.forResult(requestCode);
});
}
});
uCrop.start(fragment.requireActivity(), fragment, requestCode);
}
})
.forResult(requestCode);
}
}
private int totalUploadCount;//需要上传的数据的总数
private int uploadedCount;//已经上传的数据的个数
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null) {
switch (requestCode) {
case PictureConfig.REQUEST_GO_SETTING:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMedia1 = PictureSelector.obtainSelectorList(data);
if (localMedia1 != null && localMedia1.size() != 0) {
LocalMedia imgMedia = localMedia1.get(0);
String url;
if (imgMedia.isCompressed()) {
url = imgMedia.getCompressPath();
} else {
url = imgMedia.getRealPath();
}
// if (imgMedia.isCompressed()) {
// url = imgMedia.getCompressPath();
// } else {
// url = imgMedia.getRealPath();
// }
url=imgMedia.getCutPath();
MvpPre.uploadFile(new File(url), 1, 1, 1);
}
break;
case PictureConfig.CHOOSE_REQUEST:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMedia = PictureSelector.obtainSelectorList(data);
if (localMedia != null && localMedia.size() != 0) {
@@ -258,7 +282,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
break;
case PictureConfig.REQUEST_CAMERA:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMediaList = PictureSelector.obtainSelectorList(data);
if (localMediaList != null && !localMediaList.isEmpty()) {
@@ -267,7 +291,9 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
imageFiles.add(new File(path));
}
// 记录需要上传的文件总数
totalUploadCount = imageFiles.size();
uploadedCount = 0;
// 开始批量上传
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
@@ -299,7 +325,9 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
}
list.clear();
list.addAll(uploadedUrls);
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
if (list.size()<6) {
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
}
mUserPhotoWallAdapter.setNewData(list);
userInfo1 = userInfo;
List<XBannerData> s = new ArrayList<>();
@@ -344,8 +372,8 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
@Override
public void editUserInfoSuccess(String s) {
ToastUtils.showShort(s);
uploadedUrls.clear();
MvpPre.getUserHome(SpUtil.getUserId() + "");
// uploadedUrls.clear();
// MvpPre.getUserHome(SpUtil.getUserId() + "");
}
@Override
@@ -364,31 +392,27 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
EventBus.getDefault().post(userBean);
MvpPre.editUserInfo("", "", "", url, "", "", "");
} else {
// list.add(new UserImgList("1", url));
// mUserPhotoWallAdapter.setNewData(list);
try {
if (index >= 0 && index <= uploadedUrls.size()) {
uploadedUrls.add(index, url);
LogUtils.d("EditUserInfoActivity", "图片已插入到位置 "+index);
} else {
uploadedUrls.add(url);
LogUtils.d("EditUserInfoActivity", "图片已添加到末尾");
}
} catch (Exception e) {
LogUtils.e("EditUserInfoActivity", "处理图片URL时出错: " + e.getMessage());
uploadedUrls.add(url);
// 增加已上传计数
uploadedCount++;
uploadedUrls.add(url);
LogUtils.d("EditUserInfoActivity", "图片已插入到位置 " + uploadedUrls.size());
// 当所有图片都上传完成时,更新适配器数据
if (uploadedCount == totalUploadCount) {
updateAdapterData();
// 重置计数器
uploadedCount = 0;
totalUploadCount = 0;
}
// if (uploadedUrls.size() == total) {
updateAdapterData(); // 所有图片上传完成,更新适配器数据
// }
}
}
private void updateAdapterData() {
LogUtils.d("EditUserInfoActivity", "图片已添加到末尾"+uploadedUrls.size());
list.clear();
list.addAll(uploadedUrls); // 添加真实图片
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
if (list.size() < 6) {
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
}
mUserPhotoWallAdapter.setNewData(list);
String imageUrlsString = TextUtils.join(",", uploadedUrls);
// MvpPre.editUserInfo("", "", "", "", imageUrlsString, "", "");

View File

@@ -58,12 +58,12 @@ public class RoomDetailsActivity extends BaseMvpActivity<RoomDetailsPresenter, A
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
// 处理选择的时间范围
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:mm", Locale.getDefault());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate));
// mBinding.tv2.setText(sdf.format(startDate));
mBinding.tv2.setText(sdf.format(startDate));
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate));
// mBinding.tv22.setText(sdf.format(endDate));
mBinding.tv22.setText(sdf.format(endDate));
currentPage=1;
stime = sdf.format(startDate);
etime = sdf.format(endDate);

View File

@@ -468,7 +468,7 @@ public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
tv_name.setText(item.getRoom_name());
tv_num.setText(item.getHot_value());
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv_play);
// ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv_play);
rl_root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

View File

@@ -84,7 +84,7 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
// 处理选择的时间范围
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:mm", Locale.getDefault());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate));
mBinding.tv2.setText(sdf.format(startDate));
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate));
@@ -113,6 +113,8 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"",endDate,type);
}
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
}
// MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
@@ -125,12 +127,14 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
// MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
String startDate = mBinding.tv2.getText().toString();
String endDate = mBinding.tv22.getText().toString();
if ( startDate!=null && !startDate.equals("") ){
if ( startDate!=null && !startDate.equals("") ){
if ( endDate!=null && !endDate.equals("") ){
MvpPre.getRevenueData(page+"","50",revenueType,startDate,endDate,revenueType);
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"",endDate,type);
}
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
}
}
});