Skip to content

BusinessRule (Team)

JERI edited this page May 23, 2023 · 14 revisions

๊ฐœ์š”

ํ˜ธ์ŠคํŠธ์™€ ๋™ํ–‰์˜ ์ฐจ์ด

  • ํ•˜๋‚˜์˜ ์ผ์ •์—๋Š” ๋ฐ˜๋“œ์‹œ ํ•œ๋ช…์˜ ํ˜ธ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ํ•ด๋‹น ์ผ์ •์˜ ํ˜ธ์ŠคํŠธ๋Š” ๋™ํ–‰์œผ๋กœ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ฆ‰, ํ•œ๋ฒˆ ํ˜ธ์ŠคํŠธ๋Š” ํ•ด๋‹น ์ผ์ •์—์„œ ์˜์›ํžˆ ํ˜ธ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.
  • ํ˜ธ์ŠคํŠธ๋Š” ํ•ด๋‹น ์ผ์ •์— ๋Œ€ํ•œ ๋™ํ–‰์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋™ํ–‰์€ ๋ณ€๊ฒฝ์˜ ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ์ผ์ •์— ๋Œ€ํ•œ ๊ถŒํ•œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ์ผ์ •์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ
    • ์ผ์ •์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๊ถŒํ•œ
    • ์ผ์ •์—์„œ ์‚ญ์ œ ์ฒ˜๋ฆฌ(๋™ํ–‰ ์ œ๊ฑฐ)
  • ๋™ํ–‰์€ ๋ถ€์—ฌ๋ฐ›์€ ๊ถŒํ•œ์— ๋Œ€ํ•œ ํ–‰๋™๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋™ํ–‰์ด ํ˜ธ์ŠคํŠธ๊ฐ€ ๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ์ผ์ •์— ์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ์€ ์ „์†ก๋œ ๋ฉ”์ผ์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋™ํ–‰์œผ๋กœ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋™ํ–‰์œผ๋กœ ์ถ”๊ฐ€๋  ์‹œ DB์˜ ๋ณ€ํ™”

  • a์˜ ํšŒ์›์ด 100๋ฒˆ์˜ ์Šค์ผ€์ค„์˜ ํ˜ธ์ŠคํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด ์ €์žฅ๋˜์–ด ์žˆ๋Š” DB ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • SCHEDULE ํ…Œ์ด๋ธ”
      • SC_NO : 100
    • TEAM ํ…Œ์ด๋ธ”
      • TEAM_NO : 1, TEAM_MID : a(ํ˜ธ์ŠคํŠธ์•„์ด๋””), TEAM_SNO : 100(์Šค์ผ€์ค„๋ฒˆํ˜ธ), TEAM_LEVEL : 9(ํ˜ธ์ŠคํŠธ), TEAM_BOOKMARK : 0
  • ์ด๋•Œ ๋™ํ–‰์œผ๋กœ b์˜ ํšŒ์›์„ ์ดˆ๋Œ€ํ•˜์˜€๊ณ  ์ด๋ฅผ ์ˆ˜๋ฝํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋˜๋Š” DB ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • TEAM ํ…Œ์ด๋ธ”
      • TEAM_NO : 2, TEAM_MID : b(๋™ํ–‰์•„์ด๋””), TEAM_SNO : 100(์Šค์ผ€์ค„๋ฒˆํ˜ธ), TEAM_LEVEL : 0(์ฝ๊ธฐ๊ถŒํ•œ), TEAM_BOOKMARK : 0
    • ALARM ํ…Œ์ด๋ธ”
      • AL_NO : 1, AL_SCNO : 100(์Šค์ผ€์ค„๋ฒˆํ˜ธ), AL_MID : b(์•Œ๋žŒ ์šธ๋ฆด ์•„์ด๋””), AL_STATUS : 1, AL_TIME : 23-05-23, AL_CATE : 2(์•Œ๋žŒ ์šธ๋ฆด ์นดํ…Œ๊ณ ๋ฆฌ)
  • ์œ„์˜ ํ…Œ์ด๋ธ”์—์„œ์ฒ˜๋Ÿผ ๋™ํ–‰์— ์ถ”๊ฐ€๋˜๋ฉด ํ•ด๋‹นํ•˜๋Š” TEAM๊ณผ ALARM DB๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API

[GET] ํšŒ์› ๊ฒ€์ƒ‰(teams/share/members)

  • ํšŒ์› ๊ฒ€์ƒ‰์€ ๋™ํ–‰ ์ถ”๊ฐ€ ์‹œ์— ํ•„์š”ํ•˜๋ฏ€๋กœ TEAM BusinessRule์— ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ๊ฐ’
    • ํšŒ์› ์•„์ด๋””(memId)

[GET] ๋™ํ–‰ ์กฐํšŒ(teams/share/{scNo})

  • ์ž…๋ ฅ๊ฐ’
    • ์Šค์ผ€์ค„๋ฒˆํ˜ธ(scNo)

[POST] ๋™ํ–‰ ์ถ”๊ฐ€(teams/share/{scNo})

  • API ์‹คํ–‰ ์ˆœ์„œ
    • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ
      • ๋™ํ–‰์ด MEMBER DB์— ์กด์žฌํ•˜๋Š” ๋™ํ–‰์ธ์ง€ ๊ฒ€์‚ฌ
      • ๋™ํ–‰์ด ํ˜ธ์ŠคํŠธ์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌ
      • ์Šค์ผ€์ค„ ๋ฒˆํ˜ธ๊ฐ€ ์กด์žฌํ•˜๋Š” ์Šค์ผ€์ค„์ธ์ง€ ๊ฒ€์‚ฌ
    • ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์— ๋Œ€ํ•ด TEAM ํ…Œ์ด๋ธ”์— insert ์ฒ˜๋ฆฌ ๋œ๋‹ค.
    • ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์— ๋Œ€ํ•ด ALARM ํ…Œ์ด๋ธ”์— insert ์ฒ˜๋ฆฌ ๋œ๋‹ค.
  • ์ž…๋ ฅ๊ฐ’
    • ์Šค์ผ€์ค„๋ฒˆํ˜ธ(scNo)
    • ํšŒ์› ์•„์ด๋””(memId)
  • ์‚ฝ์ž… ํ…Œ์ด๋ธ”
    • (์‚ฝ์ž…)TEAM
      • ๋™ํ–‰ ๋ฒˆํ˜ธ(teamNo) : ์ž๋™์ฆ๊ฐ€๊ฐ’(AUTO_INCREMENT)
      • ๋™ํ–‰์˜ ์•„์ด๋””(teamMid) : ์ž…๋ ฅ๊ฐ’(memId)
      • ์Šค์ผ€์ค„ ๋ฒˆํ˜ธ(teamSno) : ์ž…๋ ฅ๊ฐ’(scNo)
      • ๋™ํ–‰์˜ ๊ถŒํ•œ๋ ˆ๋ฒจ(teamLevel) : ์ฒ˜์Œ insert ์‹œ๋Š” ๊ถŒํ•œ๋ ˆ๋ฒจ์„ ์ฝ๊ธฐ๋กœ ์ค๋‹ˆ๋‹ค. (ํ›„์— ํ˜ธ์ŠคํŠธ๊ฐ€ ์ˆ˜์ • ๊ฐ€๋Šฅ) - ์ฝ๊ธฐ๊ถŒํ•œ:0, ์ˆ˜์ •๊ถŒํ•œ:1
      • ๋™ํ–‰์˜ ์Šค์ผ€์ค„์— ๋Œ€ํ•œ ๋ถ๋งˆํฌ์—ฌ๋ถ€(teamBookmark) : ์ฒ˜์Œ insert ์‹œ๋Š” ๋ถ๋งˆํฌ์—ฌ๋ถ€๋Š” 0 ์ž…๋‹ˆ๋‹ค.(0 = ๋ถ๋งˆํฌํ•˜์ง€ ์•Š์Œ)
    • (์‚ฝ์ž…)ALARM
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alNo) : ์ž๋™์ฆ๊ฐ€๊ฐ’(AUTO_INCREMENT)
      • ์Šค์ผ€์ค„ ๋ฒˆํ˜ธ(alScno) : ์ž…๋ ฅ๊ฐ’(scNo)
      • ์•Œ๋žŒ๋ฐ›์„ ์•„์ด๋””(alMid) : ์ž…๋ ฅ๊ฐ’(memId)
      • ์•Œ๋žŒ์˜ ์ถœ๋ ฅ์ƒํƒœ(alStatus) : ์ฒ˜์Œ insert ์‹œ๋Š” ์ถœ๋ ฅ์ƒํƒœ๋ฅผ 1๋กœ ์ค๋‹ˆ๋‹ค. (ํ›„์— ์Šค์ผ€์ค„์ด ์‚ญ์ œ๋˜๋ฉด ์ƒํƒœ๊ฐ€ 0์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์•Œ๋žŒ์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž„)
      • ์•Œ๋žŒ ์นดํ…Œ๊ณ ๋ฆฌ(alTime) :ํ˜„์žฌ์‹œ๊ฐ(NOW())
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alCate) : AlarmCate.SAVE_TEAM.ordinal() - ENUM์„ ์ด์šฉํ–ˆ์œผ๋ฉฐ DB์—๋Š” 2๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

[PATCH] ๋™ํ–‰์˜ ๊ถŒํ•œ ์ƒํƒœ ๋ณ€๊ฒฝ(teams/share/{scNo})

  • ์ž…๋ ฅ๊ฐ’
    • ์Šค์ผ€์ค„๋ฒˆํ˜ธ(scNo)
    • ๋ณ€๊ฒฝํ•  ๋™ํ–‰ ์•„์ด๋””(teamMid)
    • ๋ณ€๊ฒฝํ•  ๋™ํ–‰์˜ ๊ถŒํ•œ๋ ˆ๋ฒจ(teamLevel)
  • ๋ณ€๊ฒฝ ๋ฐ ์‚ฝ์ž… ํ…Œ์ด๋ธ”
    • (๋ณ€๊ฒฝ)TEAM
      • ๋™ํ–‰์˜ ๊ถŒํ•œ๋ ˆ๋ฒจ(teamLevel) : ์ฝ๊ธฐ๊ถŒํ•œ:0 ํ˜น์€ ์ˆ˜์ •๊ถŒํ•œ:1
    • (์‚ฝ์ž…)ALARM
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alNo) : ์ž๋™์ฆ๊ฐ€๊ฐ’(AUTO_INCREMENT)
      • ์Šค์ผ€์ค„ ๋ฒˆํ˜ธ(alScno) : ์ž…๋ ฅ๊ฐ’(scNo)
      • ์•Œ๋žŒ๋ฐ›์„ ์•„์ด๋””(alMid) : ์ž…๋ ฅ๊ฐ’(teamMid)
      • ์•Œ๋žŒ์˜ ์ถœ๋ ฅ์ƒํƒœ(alStatus) : ์ฒ˜์Œ insert ์‹œ๋Š” ์ถœ๋ ฅ์ƒํƒœ๋ฅผ 1๋กœ ์ค๋‹ˆ๋‹ค. (ํ›„์— ํ•ด๋‹น ์Šค์ผ€์ค„์ด ์‚ญ์ œ๋˜๋ฉด ์•Œ๋žŒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฏ€๋กœ ์ƒํƒœ๊ฐ€ 0์œผ๋กœ ๋ณ€๊ฒฝ๋จ)
      • ์•Œ๋žŒ ์นดํ…Œ๊ณ ๋ฆฌ(alTime) : ์ž๋™์ฆ๊ฐ€๊ฐ’(NOW())
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alCate) : AlarmCate.UPDATE_TEAMLEVEL_WRITE.ordinal() or AlarmCate.UPDATE_TEAMLEVEL_READ.ordinal() - ENUM์„ ์ด์šฉํ–ˆ์œผ๋ฉฐ DB์—๋Š” 4 ๋˜๋Š” 5๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

[DELETE] ๋™ํ–‰ ์‚ญ์ œ(teams/share/{scNo})

  • ์ž…๋ ฅ๊ฐ’
    • ์Šค์ผ€์ค„๋ฒˆํ˜ธ(scNo)
    • ์‚ญ์ œํ•  ๋™ํ–‰ ์•„์ด๋””(teamMid)
  • ์‚ญ์ œ ๋ฐ ์‚ฝ์ž… ํ…Œ์ด๋ธ”
    • (์‚ญ์ œ)์Šค์ผ€์ค„(scNo)๊ณผ ์•„์ด๋””(teamMid)์— ํ•ด๋‹นํ•˜๋Š” TEAM ํ…Œ์ด๋ธ” ์‚ญ์ œ
    • (์‚ญ์ œ)์Šค์ผ€์ค„(scNo)์— ์•„์ด๋””(teamMid)์— ํ•ด๋‹นํ•˜๋Š” ALARM ํ…Œ์ด๋ธ” ์ผ๊ด„ ์‚ญ์ œ
    • (์‚ฝ์ž…)ALARM
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alNo) : ์ž๋™์ฆ๊ฐ€๊ฐ’(AUTO_INCREMENT)
      • ์Šค์ผ€์ค„ ๋ฒˆํ˜ธ(alScno) : ์ž…๋ ฅ๊ฐ’(scNo)
      • ์•Œ๋žŒ๋ฐ›์„ ์•„์ด๋””(alMid) : ์ž…๋ ฅ๊ฐ’(teamMid)
      • ์•Œ๋žŒ์˜ ์ถœ๋ ฅ์ƒํƒœ(alStatus) : ์ฒ˜์Œ insert ์‹œ๋Š” ์ถœ๋ ฅ์ƒํƒœ๋ฅผ 1๋กœ ์ค๋‹ˆ๋‹ค.
      • ์•Œ๋žŒ ์นดํ…Œ๊ณ ๋ฆฌ(alTime) : ํ˜„์žฌ์‹œ๊ฐ(NOW())
      • ์•Œ๋žŒ ๋ฒˆํ˜ธ(alCate) : AlarmCate.REMOVE_TEAM.ordinal() - ENUM์„ ์ด์šฉํ–ˆ์œผ๋ฉฐ DB์—๋Š” 3์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.