자바 앱 출석 기능 구현
1.먼저 두 장의 시 계 를 설계 하고,첫 번 째 시 계 는 signcalc 사용자 연속 출석 횟수,필드 id,user 기록id,continue_days,두 번 째 표 signdetail 출석 상세 표 id,userid,sign_date。
2.app 엔 드 사용자 가 서명 인터페이스 contrller 를 누 르 면 다음 과 같 습 니 다.
/***
* app
* @author xuhaibo
* @param accid
* @return
*/
@ResponseBody
@RequestMapping(value = "/doSign")
public JSONObject doSign(Integer accid) {
JSONObject result = new JSONObject();
Map<String, Object> data = new HashMap<>();
if (!CinemaConstants.ACCID_MAP.contains(accid)) {
Integer previousId = CinemaConstants.ACCID_MAP.put(accid, accid);
if (previousId == null) {
try {
/****
*
*/
SignDetail signToday = signService.todayDetail(accid);//
System.out.println(signToday);
if (signToday == null) {// 1:
SignDetail signDetail_yesterday = signService.yesterdayDetail(accid);
SignCalc signCalcGet = signService.getSignCalc(accid);
if (signDetail_yesterday == null) {
SignDetail signDetail = new SignDetail();
signDetail.setUser_id(accid);
signDetail.setSign_date(new Date());
signService.addSignDetail(signDetail);
if (signCalcGet == null) {
SignCalc signCalc = new SignCalc();
signCalc.setUser_id(accid);
signCalc.setContinue_days(1);
signService.addSignCalc(signCalc);
} else {
SignCalc signCalc = new SignCalc();
signCalc.setUser_id(accid);
signCalc.setContinue_days(1);
signService.updateSignCalc(signCalc);
}
Integral integral = new Integral();
integral.setSourceId(0);
integral.setUserId(accid);
integral.setScore(CinemaConstants.INTEGRAL_TYPE_SIGN_SCORES);
integral.setCreateTime(new Date());
integral.setNote(CinemaConstants.INTEGRAL_TYPE_SIGN_DESCRIBE);
integral.setSourceType(CinemaConstants.INTEGRAL_TYPE_SIGN);
integralService.add(integral);
accountService.addIntegralByUserId(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_SCORES);
result.put(Constants.RESULT_CODE, "00");
data.put("data", " ");
} else {//
SignDetail signDetail = new SignDetail();
SignCalc signCalc = new SignCalc();
signDetail.setUser_id(accid);
signDetail.setSign_date(new Date());
signService.addSignDetail(signDetail);
signCalc.setUser_id(accid);
signCalc.setContinue_days(signCalcGet.getContinue_days() + 1);
signService.updateSignCalc(signCalc);
Integral integral = new Integral();
integral.setUserId(accid);
integral.setSourceId(0);
integral.setScore(CinemaConstants.INTEGRAL_TYPE_SIGN_SCORES);
integral.setNote(CinemaConstants.INTEGRAL_TYPE_SIGN_DESCRIBE);
integral.setCreateTime(new Date());
integral.setSourceType(CinemaConstants.INTEGRAL_TYPE_SIGN);
integralService.add(integral);
accountService.addIntegralByUserId(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_SCORES);
result.put(Constants.RESULT_CODE, "00");
data.put("data", " ");
}
} else {//
result.put(Constants.RESULT_CODE, "-1");
data.put("data", " ");
}
result.put("data", data);
} catch (Exception e) {
e.printStackTrace();
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " ");
}
CinemaConstants.ACCID_MAP.remove(accid);
} else {
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " , ");
}
} else {
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " , ");
}
return result;
}
연속 출석 보상 인터페이스 수령:
/***
* (7 ,15 ,30 )
* @param accid
* @param signType
* @return
*/
@ResponseBody
@RequestMapping(value = "/getSignGift")
public JSONObject getSeven(Integer accid, Integer signType) {
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);//
a.roll(Calendar.DATE, -1);// ,
int maxDate = a.get(Calendar.DATE);
System.out.print(maxDate);
JSONObject result = new JSONObject();
Map<String, Object> data = new HashMap<>();
if (!CinemaConstants.ACCID_MAP.contains(accid)) {
Integer previousId = CinemaConstants.ACCID_MAP.put(accid, accid);
if (previousId == null) {
try {
SignCalc signCalc = signService.getSignCalc(accid);
int signServen = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_7);
int signFifteen = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_15);
int signThirty = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_30);
if (signServen==0&&signType == 7 && signCalc.getContinue_days() >= 7) {
Integral integral = new Integral();
integral.setUserId(accid);
integral.setNote(CinemaConstants.INTEGRAL_TYPE_SIGN_7_DESCRIBE);
integral.setScore(CinemaConstants.INTEGRAL_TYPE_SIGN_7_SCORES);
integral.setCreateTime(new Date());
integral.setSourceType(CinemaConstants.INTEGRAL_TYPE_SIGN_7);
integralService.add(integral);
accountService.addIntegralByUserId(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_7_SCORES);
result.put(Constants.RESULT_CODE, "00");
data.put("data", " ");
} //
else if (signFifteen==0&&signType == 15 && signCalc.getContinue_days() >= 15) {
Integral integral = new Integral();
integral.setUserId(accid);
integral.setNote(CinemaConstants.INTEGRAL_TYPE_SIGN_15_DESCRIBE);
integral.setScore(CinemaConstants.INTEGRAL_TYPE_SIGN_15_SCORES);
integral.setCreateTime(new Date());
integral.setSourceType(CinemaConstants.INTEGRAL_TYPE_SIGN_15);
integralService.add(integral);
accountService.addIntegralByUserId(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_15_SCORES);
result.put(Constants.RESULT_CODE, "00");
data.put("data", " ");
} else if (signThirty==0&&signType == 30 && signCalc.getContinue_days() >= maxDate) {
Integral integral = new Integral();
integral.setUserId(accid);
integral.setNote(CinemaConstants.INTEGRAL_TYPE_SIGN_30_DESCRIBE);
integral.setScore(CinemaConstants.INTEGRAL_TYPE_SIGN_30_SCORES);
integral.setCreateTime(new Date());
integral.setSourceType(CinemaConstants.INTEGRAL_TYPE_SIGN_30);
integralService.add(integral);
accountService.addIntegralByUserId(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_30_SCORES);
result.put(Constants.RESULT_CODE, "00");
data.put("data", " ");
} else {
result.put(Constants.RESULT_CODE, "-1");
data.put("msg", " ");
}
result.put("data", data);
} catch (Exception e) {
e.printStackTrace();
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " ");
}
CinemaConstants.ACCID_MAP.remove(accid);
} else {
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " , ");
}
} else {
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " , ");
}
return result;
}
출석 페이지 의 인터페이스:
/***
* app
* @param accid
* @return
*/
@RequestMapping(value = "/signGift")
@ResponseBody
public Map<String, Object> signGift(Integer accid) {
HashMap result = new HashMap();
JSONObject data = new JSONObject();
String signDetail = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Account account = accountService.getAccount(accid);
SignCalc signCalc = signService.getSignCalc(accid);
List<Map<String, String>> list = signService.getDetailById(accid);
System.out.println(list);
String countDate = signService.countDate(accid);
if (account == null) {
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " ");
} else {
String[] strings = account.getAvatar().split(".png");
data.put("nick_name", account.getNick_name());//
data.put("avatar", strings[0]);
data.put("integral", account.getIntegral());//
data.put("count_date", countDate);//
if (list.size() > 0) {
for (Map<String, String> map : list) {
for (Map.Entry<String, String> entry : map.entrySet()) {
String value = sdf.format(entry.getValue());
signDetail += value + ",";
}
}
}
int j = signDetail.lastIndexOf(",");
signDetail = signDetail.substring(0, j);
data.put("sign_date", signDetail);//
}
data.put("sign_today", true);
int signServen = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_7);
if (signCalc.getContinue_days() < 7) {
data.put("sign_seven", "0");//
} else if (signServen>0) {
data.put("sign_seven", "2");//
} else {
data.put("sign_seven", "1");//
}
int signFifteen = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_15);
if (signCalc.getContinue_days() < 15) {
data.put("sign_fifteen", "0");//
} else if (signFifteen > 0) {
data.put("sign_fifteen", "2");//
} else {
data.put("sign_fifteen", "1");//
}
int signThirty = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_30);
if (signCalc.getContinue_days() < 30 ) {
data.put("sign_thirty", "0");//
} else if (signThirty>0) {
data.put("sign_thirty", "2");//
} else {
data.put("sign_thirty", "1");//
}
result.put(Constants.RESULT_CODE, "00");
result.put("data", data);
} catch (Exception e) {
e.printStackTrace();
result.put(Constants.RESULT_CODE, "-1");
result.put("data", " ");
}
return result;
}
효 과 는 다음 과 같 습 니 다:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.