Browse Source

1.登录增加平台区分
2.经销商app理赔接口调试及修改
3.门店app增加轮胎保撤销提交接口

纪新园 5 days ago
parent
commit
04d225d46b
15 changed files with 126 additions and 21 deletions
  1. 2 1
      blade-auth/src/main/java/org/springblade/auth/granter/PhoneTokenGranter.java
  2. 2 0
      blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java
  3. 1 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java
  4. 11 0
      blade-service-api/gubersail-dealer-app-api/src/main/java/com/gubersail/app/api/claim/entity/AppClaim.java
  5. 11 0
      blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/claim/entity/ShopAppClaim.java
  6. 1 0
      blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/claim/entity/ShopAppClaimAttachment.java
  7. 1 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  8. 1 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java
  9. 7 4
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
  10. 13 0
      blade-service/gubersail-dealer-app/src/main/java/com/gubersail/app/claim/controller/AppClaimController.java
  11. 2 0
      blade-service/gubersail-dealer-app/src/main/java/com/gubersail/app/claim/service/impl/AppClaimServiceImpl.java
  12. 16 0
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/claim/service/impl/ShopAppClaimServiceImpl.java
  13. 8 0
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/controller/ShopAppTireInsuranceRegisterController.java
  14. 2 0
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/service/IShopAppTireInsuranceRegisterService.java
  15. 48 13
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/service/impl/ShopAppTireInsuranceRegisterServiceImpl.java

+ 2 - 1
blade-auth/src/main/java/org/springblade/auth/granter/PhoneTokenGranter.java

@@ -56,6 +56,7 @@ public class PhoneTokenGranter extends AbstractTokenGranter {
 		String key = requestParams.get(TokenUtil.CAPTCHA_HEADER_KEY);
 		String code = requestParams.get(TokenUtil.CAPTCHA_HEADER_CODE);
 		String phone = requestParams.get(TokenUtil.PHONE_HEADER_KEY);
+		String loginType = requestParams.get(TokenUtil.LOGIN_TYPE);
 		System.out.println("redisKey:"+CacheNames.APP_LOGIN_CODE_KEY + key+"-"+phone);
 		// 获取缓存中的验证码
 		String redisCode = bladeRedis.get(CacheNames.APP_LOGIN_CODE_KEY + key+"-"+phone);
@@ -64,7 +65,7 @@ public class PhoneTokenGranter extends AbstractTokenGranter {
 		if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
 			throw new UserDeniedAuthorizationException(TokenUtil.CAPTCHA_NOT_CORRECT);
 		}
-		UserInfo userInfo = userClient.getUserInfoByPhone(phone, UserEnum.APP.getCategory());
+		UserInfo userInfo = userClient.getUserInfoByPhone(phone, loginType);
 		if (Objects.isNull(userInfo)) {
 			throw new UserDeniedAuthorizationException(TokenUtil.USER_NOT_EXIST);
 		}

+ 2 - 0
blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java

@@ -45,6 +45,8 @@ public class TokenUtil {
 	public final static String ROLE_HEADER_KEY = "Role-Id";
 	public final static String CAPTCHA_HEADER_KEY = "Captcha-Key";
 	public final static String PHONE_HEADER_KEY = "Phone-Key";
+
+	public final static String LOGIN_TYPE = "Login-Type";
 	public final static String CAPTCHA_HEADER_CODE = "Captcha-Code";
 	public final static String CAPTCHA_NOT_CORRECT = "验证码不正确";
 	public final static String USER_NOT_EXIST = "该用户不存在或已被禁用";

+ 1 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -300,7 +300,7 @@ public interface IUserClient {
 	 * @return 结果
 	 */
 	@GetMapping(GET_USER_INFO_BY_PHONE)
-	UserInfo getUserInfoByPhone(@RequestParam("phone") String phone, @RequestParam("category") Integer category);
+	UserInfo getUserInfoByPhone(@RequestParam("phone") String phone, @RequestParam("category") String category);
 
 
 	/**

+ 11 - 0
blade-service-api/gubersail-dealer-app-api/src/main/java/com/gubersail/app/api/claim/entity/AppClaim.java

@@ -172,5 +172,16 @@ public class AppClaim implements Serializable {
 	@ApiModelProperty(value = "版本")
 	private Integer version;
 
+	/**
+	 * 车牌号
+	 */
+	@ApiModelProperty(value = "车牌号")
+	private String vehicleNumber;
+	/**
+	 * 轮胎数量
+	 */
+	@ApiModelProperty(value = "轮胎数量")
+	private Integer tireQuantity;
+
 
 }

+ 11 - 0
blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/claim/entity/ShopAppClaim.java

@@ -172,5 +172,16 @@ public class ShopAppClaim implements Serializable {
 	@ApiModelProperty(value = "版本")
 	private Integer version;
 
+	/**
+	 * 车牌号
+	 */
+	@ApiModelProperty(value = "车牌号")
+	private String vehicleNumber;
+	/**
+	 * 轮胎数量
+	 */
+	@ApiModelProperty(value = "轮胎数量")
+	private Integer tireQuantity;
+
 
 }

+ 1 - 0
blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/claim/entity/ShopAppClaimAttachment.java

@@ -18,6 +18,7 @@ package com.gubersail.shop.app.api.claim.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -298,7 +298,7 @@ public class UserClient implements IUserClient {
 	}
 
 	@Override
-	public UserInfo getUserInfoByPhone(String phone, Integer category) {
+	public UserInfo getUserInfoByPhone(String phone, String category) {
 		return service.getUserInfoByPhone(phone, category);
 	}
 

+ 1 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java

@@ -248,5 +248,5 @@ public interface IUserService extends BaseService<User> {
 	 * @param category 惨案userEnum
 	 * @return 结果
 	 */
-	UserInfo getUserInfoByPhone(String phone, Integer category);
+	UserInfo getUserInfoByPhone(String phone, String category);
 }

+ 7 - 4
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -227,7 +227,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				userInfo.setRoles(roleAlias);
 			}
 		}
-		// 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
+		/*// 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
 		Kv detail = Kv.create().set("type", userEnum.getName());
 		if (userEnum == UserEnum.WEB) {
 			UserWeb userWeb = new UserWeb();
@@ -248,7 +248,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				detail.set("ext", query.getUserExt());
 			}
 		}
-		userInfo.setDetail(detail);
+		userInfo.setDetail(detail);*/
 		return userInfo;
 	}
 
@@ -523,8 +523,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 	}
 
 	@Override
-	public UserInfo getUserInfoByPhone(String phone, Integer category) {
-		User user = baseMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getPhone, phone).eq(User::getIsDeleted, 0));
+	public UserInfo getUserInfoByPhone(String phone, String category) {
+		User user = baseMapper.selectOne(new LambdaQueryWrapper<User>()
+			.eq(User::getPhone, phone)
+			.eq(User::getUserTypeRole, category)
+			.eq(User::getIsDeleted, 0));
 		return buildUserInfo(user, UserEnum.of(category));
 	}
 

+ 13 - 0
blade-service/gubersail-dealer-app/src/main/java/com/gubersail/app/claim/controller/AppClaimController.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.gubersail.app.api.claim.entity.AppClaim;
 import com.gubersail.app.api.claim.vo.AppClaimVO;
+import com.gubersail.app.claim.service.IAppClaimAttachmentService;
 import com.gubersail.app.claim.service.IAppClaimService;
 import com.gubersail.app.util.DeptUtils;
 import com.gubersail.app.wrapper.AppClaimWrapper;
@@ -60,6 +61,8 @@ public class AppClaimController extends BladeController {
 
 	private final IAppClaimService bladeClaimService;
 
+	private final IAppClaimAttachmentService appClaimAttachmentService;
+
 	private final IUserClient userClient;
 
 	/**
@@ -174,5 +177,15 @@ public class AppClaimController extends BladeController {
 		return bladeClaimService.revokeApproval(id);
 	}
 
+	/**
+	 * 删除 理赔附件表
+	 */
+	@PostMapping("/removeAttachment")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除 理赔附件表", notes = "传入ids")
+	public R removeAttachment(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(appClaimAttachmentService.removeByIds(Func.toLongList(ids)));
+	}
+
 
 }

+ 2 - 0
blade-service/gubersail-dealer-app/src/main/java/com/gubersail/app/claim/service/impl/AppClaimServiceImpl.java

@@ -90,6 +90,8 @@ public class AppClaimServiceImpl extends ServiceImpl<AppClaimMapper, AppClaim> i
 			claim.setCreateTime(new Date());
 			claim.setCreateUser(AuthUtil.getUserId());
 			claim.setClaimSourceType(1);
+			claim.setTyreNo("");
+			claim.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			//查询当前登录人信息
 			R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
 			if (!userR.isSuccess() || ObjectUtils.isNull(userR.getData())) {

+ 16 - 0
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/claim/service/impl/ShopAppClaimServiceImpl.java

@@ -24,11 +24,13 @@ import com.gubersail.shop.app.api.claim.entity.ShopAppClaim;
 import com.gubersail.shop.app.api.claim.entity.ShopAppClaimAttachment;
 import com.gubersail.shop.app.api.claim.entity.ShopAppClaimAudit;
 import com.gubersail.shop.app.api.claim.vo.ShopAppClaimVO;
+import com.gubersail.shop.app.api.insurance.entity.ShopAppTireInsuranceRegister;
 import com.gubersail.shop.app.api.zcrm.customer.entity.ShopAppViewCustomerSel;
 import com.gubersail.shop.app.claim.mapper.ShopAppClaimMapper;
 import com.gubersail.shop.app.claim.service.IShopAppClaimAttachmentService;
 import com.gubersail.shop.app.claim.service.IShopAppClaimAuditService;
 import com.gubersail.shop.app.claim.service.IShopAppClaimService;
+import com.gubersail.shop.app.insurance.mapper.ShopAppTireInsuranceRegisterMapper;
 import com.gubersail.shop.app.util.BillCodeUtil;
 import com.gubersail.shop.app.wrapper.ShopAppClaimWrapper;
 import com.gubersail.shop.app.zcrm.customer.service.IShopAppCustomerSelService;
@@ -69,6 +71,8 @@ public class ShopAppClaimServiceImpl extends ServiceImpl<ShopAppClaimMapper, Sho
 
 	private final IShopAppCustomerSelService viewCustomerSelService;
 
+	private final ShopAppTireInsuranceRegisterMapper shopAppTireInsuranceRegisterMapper;
+
 	@Override
 	public IPage<ShopAppClaimVO> selectBladeClaimPage(IPage<ShopAppClaimVO> page, ShopAppClaimVO bladeClaim) {
 		return page.setRecords(baseMapper.selectBladeClaimPage(page, bladeClaim));
@@ -127,6 +131,18 @@ public class ShopAppClaimServiceImpl extends ServiceImpl<ShopAppClaimMapper, Sho
 			claim.setUpdateUser(AuthUtil.getUserId());
 			claim.setUpdateTime(new Date());
 		}
+		if (ObjectUtils.isNotNull(claim.getTyreNo())) {
+			ShopAppTireInsuranceRegister tireInsuranceRegister = shopAppTireInsuranceRegisterMapper.selectOne(new LambdaQueryWrapper<ShopAppTireInsuranceRegister>()
+				.eq(ShopAppTireInsuranceRegister::getInsuranceNo, claim.getTyreNo())
+				.eq(ShopAppTireInsuranceRegister::getIsDeleted, 0)
+				.last("LIMIT 1"));
+			if (tireInsuranceRegister == null) {
+				throw new RuntimeException("未查到对应轮胎宝单据信息");
+			}
+			if (tireInsuranceRegister.getTireQuantity() < claim.getTireQuantity()) {
+				throw new RuntimeException("理赔轮胎数量大于轮胎保轮胎数量");
+			}
+		}
 		//保存数据
 		this.saveOrUpdate(claim);
 		//判断是否存在理赔审核结果及客户反馈数据

+ 8 - 0
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/controller/ShopAppTireInsuranceRegisterController.java

@@ -138,5 +138,13 @@ public class ShopAppTireInsuranceRegisterController extends BladeController {
 		return tireInsuranceRegisterService.submitTireInsurance(appTireInsuranceRegister);
 	}
 
+	/**
+	 * 撤销提交
+	 */
+	@GetMapping("/revokeTireInsurance")
+	public R revokeTireInsurance(@RequestParam("id")Long id) {
+		return tireInsuranceRegisterService.revokeTireInsurance(id);
+	}
+
 
 }

+ 2 - 0
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/service/IShopAppTireInsuranceRegisterService.java

@@ -44,4 +44,6 @@ public interface IShopAppTireInsuranceRegisterService extends IService<ShopAppTi
 	R submit(ShopAppTireInsuranceRegisterVO appTireInsuranceRegister);
 
 	R submitTireInsurance(ShopAppTireInsuranceRegisterVO appTireInsuranceRegister);
+
+	R revokeTireInsurance(Long id);
 }

+ 48 - 13
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/insurance/service/impl/ShopAppTireInsuranceRegisterServiceImpl.java

@@ -49,9 +49,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * 轮胎保险注册表 服务实现类
@@ -124,11 +122,12 @@ public class ShopAppTireInsuranceRegisterServiceImpl extends ServiceImpl<ShopApp
 	}
 
 	/**
-	  *  提交轮胎保险申请
-	  * @param appTireInsuranceRegister 轮胎保险申请表单数据
-	  * @return 操作结果响应对象
-	  * @throws RuntimeException 当查询门店信息失败时抛出异常
-	  */
+	 * 提交轮胎保险申请
+	 *
+	 * @param appTireInsuranceRegister 轮胎保险申请表单数据
+	 * @return 操作结果响应对象
+	 * @throws RuntimeException 当查询门店信息失败时抛出异常
+	 */
 	@Override
 	public R submitTireInsurance(ShopAppTireInsuranceRegisterVO appTireInsuranceRegister) {
 		// 1. 创建轮胎保险注册实体并复制属性
@@ -154,17 +153,23 @@ public class ShopAppTireInsuranceRegisterServiceImpl extends ServiceImpl<ShopApp
 		claim.setClaimNo(billNo);  // 设置理赔单号
 
 		// 6. 设置理赔基本信息
-		claim.setCreateTime(new Date());                          // 创建时间
-		claim.setCreateUser(AuthUtil.getUserId());                // 创建人ID
-		claim.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));  // 创建部门ID
-		claim.setClaimSourceType(2);                              // 理赔来源类型
-
+		claim.setCreateTime(new Date());                                    // 创建时间
+		claim.setCreateUser(AuthUtil.getUserId());                          // 创建人ID
+		claim.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));            // 创建部门ID
+		claim.setClaimSourceType(2);                                        // 理赔来源类型
+		claim.setVehicleNumber(tireInsuranceRegister.getVehicleNumber());   // 车牌号
+		claim.setTireQuantity(tireInsuranceRegister.getTireQuantity());     // 轮胎数量
+		claim.setTyreNo(tireInsuranceRegister.getInsuranceNo());            // 胎号/轮胎宝编号
+		claim.setTyreSpecs(tireInsuranceRegister.getTyreSpecs());           // 规格型号
+		claim.setAuditStatus(0);                                            // 审核状态
+		claim.setSubmitTime(new Date());                                    // 提交时间
 		// 7. 设置理赔来源信息(区分管理员和普通用户)
 		if (AuthUtil.getUserRole().contains("admin")) {
 			// 管理员直接使用用户信息
 			claim.setSourceId(AuthUtil.getUserId());
 			claim.setSourceCode("");
 			claim.setSourceName(AuthUtil.getUserName());
+			claim.setConsumerName(AuthUtil.getUserName());
 		} else {
 			// 普通用户需要查询关联的门店信息
 			// 7.1 查询门店联系人信息
@@ -187,6 +192,8 @@ public class ShopAppTireInsuranceRegisterServiceImpl extends ServiceImpl<ShopApp
 			// 7.3 设置门店信息作为来源
 			claim.setSourceId(corpsDesc.getId());
 			claim.setSourceName(corpsDesc.getCname());
+			claim.setConsumerName(attn.getCname());
+			claim.setConsumerPhone(attn.getTel());
 		}
 
 		// 8. 保存理赔申请信息
@@ -230,6 +237,34 @@ public class ShopAppTireInsuranceRegisterServiceImpl extends ServiceImpl<ShopApp
 		return R.data(appTireInsuranceRegister);
 	}
 
+	@Override
+	public R revokeTireInsurance(Long id) {
+		ShopAppTireInsuranceRegister tireInsuranceRegister = baseMapper.selectById(id);
+
+		// 2. 设置更新信息
+		tireInsuranceRegister.setUpdateUser(AuthUtil.getUserId());  // 设置更新人ID
+		tireInsuranceRegister.setUpdateTime(new Date());           // 设置更新时间
+		if (1 != tireInsuranceRegister.getStatus()) {
+			throw new RuntimeException("工厂已受理/审核通过,撤销失败!");
+		}
+		tireInsuranceRegister.setStatus(0);                        // 设置状态为1(已提交)
+
+		// 3. 更新轮胎保险注册信息
+		this.updateById(tireInsuranceRegister);
+
+		ShopAppClaim claim = bladeClaimService.getOne(new LambdaQueryWrapper<ShopAppClaim>()
+			.eq(ShopAppClaim::getTyreNo, tireInsuranceRegister.getInsuranceNo())
+			.eq(ShopAppClaim::getIsDeleted, 0)
+			.eq(ShopAppClaim::getAuditStatus, 0)
+			.last("LIMIT 1"));
+		bladeClaimService.removeById(claim.getId());
+		Map<String, Object> map = new HashMap<>();
+		map.put("claim_id",claim.getId());
+		bladeClaimAttachmentService.removeByMap(map);
+
+		return R.data(tireInsuranceRegister);
+	}
+
 	private ShopAppClaimAttachment saveClaimAttachment(String url, Long claimId, int type) {
 		ShopAppClaimAttachment shopAppClaimAttachment = new ShopAppClaimAttachment();
 		shopAppClaimAttachment.setClaimId(claimId);