管灌系统巡查员智能手机App
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.dayu.pipirrapp.activity;
 
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
 
import androidx.annotation.Nullable;
 
import com.dayu.pipirrapp.MyApplication;
import com.dayu.pipirrapp.bean.net.IssueResult;
import com.dayu.pipirrapp.databinding.ActivityChangePassWordBinding;
import com.dayu.pipirrapp.net.ApiManager;
import com.dayu.pipirrapp.net.BaseResponse;
import com.dayu.pipirrapp.net.Constants;
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.TitleBar;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * author: zuo
 * Date: 2024-01-29
 * Time: 17:19
 * 备注:修改密码
 */
public class ChangePSActivity extends BaseActivity {
    ActivityChangePassWordBinding binding;
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityChangePassWordBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        new TitleBar(this).setTitleText("修改密码").setLeftIco().setLeftIcoListening(v -> ChangePSActivity.this.finish());
        initView();
    }
 
    private void initView() {
        binding.changePSBtn.setOnClickListener(v -> {
            String oldPassword = binding.oldPassword.getText().toString();
            String newPSOne = binding.newPsone.getText().toString();
            String newPStwo = binding.newPsTwo.getText().toString();
            if (!TextUtils.isEmpty(oldPassword) && !TextUtils.isEmpty(newPSOne) && !TextUtils.isEmpty(newPStwo)) {
                if (newPStwo.equals(newPSOne)) {
                    if (isPasswordComplex(newPSOne)) {
                        changePS(oldPassword, newPSOne);
                    } else {
                        ToastUtil.showToastShort(ChangePSActivity.this, "新密码长度应为6-12位,并且至少包含1个数字或字母!");
                    }
                } else {
                    ToastUtil.showToastShort(ChangePSActivity.this, "两次密码不一致!");
                }
            } else {
                ToastUtil.showToastShort(ChangePSActivity.this, "请输入完整信息!");
            }
        });
    }
 
 
    private void changePS(String oldPassword, String newPassword) {
        Map<String, Object> params = new HashMap<>();
        params.put("id", MyApplication.myApplication.userId);
        params.put("oldPassword", oldPassword);
        params.put("newPassword", newPassword);
        ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/base/user/changePassword", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() {
            @Override
            public void onNext(BaseResponse<IssueResult> t) {
                if (t.isSuccess()) {
                    ToastUtil.showToastLong(ChangePSActivity.this, "修改成功!");
                    ChangePSActivity.this.finish();
                } else {
                    ToastUtil.showToast(ChangePSActivity.this, t.getMsg());
                }
            }
 
            @Override
            public void onCloose() {
                super.onCloose();
            }
 
            @Override
            public void onError(Throwable e) {
                super.onError(e);
                ToastUtil.showToastLong(ChangePSActivity.this, "修改失败,请稍后再试");
 
            }
        });
    }
 
    // 检查密码复杂度的方法
    boolean isPasswordComplex(String password) {
        // 密码复杂度规则:长度在6到12位之间,至少包含一个数字和一个字母
        return password.length() >= 6 && password.length() <= 12 &&
                password.matches(".*\\d.*") && // 至少包含一个数字
                password.matches(".*[a-zA-Z].*"); // 至少包含一个字母
    }
}