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

master
呗 呗 3 years ago
parent 2442f4e215
commit d143081efc

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

@ -192,10 +192,6 @@ public class CourseSignIn extends AppCompatActivity {
.setNeutralButton("扫码", new DialogInterface.OnClickListener() {
@Override
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 = new IntentIntegrator(CourseSignIn.this)
.setBeepEnabled(true) //扫描提示音

@ -1,5 +1,6 @@
package com.example.stlink.activitys.fragmentChild.activityTeaHome;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@ -7,6 +8,7 @@ import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -19,9 +21,11 @@ import com.example.stlink.fragments.LeaveListFragment;
import com.example.stlink.fragments.SignListFragment;
import com.example.stlink.model.constants.ModelFieldConstants;
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.data.CourseSignMsg;
import com.example.stlink.utils.CommonUtils;
import com.example.stlink.utils.QRCodeUtil;
import com.example.stlink.utils.activityUtil.CheckCourseSignUtil;
import com.example.stlink.utils.httpUtils.GetUrlParamHttpUtils;
import com.google.gson.Gson;
@ -30,6 +34,7 @@ import com.google.gson.internal.LinkedTreeMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class CheckCourseSign extends AppCompatActivity {
@ -40,6 +45,7 @@ public class CheckCourseSign extends AppCompatActivity {
private TextView tvCourseStuAmountMsg;
private TextView tvCourseStuArriveAmountMsg;
private TextView tvCourseStuLeaveAmountMsg;
private ImageView ivCode;
private CheckCourseSignUtil checkCourseSignUtil;
@ -61,6 +67,7 @@ public class CheckCourseSign extends AppCompatActivity {
private void initView(){
CommonUtils.changeStatusBar(CheckCourseSign.this);
ivCode = findViewById(R.id.iv_code);
abIvTitle = findViewById(R.id.ab_iv_title);
aTvCourseName = findViewById(R.id.ab_tv_course_name);
tvCourseNameMsg = findViewById(R.id.tv_course_name_msg);
@ -99,6 +106,14 @@ public class CheckCourseSign extends AppCompatActivity {
if(!TextUtils.isEmpty(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(){

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

@ -76,6 +76,8 @@ public class ModelFieldConstants {
public static final String COURSE_SIGN = "courseSign";
//地点
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;
import java.io.Serializable;
/**
*
*/
public class CourseCreateSignRequest {
public class CourseCreateSignRequest implements Serializable {
/**
* ()

@ -40,10 +40,12 @@
<LinearLayout
android:id="@+id/ll_course_info_msg"
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
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_marginTop="10dp">
<LinearLayout
@ -150,6 +152,17 @@
</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
android:id="@+id/tv_sign_list"
android:text="签到列表"

Loading…
Cancel
Save