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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

本文實(shí)例為大家分享了java實(shí)現(xiàn)app簽到功能的具體代碼,供大家參考,具體內(nèi)容如下

1.首先設(shè)計(jì)二張表,第一張表sign_calc記錄用戶(hù)連續(xù)簽到次數(shù),字段id,user_id,continue_days,第二張表sign_detail簽到詳情表id,user_id,sign_date。

2.app端用戶(hù)點(diǎn)擊簽到接口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 {

/****

* 查詢(xún)用戶(hù)今日的簽到

*/

SignDetail signToday = signService.todayDetail(accid);//

System.out.println(signToday);

if (signToday == null) {//今天未簽到 1:查詢(xún)本月昨日簽到情況

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 {//當(dāng)日已簽到

result.put(Constants.RESULT_CODE, "-1");

data.put("data", "當(dāng)日已簽到");

}

result.put("data", data);

} catch (Exception e) {

e.printStackTrace();

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "服務(wù)器錯(cuò)誤");

}

CinemaConstants.ACCID_MAP.remove(accid);

} else {

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "操作正在進(jìn)行,請(qǐng)重試");

}

} else {

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "操作正在進(jìn)行,請(qǐng)重試");

}

return result;

}

領(lǐng)取連續(xù)簽到獎(jiǎng)勵(lì)接口:

/***

* 領(lǐng)取連續(xù)簽到獎(jiǎng)勵(lì)接口(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);//把日期設(shè)置為當(dāng)月第一天

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", "領(lǐng)取成功");

} //

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", "領(lǐng)取成功");

} 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", "領(lǐng)取成功");

} else {

result.put(Constants.RESULT_CODE, "-1");

data.put("msg", "已領(lǐng)取或未到標(biāo)");

}

result.put("data", data);

} catch (Exception e) {

e.printStackTrace();

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "服務(wù)器錯(cuò)誤");

}

CinemaConstants.ACCID_MAP.remove(accid);

} else {

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "操作正在進(jìn)行,請(qǐng)重試");

}

} else {

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "操作正在進(jìn)行,請(qǐng)重試");

}

return result;

}

簽到頁(yè)面的接口:

/***

* 簽到頁(yè)面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", "沒(méi)數(shù)據(jù)");

} else {

String[] strings = account.getAvatar().split(".png");

data.put("nick_name", account.getNick_name());//昵稱(chēng)

data.put("avatar", strings[0]);

data.put("integral", account.getIntegral());//總積分

data.put("count_date", countDate);//累計(jì)簽到天數(shù)

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);//簽到明細(xì)

}

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");//未達(dá)標(biāo)

} else if (signServen>0) {

data.put("sign_seven", "2");//已領(lǐng)取

} else {

data.put("sign_seven", "1");//未領(lǐng)取

}

int signFifteen = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_15);

if (signCalc.getContinue_days() < 15) {

data.put("sign_fifteen", "0");//未達(dá)標(biāo)

} else if (signFifteen > 0) {

data.put("sign_fifteen", "2");//已領(lǐng)取

} else {

data.put("sign_fifteen", "1");//未領(lǐng)取

}

int signThirty = integralService.signQuery(accid, CinemaConstants.INTEGRAL_TYPE_SIGN_30);

if (signCalc.getContinue_days() < 30 ) {

data.put("sign_thirty", "0");//未達(dá)標(biāo)

} else if (signThirty>0) {

data.put("sign_thirty", "2");//已領(lǐng)取

} else {

data.put("sign_thirty", "1");//未領(lǐng)取

}

result.put(Constants.RESULT_CODE, "00");

result.put("data", data);

} catch (Exception e) {

e.printStackTrace();

result.put(Constants.RESULT_CODE, "-1");

result.put("data", "數(shù)據(jù)獲取異常");

}

return result;

}

效果如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持w3xue。

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。