瀏覽代碼

完成一元捐基本的界面逻辑开发,接入支付宝,完成支付宝相关功能

Bitliker 8 年之前
父節點
當前提交
0791dcf36f
共有 23 個文件被更改,包括 779 次插入186 次删除
  1. 1 1
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  2. 2 2
      app_core/network/src/main/java/com/me/network/app/http/interceptor/LogInterceptor.java
  3. 0 1
      app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/AliLoadPlayApi.java
  4. 110 10
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/CharitSearchActivity.java
  5. 49 7
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/JoinCharitActivity.java
  6. 36 2
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/ActivityAdapter.java
  7. 5 5
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/CharitableAdapter.java
  8. 21 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/JoinCharitAdapter.java
  9. 82 13
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/ActivityFragment.java
  10. 29 32
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/CharitableListFragment.java
  11. 12 4
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/UserFragment.java
  12. 234 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/CharitActModel.java
  13. 55 65
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/CharitModel.java
  14. 17 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/JoinModel.java
  15. 57 14
      app_modular/appworks/src/main/java/com/uas/appworks/widget/SelectPlayPop.java
  16. 1 0
      app_modular/appworks/src/main/res/layout/fragment_charitable_list.xml
  17. 1 0
      app_modular/appworks/src/main/res/layout/fragment_user.xml
  18. 1 0
      app_modular/appworks/src/main/res/layout/handler_charit_activity.xml
  19. 11 4
      app_modular/appworks/src/main/res/layout/handler_join_activity.xml
  20. 13 7
      app_modular/appworks/src/main/res/layout/handler_join_project.xml
  21. 10 6
      app_modular/appworks/src/main/res/layout/item_charitable_list.xml
  22. 19 5
      app_modular/appworks/src/main/res/layout/item_join.xml
  23. 13 6
      app_modular/appworks/src/main/res/layout/pop_play_select.xml

+ 1 - 1
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -421,7 +421,7 @@ public class CommonUtil {
     }
 
     public static String getUUId() {
-        return MyApplication.getInstance().getLoginUserId();
+        return "1";
     }
 
 

+ 2 - 2
app_core/network/src/main/java/com/me/network/app/http/interceptor/LogInterceptor.java

@@ -81,8 +81,8 @@ public class LogInterceptor implements Interceptor {
 		  okhttp3.MediaType mediaType = response.body().contentType();
           String content = response.body().string();
          if (builder.isDebug()) {
-			 Log.d("HttpLogs","接口URL:" + JSON.toJSONString(response.request().url().toString()));
-			 Log.d("HttpLogs","请求头:"+ JSON.toJSONString(response.request().headers().toMultimap()));
+			 Log.d("HttpLogs","接口URL:" +  URLDecoder.decode(JSON.toJSONString(response.request().url().toString()),"UTF-8"));
+			 Log.d("HttpLogs","请求头:"+ URLDecoder.decode(JSON.toJSONString(response.request().headers().toMultimap()),"UTF-8"));
 			 Log.d("HttpLogs","参数:" + URLDecoder.decode(postParam.toString(),"UTF-8"));
 			 Log.d("HttpLogs","返回结果:" + content);
 		}

+ 0 - 1
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/AliLoadPlayApi.java

@@ -80,7 +80,6 @@ public class AliLoadPlayApi {
 				Message msg = new Message();
 				msg.what = 11;
 				msg.obj = result;
-//TODO 发送回调				sendMessage(msg);
 
 			}
 		};

+ 110 - 10
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/CharitSearchActivity.java

@@ -11,6 +11,7 @@ import android.widget.Toast;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alipay.sdk.app.EnvUtils;
 import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
@@ -19,6 +20,7 @@ import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.utils.IntentUtils;
 import com.core.utils.ToastUtil;
+import com.core.widget.EmptyLayout;
 import com.core.widget.VoiceSearchView;
 import com.core.widget.listener.EditChangeListener;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
@@ -26,18 +28,25 @@ import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.listener.OnPlayListener;
+import com.modular.apputils.utils.playsdk.AliPlay;
 import com.uas.appworks.OA.platform.adapter.ActivityAdapter;
 import com.uas.appworks.OA.platform.adapter.CharitableAdapter;
+import com.uas.appworks.OA.platform.model.CharitActModel;
 import com.uas.appworks.OA.platform.model.CharitModel;
 import com.uas.appworks.OA.platform.model.TestString;
 import com.uas.appworks.R;
+import com.uas.appworks.widget.SelectPlayPop;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
-public class CharitSearchActivity extends BaseActivity {
+public class CharitSearchActivity extends BaseActivity implements OnPlayListener {
 	private HttpClient httpClient = new HttpClient.Builder(Constants.charitBaseUrl()).isDebug(true).build();
 
 	private PullToRefreshListView refreshListView;
+	private EmptyLayout mEmptyLayout;
 	private int type;
 
 	@Override
@@ -59,6 +68,10 @@ public class CharitSearchActivity extends BaseActivity {
 			type = 1;
 		}
 		refreshListView = (PullToRefreshListView) findViewById(R.id.refreshListView);
+		mEmptyLayout = new EmptyLayout(this, refreshListView.getRefreshableView());
+		mEmptyLayout.setShowLoadingButton(false);
+		mEmptyLayout.setShowEmptyButton(false);
+		mEmptyLayout.setShowErrorButton(false);
 		VoiceSearchView voiceSearchView = (VoiceSearchView) findViewById(R.id.voiceSearchView);
 		refreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 			@Override
@@ -66,9 +79,19 @@ public class CharitSearchActivity extends BaseActivity {
 				LogUtil.i("i==" + i);
 				LogUtil.i("l==" + l);
 				if (type == 1) {
-					IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_PROJECT_URL);
+					if (charitableAdapter != null) {
+						CharitModel model = charitableAdapter.getModels(i);
+						if (model != null) {
+							IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_PROJECT_URL + "/" + model.getId(), model.getName());
+						}
+					}
 				} else {
-					IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_ACTIVITY_URL);
+					if (activityAdapter != null && ListUtils.getSize(activityAdapter.getModels()) > i) {
+						CharitActModel model = activityAdapter.getModels().get(i);
+						if (model != null) {
+							IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_ACTIVITY_URL + "/" + model.getId(), model.getName());
+						}
+					}
 				}
 			}
 		});
@@ -104,7 +127,7 @@ public class CharitSearchActivity extends BaseActivity {
 			public void onResponse(Object o) {
 				if (!keyWork.equals(lastKeyWork)) return;
 				try {
-					if (o != null && !BaseConfig.isDebug()) {
+					if (o != null) {
 						handlerData(o.toString());
 					} else {
 						handlerData(TestString.PROJECTS_DATA);
@@ -133,7 +156,7 @@ public class CharitSearchActivity extends BaseActivity {
 				if (!keyWork.equals(lastKeyWork)) return;
 
 				try {
-					if (o != null && !BaseConfig.isDebug()) {
+					if (o != null) {
 						handlerProjects(o.toString());
 					} else {
 						handlerProjects(TestString.PROJECTS_DATA);
@@ -148,8 +171,28 @@ public class CharitSearchActivity extends BaseActivity {
 	}
 
 	private void handlerData(String message) throws Exception {
-		LogUtil.i("handlerData");
-		refreshListView.setAdapter(new ActivityAdapter(ct, null));
+		if (JSONUtil.validateJSONObject(message)) {
+			JSONObject object = JSON.parseObject(message);
+			JSONArray array = JSONUtil.getJSONArray(object, "activityList");
+			List<CharitActModel> allModels = JSON.parseArray(array.toString(), CharitActModel.class);
+			setAdapter(allModels);
+		} else {
+			setAdapter(null);
+		}
+	}
+
+	private ActivityAdapter activityAdapter;
+
+	private void setAdapter(List<CharitActModel> models) {
+		if (activityAdapter == null) {
+			activityAdapter = new ActivityAdapter(ct, models);
+			refreshListView.setAdapter(activityAdapter);
+		} else {
+			activityAdapter.setModels(models);
+		}
+		if (ListUtils.isEmpty(models)) {
+			mEmptyLayout.showEmpty();
+		}
 	}
 
 	private void handlerProjects(String message) throws Exception {
@@ -161,15 +204,72 @@ public class CharitSearchActivity extends BaseActivity {
 			projectList = JSONUtil.getJSONArray(message, "projectList");
 		}
 		List<CharitModel> models = JSON.parseArray(projectList.toJSONString(), CharitModel.class);
-		LogUtil.i("models=" + models.size());
-		refreshListView.setAdapter(new CharitableAdapter(ct, models, mListener));
+		setProjectsAdapter(models);
+	}
+
+	private CharitableAdapter charitableAdapter = null;
+
+	private void setProjectsAdapter(List<CharitModel> models) {
+		if (charitableAdapter == null) {
+			refreshListView.setAdapter(charitableAdapter = new CharitableAdapter(ct, models, mListener));
+		} else {
+			charitableAdapter.setModels(models);
+		}
 	}
 
 
 	private CharitableAdapter.MyClickListener mListener = new CharitableAdapter.MyClickListener() {
 		@Override
 		public void myOnClick(int position, View v) {
-			ToastUtil.showToast(ct, "付款付款付款付款付款付款付款");
+			SelectPlayPop.showPlay(CharitSearchActivity.this, charitableAdapter.getModels(position), new SelectPlayPop.OnSureListener() {
+				@Override
+				public void sure(double num, int type, CharitModel model) {
+					if (type == 1) {
+						LogUtil.i("选择了微信支付");
+					} else {
+						LogUtil.i("选择了支付宝支付");
+					}
+					loadOrderInfo(num, model);
+				}
+			});
 		}
 	};
+
+
+	private void loadOrderInfo(Double amount, CharitModel model) {
+		progressDialog.show();
+		Map<String, Object> map = new HashMap<>();
+		map.put("projectName", model.getName());
+		map.put("amount", amount);
+		map.put("proId", model.getId());
+		String json = JSON.toJSONString(map);
+		LogUtil.i("json=" + json);
+		new HttpClient.Builder("http://lj.ubtob.com/alipay/")
+				.isDebug(BaseConfig.isDebug())
+				.build()
+				.Api()
+				.send(new HttpClient.Builder()
+						.url("appPay")
+						.add("jsonStr", json)
+						.method(Method.GET)
+						.build(), new ResultSubscriber<>(new ResultListener<Object>() {
+					@Override
+					public void onResponse(Object o) {
+						String message = o.toString();
+						LogUtil.i("message=" + message);
+						AliPlay.api().alipay(CharitSearchActivity.this, message, CharitSearchActivity.this);
+						progressDialog.dismiss();
+					}
+				}));
+	}
+
+	@Override
+	public void onSuccess(String resultStatus, String resultInfo) {
+		ToastUtil.showToast(ct, "支付成功");
+	}
+
+	@Override
+	public void onFailure(String resultStatus, String resultInfo) {
+		ToastUtil.showToast(ct, "支付失败");
+	}
 }

+ 49 - 7
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/JoinCharitActivity.java

@@ -5,6 +5,7 @@ import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.AdapterView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
@@ -17,6 +18,7 @@ import com.common.data.StringUtil;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
+import com.core.utils.IntentUtils;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
@@ -57,7 +59,7 @@ public class JoinCharitActivity extends BaseActivity {
 				sumMoney = intent.getStringExtra("sumMoney");
 			}
 
-			if (!StringUtil.isEmpty(title)){
+			if (!StringUtil.isEmpty(title)) {
 				getSupportActionBar().setTitle(title);
 			}
 		}
@@ -67,6 +69,21 @@ public class JoinCharitActivity extends BaseActivity {
 		} else {
 			refreshListView.getRefreshableView().addHeaderView(getProjectHeadler(num, sumMoney));
 		}
+
+		refreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+			@Override
+			public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+				if (mAdapter != null) {
+					JoinModel model = mAdapter.getModel((int) l);
+					if (model != null) {
+						IntentUtils.linkCommonWeb(ct,
+								(type == 2 ? Constants.BASE_CHARIT_ACTIVITY_URL : Constants.BASE_CHARIT_PROJECT_URL) + "/" + model.getId()
+								, model.getName());
+					}
+				}
+			}
+		});
+
 		setAdapter(null);
 	}
 
@@ -75,7 +92,7 @@ public class JoinCharitActivity extends BaseActivity {
 		View view = LayoutInflater.from(ct).inflate(R.layout.handler_join_project, null);
 		numTv = (TextView) view.findViewById(R.id.numTv);
 		charitTv = (TextView) view.findViewById(R.id.charitTv);
-		numTv.setText(num == null ? "" : num);
+		numTv.setText(String.valueOf(StringUtil.getFirstInt(num, 0)));
 		charitTv.setText(sumMoney == null ? "" : sumMoney);
 		return view;
 	}
@@ -83,7 +100,7 @@ public class JoinCharitActivity extends BaseActivity {
 	private View getActivityHeadler(String num) {
 		View view = LayoutInflater.from(ct).inflate(R.layout.handler_join_activity, null);
 		numTv = (TextView) view.findViewById(R.id.numTv);
-		numTv.setText(num == null ? "" : num);
+		numTv.setText(String.valueOf(StringUtil.getFirstInt(num, 0)));
 		return view;
 	}
 
@@ -91,8 +108,8 @@ public class JoinCharitActivity extends BaseActivity {
 	private void initData() {
 		HttpClient httpClient = new HttpClient.Builder(Constants.charitBaseUrl()).isDebug(true).build();
 		HttpClient builder = new HttpClient.Builder()
-				.url(type == 2 ? "joinActivity" : "donateDetail")
-				.add("uuid", CommonUtil.getUUId())
+				.url((type == 2 ? "joinActivity" : "donateDetail") + "/" + CommonUtil.getUUId())
+//				.add("uuid", CommonUtil.getUUId())
 				.method(Method.GET)
 				.build();
 		httpClient.Api().send(builder, new ResultSubscriber<>(new ResultListener<Object>() {
@@ -127,7 +144,19 @@ public class JoinCharitActivity extends BaseActivity {
 				String time = type == 1 ? JSONUtil.getText(o, "time") : JSONUtil.getText(projectOrActivity, "luckyTime");
 				String sub = JSONUtil.getText(o, "status", "isGetAward");
 				String name = JSONUtil.getText(projectOrActivity, "name");
-				String status = JSONUtil.getText(projectOrActivity, "overdue", "stage");
+				String status = null;
+				if (type == 2) {
+					String stage = JSONUtil.getText(projectOrActivity, "stage");
+					status = getStatus(stage);
+				} else {
+					status = JSONUtil.getText(projectOrActivity, "overdue", "stage");
+				}
+
+				int id = JSONUtil.getInt(o, "id");
+				int amount = JSONUtil.getInt(o, "amount");
+				LogUtil.i("amount=" + amount);
+				model.setId(id);
+				model.setAmount(amount);
 				model.setName(name);
 				model.setTime(time);
 				model.setSub(sub);
@@ -138,10 +167,23 @@ public class JoinCharitActivity extends BaseActivity {
 		}
 	}
 
+	private String getStatus(String stage) {
+		switch (stage) {
+			case "0":
+				return "进行中";
+			case "1":
+				return "待开奖";
+			case "2":
+				return "待兑奖";
+			case "3":
+				return "已结束";
+		}
+		return stage;
+	}
 
 	private void setAdapter(List<JoinModel> models) {
 		if (mAdapter == null) {
-			mAdapter = new JoinCharitAdapter(ct, models);
+			mAdapter = new JoinCharitAdapter(ct, type, models);
 			refreshListView.setAdapter(mAdapter);
 		} else {
 			mAdapter.setModels(models);

+ 36 - 2
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/ActivityAdapter.java

@@ -9,7 +9,9 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.common.config.BaseConfig;
+import com.common.data.DateFormatUtil;
 import com.common.data.ListUtils;
+import com.nostra13.universalimageloader.core.ImageLoader;
 import com.uas.appworks.OA.platform.model.CharitActModel;
 import com.uas.appworks.R;
 
@@ -22,20 +24,32 @@ import java.util.List;
 public class ActivityAdapter extends BaseAdapter {
 	private Context ct;
 	private List<CharitActModel> models;
+	private String newtime = "";
 
 	public ActivityAdapter(Context ct, List<CharitActModel> models) {
 		this.ct = ct;
 		this.models = models;
+		newtime = DateFormatUtil.long2Str("yyyy.MM.dd HH:mm");
+	}
+
+	public List<CharitActModel> getModels() {
+		return models;
+	}
+
+	public void setModels(List<CharitActModel> models) {
+		this.models = models;
+		newtime = DateFormatUtil.long2Str("yyyy.MM.dd HH:mm");
+		notifyDataSetChanged();
 	}
 
 	@Override
 	public int getCount() {
-		return BaseConfig.isDebug()?100:ListUtils.getSize(models);
+		return ListUtils.getSize(models);
 	}
 
 	@Override
 	public Object getItem(int i) {
-		return  BaseConfig.isDebug()?null:models.get(i);
+		return models.get(i);
 	}
 
 	@Override
@@ -46,6 +60,7 @@ public class ActivityAdapter extends BaseAdapter {
 	@Override
 	public View getView(int i, View view, ViewGroup viewGroup) {
 		ViewHoder hoder = null;
+		CharitActModel model = models.get(i);
 		if (view == null) {
 			hoder = new ViewHoder();
 			view = LayoutInflater.from(ct).inflate(R.layout.item_activity_list, null);
@@ -57,6 +72,25 @@ public class ActivityAdapter extends BaseAdapter {
 		} else {
 			hoder = (ViewHoder) view.getTag();
 		}
+		hoder.titleTv.setText(model.getName());
+		ImageLoader.getInstance().displayImage(model.getActImg(), hoder.contantImg);
+		StringBuilder str = new StringBuilder("");
+		if (!ListUtils.isEmpty(model.getAwards())) {
+			for (CharitActModel.AwardsBean b : model.getAwards()) {
+				str.append(b.getAwardLevel() + ":" + b.getAwardName() + "\n");
+			}
+			str.deleteCharAt(str.length() - 1);
+		}
+		hoder.subTv.setText(str.toString());
+		String status = "";
+		if (newtime.compareTo(model.getStartTime()) < 0) {
+			status = "未开始";
+		} else if (newtime.compareTo(model.getEndTime()) > 0) {
+			status = "已结束";
+		} else {
+			status = "进行中";
+		}
+		hoder.statusTv.setText(status);
 		return view;
 	}
 

+ 5 - 5
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/CharitableAdapter.java

@@ -80,11 +80,11 @@ public class CharitableAdapter extends BaseAdapter {
 		} else {
 			holder = (ViewHolder) view.getTag();
 		}
-		ImageLoader.getInstance().displayImage(model.getPro_mobile_list_img(), holder.contantImg);
-		holder.titleTv.setText(model.getPro_name());
-		holder.subTv.setText(model.getPro_summary());
-		holder.targetTv.setText(model.getPro_target());
-		holder.typeTv.setText(model.getPro_area());
+		ImageLoader.getInstance().displayImage(model.getLogo(), holder.contantImg);
+		holder.titleTv.setText(model.getName());
+		holder.subTv.setText(model.getSummary());
+		holder.targetTv.setText(model.getTarget());
+		holder.typeTv.setText(model.getArea());
 		holder.giftBtn.setTag(i);
 		holder.giftBtn.setOnClickListener(onClickListener);
 

+ 21 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/JoinCharitAdapter.java

@@ -7,6 +7,7 @@ import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.TextView;
 
+import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.uas.appworks.OA.platform.model.JoinModel;
 import com.uas.appworks.R;
@@ -19,15 +20,25 @@ import java.util.List;
 
 public class JoinCharitAdapter extends BaseAdapter {
 	private Context context;
+	private int type = 1;
 	private List<JoinModel> models;
 
 
+	public JoinModel getModel(int i) {
+		if (ListUtils.getSize(models)>i){
+			return models.get(i);
+		}
+		return null;
+	}
+
 	public void setModels(List<JoinModel> models) {
 		this.models = models;
 	}
 
-	public JoinCharitAdapter(Context context, List<JoinModel> models) {
+
+	public JoinCharitAdapter(Context context, int type, List<JoinModel> models) {
 		this.context = context;
+		this.type = type;
 		this.models = models;
 	}
 
@@ -56,6 +67,7 @@ public class JoinCharitAdapter extends BaseAdapter {
 			holder.statusTv = (TextView) view.findViewById(R.id.statusTv);
 			holder.timeTv = (TextView) view.findViewById(R.id.timeTv);
 			holder.subTv = (TextView) view.findViewById(R.id.subTv);
+			holder.amountTv = (TextView) view.findViewById(R.id.amountTv);
 			view.setTag(holder);
 		} else {
 			holder = (ViewHolder) view.getTag();
@@ -65,6 +77,13 @@ public class JoinCharitAdapter extends BaseAdapter {
 		holder.statusTv.setText(model.getStatus());
 		holder.timeTv.setText(model.getTime());
 		holder.subTv.setText(model.getSub());
+		if (type == 1) {
+			holder.amountTv.setVisibility(View.VISIBLE);
+			LogUtil.i("Amount"+model.getAmount());
+			holder.amountTv.setText(String.valueOf(model.getAmount()));
+		} else {
+			holder.amountTv.setVisibility(View.GONE);
+		}
 		return view;
 	}
 
@@ -74,5 +93,6 @@ public class JoinCharitAdapter extends BaseAdapter {
 		TextView statusTv;
 		TextView timeTv;
 		TextView subTv;
+		TextView amountTv;
 	}
 }

+ 82 - 13
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/ActivityFragment.java

@@ -16,14 +16,22 @@ import android.widget.ListView;
 import android.widget.PopupWindow;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.config.BaseConfig;
+import com.common.data.DateFormatUtil;
+import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.base.EasyFragment;
 import com.core.utils.IntentUtils;
+import com.core.utils.ToastUtil;
+import com.core.widget.EmptyLayout;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.me.network.app.http.HttpClient;
@@ -34,9 +42,13 @@ import com.modular.apputils.adapter.PopListAdapter;
 import com.modular.apputils.widget.CustomerBanner;
 import com.uas.appworks.OA.platform.activity.CharitSearchActivity;
 import com.uas.appworks.OA.platform.adapter.ActivityAdapter;
+import com.uas.appworks.OA.platform.model.CharitActModel;
 import com.uas.appworks.OA.platform.model.TestString;
 import com.uas.appworks.R;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Created by Bitlike on 2017/11/8.
  */
@@ -79,7 +91,7 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 		if (item.getItemId() == R.id.search) {
 			startActivity(new Intent(ct, CharitSearchActivity.class).
 					putExtra("type", 2)
-					.putExtra("title","活动搜索"));
+					.putExtra("title", "活动搜索"));
 		}
 		return super.onOptionsItemSelected(item);
 	}
@@ -91,7 +103,10 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 		refreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 			@Override
 			public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-				IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_ACTIVITY_URL);
+				if (mAdapter != null && ListUtils.getSize(mAdapter.getModels()) > i) {
+					CharitActModel model = mAdapter.getModels().get(i);
+					IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_ACTIVITY_URL + "/" + model.getId(), model.getName());
+				}
 			}
 		});
 		initData();
@@ -110,7 +125,7 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 		loadData("", "全部");
 	}
 
-	private void loadData(String keyWork, String status) {
+	private void loadData(String keyWork, final String status) {
 		LogUtil.i("loadProjects=");
 		httpClient.Api().send(new HttpClient.Builder()
 				.url("activities")
@@ -121,10 +136,10 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 			@Override
 			public void onResponse(Object o) {
 				try {
-					if (o != null && !BaseConfig.isDebug()) {
-						handlerData(o.toString());
+					if (o != null) {
+						handlerData(o.toString(), status);
 					} else {
-						handlerData(TestString.PROJECTS_DATA);
+						handlerData(TestString.PROJECTS_DATA, status);
 					}
 				} catch (Exception e) {
 					if (e != null) {
@@ -138,9 +153,52 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 		}));
 	}
 
-	private void handlerData(String message) throws Exception {
+	private ActivityAdapter mAdapter;
+	private List<CharitActModel> allModels;
+
+	private void handlerData(String message, String status) throws Exception {
 		LogUtil.i("handlerData");
-		refreshListView.setAdapter(new ActivityAdapter(ct, null));
+		if (JSONUtil.validateJSONObject(message)) {
+			JSONObject object = JSON.parseObject(message);
+			JSONArray array = JSONUtil.getJSONArray(object, "activityList");
+			allModels = JSON.parseArray(array.toString(), CharitActModel.class);
+			setAdapter(status, allModels);
+		} else {
+			setAdapter(null);
+		}
+	}
+
+	private void setAdapter(String status, List<CharitActModel> models) {
+		String newtime = DateFormatUtil.long2Str("yyyy.MM.dd HH:mm");
+		List<CharitActModel> showModels = new ArrayList<>();
+		if (!"全部".equals(status)) {
+			for (CharitActModel model : models) {
+				if (newtime.compareTo(model.getStartTime()) < 0) {
+					if (status.equals("未开始")) {
+						showModels.add(model);
+					}
+				} else if (newtime.compareTo(model.getEndTime()) > 0) {
+					if (status.equals("已结束")) {
+						showModels.add(model);
+					}
+				} else if (status.equals("进行中")) {
+					showModels.add(model);
+				}
+			}
+		} else {
+			showModels = allModels;
+		}
+		setAdapter(showModels);
+	}
+
+	private void setAdapter(List<CharitActModel> models) {
+		if (mAdapter == null) {
+			mAdapter = new ActivityAdapter(ct, models);
+			refreshListView.setAdapter(mAdapter);
+		} else {
+			mAdapter.setModels(models);
+		}
+
 	}
 
 	@Override
@@ -159,13 +217,13 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 		View windowView = LayoutInflater.from(ct).inflate(R.layout.item_list_pop, null);
 		window.setContentView(windowView);
 		ListView contentLV = (ListView) windowView.findViewById(R.id.contentLV);
-		final String[] messages = {"赞", "OK", "加油", "好的", "请及时完成"};
+		final String[] messages = {"全部", "未开始", "进行中", "已结束"};
 		contentLV.setAdapter(new PopListAdapter(ct, messages));
 		window.setTouchable(true);
 		window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
 		window.getContentView().measure(0, 0);
-		window.setHeight(DisplayUtil.dip2px(ct, 230));
-		window.setWidth(DisplayUtil.dip2px(ct, 100));
+		window.setHeight(DisplayUtil.dip2px(ct, 180));
+		window.setWidth(DisplayUtil.dip2px(ct, 80));
 //        window.setAnimationStyle(R.style.MenuAnimationFade);
 		window.setOutsideTouchable(false);
 		window.setFocusable(true);
@@ -180,10 +238,10 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 				String message = messages[position];
 				window.dismiss();
-				LogUtil.i("message+" + message);
+				selectStatus(message);
+				statusTv.setText(message);
 			}
 		});
-
 		window.setOnDismissListener(new PopupWindow.OnDismissListener() {
 			@Override
 			public void onDismiss() {
@@ -191,4 +249,15 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
 			}
 		});
 	}
+
+
+	private void selectStatus(String message) {
+		if (message == null || message.length() <= 0) {
+			ToastUtil.showToast(ct, "选择错误");
+		} else if (ListUtils.isEmpty(allModels)) {
+			loadData("", message);
+		} else {
+			setAdapter(message, allModels);
+		}
+	}
 }

+ 29 - 32
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/CharitableListFragment.java

@@ -15,6 +15,7 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alipay.sdk.app.EnvUtils;
 import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
@@ -43,6 +44,7 @@ import com.uas.appworks.OA.platform.model.Carousel;
 import com.uas.appworks.OA.platform.model.CharitModel;
 import com.uas.appworks.OA.platform.model.TestString;
 import com.uas.appworks.R;
+import com.uas.appworks.widget.SelectPlayPop;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -199,7 +201,7 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 			@Override
 			public void onResponse(Object o) {
 				try {
-					if (o != null && !BaseConfig.isDebug()) {
+					if (o != null) {
 						handlerProjects(o.toString());
 					} else {
 						handlerProjects(TestString.PROJECTS_DATA);
@@ -268,7 +270,17 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 			charitableAdapter = new CharitableAdapter(ct, models, new CharitableAdapter.MyClickListener() {
 				@Override
 				public void myOnClick(int position, View v) {
-					loadOrderInfo(charitableAdapter.getModels(position));
+					SelectPlayPop.showPlay(getActivity(), charitableAdapter.getModels(position), new SelectPlayPop.OnSureListener() {
+						@Override
+						public void sure(double num, int type, CharitModel model) {
+							if (type == 1) {
+								LogUtil.i("选择了微信支付");
+							} else {
+								LogUtil.i("选择了支付宝支付");
+							}
+							loadOrderInfo(num, model);
+						}
+					});
 				}
 			});
 			refreshListView.setAdapter(charitableAdapter);
@@ -278,7 +290,7 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 					if (charitableAdapter != null) {
 						CharitModel model = charitableAdapter.getModels((int) l);
 						if (model != null) {
-							IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_PROJECT_URL + "?pro_id=" + model.getPro_id(), model.getPro_name());
+							IntentUtils.linkCommonWeb(ct, Constants.BASE_CHARIT_PROJECT_URL + "?pro_id=" + model.getId(), model.getName());
 						}
 					}
 				}
@@ -289,23 +301,6 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 	}
 
 
-	private void loadOrderInfo(CharitModel model) {
-		if (model == null) {
-			ToastUtil.showToast(ct, "内部错误");
-			return;
-		}
-		if (playing) {
-			ToastUtil.showToast(ct, "目前正在支付,请稍后!!!!");
-			return;
-		}
-		playing = true;
-		//TODO 从接口获取oderInfo
-//		loadOrderInfo(1221d, model);
-		String orderInfo = getTestOrderInfo();
-		toPlay(orderInfo);
-
-	}
-
 	private void toPlay(String orderInfo) {
 		AliPlay.api().alipay(getActivity(), orderInfo, this);
 	}
@@ -322,23 +317,24 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 		playing = false;
 	}
 
-
-	//TODO test 本地获取订单信息
-	private String getTestOrderInfo() {
-//		return TestString.ORDER_INFO;
-		return new AliLoadPlayApi().getLoadOrderInfo();
-	}
-
-
 	private void loadOrderInfo(Double amount, CharitModel model) {
+		if (model == null) {
+			ToastUtil.showToast(ct, "内部错误");
+			return;
+		}
+		if (playing) {
+			ToastUtil.showToast(ct, "目前正在支付,请稍后!!!!");
+			return;
+		}
+		playing = true;
 		baseActivity.progressDialog.show();
 		Map<String, Object> map = new HashMap<>();
-		map.put("projectName", model.getPro_name());
+		map.put("projectName", model.getName());
 		map.put("amount", amount);
-		map.put("proId", model.getPro_id());
+		map.put("proId", model.getId());
 		String json = JSON.toJSONString(map);
 		LogUtil.i("json=" + json);
-		new HttpClient.Builder("https://lj.ubtob.com/alipay/")
+		new HttpClient.Builder("http://lj.ubtob.com/alipay/")
 				.isDebug(BaseConfig.isDebug())
 				.build()
 				.Api()
@@ -351,7 +347,8 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 					public void onResponse(Object o) {
 						String message = o.toString();
 						LogUtil.i("message=" + message);
-
+//						EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
+						toPlay(message);
 						baseActivity.progressDialog.dismiss();
 					}
 				}));

+ 12 - 4
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/UserFragment.java

@@ -97,15 +97,23 @@ public class UserFragment extends EasyFragment implements View.OnClickListener {
 
 	private void handleData(String message) {
 		LogUtil.i("message=" + message);
-		message = TestString.USER_INFO;
 		JSONObject object = JSON.parseObject(message);
 		String sumMoney = JSONUtil.getText(object, "sumMoney");
 		String sumActJoin = JSONUtil.getText(object, "sumActJoin");
 		String sumProJoin = JSONUtil.getText(object, "sumProJoin");
+		JSONObject user = JSONUtil.getJSONObject(object, "user");
+		if (user != null && !user.isEmpty()) {
+			String company = JSONUtil.getText(user, "company");
+			String name = JSONUtil.getText(user, "name");
+			String tel = JSONUtil.getText(user, "tel");
+			nameTv.setText(name);
+			companyTv.setText(company);
+			phoneTv.setText(tel);
+		}
 
 		charitTv.setText(sumMoney);
-		projectNumTv.setText("(" + sumActJoin + ")");
-		activityNumTv.setText("(" + sumProJoin + ")");
+		projectNumTv.setText("(" + sumProJoin + ")");
+		activityNumTv.setText("(" + sumActJoin + ")");
 	}
 
 	@Override
@@ -120,7 +128,7 @@ public class UserFragment extends EasyFragment implements View.OnClickListener {
 			startActivity(new Intent(ct, JoinCharitActivity.class)
 					.putExtra("type", 2)
 					.putExtra("title", "已参与活动")
-					.putExtra("sumNum", projectNumTv.getText().toString()));
+					.putExtra("sumNum", activityNumTv.getText().toString()));
 		} else if (view.getId() == R.id.messageRl) {
 
 		}

+ 234 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/CharitActModel.java

@@ -1,8 +1,241 @@
 package com.uas.appworks.OA.platform.model;
 
+import java.util.List;
+
 /**
- * Created by Bitlike on 2017/11/8.
+ * Created by Bitlike on 2017/11/15.
  */
 
 public class CharitActModel {
+
+	/**
+	 * amount : 31
+	 * actImg : hsdajkflad
+	 * awards : [{"activityId":1,"amount":1000,"awardLevel":"一等奖","awardName":"开心花生","endTime":1510749963000,"id":1,"startTime":1509540353000},{"activityId":1,"amount":3,"awardLevel":"二等奖","awardName":"开心果","endTime":1509932618000,"id":8,"startTime":1510364624000}]
+	 * code : 2017.11.15 10:12
+	 * endTime : 2017.11.30 16:43
+	 * id : 1
+	 * joinAmount : 3
+	 * luckyTime : 2017.11.21 20:01
+	 * name : 优软一元捐
+	 * projectQualificationList : []
+	 * publish : 2
+	 * receiveEndTime : 2017.11.15 20:03
+	 * receivePerson : 2
+	 * receiveStartTime : 1510747370000
+	 * stage : 0
+	 * startTime : 2017.10.10 16:42
+	 */
+
+	private int amount;
+	private String actImg;
+	private String code;
+	private String endTime;
+	private int id;
+	private int joinAmount;
+	private String luckyTime;
+	private String name;
+	private int publish;
+	private String receiveEndTime;
+	private int receivePerson;
+	private long receiveStartTime;
+	private int stage;
+	private String startTime;
+	private List<AwardsBean> awards;
+
+	public int getAmount() {
+		return amount;
+	}
+
+	public void setAmount(int amount) {
+		this.amount = amount;
+	}
+
+	public String getActImg() {
+		return actImg;
+	}
+
+	public void setActImg(String actImg) {
+		this.actImg = actImg;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getJoinAmount() {
+		return joinAmount;
+	}
+
+	public void setJoinAmount(int joinAmount) {
+		this.joinAmount = joinAmount;
+	}
+
+	public String getLuckyTime() {
+		return luckyTime;
+	}
+
+	public void setLuckyTime(String luckyTime) {
+		this.luckyTime = luckyTime;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public int getPublish() {
+		return publish;
+	}
+
+	public void setPublish(int publish) {
+		this.publish = publish;
+	}
+
+	public String getReceiveEndTime() {
+		return receiveEndTime;
+	}
+
+	public void setReceiveEndTime(String receiveEndTime) {
+		this.receiveEndTime = receiveEndTime;
+	}
+
+	public int getReceivePerson() {
+		return receivePerson;
+	}
+
+	public void setReceivePerson(int receivePerson) {
+		this.receivePerson = receivePerson;
+	}
+
+	public long getReceiveStartTime() {
+		return receiveStartTime;
+	}
+
+	public void setReceiveStartTime(long receiveStartTime) {
+		this.receiveStartTime = receiveStartTime;
+	}
+
+	public int getStage() {
+		return stage;
+	}
+
+	public void setStage(int stage) {
+		this.stage = stage;
+	}
+
+	public String getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+
+	public List<AwardsBean> getAwards() {
+		return awards;
+	}
+
+	public void setAwards(List<AwardsBean> awards) {
+		this.awards = awards;
+	}
+
+	public static class AwardsBean {
+		/**
+		 * activityId : 1
+		 * amount : 1000
+		 * awardLevel : 一等奖
+		 * awardName : 开心花生
+		 * endTime : 1510749963000
+		 * id : 1
+		 * startTime : 1509540353000
+		 */
+
+		private int activityId;
+		private int amount;
+		private String awardLevel;
+		private String awardName;
+		private long endTime;
+		private int id;
+		private long startTime;
+
+		public int getActivityId() {
+			return activityId;
+		}
+
+		public void setActivityId(int activityId) {
+			this.activityId = activityId;
+		}
+
+		public int getAmount() {
+			return amount;
+		}
+
+		public void setAmount(int amount) {
+			this.amount = amount;
+		}
+
+		public String getAwardLevel() {
+			return awardLevel;
+		}
+
+		public void setAwardLevel(String awardLevel) {
+			this.awardLevel = awardLevel;
+		}
+
+		public String getAwardName() {
+			return awardName;
+		}
+
+		public void setAwardName(String awardName) {
+			this.awardName = awardName;
+		}
+
+		public long getEndTime() {
+			return endTime;
+		}
+
+		public void setEndTime(long endTime) {
+			this.endTime = endTime;
+		}
+
+		public int getId() {
+			return id;
+		}
+
+		public void setId(int id) {
+			this.id = id;
+		}
+
+		public long getStartTime() {
+			return startTime;
+		}
+
+		public void setStartTime(long startTime) {
+			this.startTime = startTime;
+		}
+	}
 }

+ 55 - 65
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/CharitModel.java

@@ -6,116 +6,106 @@ package com.uas.appworks.OA.platform.model;
 
 public class CharitModel {
 
-	private int pro_id;
-	private int pro_status;
-	private String pro_code;
-	private String pro_name;
-	private String pro_area;
-	private String pro_target;
-	private String pro_total_amount;
-	private String pro_reason;
-	private String pro_mobile_list_img;
-	private String pro_person_name;
-	private String pro_person_tel;
-	private String pro_summary;
-
+	private int  id;
+	private int status;
+	private int orgId;
+	private String area;
+	private String summary;
+	private String target;
+	private String totalAmount;
+	private String name;
+	private String logo;
+	private String orgName;
+	private String overdue;
 
 	public CharitModel() {
 	}
 
-	public int getPro_id() {
-		return pro_id;
-	}
-
-	public void setPro_id(int pro_id) {
-		this.pro_id = pro_id;
-	}
-
-	public int getPro_status() {
-		return pro_status;
+	public int getId() {
+		return id;
 	}
 
-	public void setPro_status(int pro_status) {
-		this.pro_status = pro_status;
+	public void setId(int id) {
+		this.id = id;
 	}
 
-	public String getPro_code() {
-		return pro_code;
+	public int getStatus() {
+		return status;
 	}
 
-	public void setPro_code(String pro_code) {
-		this.pro_code = pro_code;
+	public void setStatus(int status) {
+		this.status = status;
 	}
 
-	public String getPro_name() {
-		return pro_name;
+	public int getOrgId() {
+		return orgId;
 	}
 
-	public void setPro_name(String pro_name) {
-		this.pro_name = pro_name;
+	public void setOrgId(int orgId) {
+		this.orgId = orgId;
 	}
 
-	public String getPro_area() {
-		return pro_area;
+	public String getArea() {
+		return area;
 	}
 
-	public void setPro_area(String pro_area) {
-		this.pro_area = pro_area;
+	public void setArea(String area) {
+		this.area = area;
 	}
 
-	public String getPro_target() {
-		return pro_target;
+	public String getSummary() {
+		return summary;
 	}
 
-	public void setPro_target(String pro_target) {
-		this.pro_target = pro_target;
+	public void setSummary(String summary) {
+		this.summary = summary;
 	}
 
-	public String getPro_total_amount() {
-		return pro_total_amount;
+	public String getTarget() {
+		return target;
 	}
 
-	public void setPro_total_amount(String pro_total_amount) {
-		this.pro_total_amount = pro_total_amount;
+	public void setTarget(String target) {
+		this.target = target;
 	}
 
-	public String getPro_reason() {
-		return pro_reason;
+	public String getTotalAmount() {
+		return totalAmount;
 	}
 
-	public void setPro_reason(String pro_reason) {
-		this.pro_reason = pro_reason;
+	public void setTotalAmount(String totalAmount) {
+		this.totalAmount = totalAmount;
 	}
 
-	public String getPro_mobile_list_img() {
-		return pro_mobile_list_img;
+	public String getName() {
+		return name== null ? "" : name;
 	}
 
-	public void setPro_mobile_list_img(String pro_mobile_list_img) {
-		this.pro_mobile_list_img = pro_mobile_list_img;
+	public void setName(String name) {
+		this.name = name;
 	}
 
-	public String getPro_person_name() {
-		return pro_person_name;
+	public String getLogo() {
+		return logo;
 	}
 
-	public void setPro_person_name(String pro_person_name) {
-		this.pro_person_name = pro_person_name;
+	public void setLogo(String logo) {
+		this.logo = logo;
 	}
 
-	public String getPro_person_tel() {
-		return pro_person_tel;
+	public String getOrgName() {
+		return orgName;
 	}
 
-	public void setPro_person_tel(String pro_person_tel) {
-		this.pro_person_tel = pro_person_tel;
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
 	}
 
-	public String getPro_summary() {
-		return pro_summary;
+	public String getOverdue() {
+		return overdue;
 	}
 
-	public void setPro_summary(String pro_summary) {
-		this.pro_summary = pro_summary;
+	public void setOverdue(String overdue) {
+		this.overdue = overdue;
 	}
 }

+ 17 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/JoinModel.java

@@ -5,12 +5,29 @@ package com.uas.appworks.OA.platform.model;
  */
 
 public class JoinModel {
+	private int  id;
 	private int type;
+	private int amount;
 	private String name;
 	private String time;
 	private String status;
 	private String sub;
 
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getAmount() {
+		return amount;
+	}
+
+	public void setAmount(int amount) {
+		this.amount = amount;
+	}
 
 	public int getType() {
 		return type;

+ 57 - 14
app_modular/appworks/src/main/java/com/uas/appworks/widget/SelectPlayPop.java

@@ -7,16 +7,20 @@ import android.text.TextUtils;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.CheckBox;
 import android.widget.EditText;
 import android.widget.PopupWindow;
+import android.widget.RadioGroup;
 import android.widget.TextView;
 
+import com.common.LogUtil;
 import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
 import com.core.utils.ToastUtil;
 import com.core.widget.listener.EditChangeListener;
 import com.modular.apputils.widget.DivideRadioGroup;
+import com.uas.appworks.OA.platform.model.CharitModel;
 import com.uas.appworks.R;
 
 /**
@@ -25,16 +29,19 @@ import com.uas.appworks.R;
 
 public class SelectPlayPop {
 
-
-	public void show(final Activity ct, String name) {
+	public static void showPlay(final Activity ct, CharitModel model, OnSureListener onSureListener) {
+		if (model == null) return;
 		final PopupWindow window = new PopupWindow(ct);
+//		window.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
+		window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
 		View view = LayoutInflater.from(ct).inflate(R.layout.pop_play_select, null);
 		window.setContentView(view);
 		window.getContentView().measure(0, 0);
-		window.setHeight(DisplayUtil.dip2px(ct, 270));
-		window.setWidth(DisplayUtil.getSreechWidth((Activity) ct));
-		initView(ct, view, name == null ? "" : name);
-//		window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
+		int height = DisplayUtil.dip2px(ct, 270);
+		window.setHeight(height);
+		window.setWidth(DisplayUtil.getSreechWidth(ct));
+		initView(ct, window, view, model, onSureListener);
+		window.setBackgroundDrawable(ct.getResources().getDrawable(R.color.background));
 		DisplayUtil.backgroundAlpha(ct, 0.4f);
 		window.setTouchable(true);
 		window.setOutsideTouchable(false);
@@ -45,22 +52,22 @@ public class SelectPlayPop {
 				DisplayUtil.backgroundAlpha(ct, 1f);
 			}
 		});
-		window.showAtLocation(view, Gravity.CENTER, 0, 0);
+		window.showAtLocation(view, Gravity.CENTER, 0, height);
 	}
 
 
-	private void initView(final Context ct, View view, String name) {
+	private static void initView(final Context ct, final PopupWindow window, View view, final CharitModel model, final OnSureListener onSureListener) {
 		TextView nameTv = (TextView) view.findViewById(R.id.nameTv);
-		nameTv.setText(name);
+		nameTv.setText(model.getName());
 		final EditText autoNumEd = (EditText) view.findViewById(R.id.autoNumEd);
-		final CheckBox agreeCb = (CheckBox) view.findViewById(R.id.autoNumEd);
-		final DivideRadioGroup selectRg = (DivideRadioGroup) view.findViewById(R.id.selectRg);
-		final DivideRadioGroup typeRg = (DivideRadioGroup) view.findViewById(R.id.typeRg);
+		final CheckBox agreeCb = (CheckBox) view.findViewById(R.id.agreeCb);
+		final RadioGroup selectRg = (RadioGroup) view.findViewById(R.id.selectRg);
+		final RadioGroup typeRg = (RadioGroup) view.findViewById(R.id.typeRg);
 		view.findViewById(R.id.giftBtn).setOnClickListener(new View.OnClickListener() {
 			@Override
 			public void onClick(View view) {
 				if (agreeCb.isChecked()) {
-					giftBtn(autoNumEd, selectRg, typeRg);
+					giftBtn(window, autoNumEd, selectRg, typeRg, model, onSureListener);
 				} else {
 					ToastUtil.showToast(ct, "同意才行哟");
 				}
@@ -68,7 +75,43 @@ public class SelectPlayPop {
 		});
 	}
 
-	private synchronized void giftBtn(EditText autoNumEd, DivideRadioGroup selectRg, DivideRadioGroup typeRg) {
+	private static synchronized void giftBtn(PopupWindow window, EditText autoNumEd, RadioGroup selectRg, RadioGroup typeRg, CharitModel model, OnSureListener onSureListener) {
+		double num = 1;
+		if (TextUtils.isEmpty(autoNumEd.getText())) {
+			int selectId = selectRg.getCheckedRadioButtonId();
+			if (selectId == R.id.twoRb) {
+				num = 2;
+			} else if (selectId == R.id.fiveRb) {
+				num = 5;
+			} else if (selectId == R.id.tenRb) {
+				num = 10;
+			}
+		} else {
+			String message = autoNumEd.getText().toString();
+			LogUtil.i("message=" + message);
+			try {
+				num = Double.valueOf(message);
+			} catch (Exception e) {
+				if (e != null) {
+					LogUtil.i("giftBtn Exception =" + e.getMessage());
+				}
+			}
+		}
+		int typeId = typeRg.getCheckedRadioButtonId();
+		int type = 2;
+		if (typeId == R.id.wxRb) {
+			type = 1;
+		}
+		if (onSureListener != null) {
+			onSureListener.sure(num, type, model);
+		}
+		if (window != null && window.isShowing()) {
+			window.dismiss();
+		}
 	}
 
+
+	public interface OnSureListener {
+		void sure(double num, int type, CharitModel model);
+	}
 }

+ 1 - 0
app_modular/appworks/src/main/res/layout/fragment_charitable_list.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
+    android:background="@color/base_bg"
     android:layout_height="match_parent">
 
     <com.handmark.pulltorefresh.library.PullToRefreshListView

+ 1 - 0
app_modular/appworks/src/main/res/layout/fragment_user.xml

@@ -71,6 +71,7 @@
             android:layout_alignTop="@id/charitTag"
             android:layout_below="@id/companyTv"
             android:text="周杰伦"
+            android:paddingRight="@dimen/padding"
             android:textColor="@color/text_main"
             android:textSize="@dimen/text_main" />
 

+ 1 - 0
app_modular/appworks/src/main/res/layout/handler_charit_activity.xml

@@ -25,5 +25,6 @@
         android:layout_centerVertical="true"
         android:layout_marginRight="10dp"
         android:clickable="true"
+        android:visibility="gone"
         android:src="@drawable/search" />
 </RelativeLayout>

+ 11 - 4
app_modular/appworks/src/main/res/layout/handler_join_activity.xml

@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    style="@style/IMTbleLine_UP_Me"
+    android:layout_width="match_parent"
     android:layout_marginBottom="@dimen/padding"
-    android:background="@color/base_bg"
+    android:layout_height="wrap_content"
+    android:background="@color/white"
     tools:context="com.uas.appworks.OA.platform.activity.JoinCharitActivity">
 
     <TextView
@@ -13,6 +14,8 @@
         android:layout_centerVertical="true"
         android:drawablePadding="10dp"
         android:gravity="center"
+        android:layout_marginLeft="@dimen/padding"
+        android:layout_marginTop="@dimen/padding"
         android:text="共参与活动"
         android:textColor="@color/hintColor"
         android:textSize="@dimen/text_main" />
@@ -26,9 +29,13 @@
         android:layout_marginRight="@dimen/padding"
         android:drawablePadding="10dp"
         android:gravity="center"
-        android:text="(6)"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
-
+    <View
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/padding"
+        android:layout_below="@id/activityTag"
+        android:layout_marginTop="@dimen/padding"
+        android:background="@color/base_bg" />
 </RelativeLayout>

+ 13 - 7
app_modular/appworks/src/main/res/layout/handler_join_project.xml

@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    style="@style/IMTbleLine_UP_Me"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginBottom="@dimen/padding"
-    android:background="@color/base_bg"
-    android:paddingBottom="@dimen/padding"
+    android:background="@color/white"
     tools:context="com.uas.appworks.OA.platform.activity.JoinCharitActivity">
 
     <TextView
         android:id="@+id/projectTag"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/padding"
         android:layout_marginTop="@dimen/padding"
         android:drawablePadding="10dp"
         android:gravity="center"
@@ -26,7 +25,6 @@
         android:layout_alignParentRight="true"
         android:layout_alignTop="@id/projectTag"
         android:layout_marginRight="@dimen/padding"
-        android:text="(6)"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
@@ -35,7 +33,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@id/projectTag"
-        android:layout_marginTop="10dp"
+        android:layout_marginLeft="@dimen/padding"
+        android:layout_marginTop="@dimen/padding"
         android:text="捐赠善款(元)"
         android:textColor="@color/hintColor"
         android:textSize="@dimen/text_main" />
@@ -47,7 +46,14 @@
         android:layout_alignParentRight="true"
         android:layout_alignTop="@id/charitTag"
         android:layout_below="@id/companyTv"
-        android:text="周杰伦"
+        android:layout_marginRight="@dimen/padding"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
+
+    <View
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/padding"
+        android:layout_below="@id/charitTag"
+        android:layout_marginTop="@dimen/padding"
+        android:background="@color/base_bg" />
 </RelativeLayout>

+ 10 - 6
app_modular/appworks/src/main/res/layout/item_charitable_list.xml

@@ -16,8 +16,8 @@
         android:id="@+id/titleTv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="5dp"
         android:layout_alignTop="@id/contantImg"
+        android:layout_marginLeft="5dp"
         android:layout_toRightOf="@id/contantImg"
         android:ellipsize="end"
         android:maxLines="2"
@@ -47,7 +47,7 @@
         android:layout_toRightOf="@id/contantImg"
         android:text="目标筹款 :"
         android:textColor="@color/hintColor"
-        android:textSize="@dimen/BigTextSize" />
+        android:textSize="@dimen/text_main" />
 
     <TextView
         android:id="@+id/targetTv"
@@ -67,13 +67,17 @@
         android:layout_height="wrap_content"
         android:layout_alignLeft="@id/titleTv"
         android:layout_below="@id/targetTag"
+        android:layout_marginTop="5dp"
+        android:background="@drawable/text_frame_bg"
         android:ellipsize="end"
         android:maxLines="1"
+        android:paddingBottom="2dp"
+        android:paddingLeft="5dp"
+        android:paddingRight="5dp"
+        android:paddingTop="2dp"
         android:text="疾病救助"
-        android:padding="5dp"
-        android:background="@drawable/text_frame_bg"
         android:textColor="@color/hintColor"
-        android:textSize="@dimen/BigTextSize" />
+        android:textSize="@dimen/text_main" />
 
     <TextView
         android:id="@+id/giftBtn"
@@ -81,9 +85,9 @@
         android:layout_height="wrap_content"
         android:layout_alignParentRight="true"
         android:layout_alignTop="@id/typeTv"
+        android:background="@color/indianred"
         android:padding="8dp"
         android:text="我要捐款"
-        android:background="@color/indianred"
         android:textColor="@color/white" />
 
 </RelativeLayout>

+ 19 - 5
app_modular/appworks/src/main/res/layout/item_join.xml

@@ -1,19 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:padding="@dimen/padding"
-    android:layout_height="wrap_content">
+    android:background="@color/white"
+    android:layout_height="wrap_content"
+    android:padding="@dimen/padding">
 
     <TextView
         android:id="@+id/nameTv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="周杰伦"
         android:ellipsize="end"
         android:maxLines="2"
+        android:text="周杰伦"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
+    <TextView
+        android:id="@+id/amountTv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBottom="@id/nameTv"
+        android:layout_marginLeft="20dp"
+        android:layout_alignParentRight="true"
+        android:paddingLeft="@dimen/padding"
+        android:paddingRight="@dimen/padding"
+        android:text="102元"
+        android:textColor="@color/indianred"
+        android:textSize="@dimen/text_hine" />
     <TextView
         android:id="@+id/statusTv"
         android:layout_width="wrap_content"
@@ -21,11 +34,12 @@
         android:layout_alignBottom="@id/nameTv"
         android:layout_marginLeft="20dp"
         android:layout_toRightOf="@id/nameTv"
-        android:text="未开奖"
+        android:background="@drawable/text_frame_circle_bg"
         android:paddingLeft="@dimen/padding"
         android:paddingRight="@dimen/padding"
-        android:background="@drawable/text_frame_circle_bg"
+        android:text="未开奖"
         android:textSize="@dimen/text_hine" />
+
     <TextView
         android:id="@+id/timeTv"
         android:layout_width="wrap_content"

+ 13 - 6
app_modular/appworks/src/main/res/layout/pop_play_select.xml

@@ -2,6 +2,7 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="270dp"
+    android:background="@color/background"
     android:padding="@dimen/padding">
 
     <TextView
@@ -24,7 +25,7 @@
         android:textSize="@dimen/text_hine" />
 
 
-    <com.modular.apputils.widget.DivideRadioGroup
+    <RadioGroup
         android:id="@+id/selectRg"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -36,14 +37,15 @@
         android:paddingTop="4dp">
 
         <RadioButton
+            android:id="@+id/oneRb"
             style="@style/IMTabButton"
             android:layout_width="0dp"
             android:layout_height="match_parent"
+            android:checked="true"
             android:layout_marginLeft="5dp"
             android:layout_marginRight="5dp"
             android:layout_weight="1"
             android:background="@drawable/pop_text_frame_bg"
-            android:checked="true"
             android:padding="10dp"
             android:paddingTop="3dp"
             android:text="1元"
@@ -51,6 +53,7 @@
 
 
         <RadioButton
+            android:id="@+id/twoRb"
             style="@style/IMTabButton"
             android:layout_width="0dp"
             android:layout_height="match_parent"
@@ -64,6 +67,7 @@
             android:textColor="@drawable/pop_text_color_bg" />
 
         <RadioButton
+            android:id="@+id/fiveRb"
             style="@style/IMTabButton"
             android:layout_width="0dp"
             android:layout_height="match_parent"
@@ -80,6 +84,7 @@
             style="@style/IMTabButton"
             android:layout_width="0dp"
             android:layout_height="match_parent"
+            android:id="@+id/tenRb"
             android:layout_marginLeft="5dp"
             android:layout_marginRight="5dp"
             android:layout_weight="1"
@@ -89,7 +94,7 @@
             android:text="10元"
             android:textColor="@drawable/pop_text_color_bg" />
 
-    </com.modular.apputils.widget.DivideRadioGroup>
+    </RadioGroup>
 
 
     <RelativeLayout
@@ -109,13 +114,14 @@
             android:background="@null"
             android:hint="自定义金额"
             android:minWidth="40dp"
+            android:inputType="numberDecimal"
             android:textSize="@dimen/text_main" />
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="20dp"
-            android:layout_toRightOf="@+id/autoNumEd"
+            android:layout_toRightOf="@id/autoNumEd"
             android:text="元"
             android:textColor="@color/indianred"
             android:textSize="@dimen/text_main" />
@@ -134,7 +140,7 @@
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
-    <com.modular.apputils.widget.DivideRadioGroup
+    <RadioGroup
         android:id="@+id/typeRg"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -151,6 +157,7 @@
         <RadioButton
             style="@style/IMTabButton"
             android:layout_width="0dp"
+            android:id="@+id/wxRb"
             android:layout_height="match_parent"
             android:layout_marginLeft="5dp"
             android:layout_marginRight="5dp"
@@ -177,7 +184,7 @@
             android:textColor="@drawable/pop_text_color_bg" />
 
 
-    </com.modular.apputils.widget.DivideRadioGroup>
+    </RadioGroup>
 
 
     <CheckBox