TJs.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. package com.ylx.massage.domain;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.baomidou.mybatisplus.annotation.TableField;
  4. import com.baomidou.mybatisplus.annotation.TableId;
  5. import com.baomidou.mybatisplus.annotation.TableLogic;
  6. import com.baomidou.mybatisplus.annotation.TableName;
  7. import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
  8. import io.swagger.annotations.ApiModel;
  9. import io.swagger.annotations.ApiModelProperty;
  10. import lombok.Getter;
  11. import lombok.Setter;
  12. import lombok.experimental.Accessors;
  13. import org.dom4j.tree.DefaultText;
  14. import java.io.Serializable;
  15. import java.math.BigDecimal;
  16. import java.time.LocalDateTime;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * 技师信息实体类
  21. * <p>
  22. * 该类用于映射技师表(t_js),存储技师的基本信息、资质证书、服务状态、位置信息等。
  23. * 支持技师的注册、审核、上岗、接单等业务流程。
  24. * </p>
  25. *
  26. * @author ylx
  27. * @version 1.0
  28. * @since 2024-01-01
  29. */
  30. @Getter
  31. @Setter
  32. @Accessors(chain = true)
  33. @TableName(value = "t_js", autoResultMap = true)
  34. @ApiModel(value = "TJs", description = "技师信息实体")
  35. public class TJs implements Serializable {
  36. private static final long serialVersionUID = 1L;
  37. /**
  38. * 主键ID
  39. */
  40. @TableId("id")
  41. @ApiModelProperty("主键ID")
  42. private String id;
  43. /**
  44. * 微信OpenID
  45. * 用于关联微信用户身份
  46. */
  47. @TableField("c_open_id")
  48. @ApiModelProperty("微信OpenID")
  49. private String cOpenId;
  50. /**
  51. * 所在城市
  52. */
  53. @TableField("city")
  54. @ApiModelProperty("所在城市")
  55. private String city;
  56. /**
  57. * 技师等级
  58. * 表示技师的专业级别
  59. */
  60. @TableField("js_grade")
  61. @ApiModelProperty("技师等级")
  62. private Integer jsGrade;
  63. /**
  64. * 技师视频介绍
  65. * 存储视频文件的URL地址
  66. */
  67. @ApiModelProperty("技师视频介绍")
  68. private String cVideo;
  69. /**
  70. * 可预约项目编号列表
  71. */
  72. @TableField(value = "c_bh_list")
  73. @ApiModelProperty("可预约项目编号列表")
  74. private String cBhList;
  75. /**
  76. * 生活照图片列表
  77. * 以JSONArray格式存储,包含技师的生活照片URL
  78. */
  79. @TableField(value = "c_img_list", typeHandler = FastjsonTypeHandler.class)
  80. @ApiModelProperty("生活照图片列表")
  81. private JSONArray cImgList;
  82. /**
  83. * 身份证图片列表
  84. * 以JSONArray格式存储,包含身份证正反面照片
  85. */
  86. @TableField(value = "c_sfz_img", typeHandler = FastjsonTypeHandler.class)
  87. @ApiModelProperty("身份证图片列表")
  88. private JSONArray cSfzImg;
  89. /**
  90. * 性别
  91. * 0-女,1-男
  92. */
  93. @TableField("n_sex")
  94. @ApiModelProperty("性别 0-女 1-男")
  95. private Integer nSex;
  96. /**
  97. * 技师昵称
  98. * 显示给用户看的昵称
  99. */
  100. @TableField("c_nick_name")
  101. @ApiModelProperty("昵称")
  102. private String cNickName;
  103. /**
  104. * 头像URL
  105. * 技师头像图片地址
  106. */
  107. @TableField("c_portrait")
  108. @ApiModelProperty("头像URL")
  109. private String cPortrait;
  110. /**
  111. * 技师真实姓名
  112. * 技师身份证真实姓名
  113. */
  114. @TableField("c_name")
  115. @ApiModelProperty("真实姓名")
  116. private String cName;
  117. /**
  118. * 技师联系电话
  119. * 技师手机号码
  120. */
  121. @TableField("c_phone")
  122. @ApiModelProperty("联系电话")
  123. private String cPhone;
  124. /**
  125. * 居住地址
  126. * 技师常住地址
  127. */
  128. @TableField("c_address")
  129. @ApiModelProperty("居住地址")
  130. private String cAddress;
  131. /**
  132. * 健康证图片URL
  133. * 用于证明技师身体健康状况
  134. */
  135. @TableField("health_certificate")
  136. @ApiModelProperty("健康证图片URL")
  137. private String healthCertificate;
  138. /**
  139. * 营业执照图片URL
  140. * 个体工商户营业执照
  141. */
  142. @TableField("business_license")
  143. @ApiModelProperty("营业执照图片URL")
  144. private String businessLicense;
  145. /**
  146. * 按摩师资格证图片URL
  147. * 专业技能认证证书
  148. */
  149. @TableField("certification")
  150. @ApiModelProperty("按摩师资格证图片URL")
  151. private String certification;
  152. /**
  153. * 无犯罪记录证明图片URL
  154. * 用于背景调查
  155. */
  156. @TableField("no_crime")
  157. @ApiModelProperty("无犯罪记录证明图片URL")
  158. private String noCrime;
  159. /**
  160. * 部门ID
  161. * 关联的部门/机构标识
  162. */
  163. @TableField("dept_id")
  164. @ApiModelProperty("部门ID")
  165. private String deptId;
  166. /**
  167. * 白天免车费公里数
  168. * 白天时段(如6:00-18:00)免收车费的距离上限
  169. */
  170. @TableField("daytime_mileage")
  171. @ApiModelProperty("白天免车费公里数")
  172. private BigDecimal daytimeMileage;
  173. /**
  174. * 夜间免车费公里数
  175. * 夜间时段(如18:00-6:00)免收车费的距离上限
  176. */
  177. @TableField("nigth_mileage")
  178. @ApiModelProperty("夜间免车费公里数")
  179. private BigDecimal nigthMileage;
  180. /**
  181. * 技师个人简介
  182. * 技师自我介绍文字描述
  183. */
  184. @TableField("c_jianjie")
  185. @ApiModelProperty("个人简介")
  186. private String cJianjie;
  187. /**
  188. * 评分
  189. * 用户对技师的评分,通常为1-5分
  190. */
  191. @TableField("n_star")
  192. @ApiModelProperty("评分")
  193. private Integer nStar;
  194. /**
  195. * 佣金比例
  196. * 技师从订单金额中获取的佣金百分比
  197. */
  198. @TableField("n_bili")
  199. @ApiModelProperty("佣金比例")
  200. private Integer nBili;
  201. /**
  202. * 经度
  203. * 技师当前位置的经度坐标
  204. */
  205. @TableField("longitude")
  206. @ApiModelProperty("经度")
  207. private BigDecimal longitude;
  208. /**
  209. * 纬度
  210. * 技师当前位置的纬度坐标
  211. */
  212. @TableField("latitude")
  213. @ApiModelProperty("纬度")
  214. private BigDecimal latitude;
  215. /**
  216. * 已服务数量
  217. * 技师累计完成的订单总数
  218. */
  219. @TableField("n_num")
  220. @ApiModelProperty("已服务订单数量")
  221. private Integer nNum;
  222. /**
  223. * 技师类型
  224. * 0-真实技师(真实存在的技师)
  225. * 1-虚拟技师(用于模拟服务场景)
  226. */
  227. @TableField("tech_type")
  228. @ApiModelProperty("技师类型 0-真实技师 1-虚拟技师")
  229. private Integer techType;
  230. /**
  231. * 服务状态
  232. * 0-可服务(空闲可接单)
  233. * 1-服务中(正在服务无法接单)
  234. * 2-不可服务(临时无法接单)
  235. */
  236. @TableField("n_status")
  237. @ApiModelProperty("服务状态 0-可服务 1-服务中 2-不可服务")
  238. private Integer nStatus;
  239. /**
  240. * 上岗状态
  241. * -1-未上岗(未通过审核或已下岗)
  242. * 0-已上岗(可接单状态)
  243. * 1-已申请上岗(待审核)
  244. */
  245. @TableField("n_status2")
  246. @ApiModelProperty("上岗状态 -1-未上岗 0-已上岗 1-已申请")
  247. private Integer nStatus2;
  248. /**
  249. * 审核状态
  250. * 0-待审核(初始状态)
  251. * 1-已通过(审核通过)
  252. * 2-驳回(审核不通过)
  253. * 3-拉黑(被封禁)
  254. */
  255. @TableField("n_tong")
  256. @ApiModelProperty("审核状态 0-待审核 1-已通过 2-驳回 3-拉黑")
  257. private Integer nTong;
  258. /**
  259. * 注册时间
  260. * 技师首次注册的时间
  261. */
  262. @TableField("c_time")
  263. @ApiModelProperty("注册时间")
  264. private Date cTime;
  265. /**
  266. * 是否带头像框标识
  267. * 0-否,1-是(用于特殊标识或VIP展示)
  268. */
  269. @TableField("n_b1")
  270. @ApiModelProperty("是否带头像框 0-否 1-是")
  271. private Integer nB1;
  272. /**
  273. * 是否新技师标识
  274. * 0-否,1-是(用于新人推荐)
  275. */
  276. @TableField("n_b2")
  277. @ApiModelProperty("是否新技师 0-否 1-是")
  278. private Integer nB2;
  279. /**
  280. * 是否有热度标识
  281. * 0-否,1-是(用于热门技师推荐)
  282. */
  283. @TableField("n_b3")
  284. @ApiModelProperty("是否有热度 0-否 1-是")
  285. private Integer nB3;
  286. /**
  287. * 创建时间
  288. * 记录创建的时间戳
  289. */
  290. @TableField("dt_create_time")
  291. @ApiModelProperty("创建时间")
  292. private LocalDateTime dtCreateTime;
  293. /**
  294. * 地址名称
  295. * 位置名称(如某某小区、某某大厦)
  296. */
  297. @TableField("name")
  298. @ApiModelProperty("地址名称")
  299. private String name;
  300. /**
  301. * 详细地址
  302. * 完整的街道地址信息
  303. */
  304. @TableField("address")
  305. @ApiModelProperty("详细地址")
  306. private String address;
  307. /**
  308. * 退回原因
  309. * 审核被驳回时填写的原因说明
  310. */
  311. @TableField("reason_refusal")
  312. @ApiModelProperty("审核驳回原因")
  313. private String reasonRefusal;
  314. /**
  315. * 逻辑删除标识
  316. * 0-未删除,1-已删除
  317. */
  318. @ApiModelProperty("逻辑删除标识 0-未删除 1-已删除")
  319. @TableLogic
  320. private Integer isDelete;
  321. /**
  322. * 收藏数量
  323. * 当前技师被用户收藏的总次数(非持久化字段)
  324. */
  325. @TableField(exist = false)
  326. @ApiModelProperty("收藏数量")
  327. private Integer number;
  328. /**
  329. * 点赞数量
  330. * 用户对技师的点赞数
  331. */
  332. @ApiModelProperty("点赞数量")
  333. private Integer nZan;
  334. /**
  335. * 当前用户是否收藏
  336. * 用于前端显示收藏状态(非持久化字段)
  337. */
  338. @TableField(exist = false)
  339. @ApiModelProperty("当前用户是否收藏")
  340. private Boolean isCollection;
  341. /**
  342. * 技师距离
  343. * 当前用户与技师之间的距离,单位:公里(非持久化字段)
  344. */
  345. @TableField(exist = false)
  346. @ApiModelProperty("技师距离(公里)")
  347. private BigDecimal distance = BigDecimal.valueOf(10000L);
  348. /**
  349. * 页面类型
  350. * 1-技师页,2-审核页(用于区分不同展示场景)
  351. */
  352. @TableField(exist = false)
  353. @ApiModelProperty("页面类型 1-技师 2-审核")
  354. private Integer pageType;
  355. /**
  356. * 技师服务项目列表
  357. * 关联查询的服务项目信息(非持久化字段)
  358. */
  359. @TableField(exist = false)
  360. @ApiModelProperty("技师服务项目列表")
  361. private List<TXiangmu> projects;
  362. /**
  363. * 技师评价列表
  364. * 关联查询的用户评价信息(非持久化字段)
  365. */
  366. @TableField(exist = false)
  367. @ApiModelProperty("技师评价列表")
  368. private List<TComment> comments;
  369. /**
  370. * 技师推广二维码Ticket
  371. * 用于生成技师专属推广二维码
  372. */
  373. @ApiModelProperty("技师推广二维码Ticket")
  374. private String ticket;
  375. /**
  376. * 虚拟订单数量
  377. */
  378. @TableField("virtual_order_number")
  379. @ApiModelProperty("虚拟订单数量")
  380. private Integer virtualOrderNumber;
  381. /**
  382. * 录音
  383. * 用于存储技师的录音文件路径
  384. */
  385. @TableField("recording")
  386. @ApiModelProperty("录音")
  387. private String recording;
  388. /**
  389. * 录像
  390. * 用于存储技师的视频录音文件路径
  391. */
  392. @TableField("video_recording")
  393. @ApiModelProperty("录像")
  394. private String videoRecording;
  395. /**
  396. * 承诺书
  397. * 用于存储技师的服务承诺描述
  398. */
  399. @TableField("commitment")
  400. @ApiModelProperty("承诺书")
  401. private String commitment;
  402. /**
  403. * 虚拟技师数量
  404. */
  405. @TableField("virtual_tech_number")
  406. @ApiModelProperty("虚拟技师数量")
  407. private Integer virtualTechNumber;
  408. @ApiModelProperty("可服务三级地区code,逗号分隔")
  409. private String serviceAreaCodes;
  410. @ApiModelProperty("前端选中的地区完整JSON")
  411. private String serviceAreaJson;
  412. public String getcVideo() {
  413. return cVideo;
  414. }
  415. public void setcVideo(String cVideo) {
  416. this.cVideo = cVideo;
  417. }
  418. public String getcOpenId() {
  419. return cOpenId;
  420. }
  421. public void setcOpenId(String cOpenId) {
  422. this.cOpenId = cOpenId;
  423. }
  424. public String getcBhList() {
  425. return cBhList;
  426. }
  427. public void setcBhList(String cBhList) {
  428. this.cBhList = cBhList;
  429. }
  430. public JSONArray getcImgList() {
  431. return cImgList;
  432. }
  433. public void setcImgList(JSONArray cImgList) {
  434. this.cImgList = cImgList;
  435. }
  436. public JSONArray getcSfzImg() {
  437. return cSfzImg;
  438. }
  439. public void setcSfzImg(JSONArray cSfzImg) {
  440. this.cSfzImg = cSfzImg;
  441. }
  442. public Integer getnSex() {
  443. return nSex;
  444. }
  445. public void setnSex(Integer nSex) {
  446. this.nSex = nSex;
  447. }
  448. public String getcNickName() {
  449. return cNickName;
  450. }
  451. public void setcNickName(String cNickName) {
  452. this.cNickName = cNickName;
  453. }
  454. public String getcPortrait() {
  455. return cPortrait;
  456. }
  457. public void setcPortrait(String cPortrait) {
  458. this.cPortrait = cPortrait;
  459. }
  460. public String getcName() {
  461. return cName;
  462. }
  463. public void setcName(String cName) {
  464. this.cName = cName;
  465. }
  466. public String getcPhone() {
  467. return cPhone;
  468. }
  469. public void setcPhone(String cPhone) {
  470. this.cPhone = cPhone;
  471. }
  472. public String getcAddress() {
  473. return cAddress;
  474. }
  475. public void setcAddress(String cAddress) {
  476. this.cAddress = cAddress;
  477. }
  478. public String getcJianjie() {
  479. return cJianjie;
  480. }
  481. public void setcJianjie(String cJianjie) {
  482. this.cJianjie = cJianjie;
  483. }
  484. public Integer getnStar() {
  485. return nStar;
  486. }
  487. public void setnStar(Integer nStar) {
  488. this.nStar = nStar;
  489. }
  490. public Integer getnBili() {
  491. return nBili;
  492. }
  493. public void setnBili(Integer nBili) {
  494. this.nBili = nBili;
  495. }
  496. public Integer getnNum() {
  497. return nNum;
  498. }
  499. public void setnNum(Integer nNum) {
  500. this.nNum = nNum;
  501. }
  502. public Integer getnStatus() {
  503. return nStatus;
  504. }
  505. public void setnStatus(Integer nStatus) {
  506. this.nStatus = nStatus;
  507. }
  508. public Integer getnStatus2() {
  509. return nStatus2;
  510. }
  511. public void setnStatus2(Integer nStatus2) {
  512. this.nStatus2 = nStatus2;
  513. }
  514. public Integer getnTong() {
  515. return nTong;
  516. }
  517. public void setnTong(Integer nTong) {
  518. this.nTong = nTong;
  519. }
  520. public Date getcTime() {
  521. return cTime;
  522. }
  523. public void setcTime(Date cTime) {
  524. this.cTime = cTime;
  525. }
  526. public Integer getnB1() {
  527. return nB1;
  528. }
  529. public void setnB1(Integer nB1) {
  530. this.nB1 = nB1;
  531. }
  532. public Integer getnB2() {
  533. return nB2;
  534. }
  535. public void setnB2(Integer nB2) {
  536. this.nB2 = nB2;
  537. }
  538. public Integer getnB3() {
  539. return nB3;
  540. }
  541. public void setnB3(Integer nB3) {
  542. this.nB3 = nB3;
  543. }
  544. public LocalDateTime getDtCreateTime() {
  545. return dtCreateTime;
  546. }
  547. public void setDtCreateTime(LocalDateTime dtCreateTime) {
  548. this.dtCreateTime = dtCreateTime;
  549. }
  550. public Integer getNumber() {
  551. return number;
  552. }
  553. public void setNumber(Integer number) {
  554. this.number = number;
  555. }
  556. public String getServiceAreaCodes() {
  557. return serviceAreaCodes;
  558. }
  559. public void setServiceAreaCodes(String serviceAreaCodes) {
  560. this.serviceAreaCodes = serviceAreaCodes;
  561. }
  562. public String getServiceAreaJson() {
  563. return serviceAreaJson;
  564. }
  565. public void setServiceAreaJson(String serviceAreaJson) {
  566. this.serviceAreaJson = serviceAreaJson;
  567. }
  568. }