日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java设计按月每天签到_java实现app签到功能

發布時間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java设计按月每天签到_java实现app签到功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例為大家分享了java實現app簽到功能的具體代碼,供大家參考,具體內容如下

1.首先設計二張表,第一張表sign_calc記錄用戶連續簽到次數,字段id,user_id,continue_days,第二張表sign_detail簽到詳情表id,user_id,sign_date。

2.app端用戶點擊簽到接口controller如下:

/***

* app簽到接口

* @author xuhaibo

* @param accid

* @return

*/

@ResponseBody

@RequestMapping(value = "/doSign")

public JSONObject doSign(Integer accid) {

JSONObject result = new JSONObject();

Map 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 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 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> 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 map : list) {

for (Map.Entry 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;

}

效果如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持w3xue。

總結

以上是生活随笔為你收集整理的java设计按月每天签到_java实现app签到功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。