diff --git a/app/src/main/java/com/oneclouds/cargo/bean/CodeBean.java b/app/src/main/java/com/oneclouds/cargo/bean/CodeBean.java new file mode 100644 index 0000000..467ccc3 --- /dev/null +++ b/app/src/main/java/com/oneclouds/cargo/bean/CodeBean.java @@ -0,0 +1,66 @@ +package com.oneclouds.cargo.bean; + +/** + * @ClassName CodeBean + * @Author john + * @Date 2025/1/16 09:18 + * @Description TODO + */ +public class CodeBean { + + + private String msg; + private String img; + private int code; + private boolean success; + private boolean captchaOnOff; + private String uuid; + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public boolean isCaptchaOnOff() { + return captchaOnOff; + } + + public void setCaptchaOnOff(boolean captchaOnOff) { + this.captchaOnOff = captchaOnOff; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } +} diff --git a/app/src/main/java/com/oneclouds/cargo/bean/LoginBean.java b/app/src/main/java/com/oneclouds/cargo/bean/LoginBean.java index 392c5dd..3d1527b 100644 --- a/app/src/main/java/com/oneclouds/cargo/bean/LoginBean.java +++ b/app/src/main/java/com/oneclouds/cargo/bean/LoginBean.java @@ -56,6 +56,7 @@ public class LoginBean { public static class DataDTO { private String token; + private String access_token; private int id; private int roleId; private String uname; @@ -80,6 +81,14 @@ public class LoginBean { private Object isCar; private Object qrcodeUrl; + public String getAccess_token() { + return access_token; + } + + public void setAccess_token(String access_token) { + this.access_token = access_token; + } + public String getToken() { return token; } diff --git a/app/src/main/java/com/oneclouds/cargo/request/PublicRequest.java b/app/src/main/java/com/oneclouds/cargo/request/PublicRequest.java index 59a22b4..677f476 100644 --- a/app/src/main/java/com/oneclouds/cargo/request/PublicRequest.java +++ b/app/src/main/java/com/oneclouds/cargo/request/PublicRequest.java @@ -10,6 +10,7 @@ import com.google.gson.Gson; import com.oneclouds.cargo.constant.SPConstant; import com.oneclouds.cargo.request.bean.InsBankInputBean; import com.oneclouds.cargo.request.bean.LoginRegInputBean; +import com.oneclouds.cargo.request.bean.NewLogBean; import com.oneclouds.cargo.request.manager.UrlManager; import com.oneclouds.cargo.util.MapUtil; import com.oneclouds.cargo.util.SPUtil; @@ -104,12 +105,22 @@ public class PublicRequest { Request re = OkHttpUtil.post(new OkDate(UrlManager.forgetPwd(), "post", MapUtil.mapJson(map)),con); RequestTest.test(1,FORGETPWD,re,con,hd); } + + //获取验证码 + public void getCode(){ + Map map=new HashMap<>(); + Request re = OkHttpUtil.get(new OkDate(UrlManager.getCode(), "get", MapUtil.mapJson(map)),"get",con); + RequestTest.test(1,"getCode",re,con,hd); + } + + + //账户登录 public void userLogin(LoginRegInputBean lrib){ Request re = OkHttpUtil.post(new OkDate(UrlManager.getLOGIN(), "post", gson.toJson(lrib)),con); RequestTest.test(1,LOGIN,re,con,hd); }//账户登录 - public void userLogin2(LoginRegInputBean lrib){ + public void userLogin2(NewLogBean lrib){ Request re = OkHttpUtil.post(new OkDate(UrlManager.getLOGIN2(), "post", gson.toJson(lrib)),con); RequestTest.test(1,LOGIN,re,con,hd); } diff --git a/app/src/main/java/com/oneclouds/cargo/request/bean/NewLogBean.java b/app/src/main/java/com/oneclouds/cargo/request/bean/NewLogBean.java new file mode 100644 index 0000000..0bf88b8 --- /dev/null +++ b/app/src/main/java/com/oneclouds/cargo/request/bean/NewLogBean.java @@ -0,0 +1,47 @@ +package com.oneclouds.cargo.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/2 9:45 + * @description:登录和注册的入参实体 + */ +public class NewLogBean { + + private String username; + private String password; + private String code; + private String uuid; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } +} diff --git a/app/src/main/java/com/oneclouds/cargo/request/manager/UrlManager.java b/app/src/main/java/com/oneclouds/cargo/request/manager/UrlManager.java index c8d486d..caa136f 100644 --- a/app/src/main/java/com/oneclouds/cargo/request/manager/UrlManager.java +++ b/app/src/main/java/com/oneclouds/cargo/request/manager/UrlManager.java @@ -202,7 +202,9 @@ public class UrlManager { private static final String FORGETPWD = "/common/forgetPwd"; //账户登录 private static final String LOGIN = "/common/register"; - private static final String LOGIN2 = "/common/login"; +// private static final String LOGIN2 = "/common/login"; + private static final String LOGIN2 = "auth/login"; + private static final String CODE = "code"; //账户信息 private static final String USER_INFO = "/app/user/getUserInfo"; //银行卡列表 @@ -551,7 +553,11 @@ public class UrlManager { } public static String getLOGIN2() { - return BASE_URL + LOGIN2; + return BASE_URL.substring(0, BASE_URL.lastIndexOf("api/")) + LOGIN2; + } + + public static String getCode() { + return BASE_URL.substring(0, BASE_URL.lastIndexOf("api/")) + CODE; } public static String getUserInfo() { diff --git a/app/src/main/java/com/oneclouds/cargo/ui/LoginActivity.java b/app/src/main/java/com/oneclouds/cargo/ui/LoginActivity.java index 1281c09..00b0008 100644 --- a/app/src/main/java/com/oneclouds/cargo/ui/LoginActivity.java +++ b/app/src/main/java/com/oneclouds/cargo/ui/LoginActivity.java @@ -15,6 +15,7 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -22,22 +23,33 @@ import android.widget.Toast; import androidx.annotation.Nullable; import androidx.cardview.widget.CardView; +import com.dahe.mylibrary.utils.Base64Utils; import com.google.gson.Gson; +import com.oneclouds.cargo.BuildConfig; import com.oneclouds.cargo.R; +import com.oneclouds.cargo.bean.CodeBean; import com.oneclouds.cargo.bean.ConfigBean; import com.oneclouds.cargo.bean.LoginBean; import com.oneclouds.cargo.constant.SPConstant; import com.oneclouds.cargo.request.PublicRequest; import com.oneclouds.cargo.request.bean.LoginRegInputBean; +import com.oneclouds.cargo.request.bean.NewLogBean; +import com.oneclouds.cargo.request.manager.UrlManager; import com.oneclouds.cargo.ui.parts.ConfigParts; +import com.oneclouds.cargo.util.MapUtil; import com.oneclouds.cargo.util.SPUtil; import com.oneclouds.cargo.util.cache.CacheGroup; +import com.oneclouds.cargo.util.http.OkDate; +import com.oneclouds.cargo.util.http.OkHttpUtil; +import com.oneclouds.cargo.util.http.RequestTest; import com.oneclouds.cargo.util.http.RequsetCodeConstants; import com.oneclouds.cargo.util.titleutil.StatusBarUtil; import com.oneclouds.cargo.util.view.BaseActivity; import java.util.TimerTask; +import okhttp3.Request; + /** * @author hlh * @version 1.0.0 @@ -56,9 +68,13 @@ public class LoginActivity extends BaseActivity { private Button btn_login; private TextView auto_login; - private EditText input_phone, input_code; + private EditText input_phone, input_code, etCode; + private ImageView ivCode; private TextView getCode, tvForget; private LoginBean loginBean; + + private CodeBean codeBean; + private TimerTask tt; private int timer_sum = 60; private ImageButton agree_btn; @@ -89,17 +105,32 @@ public class LoginActivity extends BaseActivity { loginBean = new Gson().fromJson(CacheGroup.cacheList.get(PublicRequest.LOGIN), LoginBean.class); Log.e("--登录信息--", new Gson().toJson(loginBean)); if (loginBean.getCode() == 200) { - SPUtil.insSP(con, SPConstant.DATA, SPConstant.DATA_TOKEN, loginBean.getData().getToken()); - SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname()); + SPUtil.insSP(con, SPConstant.DATA, SPConstant.DATA_TOKEN, loginBean.getData().getAccess_token()); +// SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname()); SPUtil.insSP(con, USER, USER_PHONE, input_phone.getText().toString().trim()); - SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname()); - SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + ""); +// SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname()); +// SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + ""); finish(); } else { + //重新获取验证码 + etCode.setText(""); + pr.getCode(); Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove(PublicRequest.LOGIN); } + + if (CacheGroup.cacheList.get("getCode") != null) { + //存储登录记录 + codeBean = new Gson().fromJson(CacheGroup.cacheList.get("getCode"), CodeBean.class); + Log.e("--登录信息--", new Gson().toJson(loginBean)); + if (codeBean != null && codeBean.getCode() == 200 && codeBean.isCaptchaOnOff()) { + ivCode.setImageBitmap(Base64Utils.base64ToBitmap(codeBean.getImg())); + } else { + Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("getCode"); + } break; default: break; @@ -122,11 +153,15 @@ public class LoginActivity extends BaseActivity { llCheck = findViewById(R.id.ll_check); cbLog = findViewById(R.id.cb); no_btn = findViewById(R.id.no_btn); + etCode = findViewById(R.id.etCode); + ivCode = findViewById(R.id.ivCode); pr = new PublicRequest(con, hd); String phone = SPUtil.getSP(con, USER, USER_PHONE); - if (!TextUtils.isEmpty(phone)){ + if (!TextUtils.isEmpty(phone)) { input_phone.setText(phone); } + + pr.getCode(); initView(null); } @@ -139,12 +174,17 @@ public class LoginActivity extends BaseActivity { public void initView(Object obj) { super.initView(obj); llCheck.setOnClickListener(v -> { - if (cbLog.isChecked()){ + if (cbLog.isChecked()) { cbLog.setChecked(false); - }else{ + } else { cbLog.setChecked(true); } }); + + ivCode.setOnClickListener(v -> { + pr.getCode(); + }); + // agree_btn.setOnClickListener(v -> { // agree_btn.setVisibility(View.GONE); // no_btn.setVisibility(View.VISIBLE); @@ -230,15 +270,18 @@ public class LoginActivity extends BaseActivity { }); btn_login.setOnClickListener(v -> { String phone = String.valueOf(input_phone.getText()); - String code = String.valueOf(input_code.getText()); + String pwd = String.valueOf(input_code.getText()); + String code = String.valueOf(etCode.getText()); Log.e("--code--", code); - if (judgeFormat(phone, code)) { + if (judgeFormat(phone, pwd,code)) { if (cbLog.isChecked()) { - LoginRegInputBean lb = new LoginRegInputBean(); - lb.setRoleId(2); - lb.setUserName(phone); - lb.setPassword(code); - pr.userLogin2(lb); + NewLogBean newLogBean = new NewLogBean(); + newLogBean.setUsername(phone); + newLogBean.setPassword(pwd); + newLogBean.setCode(code); + newLogBean.setUuid(codeBean.getUuid()); + + pr.userLogin2(newLogBean); // lb.setRoleId(2); // lb.setUname(phone); @@ -276,9 +319,9 @@ public class LoginActivity extends BaseActivity { } //验证用户输入的是否符合格式 - public boolean judgeFormat(String phone, String code) { - if (phone.equals("") || code.equals("")) { - Toast.makeText(con, "手机号和验证码不得为空", Toast.LENGTH_SHORT).show(); + public boolean judgeFormat(String phone, String pwd, String code) { + if (phone.equals("") || pwd.equals("")|| code.equals("")) { + Toast.makeText(con, "手机号,密码和验证码不得为空", Toast.LENGTH_SHORT).show(); return false; } else { return true; diff --git a/app/src/main/java/com/oneclouds/cargo/ui/home/ChoiceAddressActivity.java b/app/src/main/java/com/oneclouds/cargo/ui/home/ChoiceAddressActivity.java index 0e7f743..eebbe51 100644 --- a/app/src/main/java/com/oneclouds/cargo/ui/home/ChoiceAddressActivity.java +++ b/app/src/main/java/com/oneclouds/cargo/ui/home/ChoiceAddressActivity.java @@ -113,10 +113,10 @@ public class ChoiceAddressActivity extends BaseActivity implements View.OnClickL } finish(); } else { - tvAddress.setText(""); - aib.setProvinceS(""); - aib.setCityS(""); - aib.setAreaS(""); +// tvAddress.setText(""); +// aib.setProvinceS(""); +// aib.setCityS(""); +// aib.setAreaS(""); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove(AddressRequest.ADDRESS_SAVE); diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 2408d11..0570fe5 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -29,6 +29,7 @@ android:textStyle="bold" /> + + + + + + + +