当前位置: 首页 > news >正文

网站做查赚钱如何做简单的网站 域名邮箱

网站做查赚钱,如何做简单的网站 域名邮箱,网站登录注册页面模板,数据分析网站开发项目背景本系统主要用于地图站位小程序,通过地图站位展示贷款相关的地理位置信息,支持按不同条件筛选和统计,帮助业务人员更好地进行贷后管理。核心功能分析1. 功能架构系统支持以下核心功能:地图标记点展示(客户、担保…

项目背景

本系统主要用于地图站位小程序,通过地图站位展示贷款相关的地理位置信息,支持按不同条件筛选和统计,帮助业务人员更好地进行贷后管理。

核心功能分析

1. 功能架构

系统支持以下核心功能:

  • 地图标记点展示(客户、担保人、抵押物)
  • 表内外数据区分
  • 距离范围筛选
  • 多维度条件查询
  • 贷款状态统计

2. Controller层实现

@RestController
@RequestMapping("/bank/app/mapwork")
public class AppMapworkController {@Autowiredprivate AppMapworkService appMapworkService;@GetMapping("/index")@Operation(summary = "首页")public CommonResult<?> getIndex(AppMapworkReqVO req) {Map<String, Object> data = new HashMap<>();data.put("normal",0);data.put("overdue",0);data.put("lawsuit",0);List<AppMapworkRespVO> result = new ArrayList<>();// IO标志处理逻辑boolean inFlag = false;boolean outFlag = false;if(StringUtils.isEmpty(req.getIoFlag())){inFlag = true;outFlag = true;}else{if("in".equals(req.getIoFlag())){inFlag = true;}else if("out".equals(req.getIoFlag())){outFlag = true;}else if("all".equals(req.getIoFlag())){inFlag = true;outFlag = true;}}// 表内数据查询if(inFlag){if(StringUtils.isEmpty(req.getOther())){// 查询全部类型List<AppMapworkRespVO> custList = appMapworkService.getCustomerInMark(req);List<AppMapworkRespVO> guarantorList = appMapworkService.getGuarantorInMark(req);List<AppMapworkRespVO> mortgageList = appMapworkService.getMortgageInMark(req);result.addAll(custList);result.addAll(guarantorList);result.addAll(mortgageList);}else{// 按类型查询if("cust".equals(req.getOther())){// 客户查询,特殊处理地址标记点List<AppMapworkRespVO> custList = appMapworkService.getCustomerInMark(req);if(UxUtil.isListNotEmpty(custList) && custList.size() == 1){AppMapworkRespVO cust = custList.get(0);List<AppMapworkRespVO> addressList = appMapworkService.getCustomerInAddressMark(req,cust.getMarkId());if(UxUtil.isListNotEmpty(addressList)){for(AppMapworkRespVO c : addressList){c.setLoanId(cust.getLoanId());c.setCustName(cust.getCustName());c.setContractCode(cust.getContractCode());c.setAmount(cust.getAmount());}result.addAll(addressList);}}result.addAll(custList);}// ... 其他类型处理}}// 表外数据查询(逻辑类似)if(outFlag){// ... 同表内处理逻辑}data.put("marks",result);data.put("total",result.size());// 贷款状态统计if(StringUtils.isNotEmpty(req.getOther()) && "cust".equals(req.getOther()) && UxUtil.isListNotEmpty(result)){Long normalCount = result.stream().filter(o -> (o.getOverdueFlag() == 0 && o.getLawsuitFlag() == 0)).count();Long overdueCount = result.stream().filter(o -> (o.getOverdueFlag() == 1 && o.getLawsuitFlag() == 0)).count();Long lawsuitCount = result.stream().filter(o -> (o.getLawsuitFlag() == 1)).count();data.put("normal",normalCount);data.put("overdue",overdueCount);data.put("lawsuit",lawsuitCount);}return success(data);}
}

Service层设计

@Service
@Validated
public class AppMapworkServiceImpl implements AppMapworkService {@Autowiredprivate MapworkMapper mapworkMapper;@Overridepublic List<AppMapworkRespVO> getCustomerInMark(AppMapworkReqVO req) {LambdaQueryWrapper<LoanInDO> queryWrapper = new LambdaQueryWrapper<>();// 模糊查询支持(客户名/代码/合同号)if(StringUtils.isNotEmpty(req.getCustName())){queryWrapper.apply(" (m.cust_name like {0} or m.cust_code like {1} or m.contract_code like {2} )",UxUtil.likeForSql(req.getCustName()),UxUtil.likeForSql(req.getCustName()),UxUtil.likeForSql(req.getCustName()));}// 状态筛选if(StringUtils.isNotEmpty(req.getStatus())){if("normal".equals(req.getStatus())){queryWrapper.apply(" (m.overdue_flag = {0} and m.lawsuit_flag = {1})", 0,0);}else if("overdue".equals(req.getStatus())){queryWrapper.apply(" (m.overdue_flag = {0} and m.lawsuit_flag = {1}) ", 1,0);}else if("lawsuit".equals(req.getStatus())){queryWrapper.apply(" m.lawsuit_flag = {0} ", 1);}}return mapworkMapper.getCustomerInMark(req,queryWrapper);}// 其他方法实现类似...
}

Mapper层核心技术

1. 站位计算

MapworkMapper.java

public interface MapworkMapper {List<AppMapworkRespVO> getCustomerInMark(@Param("req") AppMapworkReqVO req, @Param("ew") LambdaQueryWrapper<LoanInDO> queryWrapper);...
}

MapworkMapper.xml

<select id="getCustomerInMark" resultType="com.mxx.module.bank.controller.admin.app.vo.AppMapworkRespVO">SELECTcu.id * 10 + 1 as id,cu.id as mark_id,'ux_customer_in' as mark_type,cu.latitude as lat,cu.longitude as lng,m.overdue_flag,m.lawsuit_flag,1 as in_out_flag,m.id as loan_id,m.cust_code,m.cust_name,m.cust_id,m.contract_code,m.amount,cu.contact_way,cu.detail_address as address,<!-- 核心距离计算公式 -->ROUND(111.111 * sqrt(pow(cu.latitude - #{req.latitude}, 2) + pow(cos(radians(#{req.latitude})) * (cu.longitude - #{req.longitude}),2)), 2) AS distanceFROMux_loan_in mLEFT JOIN ux_customer_in cu ON cu.id = m.cust_idWHERE 1 = 1<if test="ew != null"><if test="ew.sqlSegment != null"><if test="ew.sqlSegment != ''">AND ${ew.sqlSegment}</if></if></if>AND m.deleted = 0AND cu.deleted = 0AND cu.latitude is not nullAND cu.longitude is not nullHAVING #{req.radius} > distance
</select>

2. 唯一ID生成策略

-- 不同类型标记点的唯一ID生成,避免ID冲突
cu.id * 10 + 1 as id,  -- 客户表内
cu.id * 10 + 2 as id,  -- 客户表外
cu.id * 10 + 3 as id,  -- 担保人表内
cu.id * 10 + 4 as id,  -- 担保人表外

技术亮点解析

1. 灵活的查询策略

系统支持多种组合查询:

  • ioFlag: in/out/all(表内/表外/全部)
  • other: cust/guarant/mortgage/all(客户/担保人/抵押物/全部)
  • status: normal/overdue/lawsuit(正常/逾期/诉讼)

2. 地理位置计算优化        

-- 基于经纬度的距离计算,考虑地球曲率
ROUND(111.111 * sqrt(pow(cu.latitude - #{req.latitude}, 2) + pow(cos(radians(#{req.latitude})) * (cu.longitude - #{req.longitude}),2)), 2) AS distance

3. 数据聚合设计

// 多种业务类型统一返回VO
List<AppMapworkRespVO> result = new ArrayList<>();
result.addAll(custList);      // 客户
result.addAll(guarantorList); // 担保人
result.addAll(mortgageList);  // 抵押物

总结

本文介绍的银行贷款地理位置标记系统具有以下优势:

  1. 架构清晰:Controller-Service-Mapper三层架构
  2. 扩展性强:易于添加新的标记点类型
  3. 性能优化:地理位置计算和查询优化
  4. 用户体验:丰富的筛选和统计功能

这套解决方案在实际项目中表现良好,为银行的贷后管理提供了有力的技术支撑。

http://www.dtcms.com/a/529365.html

相关文章:

  • 网站建设与管理的书中国建设银行网站首页下载
  • Java—单例类(设计模式)
  • Linux 网络总结
  • 第一章-第三节-Java开发环境配置
  • 河南濮阳建设局网站天坛装修公司口碑怎么样
  • 关于Java回调函数的使用笔记
  • 贵州网站开发哪家好浙江网站推广公司
  • C语言——栈与队列
  • 企业门户网站源码商丘网站制作教程
  • 云南哪里有给做网站的免费在线响应式网站自助建站
  • Java注解与反射实现日志与校验
  • docker-compose方式快速安装MySQL
  • 可信网站是否有规定必须做ps网页设计怎么做
  • AtCoder Beginner Contest 425 题解
  • 做瓷砖在什么网站上找素材好网站改标题关键词描述
  • GitHub等平台形成的开源文化正在重塑凯特
  • 惠州网站建设 鑫河南建设资格执业网站
  • Linux 下 Docker 与 ClickHouse 的安装配置及 MySQL 数据同步指南
  • 怎么建立一个个人网站企业如何注册网站
  • JAVA1025 类:继承:interface,接口继承必须实现接口方法;extends单继承 抽象类 属性 static
  • CVE-2025-50154漏洞复现与技术分析报告
  • 时间序列数据异常检测算法(6)——基于深度学习的算法
  • dw中网站建设的基本流程三亚网站建设费用
  • 深圳做网站企业手机大全
  • 基层建设 网站东莞免费网站建站模板
  • memmove函数在嵌入式开发中的应用
  • 祥云平台建站云服务器做网站视屏
  • Google 登录集成教程(Web + Expo 移动端)
  • stm32f103c8t6最小系统板(针对需要进行制作)--原理图绘制+pcb制作
  • 具身智能论文阅读:Robotic Control via Embodied Chain-of-Thought Reasoning