Browse Source

二次销售竞价

master
dimengzhe 1 year ago
parent
commit
7d7dae329c
  1. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java
  2. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java
  3. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java
  4. 36
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java
  5. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java
  6. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java
  7. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java
  8. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml
  9. 41
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java
  10. 84
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java
  11. 27
      doc/databases/risk_center.sql

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Data
public class BiddingVo {
@ApiModelProperty("时间")
private String createTime;
@ApiModelProperty("报价")
private String price;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("报价人")
private String createByName;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Data
public class LoanSecondarySalesBidding extends BaseEntity {
private static final long serialVersionUID = 5823145478364799224L;
@ApiModelProperty("报价人")
private String createByName;
private String mainSid;
@ApiModelProperty("报价")
private BigDecimal price;
@ApiModelProperty("分公司")
private String useOrgName;
private String useOrgSid;
private String orgSidPath;
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Data
public class LoanSecondarySalesBiddingDto {
private String mainSid;
@ApiModelProperty("报价")
private String price;
@ApiModelProperty("机构全路径")
private String orgPath;
private String userSid;
}

36
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java

@ -0,0 +1,36 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@FeignClient(
contextId = "anrui-riskcenter-LoanSecondarySalesBidding",
name = "anrui-riskcenter",
path = "v1/LoanSecondarySalesBidding",
fallback = LoanSecondarySalesBiddingFeignFallback.class)
public interface LoanSecondarySalesBiddingFeign {
@ApiOperation("保存")
@PostMapping("/save")
ResultBean save(@RequestBody LoanSecondarySalesBiddingDto dto);
@ApiOperation("竞价列表")
@GetMapping("/getList")
ResultBean<List<BiddingVo>> getList(@RequestParam("sid") String sid);
@ApiOperation("当前竞价最高")
@GetMapping("/getPrice")
ResultBean<String> getPrice(@RequestParam("sid") String sid);
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Component
public class LoanSecondarySalesBiddingFeignFallback {
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java

@ -38,6 +38,7 @@ import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTr
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
@ -47,6 +48,7 @@ import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding.LoanSecondarySalesBiddingService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService;
@ -117,6 +119,8 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper;
@Autowired
private SysNoticeFeign sysNoticeFeign;
@Autowired
private LoanSecondarySalesBiddingService loanSecondarySalesBiddingService;
public PagerVo<LoanSecondarySalesApplyVo> listPageVo(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
LoanSecondarySalesApplyQuery query = pq.getParams();
@ -504,6 +508,17 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecon
maps.put("sid", businessSid);
pushNoticeQuery.setArgs_json(JSONObject.toJSONString(maps));
ResultBean resultBeans = sysNoticeFeign.savePushNotice(pushNoticeQuery);
LoanSecondarySalesBiddingDto loanSecondarySalesBiddingDto = new LoanSecondarySalesBiddingDto();
loanSecondarySalesBiddingDto.setMainSid(businessSid);
LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(businessSid);
BigDecimal prices = BigDecimal.ZERO;
if (loanSecondarySalesCost.getVehPrice().compareTo(loanSecondarySalesCost.getVehicleEvaluation()) > 0) {
prices = loanSecondarySalesCost.getVehPrice();
}
loanSecondarySalesBiddingDto.setPrice(prices.toString());
loanSecondarySalesBiddingDto.setUserSid(loanSecondarySalesApply.getCreateBySid());
loanSecondarySalesBiddingDto.setOrgPath(loanSecondarySalesApply.getOrgSidPath());
ResultBean resultBean1 = loanSecondarySalesBiddingService.saveBidding(loanSecondarySalesBiddingDto);
} else {
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);

24
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Mapper
public interface LoanSecondarySalesBiddingMapper extends BaseMapper<LoanSecondarySalesBidding> {
LoanSecondarySalesBidding selectByMainSid(String mainSid);
List<BiddingVo> getList(String sid);
String getPrice(String sid);
}

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding.LoanSecondarySalesBiddingMapper">
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding">
select *
from loan_secondary_sales_bidding
where mainSid = #{mainSid}
order by price desc
limit 1
</select>
<select id="getList" resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo">
select DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, createByName, price, useOrgName
from loan_secondary_sales_bidding
where mainSid = #{sid}
order by price desc
</select>
<select id="getPrice" resultType="java.lang.String">
select price
from loan_secondary_sales_bidding
where mainSid = #{sid}
order by price desc
limit 1
</select>
</mapper>

41
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java

@ -0,0 +1,41 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingFeign;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@RestController
@RequestMapping("v1/LoanSecondarySalesBidding")
@Api(tags = "二次销售公示竞价")
public class LoanSecondarySalesBiddingRest implements LoanSecondarySalesBiddingFeign {
@Autowired
private LoanSecondarySalesBiddingService loanSecondarySalesBiddingService;
@Override
public ResultBean save(LoanSecondarySalesBiddingDto dto) {
return loanSecondarySalesBiddingService.saveBidding(dto);
}
@Override
public ResultBean<List<BiddingVo>> getList(String sid) {
return loanSecondarySalesBiddingService.getList(sid);
}
@Override
public ResultBean<String> getPrice(String sid) {
return loanSecondarySalesBiddingService.getPrice(sid);
}
}

84
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java

@ -0,0 +1,84 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding;
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/2/2
**/
@Service
public class LoanSecondarySalesBiddingService extends MybatisBaseService<LoanSecondarySalesBiddingMapper, LoanSecondarySalesBidding> {
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
public ResultBean saveBidding(LoanSecondarySalesBiddingDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesBidding loanSecondarySalesBidding = new LoanSecondarySalesBidding();
loanSecondarySalesBidding.setCreateBySid(dto.getMainSid());
loanSecondarySalesBidding.setMainSid(dto.getMainSid());
loanSecondarySalesBidding.setOrgSidPath(dto.getOrgPath());
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
if ("0".equals(useOrgSid)) {
return rb.setMsg("您所在机构没有分公司,不允许竞价");
}
loanSecondarySalesBidding.setUseOrgSid(useOrgSid);
//创建组织使用组织
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
loanSecondarySalesBidding.setUseOrgName(organizationResultBean.getData().getName());
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
loanSecondarySalesBidding.setCreateByName(userVoResultBean.getData().getName());
//查询最高竞价
LoanSecondarySalesBidding loanSecondarySalesBidding1 = baseMapper.selectByMainSid(dto.getMainSid());
if (StringUtils.isNotBlank(dto.getPrice())) {
if ((new BigDecimal(dto.getPrice()).subtract(loanSecondarySalesBidding1.getPrice()).compareTo(new BigDecimal("1000"))) < 0) {
return rb.setMsg("确认失败,每次竞价幅度需不低于1000元");
}
loanSecondarySalesBidding.setPrice(new BigDecimal(dto.getPrice()));
} else {
return rb.setMsg("请输入您的报价");
}
baseMapper.insert(loanSecondarySalesBidding);
return rb.success();
}
public ResultBean<List<BiddingVo>> getList(String sid) {
ResultBean<List<BiddingVo>> rb = ResultBean.fireFail();
List<BiddingVo> list = baseMapper.getList(sid);
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
public ResultBean<String> getPrice(String sid) {
ResultBean<String> rb = ResultBean.fireFail();
String price = baseMapper.getPrice(sid);
return rb.success().setData(price);
}
}

27
doc/databases/risk_center.sql

@ -1698,6 +1698,33 @@ CREATE TABLE `loan_secondary_sales_customer`
DROP TABLE IF EXISTS `loan_secondary_sales_bidding`;
CREATE TABLE `loan_secondary_sales_bidding`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '报价人',
`mainSid` varchar(64) DEFAULT NULL COMMENT '主表sid',
`price` decimal(10, 2) DEFAULT NULL COMMENT '报价',
`useOrgName` varchar(500) DEFAULT NULL COMMENT '分公司',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`orgSidPath` text DEFAULT NULL COMMENT '机构sid全路径',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='二次销售公示竞价';

Loading…
Cancel
Save