国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手摸手教你寫任務中心-積分領取&消耗&回收

這篇具有很好參考價值的文章主要介紹了手摸手教你寫任務中心-積分領取&消耗&回收。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

繼上一篇簽到任務之后呢, 就有朋友讓我寫一下任務積分的領取和使用, 以及回收; 其實前面兩種都不難, 就只是積分的加減而已, 真正麻煩的是回收, 有回收的話你就需要考慮到每筆積分存在多種狀態(tài)的可能了;

結構設計

明細表(mysql)

記錄積分的每一筆獲取, 消耗的回收的記錄, 并且回收會依據(jù)里面的過期時間和回收狀態(tài)來處理;

Id             uint   `gorm:"column:id;primary_key;auto_increment;" json:"-"`
StreamNumber   string `gorm:"column:stream_number;type:varchar(20);COMMENT:'流水號'" json:"streamNumber"`
UserId         string `gorm:"column:user_id;type:varchar(20);index;COMMENT:'用戶ID'" json:"userId"`
TaskId         string `gorm:"column:task_id;type:varchar(50);comment:'任務id'" json:"taskId"`
StreamType     int    `gorm:"column:stream_type;type:tinyint(1);comment:'明細類型 1獲取2消耗3回收'" json:"streamType"`
IntegralNum    int64  `gorm:"column:integral_num;type:int(11);default:'0';comment:'積分數(shù)量'" json:"integralNum"`
IntegralSource int    `gorm:"column:integral_source;type:tinyint(1);comment:'積分來源去向'" json:"integralSource"`
OutTime        int64  `gorm:"column:out_time;type:bigint(20);comment:'過期時間';" json:"outTime"`
RecoveryState  int    `gorm:"column:recovery_state;type:tinyint(1);comment:'回收狀態(tài) 1已處理2未處理'" json:"recoveryState"`
....相關業(yè)務字段

用戶任務狀態(tài)表(mysql)

維護用戶的任務狀態(tài), 避免任務重復完成, 以及會有多階段任務的情況

Id         uint   `gorm:"column:id;primary_key;auto_increment;" json:"id"`
UserId     string `gorm:"column:user_id;type:varchar(20);unique_index:idx_user_task;COMMENT:'用戶ID'"`
TaskId     string `gorm:"column:task_id;type:varchar(50);unique_index:idx_user_task;comment:'任務id'"`
TaskState  int    `gorm:"column:task_state;type:tinyint(1);comment:'任務狀態(tài)'"`
....相關業(yè)務字段

用戶積分key(redis)

積分為了保證性能用redis的hash進行存儲, 每個用戶一個key, 維護可用積分, 可用相關的流水以及總領取積分數(shù)的狀態(tài);


IntegralInfo struct {
  Available       int64           `json:"available"`       // 可用
  AvailableStream []*IntegralItem `json:"availableStream"` // 可用流水
  Total           int64           `json:"total"`           // 總領取
}
IntegralItem struct {
  StreamId  uint   `json:"streamId"`  // 流水Id
  TaskId    string `json:"taskId"`    // 任務Id
  Available int64  `json:"available"` // 可用
  OutTime   int64  `json:"outTime"`   // 過期時間
}

領取功能

需求

  1. 任務完成領取積分;
  2. 關聯(lián)用戶任務狀態(tài);
  3. 添加用戶積分及同步流水;
  4. 記錄用戶總領取數(shù);

流程圖

image.png

消耗功能

需求

  1. 允許多端多點同時進行積分使用;
  2. 實時進行抵扣, 不允許后置;
  3. 刪除redis中無效的可用流水;
  4. 不影響當前的性能;

流程圖

image.png

回收功能

需求

  1. 定時回收過期積分;
  2. 如果一筆領取的積分部分被消耗, 則回收剩余積分;
  3. 在回收前使用的不用回收;

流程圖

image.png

結語

積分功能應該是很多APP都會做的一個功能了, 領取消耗很簡單, 但是再加上回收的話就比較復雜了, 何況在不能后置使用的情況下還要保證性能, 這個就值得我們思考如何更有效的實現(xiàn)功能, 那么, 如果在此基礎上再加上凍結, 解凍及消耗呢?文章來源地址http://www.zghlxwxcb.cn/news/detail-481098.html

到了這里,關于手摸手教你寫任務中心-積分領取&消耗&回收的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 手摸手帶你 在Windows系統(tǒng)中安裝Istio

    手摸手帶你 在Windows系統(tǒng)中安裝Istio

    通過負載均衡、服務間的身份驗證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個已經(jīng)部署了服務的網(wǎng)絡,而服務的代碼只需很少更改甚至無需更改。 通過在整個環(huán)境中部署一個特殊的 sidecar 代理為服務添加 Istio 的支持,而代理會攔截微服務之間的所有網(wǎng)絡通信,然后使用其控制

    2024年02月06日
    瀏覽(22)
  • 不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

    不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

    首先來一波感謝: 感謝laf提供贊助,目前可以免費使用Midjourney進行開發(fā)和測試。 感謝白夜、米開朗基楊@sealos.io的耐心解答,讓我對laf有了更多的使用與了解。 什么是laf?來了解下。 文末有【示例】 廢話不多說,進入正題。 laf在做一個活動,可以使用快速上手Midjourney《人

    2024年02月05日
    瀏覽(19)
  • 手摸手2-springboot編寫基礎的增刪改查

    手摸手2-springboot編寫基礎的增刪改查

    創(chuàng)建controller層 實現(xiàn) test 表中的添加、修改、刪除及列表查詢接口(未分頁) 添加service層接口 service層實現(xiàn) 添加mapper層 mapper層對應的sql 添加掃描注解,對應sql文件的目錄

    2024年02月10日
    瀏覽(14)
  • 手摸手接入Github實現(xiàn)Oauth2第三方登錄

    手摸手接入Github實現(xiàn)Oauth2第三方登錄

    最近在學習oauth2授權登錄流程,oauth2簡單來說就是接入第三方應用(qq、微信、github、gitee等),不用在本站登錄,而是去請求第三方應用的用戶信息完成登錄。 下面就一起來看一下如何接入github實現(xiàn)第三方登錄 首先,我們需要在github中添加OAuth App,登錄你的github(如果還有

    2024年02月04日
    瀏覽(26)
  • 泰褲辣?。?!手摸手教學,如何訓練一個你的專屬AI歌姬~

    泰褲辣?。?!手摸手教學,如何訓練一個你的專屬AI歌姬~

    最近在做AIGC的項目,不過是與圖片相關的,現(xiàn)在的模型效果可比前幾年圖片替換效果好多了。之前嘗試過用 faceswap 工具來進行人臉替換的,具體可以參看下我之前的這篇文章:https://blog.csdn.net/sinat_26918145/article/details/79591717 ? 現(xiàn)代的模型對于圖生圖的支持效果已經(jīng)非常好了,

    2024年02月06日
    瀏覽(23)
  • 使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學

    使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學

    一個學習的過程 增加自己網(wǎng)絡安全知識 切勿用于違法用途 設置密碼盡量使用6位以上并規(guī)避簡單數(shù)字組合、加強對同一ip的頻繁訪問次數(shù)限制、設置人機驗證減小撞庫攻擊的危害 本地環(huán)境 kali 2022 Burp Suite FireFox 靶機環(huán)境 一臺服務器 CentOS 7 寶塔面板 一個域名(你不會沒有吧)

    2024年02月09日
    瀏覽(50)
  • 【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    除了借助ChatGPT通過問答的方式生成代碼,也可以通過IDEA插件在寫代碼是直接幫助我們生成代碼。 目前,IDEA插件有CodeGeeX、CodeWhisperer、Copilot。其中,CodeGeeX和CodeWhisperer是完全免費的,Copilot是收費的,每月10美元。 下面我們來了解CodeWhisperer的安裝和使用,如果你還想了解其他

    2024年02月11日
    瀏覽(16)
  • CTFshow wbe41 教你寫腳本

    CTFshow wbe41 教你寫腳本

    這道題確實難,查了很多個大佬的題解,發(fā)現(xiàn)這道題考察的是或運算生成字符,但是過了n篇文章發(fā)現(xiàn)全是直接用羽師傅的腳本,沒有人說這個腳本是怎么運行的,莫名其妙就出結果,腦瓜嗡嗡,可能大佬們默認這腳本大家一看就會用吧,小白只能自己研究了,于是我研究了羽

    2023年04月17日
    瀏覽(92)
  • 手把手教你寫go單元測試

    ? 在 Go 語言中,單元測試是一種測試方法,用于驗證代碼的某個獨立單元是否按預期功能,它的目的是確保代碼的每個組成部分都在獨立測試的情況下運行正常。 ? 在我們對項目新增一個新功能時,最好就要養(yǎng)成寫單元測試的好習慣,這樣可以有助于提高我們代碼的質(zhì)量、

    2024年04月14日
    瀏覽(22)
  • 零基礎手把手教你寫NFT搶購軟

    零基礎手把手教你寫NFT搶購軟

    由于之前寫過幾篇文章,但是個人不是很滿意,所以這次我打算把所有的知識匯總成一篇文章??赡軙泻芏嗟胤綄懙牟皇呛芎?,歡迎大家評論指出,我后續(xù)修正。 個人vx:http://wc.ljlju.cn/4ZGETK 我們在點擊搶購按鈕的時候,會向平臺的服務器發(fā)送HTTP請求,這條HTTP請求會攜帶你

    2024年02月06日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包