|
@@ -1,8 +1,10 @@
|
|
|
package cn.tonyandmoney.tuon.qywx.service.impl
|
|
|
|
|
|
+import cn.tonyandmoney.tuon.core.error.BaseResp
|
|
|
import cn.tonyandmoney.tuon.core.utils.DateUtils
|
|
|
import cn.tonyandmoney.tuon.qywx.dao.IDutyDao
|
|
|
import cn.tonyandmoney.tuon.qywx.entity.TDuty
|
|
|
+import cn.tonyandmoney.tuon.qywx.search.SearchResult
|
|
|
import cn.tonyandmoney.tuon.qywx.service.IDutyService
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
|
|
|
import org.springframework.beans.factory.annotation.Autowired
|
|
@@ -16,9 +18,38 @@ import java.util.*
|
|
|
@Service
|
|
|
class DutyServiceImpl : IDutyService {
|
|
|
|
|
|
+ companion object {
|
|
|
+ val KEYWORDS = setOf("值班", "今日值班")
|
|
|
+ const val DESC = "今日值班信息"
|
|
|
+ }
|
|
|
+
|
|
|
@Autowired
|
|
|
private lateinit var dutyDao: IDutyDao
|
|
|
|
|
|
+
|
|
|
+ override fun apply(keywords: String): Boolean {
|
|
|
+ return KEYWORDS.contains(keywords)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 符合关键词,返回响应的信息
|
|
|
+ * 比如关键词为:值班,则返回今日的值班信息,
|
|
|
+ * 暂时只实现这两个关键词
|
|
|
+ */
|
|
|
+ override fun search(keywords: String): Mono<BaseResp<List<SearchResult>>> {
|
|
|
+ return if (keywords.contains(keywords)) {
|
|
|
+ queryByDate(DateUtils.today())
|
|
|
+ .map {
|
|
|
+ BaseResp.ok(it.map { duty -> SearchResult(duty.userName).setMeta(duty) })
|
|
|
+ .setMessage(DESC)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Mono.just(BaseResp<List<SearchResult>>()
|
|
|
+ .setMessage(DESC))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
override fun addDuty(duty: TDuty): Mono<Void> {
|
|
|
return Mono.create {
|
|
|
duty.createTime = DateUtils.today()
|