Commit 26b2c06b by mReturn

修改留言

parent b4d6d947
Showing with 384 additions and 525 deletions

19 KB | W: | H:

223 KB | W: | H:

baseSDK/src/main/res/drawable-xxhdpi/icon_money_bag2.png
baseSDK/src/main/res/drawable-xxhdpi/icon_money_bag2.png
baseSDK/src/main/res/drawable-xxhdpi/icon_money_bag2.png
baseSDK/src/main/res/drawable-xxhdpi/icon_money_bag2.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -15,6 +15,18 @@
</style>
<style name="user_info_text">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/size_login_hint_text</item>
<!--<item name="android:textSize">12sp</item>-->
<item name="android:textColor">#5a5a5a</item>
</style>
<style name="user_info_text2" parent="user_info_text">
<item name="android:layout_marginLeft">3dp</item>
</style>
<style name="sale_linearlayout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
......@@ -54,7 +66,7 @@
<style name="sale_detail_text2" parent="sale_item_text">
<item name="android:layout_marginLeft">3dp</item>
<item name="android:maxLines">5</item>
<item name="android:maxLines">10</item>
</style>
<style name="sale_record_text" parent="sale_item_text">
......
......@@ -5,6 +5,7 @@ import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.order.api.protocol.CommentBean;
import com.dayu.order.api.protocol.CommentPostData;
import com.dayu.order.api.protocol.CommentReplyData;
import com.dayu.order.api.protocol.ErrorOrder;
import com.dayu.order.api.protocol.KaAddress;
import com.dayu.order.api.protocol.LogsticsInfo;
......@@ -178,9 +179,12 @@ public class OrderApiFactory {
}
public static Observable<BasePageBean<CommentBean>> getComment(int targetId, int status, int targetType,int accountType, int page, int pageSize) {
return Api.getService(OrderService.class).getComment(targetId, status, targetType,accountType, page, pageSize).compose(Api.applySchedulers());
return Api.getService(OrderService.class).getComment(targetId, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Boolean> addComment(CommentPostData data) {
return Api.getService(OrderService.class).addComment(data).compose(Api.applySchedulers());
}
public static Observable<Boolean> addCommentReply(CommentReplyData data) {
return Api.getService(OrderService.class).addCommentReply(data).compose(Api.applySchedulers());
}
}
......@@ -2,8 +2,10 @@ package com.dayu.order.api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.common.Constants;
import com.dayu.order.api.protocol.CommentBean;
import com.dayu.order.api.protocol.CommentPostData;
import com.dayu.order.api.protocol.CommentReplyData;
import com.dayu.order.api.protocol.ErrorOrder;
import com.dayu.order.api.protocol.KaAddress;
import com.dayu.order.api.protocol.LogsticsInfo;
......@@ -18,6 +20,7 @@ import com.dayu.order.api.protocol.Spu;
import com.dayu.order.api.protocol.Tab;
import com.dayu.order.api.protocol.companyManager;
import com.dayu.order.common.OrderConstant;
import com.megvii.idcardlib.util.Constant;
import java.util.List;
......@@ -398,21 +401,20 @@ interface OrderService {
/**
* 获取留言
* @param targetId
* @param status
* @param targetType
* @return
*/
@GET(OrderConstant.COMMENT_URL)
Observable<BaseResponse<BasePageBean<CommentBean>>> getComment(@Query("targetId") int targetId,
@Query("status") int status,
@Query("targetType") int targetType,
@Query("accountType ") int accountType,
@GET(Constants.API_7400+"/leaveMessage/spu/engineer/spuId/{spuId}")
Observable<BaseResponse<BasePageBean<CommentBean>>> getComment(@Path("spuId") int spuId,
@Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 留言/回复
* 留言
*/
@POST(OrderConstant.COMMENT_URL)
@POST(Constants.API_7400+"/leaveMessage/spu/engineer")
Observable<BaseResponse<Boolean>> addComment(@Body CommentPostData data);
/**
* 回复
*/
@POST(Constants.API_7400+"/leaveMessage/spu/engineer")
Observable<BaseResponse<Boolean>> addCommentReply(@Body CommentReplyData data);
}
......@@ -7,29 +7,14 @@ package com.dayu.order.api.protocol;
public class CommentBean {
private int id;
private int targetId;
private int targetType;
private String targetName;
private int accountId;
private String accountName;
private int accountType;
private Object name;
private String messageAvatarUrl;
private int beAccountId;
private Object beName;
private int beMessageId;
private String beName;
private String targetName;
private String content;
private Object reContent;
private String createTime;
private int messageType;
private int parentId;
private String orderNum;
private int status;
private int isRead;
private Object updateTime;
private String updated;
private Object companyId;
private Object keyword;
private String createTime;
private String messageAvatarUrl;
public int getId() {
return id;
......@@ -39,38 +24,6 @@ public class CommentBean {
this.id = id;
}
public int getTargetId() {
return targetId;
}
public void setTargetId(int targetId) {
this.targetId = targetId;
}
public int getTargetType() {
return targetType;
}
public void setTargetType(int targetType) {
this.targetType = targetType;
}
public String getTargetName() {
return targetName;
}
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public String getAccountName() {
return accountName;
}
......@@ -79,52 +32,20 @@ public class CommentBean {
this.accountName = accountName;
}
public int getAccountType() {
return accountType;
}
public void setAccountType(int accountType) {
this.accountType = accountType;
}
public Object getName() {
return name;
}
public void setName(Object name) {
this.name = name;
}
public String getMessageAvatarUrl() {
return messageAvatarUrl;
}
public void setMessageAvatarUrl(String messageAvatarUrl) {
this.messageAvatarUrl = messageAvatarUrl;
}
public int getBeAccountId() {
return beAccountId;
}
public void setBeAccountId(int beAccountId) {
this.beAccountId = beAccountId;
}
public Object getBeName() {
public String getBeName() {
return beName;
}
public void setBeName(Object beName) {
public void setBeName(String beName) {
this.beName = beName;
}
public int getBeMessageId() {
return beMessageId;
public String getTargetName() {
return targetName;
}
public void setBeMessageId(int beMessageId) {
this.beMessageId = beMessageId;
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public String getContent() {
......@@ -135,22 +56,6 @@ public class CommentBean {
this.content = content;
}
public Object getReContent() {
return reContent;
}
public void setReContent(Object reContent) {
this.reContent = reContent;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public int getMessageType() {
return messageType;
}
......@@ -159,30 +64,6 @@ public class CommentBean {
this.messageType = messageType;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getOrderNum() {
return orderNum;
}
public void setOrderNum(String orderNum) {
this.orderNum = orderNum;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getIsRead() {
return isRead;
}
......@@ -191,35 +72,19 @@ public class CommentBean {
this.isRead = isRead;
}
public Object getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Object updateTime) {
this.updateTime = updateTime;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
public Object getCompanyId() {
return companyId;
public String getCreateTime() {
return createTime;
}
public void setCompanyId(Object companyId) {
this.companyId = companyId;
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Object getKeyword() {
return keyword;
public String getMessageAvatarUrl() {
return messageAvatarUrl;
}
public void setKeyword(Object keyword) {
this.keyword = keyword;
public void setMessageAvatarUrl(String messageAvatarUrl) {
this.messageAvatarUrl = messageAvatarUrl;
}
}
......@@ -5,23 +5,19 @@ package com.dayu.order.api.protocol;
* on 2020\1\9 0009.
*/
public class CommentPostData {
public int accountId; //留言人或回复人ID
public String accountName; //账号名称
public int accountType = 1;// 账号类型:1工程师或服务商 2小程序用户 3大鱼公司 ,
public int companyId; //ka companyId
public String content; //留言
public String messageAvatarUrl; //头像
public int messageType; //留言类型 1留言 2回复
public String name; //SP名称或KA名称
public int status = 1; //状态 1显示 2屏蔽
public int targetId; //招标、授权、SPM服务ID
public String targetName; //招标授权名称
public int targetType = 3; //类型:1:招标 2:授权 3:SPM服务 4:销售商品
public String updated; //更新人名称
public int accountId; //留言人或回复人账号ID
public String content; // 留言内容 ,
public int targetId; //商品ID ,
public String targetName; //商品名称
public int beMessageId; //被回复的留言ID
public String beName; //被回复人昵称
public int parentId; //父节点
public int beAccountId; //被回复人ID
public CommentPostData() {
}
public CommentPostData(int accountId, String content, int targetId, String targetName) {
this.accountId = accountId;
this.content = content;
this.targetId = targetId;
this.targetName = targetName;
}
}
package com.dayu.order.api.protocol;
public class CommentReplyData {
public int accountId; //留言人或回复人账号ID
public int beMessageId ; //留言人或回复人账号ID
public String content; // 留言内容 ,
public int targetId; //商品ID ,
public String targetName; //商品名称
public CommentReplyData() {
}
public CommentReplyData(int accountId, String content, int targetId, String targetName) {
this.accountId = accountId;
this.content = content;
this.targetId = targetId;
this.targetName = targetName;
}
}
......@@ -7,6 +7,7 @@ import android.text.TextUtils;
import android.view.View;
import com.badoo.mobile.util.WeakHandler;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.base.ui.fragment.BaseFragment;
......@@ -17,6 +18,7 @@ import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.CommentBean;
import com.dayu.order.api.protocol.CommentPostData;
import com.dayu.order.api.protocol.CommentReplyData;
import com.dayu.order.api.protocol.OperateInfo;
import com.dayu.order.databinding.FragmentOperateDetailBinding;
import com.dayu.order.ui.adapter.CommentAdapter;
......@@ -44,7 +46,7 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
private List<CommentBean> commentList = new ArrayList<>();
private CommentBean selectedItem;
private int page = 1;
private int pageSize = 2000;
private int pageSize = 20;
private WeakHandler weakHandler = new WeakHandler();
public static OperateDetailFragment newInstance(OperateInfo info) {
......@@ -57,10 +59,12 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
@Override
public void initView() {
userInfo = UserManager.getInstance().getUser();
initUser();
userInfo = mUserInfo;
GlideImageLoader.load(mActivity, mBind.ivAvatar, userInfo.getHeaderImg(), R.drawable.icon_user_default);
operateInfo = (OperateInfo) getArguments().getSerializable(Constants.OPERATE_DETAIL);
getCommentData();
initRefreshView();
phone = operateInfo.getHotline();
mSopAdapter = new CoreAdapter<>(false);
......@@ -87,10 +91,21 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
mBind.jzVideo.setUp(url, "");
GlideImageLoader.load(mActivity, mBind.jzVideo.thumbImageView, url, R.drawable.icon_app_logo);
setListener();
}
//下拉刷新
private void initRefreshView() {
mBind.refreshLayout.setEnableLoadMore(false);
mBind.refreshLayout.setOnRefreshListener(refreshLayout -> {
page = 1;
getCommentData();
});
mBind.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
getCommentData();
});
}
@SuppressLint("ClickableViewAccessibility")
private void setListener() {
KeyboardStateObserver.getKeyboardStateObserver(mActivity).setKeyboardVisibilityListener(
......@@ -104,7 +119,7 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
public void onKeyboardHide() {
weakHandler.postDelayed(() -> {
mBind.btnComment.setVisibility(View.VISIBLE);
},100);
}, 100);
}
});
mBind.nsvOperate.setOnTouchListener((view, motionEvent) -> {
......@@ -126,35 +141,23 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
String content = mBind.edtComment.getText().toString();
if (TextUtils.isEmpty(content)) return;
ProgressUtil.startLoad(mActivity);
CommentPostData commentData = new CommentPostData();
commentData.targetId = operateInfo.getId();
commentData.targetName = operateInfo.getName();
commentData.accountId = Integer.parseInt(userInfo.getAccountId());
commentData.accountName = userInfo.getAccountName();
commentData.messageAvatarUrl = userInfo.getHeaderImg();
commentData.content = content;
commentData.updated = userInfo.getAccountName();
commentData.messageType = 2;
if (selectedItem == null) {
commentData.messageType = 1;
if (selectedItem != null) {
CommentReplyData commentReplyData = new CommentReplyData(mUserId, content, operateInfo.getId(), operateInfo.getName());
commentReplyData.beMessageId = selectedItem.getId();
OrderApiFactory.addCommentReply(commentReplyData).subscribe(mPresenter.baseObserver(result -> {
if (result) {
selectedItem = null;
sendCommendSuccess();
}
}));
} else {
commentData.messageType = 2;
commentData.beAccountId = selectedItem.getAccountId();
commentData.beName = selectedItem.getAccountName();
commentData.beMessageId = selectedItem.getId();
if (commentData.parentId > 0) {
commentData.parentId = selectedItem.getParentId();
} else {
commentData.parentId = selectedItem.getId();
}
CommentPostData commentData = new CommentPostData(mUserId, content, operateInfo.getId(), operateInfo.getName());
OrderApiFactory.addComment(commentData).subscribe(mPresenter.baseObserver(result -> {
if (result)
sendCommendSuccess();
}));
}
OrderApiFactory.addComment(commentData).subscribe(mPresenter.baseObserver(result -> {
if (result)
getCommentData();
}));
selectedItem = null;
mBind.edtComment.setText("");
CommonUtils.hideSoftInput(mActivity, mBind.edtComment);
});
......@@ -173,48 +176,35 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
});
}
private void sendCommendSuccess() {
page = 1;
mBind.edtComment.setText("");
getCommentData();
}
private void getCommentData() {
ProgressUtil.startLoad(mActivity);
OrderApiFactory.getComment(operateInfo.getId(), 1, 3,1, page, pageSize)
OrderApiFactory.getComment(operateInfo.getId(), 1, 3, 1, page, pageSize)
.subscribe(mPresenter.baseObserver(data -> {
mBind.refreshLayout.finishRefresh();
mBind.refreshLayout.finishLoadMore();
if (page == 1) {
commentList.clear();
mBind.refreshLayout.setEnableLoadMore(data.getData().size() > 0);
}
commentList = transData(data.getData());
mBind.tvComponent.setText("留言. " + commentList.size());
// commentList = transData(data.getData());
commentList.addAll(data.getData());
mBind.tvComponent.setText("留言. " + data.getTotalRows());
mCommentAdapter.setData(commentList);
mBind.refreshLayout.setEnableLoadMore(page < data.getTotalPages());
page += 1;
}, responeThrowable -> {
mBind.refreshLayout.finishRefresh();
mBind.refreshLayout.finishLoadMore();
}));
}
private List<CommentBean> transData(List<CommentBean> datas) {
List<CommentBean> tempList = new ArrayList<>();
for (int i = 0; i < datas.size(); i++) {
CommentBean cData = datas.get(i);
if (cData.getMessageType() == 1) {
if (!tempList.contains(cData))
tempList.add(cData);
} else {
int parentId = cData.getParentId();
for (int j = 0; j < datas.size(); j++) {
CommentBean cData2 = datas.get(j);
if (cData2.getId() == parentId) {
if (!tempList.contains(cData2)) {
tempList.add(cData2);
if (!tempList.contains(cData))
if (!tempList.contains(cData))
tempList.add(tempList.indexOf(cData2) + 1, cData);
} else if (!tempList.contains(cData)) {
tempList.add(tempList.indexOf(cData2) + 1, cData);
}
} else if (!tempList.contains(cData2)) {
tempList.add(cData2);
}
}
}
}
return tempList;
}
@Override
public int getLayoutId() {
......
......@@ -29,7 +29,7 @@ public class SaleOrderAdapter extends CoreAdapter<OrdersBean,ItemSaleOrderBindin
holder.tvStatus.setText(CommonUtils.getOrderStauts(mContext,item.getStatus()));
holder.tvStatus.setTextColor(CommonUtils.getOrderStautsColor(mContext,item.getStatus()));
holder.tvDate.setText(item.getCreateTime());
holder.tvCompany.setText(item.getReceiverName());
holder.tvCompany.setText(item.getBuyerNickName());
holder.tvDateDesc.setText(type == 1?mContext.getString(R.string.sale_order_date):mContext.getString(R.string.sale_order_date2));
}
}
......@@ -4,6 +4,7 @@ import com.bigfish.salecenter.event.SaleTabNumEvent;
import com.bigfish.salecenter.model.CollectProductData;
import com.bigfish.salecenter.model.CommentBean;
import com.bigfish.salecenter.model.CommentPostData;
import com.bigfish.salecenter.model.CommentReplyData;
import com.bigfish.salecenter.model.OrdersBean;
import com.bigfish.salecenter.model.ProductDetailBean;
import com.bigfish.salecenter.model.ProductListBean;
......@@ -116,17 +117,19 @@ public interface SaleService {
*
* @return
*/
@GET("/api-message/" + "leaveMessage")
Observable<BaseResponse<BasePageBean<CommentBean>>> getComment(@Query("targetId") int targetId,
@Query("status") int status,
@Query("targetType") int targetType,
@Query("accountType ") int accountType,
@GET(Constants.API_7400 + "/leaveMessage/goods/engineer/goodsId/{goodsId}")
Observable<BaseResponse<BasePageBean<CommentBean>>> getComment(@Path("goodsId") int goodsId,
@Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 留言/回复
* 留言
*/
@POST("/api-message/" + "leaveMessage")
@POST(Constants.API_7400 + "/leaveMessage/goods/engineer")
Observable<BaseResponse<Boolean>> addComment(@Body CommentPostData data);
/**
* 回复
*/
@POST(Constants.API_7400 + "/leaveMessage/goods/engineer")
Observable<BaseResponse<Boolean>> addCommentReply(@Body CommentReplyData data);
}
......@@ -6,30 +6,27 @@ package com.bigfish.salecenter.model;
*/
public class CommentBean {
/**
* id : 271
* accountName : 曹立明
* beName : null
* targetName : 商品1
* content : 留言1-小程序
* messageType : 1
* isRead : 2
* createTime : 2020-03-17 17:45:39
* messageAvatarUrl : https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJKEXJZcqmEdrgl7VXyMWZ7BGIFLbfLTYWHPbonbMqibyicObslJXe7ZicdlS7zLmNH4ScYxbfPzW0lA/132
*/
private int id;
private int targetId;
private int targetType;
private String targetName;
private int accountId;
private String accountName;
private int accountType;
private Object name;
private String messageAvatarUrl;
private int beAccountId;
private Object beName;
private int beMessageId;
private String beName;
private String targetName;
private String content;
private Object reContent;
private String createTime;
private int messageType;
private int parentId;
private String orderNum;
private int status;
private int isRead;
private Object updateTime;
private String updated;
private Object companyId;
private Object keyword;
private String createTime;
private String messageAvatarUrl;
public int getId() {
return id;
......@@ -39,38 +36,6 @@ public class CommentBean {
this.id = id;
}
public int getTargetId() {
return targetId;
}
public void setTargetId(int targetId) {
this.targetId = targetId;
}
public int getTargetType() {
return targetType;
}
public void setTargetType(int targetType) {
this.targetType = targetType;
}
public String getTargetName() {
return targetName;
}
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public String getAccountName() {
return accountName;
}
......@@ -79,52 +44,20 @@ public class CommentBean {
this.accountName = accountName;
}
public int getAccountType() {
return accountType;
}
public void setAccountType(int accountType) {
this.accountType = accountType;
}
public Object getName() {
return name;
}
public void setName(Object name) {
this.name = name;
}
public String getMessageAvatarUrl() {
return messageAvatarUrl;
}
public void setMessageAvatarUrl(String messageAvatarUrl) {
this.messageAvatarUrl = messageAvatarUrl;
}
public int getBeAccountId() {
return beAccountId;
}
public void setBeAccountId(int beAccountId) {
this.beAccountId = beAccountId;
}
public Object getBeName() {
public String getBeName() {
return beName;
}
public void setBeName(Object beName) {
public void setBeName(String beName) {
this.beName = beName;
}
public int getBeMessageId() {
return beMessageId;
public String getTargetName() {
return targetName;
}
public void setBeMessageId(int beMessageId) {
this.beMessageId = beMessageId;
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public String getContent() {
......@@ -135,22 +68,6 @@ public class CommentBean {
this.content = content;
}
public Object getReContent() {
return reContent;
}
public void setReContent(Object reContent) {
this.reContent = reContent;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public int getMessageType() {
return messageType;
}
......@@ -159,30 +76,6 @@ public class CommentBean {
this.messageType = messageType;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getOrderNum() {
return orderNum;
}
public void setOrderNum(String orderNum) {
this.orderNum = orderNum;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getIsRead() {
return isRead;
}
......@@ -191,35 +84,19 @@ public class CommentBean {
this.isRead = isRead;
}
public Object getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Object updateTime) {
this.updateTime = updateTime;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
public Object getCompanyId() {
return companyId;
public String getCreateTime() {
return createTime;
}
public void setCompanyId(Object companyId) {
this.companyId = companyId;
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Object getKeyword() {
return keyword;
public String getMessageAvatarUrl() {
return messageAvatarUrl;
}
public void setKeyword(Object keyword) {
this.keyword = keyword;
public void setMessageAvatarUrl(String messageAvatarUrl) {
this.messageAvatarUrl = messageAvatarUrl;
}
}
package com.bigfish.salecenter.model;
/**
* Created by mReturn
* on 2020\1\9 0009.
*/
public class CommentPostData {
public int accountId; //留言人或回复人ID
public String accountName; //账号名称
public int accountType = 1; // 账号类型:1工程师或服务商 2小程序用户 3大鱼公司
public int companyId; //ka companyId
public String content; //留言
public String messageAvatarUrl; //头像
public int messageType; //留言类型 1留言 2回复
public String name; //SP名称或KA名称
public int status = 1; //状态 1显示 2屏蔽
public int targetId; //招标、授权、SPM服务ID
public String targetName; //招标授权名称
public int targetType = 4; //类型:1:招标 2:授权 3:SPM服务 4:销售商品
public String updated; //更新人名称
public int accountId; //留言人或回复人账号ID
public String content; // 留言内容 ,
public int targetId; //商品ID ,
public String targetName; //商品名称
public int beMessageId; //被回复的留言ID
public String beName; //被回复人昵称
public int parentId; //父节点
public int beAccountId; //被回复人ID
public CommentPostData() {
}
public CommentPostData(int accountId, String content, int targetId, String targetName) {
this.accountId = accountId;
this.content = content;
this.targetId = targetId;
this.targetName = targetName;
}
}
package com.bigfish.salecenter.model;
public class CommentReplyData {
public int accountId; //留言人或回复人账号ID
public int beMessageId ; //留言人或回复人账号ID
public String content; // 留言内容 ,
public int targetId; //商品ID ,
public String targetName; //商品名称
public CommentReplyData() {
}
public CommentReplyData(int accountId, String content, int targetId, String targetName) {
this.accountId = accountId;
this.content = content;
this.targetId = targetId;
this.targetName = targetName;
}
}
......@@ -58,7 +58,8 @@ public class SaleOrderDetailActivity extends BaseActivity<SImplePresenter, Activ
private void setDetailViewData(SaleOrderDetailsBean data) {
mBind.tvOrderNumber.setText(data.getOrderGoodsNum());
mBind.tvCompanyName.setText(data.getOrgName());
// mBind.tvCompanyName.setText(data.getOrgName());
mBind.tvCompanyName.setText(data.getBuyerNickName());
mBind.tvCustomerName.setText(data.getReceiverName());
String address = data.getProvinceName()+" "+data.getCityName()+" "
+data.getDistrictName()+" "+data.getReceiverAddress();
......
......@@ -17,6 +17,7 @@ import com.bigfish.salecenter.api.SaleService;
import com.bigfish.salecenter.databinding.FragmentSaleInstructionBinding;
import com.bigfish.salecenter.model.CommentBean;
import com.bigfish.salecenter.model.CommentPostData;
import com.bigfish.salecenter.model.CommentReplyData;
import com.bigfish.salecenter.model.ProductDetailBean;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
......@@ -78,7 +79,8 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
@Override
public void initView() {
userInfo = UserManager.getInstance().getUser();
initUser();
userInfo = mUserInfo;
GlideImageLoader.load(mActivity, mBind.ivAvatar, userInfo.getHeaderImg(), R.drawable.icon_user_default);
if (getArguments() != null) {
mDetail = (ProductDetailBean) getArguments().getSerializable("data");
......@@ -204,35 +206,26 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
String content = mBind.edtComment.getText().toString();
if (TextUtils.isEmpty(content)) return;
ProgressUtil.startLoad(mActivity);
CommentPostData commentData = new CommentPostData();
commentData.targetId = mDetail.getId();
commentData.targetName = mDetail.getGoodsModel();
commentData.accountId = Integer.parseInt(userInfo.getAccountId());
commentData.accountName = userInfo.getAccountName();
commentData.messageAvatarUrl = userInfo.getHeaderImg();
commentData.content = content;
commentData.updated = userInfo.getAccountName();
if (selectedItem == null) {
commentData.messageType = 1;
} else {
commentData.messageType = 2;
commentData.beAccountId = selectedItem.getAccountId();
commentData.beName = selectedItem.getAccountName();
commentData.beMessageId = selectedItem.getId();
if (commentData.parentId > 0) {
commentData.parentId = selectedItem.getParentId();
} else {
commentData.parentId = selectedItem.getId();
}
if (selectedItem != null){
CommentReplyData commentReplyData = new CommentReplyData(mUserId,content,mDetail.getId(),mDetail.getGoodsModel());
commentReplyData.beMessageId = selectedItem.getId();
Api.getService(SaleService.class).addCommentReply(commentReplyData).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(result -> {
if (result){
selectedItem = null;
sendCommendSuccess();
}
}));
}else {
CommentPostData commentData = new CommentPostData(mUserId,content,mDetail.getId(),mDetail.getGoodsModel());
Api.getService(SaleService.class).addComment(commentData).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(result -> {
if (result){
sendCommendSuccess();
}
}));
}
Api.getService(SaleService.class).addComment(commentData).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(result -> {
if (result)
getCommentData();
}));
selectedItem = null;
mBind.edtComment.setText("");
CommonUtils.hideSoftInput(mActivity, mBind.edtComment);
});
......@@ -251,9 +244,15 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
});
}
private void sendCommendSuccess() {
page =1;
getCommentData();
mBind.edtComment.setText("");
}
//获取评论数据
private void getCommentData() {
Api.getService(SaleService.class).getComment(mDetail.getId(), 1, 4, 1, page, pageSize).compose(Api.applySchedulers())
Api.getService(SaleService.class).getComment(mDetail.getId(), page, pageSize).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data -> {
mBind.refreshLayout.finishRefresh();
mBind.refreshLayout.finishLoadMore();
......@@ -265,9 +264,7 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
commentList.addAll(data.getData());
mBind.tvComponent.setText("留言. " + data.getTotalRows());
mCommentAdapter.setData(commentList);
if (page == data.getTotalPages()){
mBind.refreshLayout.setEnableLoadMore(false);
}
mBind.refreshLayout.setEnableLoadMore(page < data.getTotalPages());
page += 1;
}, responeThrowable -> {
mBind.refreshLayout.finishRefresh();
......@@ -275,34 +272,4 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
}));
}
//转换评论数据
private List<CommentBean> transData(List<CommentBean> datas) {
List<CommentBean> tempList = new ArrayList<>();
for (int i = 0; i < datas.size(); i++) {
CommentBean cData = datas.get(i);
if (cData.getMessageType() == 1) {
if (!tempList.contains(cData))
tempList.add(cData);
} else {
int parentId = cData.getParentId();
for (int j = 0; j < datas.size(); j++) {
CommentBean cData2 = datas.get(j);
if (cData2.getId() == parentId) {
if (!tempList.contains(cData2)) {
tempList.add(cData2);
if (!tempList.contains(cData))
if (!tempList.contains(cData))
tempList.add(tempList.indexOf(cData2) + 1, cData);
} else if (!tempList.contains(cData)) {
tempList.add(tempList.indexOf(cData2) + 1, cData);
}
} else if (!tempList.contains(cData2)) {
tempList.add(cData2);
}
}
}
}
return tempList;
}
}
......@@ -89,7 +89,6 @@ public class SaleOrderFragment extends BaseFragment<SaleOrderPresent,FragmentCom
mPresenter.keyStr = mBind.edtSeacher.getText().toString();
mPresenter.refresh();
CommonUtils.hideSoftInput(mActivity);
return true;
}
}
......
......@@ -127,10 +127,10 @@
<TextView
style="@style/sale_detail_text"
android:text="@string/goods_company" />
android:text="@string/goods_pn" />
<TextView
android:id="@+id/tv_seller_company"
android:id="@+id/tv_company_pn"
style="@style/sale_detail_text2" />
</LinearLayout>
......@@ -138,10 +138,10 @@
<TextView
style="@style/sale_detail_text"
android:text="@string/goods_pn" />
android:text="@string/goods_company" />
<TextView
android:id="@+id/tv_company_pn"
android:id="@+id/tv_seller_company"
style="@style/sale_detail_text2" />
</LinearLayout>
......
......@@ -119,9 +119,9 @@
<Button
android:id="@+id/btn_contact"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_height="43dp"
android:layout_weight="1"
android:background="@color/cl_home_button"
android:background="@drawable/btn_blue_commom"
android:gravity="center"
android:text="@string/advice_seller"
android:textColor="@color/white" />
......@@ -129,10 +129,10 @@
<Button
android:id="@+id/btn_share"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:layout_height="43dp"
android:layout_marginLeft="15dp"
android:layout_weight="1.6"
android:background="@color/cl_order_item_date"
android:background="@drawable/btn_green_commom"
android:gravity="center"
android:text="@string/share_recommend_now"
android:textColor="@color/white" />
......
......@@ -10,7 +10,11 @@ import com.dayu.common.BaseView;
public interface PersonInfoContract {
interface View extends BaseView {
void showPicDialog();
/**
* 清除图片缓存.
*/
void deleteCacheDirFile();
}
abstract class Presenter extends BasePresenter<View> {
......
......@@ -4,8 +4,10 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import android.text.TextUtils;
import com.dayu.base.api.BaseApiFactory;
import com.dayu.common.BaseApplication;
import com.dayu.event.UserInfo;
import com.dayu.usercenter.R;
import com.dayu.usercenter.api.UserApiFactory;
import com.dayu.usercenter.common.UserConstant;
import com.dayu.usercenter.data.protocol.EngineerInfo;
......@@ -15,6 +17,13 @@ import com.dayu.usercenter.ui.activity.MyHeaderIvActivity;
import com.dayu.utils.UserManager;
import com.umeng.analytics.MobclickAgent;
import java.io.File;
import io.reactivex.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/14.
......@@ -36,8 +45,9 @@ public class PersonInfoPresenter extends PersonInfoContract.Presenter {
@Override
public void dumpToHeader() {
mView.startActivityForReult(MyHeaderIvActivity.class, 1);
MobclickAgent.onEvent(BaseApplication.getContext(), "check_header_pic");
// mView.startActivityForReult(MyHeaderIvActivity.class, 1);
// MobclickAgent.onEvent(BaseApplication.getContext(), "check_header_pic");
mView.showPicDialog();
}
@Override
......@@ -67,4 +77,34 @@ public class PersonInfoPresenter extends PersonInfoContract.Presenter {
bundle.putString(UserConstant.PHONE, UserManager.getInstance().getUserPhone());
mView.startActivity(ModifyPwdActivity.class, bundle);
}
public void uploadPic(String path) {
File file = new File(path);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("fileUpload", file.getName(), requestFile);
mView.showDialog();
BaseApiFactory.uploadPhoto(body).subscribe(baseObserver(list -> {
if (list != null && list.size() > 0) {
modifyHead(list.get(0));
} else {
mView.showToast(R.string.modify_header_failed);
}
}));
}
public void modifyHead(String path) {
UserApiFactory.modifyHead(mAccountId, path).subscribe(baseObserver(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (info.get() != null && path != null) {
info.get().setAccountUrl(path);
}
UserInfo mUserInfo = UserManager.getInstance().getUser();
mUserInfo.setHeaderImg(path);
UserManager.getInstance().saveUser(mUserInfo);
mView.deleteCacheDirFile();
}
}));
}
}
......@@ -53,10 +53,13 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
@Override
public void loginHx(String hxAccount, String hxPwd) {
// hxAccount = "test1";
// hxPwd = "123456";
if (!(TextUtils.isEmpty(hxAccount)) && !(TextUtils.isEmpty(hxPwd))) {
EMClient.getInstance().login(hxAccount, hxPwd, new EMCallBack() {
@Override
public void onSuccess() {
LogUtils.e("hx success");
EMClient.getInstance().groupManager().loadAllGroups();
EMClient.getInstance().chatManager().loadAllConversations();
}
......@@ -67,6 +70,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
@Override
public void onError(int code, String message) {
LogUtils.e("hx error "+message);
LogUtils.d(code + message);
}
});
......@@ -140,6 +144,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
@Override
public void dumpAndSave(UserInfo info) {
LogUtils.e("HxAccount: "+info.getHxAccount());
switch (UserManager.getInstance().getRole(info)) {
case Constants.MANAGER:
UserManager.getInstance().saveUser(info);
......
package com.dayu.usercenter.ui.activity;
import android.content.Intent;
import android.os.Environment;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
......@@ -8,6 +9,16 @@ import com.dayu.usercenter.R;
import com.dayu.usercenter.databinding.ActivityPersonInfoBinding;
import com.dayu.usercenter.presenter.personinfo.PersonInfoContract;
import com.dayu.usercenter.presenter.personinfo.PersonInfoPresenter;
import com.luck.picture.lib.PictureSelectionModel;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.tools.PictureFileUtils;
import com.umeng.analytics.MobclickAgent;
import java.io.File;
import java.util.List;
public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, ActivityPersonInfoBinding> implements PersonInfoContract.View {
@Override
......@@ -24,13 +35,70 @@ public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, Activi
mBind.setPresenter(mPresenter);
}
// @Override
// protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == 1 && data != null) {
// String url = data.getStringExtra(Constants.PICURL);
// if (mPresenter.info.get() != null) {
// mPresenter.info.get().setAccountUrl(url);
// }
// }
// }
@Override
public void showPicDialog() {
PictureSelectionModel selector = PictureSelector.create(mActivity)
.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.maxSelectNum(1)// 最大图片选择数量 int
.imageSpanCount(4)// 每行显示个数 int
.selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
.previewImage(true)// 是否可预览图片 true or false
.isCamera(true)// 是否显示拍照按钮 true or false
.isZoomAnim(true)// 图片列表点击 缩放效果 默认true
.sizeMultiplier(0.1f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
.setOutputCameraPath("/CustomPath")// 自定义拍、照保存路径,可不填
.compress(true)// 是否压缩 true or false
.glideOverride(300, 300)// int glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度
.hideBottomControls(true)// 是否显示uCrop工具栏,默认不显示 true or false
.compressSavePath(getPath())//压缩图片保存地址
.previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
.minimumCompressSize(100)// 小于100kb的图片不压缩
.synOrAsy(true)//同步true或异步false 压缩 默认同步、
.enableCrop(true)//是否裁剪
.withAspectRatio(1, 1)
.freeStyleCropEnabled(false);
selector.forResult(PictureConfig.CHOOSE_REQUEST);
MobclickAgent.onEvent(mActivity, "modify_header_pic");
}
private String getPath() {
String path = Environment.getExternalStorageDirectory() + "/dayu/image/";
File file = new File(path);
if (file.mkdirs()) {
return path;
}
return path;
}
@Override
public void deleteCacheDirFile() {
PictureFileUtils.deleteCacheDirFile(mActivity);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && data != null) {
String url = data.getStringExtra(Constants.PICURL);
if (mPresenter.info.get() != null) {
mPresenter.info.get().setAccountUrl(url);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
List<LocalMedia> mSelectList = PictureSelector.obtainMultipleResult(data);
if (mSelectList != null) {
for (int a = 0; a < mSelectList.size(); a++) {
mPresenter.uploadPic(mSelectList.get(a).getCutPath());
}
}
break;
}
}
}
......
......@@ -48,9 +48,9 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs
public void initView() {
EventBus.getDefault().register(this);
setUserRule2(globelRate+"%");
mBind.cvHeader.setOnClickListener(view -> startActivity(PersonInfoActivity.class));
mBind.btnEditBank.setOnClickListener(view -> startActivity(EditBankActivity.class));
mBind.btnEditAddr.setOnClickListener(view -> startActivity(EditAddressActivity.class));
mBind.rlUser.setOnClickListener(view -> startActivity(PersonInfoActivity.class));
mBind.rlBank.setOnClickListener(view -> startActivity(EditBankActivity.class));
mBind.rlAddress.setOnClickListener(view -> startActivity(EditAddressActivity.class));
mBind.tvHotLine.setOnClickListener(view -> CommonUtils.dialPhone(this,getString(R.string.customer_hot_line2)));
}
......@@ -76,13 +76,6 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs
StarRatioBean ratioBean = new StarRatioBean();
ratioBean.setId(-1);
starRatios.add(0,ratioBean);
// for (int i=0;i<7;i++){
// StarRatioBean bean = new StarRatioBean();
// bean.setRatio(10*i);
// bean.setStarLevelName(i+"星");
// starRatios.add(bean);
// }
// ToastUtils.showShortToast("star ratio: "+starRatios.size());
BaseQuickAdapter<StarRatioBean, BaseViewHolder> mAdapter =
new BaseQuickAdapter<StarRatioBean, BaseViewHolder>(R.layout.item_rule_star_ratio, starRatios) {
@Override
......
......@@ -118,6 +118,12 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
mBind.tvPhone.setText(mUserPhone);
SPUtils.put("USER_PHONE", mUserPhone);
SPUtils.put("USER_NAME", mUserName);
mPresenter.mUrl.set(info.getAccountUrl());
UserInfo userInfo = UserManager.getInstance().getUser();
if (userInfo != null) {
userInfo.setHeaderImg(info.getAccountUrl());
UserManager.getInstance().saveUser(userInfo);
}
}
@Override
......
......@@ -61,9 +61,7 @@ public class SaleRecordArriveFragment extends BaseFragment<SImplePresenter,Fragm
}
mDatas.addAll(data.getData());
setAdapter();
if (page == data.getTotalPages()){
mBind.refreshLayout.setEnableLoadMore(false);
}
mBind.refreshLayout.setEnableLoadMore(page < data.getTotalPages());
page += 1;
}, responeThrowable -> {
mBind.refreshLayout.finishRefresh();
......
......@@ -60,9 +60,7 @@ public class SaleRecordDetailFragment extends BaseFragment<SImplePresenter,Fragm
}
mDatas.addAll(data.getData());
setAdapter();
if (page == data.getTotalPages()){
mBind.refreshLayout.setEnableLoadMore(false);
}
mBind.refreshLayout.setEnableLoadMore(page < data.getTotalPages());
page += 1;
}, responeThrowable -> {
mBind.refreshLayout.finishRefresh();
......
......@@ -46,9 +46,11 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:onClick="@{()->presenter.dumpToHeader()}"
android:orientation="horizontal">
......@@ -64,8 +66,8 @@
<com.dayu.widgets.CircleImageView
android:id="@+id/cv_header"
imageUrl="@{presenter.info.accountUrl}"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:src="@drawable/user" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment