更新扫码功能,学生端能够扫码签到;教师端在发布签到之后,跳转到查看签到界面,能够展示二维码

master
呗 呗 3 years ago
parent 2442f4e215
commit d143081efc

@ -86,7 +86,4 @@ dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
} }

@ -192,10 +192,6 @@ public class CourseSignIn extends AppCompatActivity {
.setNeutralButton("扫码", new DialogInterface.OnClickListener() { .setNeutralButton("扫码", new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
// TODO 扫码签到
// Intent intent = new Intent(CourseSignIn.this, ScanQRCodeActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(intent);
// 创建IntentIntegrator对象 // 创建IntentIntegrator对象
IntentIntegrator intentIntegrator = new IntentIntegrator(CourseSignIn.this) IntentIntegrator intentIntegrator = new IntentIntegrator(CourseSignIn.this)
.setBeepEnabled(true) //扫描提示音 .setBeepEnabled(true) //扫描提示音

@ -1,5 +1,6 @@
package com.example.stlink.activitys.fragmentChild.activityTeaHome; package com.example.stlink.activitys.fragmentChild.activityTeaHome;
import android.graphics.Bitmap;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
@ -7,6 +8,7 @@ import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -19,9 +21,11 @@ import com.example.stlink.fragments.LeaveListFragment;
import com.example.stlink.fragments.SignListFragment; import com.example.stlink.fragments.SignListFragment;
import com.example.stlink.model.constants.ModelFieldConstants; import com.example.stlink.model.constants.ModelFieldConstants;
import com.example.stlink.model.constants.UrlConstants; import com.example.stlink.model.constants.UrlConstants;
import com.example.stlink.model.request.CourseCreateSignRequest;
import com.example.stlink.model.response.BaseResponse; import com.example.stlink.model.response.BaseResponse;
import com.example.stlink.model.response.data.CourseSignMsg; import com.example.stlink.model.response.data.CourseSignMsg;
import com.example.stlink.utils.CommonUtils; import com.example.stlink.utils.CommonUtils;
import com.example.stlink.utils.QRCodeUtil;
import com.example.stlink.utils.activityUtil.CheckCourseSignUtil; import com.example.stlink.utils.activityUtil.CheckCourseSignUtil;
import com.example.stlink.utils.httpUtils.GetUrlParamHttpUtils; import com.example.stlink.utils.httpUtils.GetUrlParamHttpUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -30,6 +34,7 @@ import com.google.gson.internal.LinkedTreeMap;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
public class CheckCourseSign extends AppCompatActivity { public class CheckCourseSign extends AppCompatActivity {
@ -40,6 +45,7 @@ public class CheckCourseSign extends AppCompatActivity {
private TextView tvCourseStuAmountMsg; private TextView tvCourseStuAmountMsg;
private TextView tvCourseStuArriveAmountMsg; private TextView tvCourseStuArriveAmountMsg;
private TextView tvCourseStuLeaveAmountMsg; private TextView tvCourseStuLeaveAmountMsg;
private ImageView ivCode;
private CheckCourseSignUtil checkCourseSignUtil; private CheckCourseSignUtil checkCourseSignUtil;
@ -61,6 +67,7 @@ public class CheckCourseSign extends AppCompatActivity {
private void initView(){ private void initView(){
CommonUtils.changeStatusBar(CheckCourseSign.this); CommonUtils.changeStatusBar(CheckCourseSign.this);
ivCode = findViewById(R.id.iv_code);
abIvTitle = findViewById(R.id.ab_iv_title); abIvTitle = findViewById(R.id.ab_iv_title);
aTvCourseName = findViewById(R.id.ab_tv_course_name); aTvCourseName = findViewById(R.id.ab_tv_course_name);
tvCourseNameMsg = findViewById(R.id.tv_course_name_msg); tvCourseNameMsg = findViewById(R.id.tv_course_name_msg);
@ -99,6 +106,14 @@ public class CheckCourseSign extends AppCompatActivity {
if(!TextUtils.isEmpty(teaName)){ if(!TextUtils.isEmpty(teaName)){
tvCourseTeaNameMsg.setText(teaName); tvCourseTeaNameMsg.setText(teaName);
} }
Object obj = bundle.getSerializable(ModelFieldConstants.COURSE_CREATE_SIGN_REQUEST);
if(obj instanceof CourseCreateSignRequest ){
CourseCreateSignRequest courseCreateSignRequest = (CourseCreateSignRequest) obj;
String signCode = String.valueOf(courseCreateSignRequest.getSignCode());
Bitmap codeBitmap = QRCodeUtil.createQRCode(signCode,500,500,null);
ivCode.setImageBitmap(codeBitmap);
}
} }
private void setClickListener(){ private void setClickListener(){

@ -243,7 +243,7 @@ public class CreateSign extends AppCompatActivity {
String stuAmountStr = Objects.requireNonNull(etStuAmount.getText()).toString(); String stuAmountStr = Objects.requireNonNull(etStuAmount.getText()).toString();
String location = Objects.requireNonNull(etLocation.getText()).toString(); String location = Objects.requireNonNull(etLocation.getText()).toString();
String signCodeStr = Objects.requireNonNull(etCode.getText()).toString(); String signCodeStr = Objects.requireNonNull(etCode.getText()).toString();
Long courseId = bundle.getLong(ModelFieldConstants.COURSE_ID); long courseId = bundle.getLong(ModelFieldConstants.COURSE_ID);
Long userId = bundle.getLong(ModelFieldConstants.ID); Long userId = bundle.getLong(ModelFieldConstants.ID);
if(!TextUtils.isEmpty(courseName)){ if(!TextUtils.isEmpty(courseName)){
if(!TextUtils.isEmpty(stuAmountStr)){ if(!TextUtils.isEmpty(stuAmountStr)){
@ -264,25 +264,23 @@ public class CreateSign extends AppCompatActivity {
courseCreateSignRequest.setCourseId(courseId); courseCreateSignRequest.setCourseId(courseId);
courseCreateSignRequest.setUserId(userId); courseCreateSignRequest.setUserId(userId);
courseCreateSignRequest.setSignCode(signCode); courseCreateSignRequest.setSignCode(signCode);
handler = new Handler(new Handler.Callback() { handler = new Handler(msg -> {
@Override if(msg.arg1 == 200){
public boolean handleMessage(@NonNull Message msg) { String error = (String) msg.obj;
if(msg.arg1 == 200){ Toast.makeText(CreateSign.this, error, Toast.LENGTH_SHORT).show();
String error = (String) msg.obj; }else if(msg.arg1 == 100){
Toast.makeText(CreateSign.this, error, Toast.LENGTH_SHORT).show(); Toast.makeText(CreateSign.this, "创建签到成功", Toast.LENGTH_SHORT).show();
}else if(msg.arg1 == 100){ //创建成功后直接结束当前活动,并且跳到查看签到状态
Toast.makeText(CreateSign.this, "创建签到成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent();
//创建成功后直接结束当前活动,并且跳到查看签到状态 bundle = getIntent().getExtras();
Intent intent = new Intent(); bundle.putLong(ModelFieldConstants.NOW_SIGN_COURSE_ID, courseId);
bundle = getIntent().getExtras(); bundle.putString(ModelFieldConstants.NOW_SIGN_COURSE_NAME, courseName);
bundle.putLong(ModelFieldConstants.NOW_SIGN_COURSE_ID, courseId); bundle.putSerializable(ModelFieldConstants.COURSE_CREATE_SIGN_REQUEST , courseCreateSignRequest);
bundle.putString(ModelFieldConstants.NOW_SIGN_COURSE_NAME, courseName); intent.putExtras(bundle);
intent.putExtras(bundle); setResult(100,intent);
setResult(100,intent); finish();
finish();
}
return false;
} }
return false;
}); });
createSign(courseCreateSignRequest); createSign(courseCreateSignRequest);
}catch (NumberFormatException numberFormatException){ }catch (NumberFormatException numberFormatException){
@ -313,30 +311,31 @@ public class CreateSign extends AppCompatActivity {
} }
/**
*
* @param courseCreateSignRequest
*/
private void createSign(CourseCreateSignRequest courseCreateSignRequest){ private void createSign(CourseCreateSignRequest courseCreateSignRequest){
new Thread(new Runnable() { new Thread(() -> {
@Override System.out.println( "courseCreateSignRequest : " + courseCreateSignRequest.toString() + "..............................");
public void run() { String json = JSON.toJSONString(courseCreateSignRequest);
System.out.println( "courseCreateSignRequest : " + courseCreateSignRequest.toString() + ".............................."); String url = UrlConstants.TEACHER_INITIATE;
String json = JSON.toJSONString(courseCreateSignRequest);
String url = UrlConstants.TEACHER_INITIATE;
new PostBodyParamHttpUtils() { new PostBodyParamHttpUtils() {
@Override @Override
public void nextMethod(BaseResponse<Object> baseResponse) { public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message(); Message message = new Message();
message.arg1 = 100; message.arg1 = 100;
handler.sendMessage(message); handler.sendMessage(message);
} }
@Override @Override
public void failedMethod(BaseResponse<Object> baseResponse) { public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message(); Message message = new Message();
message.arg1 = 200; message.arg1 = 200;
message.obj = baseResponse.getMsg(); message.obj = baseResponse.getMsg();
handler.sendMessage(message); handler.sendMessage(message);
} }
}.postConnect(url, json); }.postConnect(url, json);
}
}).start(); }).start();
} }
} }

@ -76,6 +76,8 @@ public class ModelFieldConstants {
public static final String COURSE_SIGN = "courseSign"; public static final String COURSE_SIGN = "courseSign";
//地点 //地点
public static final String LOCATION = "location"; public static final String LOCATION = "location";
//签到请求封装类
public static final String COURSE_CREATE_SIGN_REQUEST = "courseCreateSignRequest";
/*==================================================================================================*/ /*==================================================================================================*/

@ -1,9 +1,11 @@
package com.example.stlink.model.request; package com.example.stlink.model.request;
import java.io.Serializable;
/** /**
* *
*/ */
public class CourseCreateSignRequest { public class CourseCreateSignRequest implements Serializable {
/** /**
* () * ()

@ -40,10 +40,12 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_course_info_msg" android:id="@+id/ll_course_info_msg"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/ab_course_sign" app:layout_constraintTop_toBottomOf="@id/ab_course_sign"
app:layout_constraintRight_toLeftOf="@id/iv_code"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginHorizontal="12dp" android:layout_marginHorizontal="12dp"
android:layout_marginTop="10dp"> android:layout_marginTop="10dp">
<LinearLayout <LinearLayout
@ -150,6 +152,17 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/iv_code"
android:layout_width="100dp"
android:layout_height="100dp"
app:layout_constraintTop_toTopOf="@id/ll_course_info_msg"
app:layout_constraintBottom_toBottomOf="@id/ll_course_info_msg"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginEnd="10dp"
/>
<TextView <TextView
android:id="@+id/tv_sign_list" android:id="@+id/tv_sign_list"
android:text="签到列表" android:text="签到列表"

Loading…
Cancel
Save