From 1f07fb1b22ca2a25dea79ccb459308c4bb02ec75 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E14R8L5\\David" Date: Wed, 24 Apr 2024 17:19:11 +0800 Subject: [PATCH] dashboard service and controller for test --- .../modules/data/service/DashboardService.kt | 53 +++++++++++++++++++ .../modules/data/web/DashboardController.kt | 52 ++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt create mode 100644 src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt diff --git a/src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt b/src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt new file mode 100644 index 0000000..e10b29c --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt @@ -0,0 +1,53 @@ +package com.ffii.tsms.modules.data.service + +import com.ffii.core.support.AbstractBaseEntityService +import com.ffii.core.support.JdbcDao +import com.ffii.tsms.modules.data.entity.Customer +import com.ffii.tsms.modules.data.entity.CustomerType +import com.ffii.tsms.modules.data.entity.CustomerRepository +import com.ffii.tsms.modules.data.entity.CustomerTypeRepository +import com.ffii.tsms.modules.data.web.models.SaveCustomerResponse +import com.ffii.tsms.modules.project.web.models.SaveCustomerRequest +import org.springframework.beans.BeanUtils +import org.springframework.stereotype.Service +import java.util.Optional + +@Service +open class DashboardService( + private val customerRepository: CustomerRepository, + private val customerTypeRepository: CustomerTypeRepository, + private val customerSubsidiaryService: CustomerSubsidiaryService, + private val customerContactService: CustomerContactService, + private val jdbcDao: JdbcDao +) { + + fun CustomerSubsidiary(args: Map): List> { + val sql = StringBuilder("select" + + " c.id as customerId," + + " c.name as customerName," + + " c.code as customerCode," + + " c.address as customerAddress," + + " c.district as cutomerDistrict," + + " c.brNo as customerBrNo," + + " c.typeId as customerTypeId," + + " s.id as subsidiaryId," + + " s.name as subsidiaryName," + + " s.code as subsidiaryCode," + + " s.address as subsidiaryAddress," + + " s.district as subsidiaryDistrict," + + " s.brNo as subsidiaryBrNo," + + " s.typeId as subsidiaryTypeId" + + " from customer c" + + " left join customer_subsidiary cs on c.id = cs.customerId" + + " left join subsidiary s on cs.subsidiaryId = s.id" + + " where c.deleted = 0" + ) + if (args != null) { + if (args.containsKey("customerName")) + sql.append(" AND c.name = :customerName"); + if (args.containsKey("customerCode")) + sql.append(" AND c.code = :customerCode"); + } + return jdbcDao.queryForList(sql.toString(), args) + } +} diff --git a/src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt b/src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt new file mode 100644 index 0000000..20c59e1 --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt @@ -0,0 +1,52 @@ +package com.ffii.tsms.modules.data.web + +import com.ffii.tsms.modules.data.entity.Customer +import com.ffii.tsms.modules.data.entity.CustomerType +import com.ffii.tsms.modules.data.service.CustomerContactService +import com.ffii.tsms.modules.data.service.CustomerService +import com.ffii.tsms.modules.data.service.CustomerSubsidiaryService +import com.ffii.tsms.modules.data.service.DashboardService +import com.ffii.tsms.modules.data.web.models.CustomerResponse +import com.ffii.tsms.modules.data.web.models.SaveCustomerResponse +import com.ffii.tsms.modules.project.web.models.SaveCustomerRequest +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.PathVariable +import jakarta.validation.Valid +import org.springframework.http.HttpStatus +import jakarta.servlet.http.HttpServletRequest +import org.springframework.web.bind.annotation.DeleteMapping +import org.springframework.web.bind.annotation.ResponseStatus +import com.ffii.core.response.RecordsRes +import com.ffii.core.utils.CriteriaArgsBuilder + +@RestController +@RequestMapping("/dashboard") +class DashboardController( + private val customerService: CustomerService, + private val customerSubsidiaryService: CustomerSubsidiaryService, + private val customerContactService: CustomerContactService, + private val dashboardService: DashboardService +) { + @GetMapping("/searchCustomerSubsidiary") + fun searchCustomerSubsidiary(request: HttpServletRequest?): List> { + val customerName = request?.getParameter("customerName") + val customerCode = request?.getParameter("customerCode") + val args = mutableMapOf() + if (customerName != null) { + args["customerName"] = customerName + } + if (customerCode != null) { + args["customerCode"] = customerCode + } + + return dashboardService.CustomerSubsidiary(args) +// return dashboardService.CustomerSubsidiary( +// CriteriaArgsBuilder.withRequest(request) +// .build() +// ) + } +} \ No newline at end of file