package com.ydtech.modules.order.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.esm.model.vo.res.EsmInsCompanyResVo; import com.ydtech.modules.esm.service.EsmInsCompanyService; import com.ydtech.modules.order.constants.QuoteNumberConstant; import com.ydtech.modules.order.entity.po.SysQuoteConfig; import com.ydtech.modules.order.entity.po.SysQuoteRecord; import com.ydtech.modules.order.entity.po.SysQuoteUserConfigAppend; import com.ydtech.modules.order.entity.vo.QuoteDetailsQueryVo; import com.ydtech.modules.order.entity.vo.QuoteDetailsVo; import com.ydtech.modules.order.entity.vo.QuoteNumRedisVo; import com.ydtech.modules.order.service.SysQuoteConfigService; import com.ydtech.modules.order.service.SysQuoteRedisService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; @Api(tags = "报价次数配置") @RestController @RequestMapping(value = "/quoteConfig") public class QuoteConfigController extends BaseController { @Autowired SysQuoteConfigService sysQuoteConfigService; @Autowired SysQuoteRedisService sysQuoteRedisService; @Autowired EsmInsCompanyService esmInsCompanyService; @GetMapping(value = "/getQuoteConfigInfo") @ApiOperation(value = "获取报价配置信息") public HttpResult getQuoteConfigInfo(String companyId){ SysQuoteConfig quoteConfigInfo = sysQuoteConfigService.getQuoteConfigInfo(companyId); return HttpResult.ok(quoteConfigInfo); } @PostMapping(value = "setQuoteInfo") @ApiOperation(value = "设置报价配置信息") public HttpResult setQuoteInfo(@RequestBody SysQuoteConfig sysQuoteConfig){ return sysQuoteConfigService.setQuoteInfo(sysQuoteConfig) ? HttpResult.ok("设置报价配置成功") : HttpResult.error("设置报价配置失败"); } @PostMapping(value = "syncQuoteInfo") @ApiOperation(value = "同步报价配置信息") public HttpResult syncQuoteInfo(@RequestBody SysQuoteConfig sysQuoteConfig){ List esmInsCompanyResVos = esmInsCompanyService.liveCompanyList(); esmInsCompanyResVos.forEach(item->{ sysQuoteConfig.setCompanyId(item.getId()); sysQuoteConfigService.setQuoteInfo(sysQuoteConfig); }); return HttpResult.ok("同步配置成功"); } @PostMapping(value = "appendUserConfig") @ApiOperation(value = "用户配置追加配置信息") public HttpResult appendUserCOnfig(@RequestBody SysQuoteUserConfigAppend sysQuoteUserConfigAppend){ return sysQuoteConfigService.quoteConfigAppend(sysQuoteUserConfigAppend)? HttpResult.ok("设置用户配置成功") : HttpResult.error("设置用户配置失败"); } @PostMapping(value = "quoteDetails") @ApiOperation(value = "报价明细") public HttpResult quoteDetails(@RequestBody QuoteDetailsQueryVo quoteDetailsQueryVo){ Page page = buildPageRequest(quoteDetailsQueryVo.getPageDto()); Page quoteRecordPage = sysQuoteConfigService.getQuoteRecordPage(page, quoteDetailsQueryVo); return HttpResult.ok(quoteRecordPage); } @PostMapping(value = "quoteUserDetails") @ApiOperation(value = "报价信息") public HttpResult quoteUserDetails(@RequestBody QuoteDetailsQueryVo quoteDetailsQueryVo){ Page page = buildPageRequest(quoteDetailsQueryVo.getPageDto()); Page quoteDetails = sysQuoteConfigService.getQuoteDetails(page, quoteDetailsQueryVo); return HttpResult.ok(quoteDetails); } @PostMapping(value = "quoteRequestDetail") @ApiOperation(value = "报价请求明细") public HttpResult quoteRequestDetail(@RequestBody QuoteDetailsQueryVo quoteDetailsQueryVo){ Page page = buildPageRequest(quoteDetailsQueryVo.getPageDto()); Page quoteRecordPage = sysQuoteConfigService.getQuoteRecordPage(page, quoteDetailsQueryVo); return HttpResult.ok(quoteRecordPage); } @PostMapping(value = "getAppendUserQuotePage") @ApiOperation(value = "用户追加报价次数信息") public HttpResult getAppendUserQuotePage(@RequestBody QuoteDetailsQueryVo quoteDetailsQueryVo){ Page page = buildPageRequest(quoteDetailsQueryVo.getPageDto()); Page quoteDetails = sysQuoteConfigService.getAppendUserQuote(page, quoteDetailsQueryVo); return HttpResult.ok(quoteDetails); } @PostMapping(value = "getAppendUserQuoteInfo") @ApiOperation(value = "增次详情") public HttpResult getAppendUserQuoteInfo(@RequestBody QuoteDetailsQueryVo quoteDetailsQueryVo){ QuoteDetailsVo quoteDetailsVo = sysQuoteConfigService.getAppendUserQuoteInfo(quoteDetailsQueryVo.getCompanyId(),quoteDetailsQueryVo.getAgentId(),quoteDetailsQueryVo.getId()); return HttpResult.ok(quoteDetailsVo); } @GetMapping(value = "getQuoteAction") @ApiModelProperty(value = "获取报价动作字典") public HttpResult getQuoteAction(){ JSONArray resultArray = new JSONArray(); for (QuoteNumberConstant.QuoteAction value : QuoteNumberConstant.QuoteAction.values()) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code",value.getCode()); jsonObject.put("desc",value.getDesc()); resultArray.add(jsonObject); } return HttpResult.ok(resultArray); } @GetMapping(value = "getQuoteResult") @ApiModelProperty(value = "获取报价结果字典") public HttpResult getQuoteResult(){ JSONArray resultArray = new JSONArray(); for (QuoteNumberConstant.QuoteResult value : QuoteNumberConstant.QuoteResult.values()) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code",value.getCode()); jsonObject.put("desc",value.getDesc()); resultArray.add(jsonObject); } return HttpResult.ok(resultArray); } @GetMapping(value = "getRedisData") public HttpResult getRedisData(String userId) { QuoteNumRedisVo quoteNumberRedisData = sysQuoteRedisService.getQuoteNumberRedisData(userId); return HttpResult.ok(JSONObject.toJSON(quoteNumberRedisData)); } @PostMapping(value = "setRedisData") public HttpResult setRedisData(@RequestBody JSONObject jsonObject) { String userId = jsonObject.getString("userId"); QuoteNumRedisVo data = jsonObject.getJSONObject("data").toJavaObject(QuoteNumRedisVo.class); sysQuoteRedisService.setQuoteRecordRedis(userId,data); return HttpResult.ok("设置成功"); } @GetMapping(value = "delRedisData") public HttpResult delRedisData(String userId){ sysQuoteRedisService.delQuoteRedis(userId); return HttpResult.ok(""); } }