Commit 5f37cd0c authored by tangwei's avatar tangwei

Merge branch 'hygf_dev_20230824' into developer

parents 5391140b b519f300
...@@ -103,6 +103,7 @@ public class ControllerAop { ...@@ -103,6 +103,7 @@ public class ControllerAop {
urls.add("/hygf/unit-info/sendTelCode/.*"); urls.add("/hygf/unit-info/sendTelCode/.*");
urls.add("/hygf/unit-info/verifyTelCode/.*/.*"); urls.add("/hygf/unit-info/verifyTelCode/.*/.*");
urls.add("/hygf/peasant-household/mobile/login"); urls.add("/hygf/peasant-household/mobile/login");
urls.add("/hygf/qiyuesuo/callback");
// 获取请求路径 // 获取请求路径
for (String uri : urls) { for (String uri : urls) {
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.omg.CORBA.UNKNOWN;
/**
* @description:通知类型
* @author: tw
* @createDate: 2023/8/25
*/
@Getter
@AllArgsConstructor
public enum CallbackTypeEnum {
发送签署("SEND_SIGNING", "SEND_SIGNING"),
发送填参("SEND_FILLING", "SEND_FILLING"),
完成参数("FILLED", "FILLED"),
配置流程("CONFIG_FLOW", "CONFIG_FLOW"),
个人签字 ("PERSONAL", "PERSONAL"),
经办人签名("OPERATOR", "OPERATOR"),
法定代表人签字 ("LEGAL_PERSON", "LEGAL_PERSON"),
企业签章("SEAL", "SEAL"),
审批并签署 ("AUDIT_SIGN", "AUDIT_SIGN"),
文件审批("AUDIT", "AUDIT"),
撤回文件("RECALLED", "RECALLED"),
退回文件("REJECTED", "REJECTED"),
文件过期("EXPIRED", "EXPIRED"),
文件完成("COMPLETE", "COMPLETE"),
发送作废("SEND_INVALID", "SEND_INVALID"),
签署作废("INVALIDING", "INVALIDING"),
作废完成("INVALIDED", "INVALIDED"),
拒绝作废("INVALID_REJECTED", "INVALID_REJECTED"),
签署失败("FAILED", "FAILED"),
未知("UNKNOWN", "UNKNOWN"),
强制结束("END", "END");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
public static CallbackTypeEnum getNodeByCode(String code) {
CallbackTypeEnum dealerReviewEnum = null;
for(CallbackTypeEnum type: CallbackTypeEnum.values()) {
if (type.getCode().equals(code)) {
dealerReviewEnum = type;
break;
}
}
return dealerReviewEnum;
}
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:
* @author: tw
* @createDate: 2023/8/25
*/
@Getter
@AllArgsConstructor
public enum ContractStatusEnum {
草稿("DRAFT", "DRAFT"),
已撤回("RECALLED", "RECALLED"),
签署中("SIGNING", "SIGNING"),
已退回("REJECTED", "REJECTED"),
已完成("COMPLETE", "COMPLETE"),
已过期("EXPIRED", "EXPIRED"),
拟定中("FILLING", "FILLING"),
签署失败("FAILED", "FAILED"),
作废中("INVALIDING", "INVALIDING"),
已作废("INVALIDED", "INVALIDED"),
强制结束("END", "END");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
public static ContractStatusEnum getNodeByCode(String code) {
ContractStatusEnum dealerReviewEnum = null;
for(ContractStatusEnum type: ContractStatusEnum.values()) {
if (type.getCode().equals(code)) {
dealerReviewEnum = type;
break;
}
}
return dealerReviewEnum;
}
}
...@@ -23,7 +23,8 @@ public enum HouseholdContractEnum { ...@@ -23,7 +23,8 @@ public enum HouseholdContractEnum {
勘察状态_未勘察("未勘察", "未勘察"), 勘察状态_未勘察("未勘察", "未勘察"),
勘察状态_已勘察("已勘察", "已勘察"), 勘察状态_已勘察("已勘察", "已勘察"),
合同状态_未签署("未签署", "未签署"), 合同状态_未签署("未签署", "未签署"),
合同状态_已签署("已签署", "已签署"), 合同状态_农户已签署("农户已签署", "农户已签署"),
合同状态_双方已签署("双方已签署", "双方已签署"),
合同状态_已作废("已作废", "已作废"); 合同状态_已作废("已作废", "已作废");
/** /**
* 名称,描述 * 名称,描述
...@@ -34,9 +35,9 @@ public enum HouseholdContractEnum { ...@@ -34,9 +35,9 @@ public enum HouseholdContractEnum {
*/ */
private String code; private String code;
public static PowerStationNodeEnum getNodeByCode(String code) { public static HouseholdContractEnum getNodeByCode(String code) {
PowerStationNodeEnum powerStationNodeEnum = null; HouseholdContractEnum powerStationNodeEnum = null;
for(PowerStationNodeEnum type: PowerStationNodeEnum.values()) { for(HouseholdContractEnum type: HouseholdContractEnum.values()) {
if (type.getCode().equals(code)) { if (type.getCode().equals(code)) {
powerStationNodeEnum = type; powerStationNodeEnum = type;
break; break;
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 农户认证状态
*
* @author Provence
* @version v1.0
* @date 2023/8/25 10:17
*/
@Getter
@AllArgsConstructor
public enum PeasantHouseholdEnum {
未认证("未认证", 0),
已认证("已认证", 1);
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private int code;
public static PeasantHouseholdEnum getNodeByCode(int code) {
PeasantHouseholdEnum peasantHouseholdEnum = null;
for (PeasantHouseholdEnum type : PeasantHouseholdEnum.values()) {
if (type.getCode() == code) {
peasantHouseholdEnum = type;
break;
}
}
return peasantHouseholdEnum;
}
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import lombok.Data;
/**
* @description:
* @author: tw
* @createDate: 2023/8/25
*/
@Data
public class CallbackDto {
private String contractId; //当前回调的合同 Id
private String callbackType;//当前回调的通知类型,具体类型信息见后方列 表
private String callbackSourceType ; //当前回调地址来源,具体分为业务分类、集成 管理、SaaS
private String contractStatus;//当前回调的合同状态,具体类型信息见后方列表
private String tenantType; //签署方类型: PERSONAL-个人 COMPANY-公司
private String tenantName; //签署方名称
private String contact; //联系方式
private String tenantId;// 签署方 ID
}
...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.hygf.api.dto; ...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.hygf.api.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.Valid;
/** /**
* *
* @author Provence * @author Provence
...@@ -61,5 +63,5 @@ public class MobileLoginParamDto { ...@@ -61,5 +63,5 @@ public class MobileLoginParamDto {
private String verifyCode; private String verifyCode;
@ApiModelProperty("农户信息") @ApiModelProperty("农户信息")
private PeasantHouseholdDto peasantHouseholdDto; private @Valid PeasantHouseholdDto peasantHouseholdDto;
} }
...@@ -9,6 +9,9 @@ import lombok.Data; ...@@ -9,6 +9,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -39,13 +42,16 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -39,13 +42,16 @@ public class PeasantHouseholdDto extends BaseDto {
private String telephone; private String telephone;
@ApiModelProperty(value = "开发方名称") @ApiModelProperty(value = "开发方名称")
@NotBlank(message = "开发方名称不能为空")
private String developerName; private String developerName;
@ApiModelProperty(value = "开发方code") @ApiModelProperty(value = "开发方code")
@NotBlank(message = "开发方code不能为空")
private String developerCode; private String developerCode;
@ApiModelProperty(value = "开发方平台id") @ApiModelProperty(value = "开发方平台id")
@NotNull(message = "开发方平台id不能为空")
private Long developerId; private Long developerId;
@ApiModelProperty(value = "定金") @ApiModelProperty(value = "定金")
...@@ -90,7 +96,9 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -90,7 +96,9 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "常住详细地址") @ApiModelProperty(value = "常住详细地址")
private String permanentAddressDetail; private String permanentAddressDetail;
@ApiModelProperty(value = "开发人") @ApiModelProperty(value = "开发人")
@NotBlank(message = "开发人不能为空")
private String developer; private String developer;
@ApiModelProperty(value = "常住地址") @ApiModelProperty(value = "常住地址")
...@@ -108,20 +116,25 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -108,20 +116,25 @@ public class PeasantHouseholdDto extends BaseDto {
private List<String> permanentAddressText; private List<String> permanentAddressText;
@ApiModelProperty(value = "区域公司id") @ApiModelProperty(value = "区域公司id")
@NotNull(message = "区域公司id不能为空")
private Long regionalCompaniesSeq; private Long regionalCompaniesSeq;
@ApiModelProperty(value = "区域公司code") @ApiModelProperty(value = "区域公司code")
@NotBlank(message = "区域公司code不能为空")
private String regionalCompaniesCode; private String regionalCompaniesCode;
@ApiModelProperty(value = "区域公司名称") @ApiModelProperty(value = "区域公司名称")
@NotBlank(message = "区域公司名称不能为空")
private String regionalCompaniesName; private String regionalCompaniesName;
@ApiModelProperty(value = "身份证正面") @ApiModelProperty(value = "身份证正面")
@TableField(typeHandler = FastjsonTypeHandler.class) @TableField(typeHandler = FastjsonTypeHandler.class)
@NotEmpty(message = "身份证正面不能为空")
private List<Object> idCardFront; private List<Object> idCardFront;
@ApiModelProperty(value = "身份证反面") @ApiModelProperty(value = "身份证反面")
@TableField(typeHandler = FastjsonTypeHandler.class) @TableField(typeHandler = FastjsonTypeHandler.class)
@NotEmpty(message = "身份证反面不能为空")
private List<Object> idCardOpposite; private List<Object> idCardOpposite;
@ApiModelProperty(value = "微信唯一id") @ApiModelProperty(value = "微信唯一id")
......
...@@ -31,7 +31,8 @@ ...@@ -31,7 +31,8 @@
d.next_process_node nextProcessNode, d.next_process_node nextProcessNode,
d.flow_task_id flowTaskId, d.flow_task_id flowTaskId,
d.plan_instance_id planInstanceId, d.plan_instance_id planInstanceId,
u.admin_user_id adminUserId u.admin_user_id adminUserId,
u.regional_companies_name regionalCompaniesName
from hygf_commerce_info c LEFT JOIN hygf_unit_info u on c.unit_seq=u.sequence_nbr LEFT JOIN hygf_dealer_review d on d.unit_info_id=u.sequence_nbr from hygf_commerce_info c LEFT JOIN hygf_unit_info u on c.unit_seq=u.sequence_nbr LEFT JOIN hygf_dealer_review d on d.unit_info_id=u.sequence_nbr
<where> <where>
u.is_delete=0 u.is_delete=0
......
...@@ -22,13 +22,13 @@ import java.util.List; ...@@ -22,13 +22,13 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServiceImpl;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractDto; import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
...@@ -158,6 +158,7 @@ public class HouseholdContractController extends BaseController { ...@@ -158,6 +158,7 @@ public class HouseholdContractController extends BaseController {
HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr); HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr);
householdContrac.setSignStatus(HouseholdContractEnum.签字状态_已签字.getCode()); householdContrac.setSignStatus(HouseholdContractEnum.签字状态_已签字.getCode());
householdContrac.setStatus(HouseholdContractEnum.合同状态_农户已签署.getCode());
return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac)); return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
...@@ -168,7 +169,7 @@ public class HouseholdContractController extends BaseController { ...@@ -168,7 +169,7 @@ public class HouseholdContractController extends BaseController {
HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr); HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr);
householdContrac.setStampStatus(HouseholdContractEnum.盖章状态_已盖章.getCode()); householdContrac.setStampStatus(HouseholdContractEnum.盖章状态_已盖章.getCode());
householdContrac.setSigningTime(new Date()); householdContrac.setSigningTime(new Date());
householdContrac.setStatus(HouseholdContractEnum.合同状态_已签署.getCode()); householdContrac.setStatus(HouseholdContractEnum.合同状态_双方已签署.getCode());
householdContrac.setSealedUser(getUserInfo().getRealName()); householdContrac.setSealedUser(getUserInfo().getRealName());
return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac)); return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac));
} }
...@@ -198,33 +199,10 @@ public class HouseholdContractController extends BaseController { ...@@ -198,33 +199,10 @@ public class HouseholdContractController extends BaseController {
} }
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/reissue/{sequenceNbr}") @PostMapping (value = "/reissue")
@ApiOperation(httpMethod = "GET", value = "重新发起", notes = "重新发起") @ApiOperation(httpMethod = "post", value = "重新发起", notes = "重新发起")
public ResponseModel<HouseholdContract> reissue(@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<HouseholdContract> reissue(@RequestBody HouseholdContract model ) {
HouseholdContract peasantHousehold= householdContractServiceImpl.getById(sequenceNbr); HouseholdContract householdContract= householdContractServiceImpl.reissueinitiateHouseholdContract(model);
//生成合同
HouseholdContract householdContract=new HouseholdContract();
householdContract.setPartyA(peasantHousehold.getPartyA());
householdContract.setPeasantHouseholdNumber(peasantHousehold.getPeasantHouseholdNumber());
householdContract.setPeasantHouseholdCard(peasantHousehold.getPeasantHouseholdCard());
householdContract.setDealerId(peasantHousehold.getDealerId());
householdContract.setDealerCode(peasantHousehold.getDealerCode());
householdContract.setDealerName(peasantHousehold.getDealerName());
householdContract.setPeasantHouseholdId(peasantHousehold.getPeasantHouseholdId());
householdContract.setRegionalCompaniesCode(peasantHousehold.getRegionalCompaniesCode());
householdContract.setRegionalCompaniesName(peasantHousehold.getRegionalCompaniesName());
householdContract.setRegionalCompaniesSeq(peasantHousehold.getRegionalCompaniesSeq());
householdContract.setPeasantHouseholdPhone(peasantHousehold.getPeasantHouseholdPhone());
householdContract.setProjectAddressDetail(peasantHousehold.getProjectAddressDetail());
householdContract.setProjectAddressName(peasantHousehold.getProjectAddressName());
householdContract.setPermanentAddressDetail(peasantHousehold.getPermanentAddressDetail());
householdContract.setPermanentAddressName(peasantHousehold.getPermanentAddressName());
householdContract.setProjectUserId(peasantHousehold.getProjectUserId());
householdContract.setSurveyStatus(peasantHousehold.getSurveyStatus());
householdContractServiceImpl.reissueHouseholdContract(householdContract);
householdContractServiceImpl.reissueinitiateHouseholdContract(peasantHousehold,householdContract.getSequenceNbr());
return ResponseHelper.buildResponse(householdContract); return ResponseHelper.buildResponse(householdContract);
} }
......
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PeasantHouseholdEnum;
import com.yeejoin.amos.boot.module.hygf.api.dto.SurveyInformationDto; import com.yeejoin.amos.boot.module.hygf.api.dto.SurveyInformationDto;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
...@@ -208,7 +209,8 @@ public class PeasantHouseholdController extends BaseController { ...@@ -208,7 +209,8 @@ public class PeasantHouseholdController extends BaseController {
page.setSize(size); page.setSize(size);
AgencyUserModel userInfo = getUserInfo(); AgencyUserModel userInfo = getUserInfo();
String orgCode = userInfo.getCompanys().get(0).getOrgCode(); String orgCode = userInfo.getCompanys().get(0).getOrgCode();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdPage(page,orgCode,ownersName,developerId)); Integer isCertified = PeasantHouseholdEnum.已认证.getCode();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdPage(page,orgCode,ownersName,developerId,isCertified));
} }
/** /**
...@@ -220,7 +222,8 @@ public class PeasantHouseholdController extends BaseController { ...@@ -220,7 +222,8 @@ public class PeasantHouseholdController extends BaseController {
@ApiOperation(httpMethod = "GET",value = "农户信息列表全部数据查询", notes = "农户信息列表全部数据查询") @ApiOperation(httpMethod = "GET",value = "农户信息列表全部数据查询", notes = "农户信息列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<PeasantHouseholdDto>> selectForList() { public ResponseModel<List<PeasantHouseholdDto>> selectForList() {
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdList()); Integer isCertified = PeasantHouseholdEnum.已认证.getCode();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdList(isCertified));
} }
public JSONArray getRegionName(){ public JSONArray getRegionName(){
......
...@@ -11,6 +11,8 @@ import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServi ...@@ -11,6 +11,8 @@ import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServi
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PeasantHouseholdServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PeasantHouseholdServiceImpl;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
...@@ -19,16 +21,17 @@ import io.swagger.annotations.Api; ...@@ -19,16 +21,17 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
...@@ -41,6 +44,7 @@ import java.util.Collection; ...@@ -41,6 +44,7 @@ import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture;
/** /**
* 农户信息 * 农户信息
...@@ -75,6 +79,9 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -75,6 +79,9 @@ public class PeasantHouseholdWxController extends BaseController {
@Value("${hygfProgram.loginPage:view/mine/minepage/LoginPhone}") @Value("${hygfProgram.loginPage:view/mine/minepage/LoginPhone}")
private String miniprogramLoginPage; private String miniprogramLoginPage;
@Autowired
private AmosRequestContext requestContext;
private static final String regionRedis = "app_region_redis"; private static final String regionRedis = "app_region_redis";
/*@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false) /*@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
...@@ -105,11 +112,11 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -105,11 +112,11 @@ public class PeasantHouseholdWxController extends BaseController {
@RequestMapping (value = "/login", method = RequestMethod.POST) @RequestMapping (value = "/login", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆") @ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆")
public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) { public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
log.info("微信授权登录入参 => {}", mobileLoginParam);
if (StringUtils.isBlank(mobileLoginParam.getAmosUserId())) { if (StringUtils.isBlank(mobileLoginParam.getAmosUserId())) {
// 扫码的userId为空, 则取默认值 // 扫码的userId为空, 则取默认值
mobileLoginParam.setAmosUserId(defaultUserId); mobileLoginParam.setAmosUserId(defaultUserId);
} }
//peasantHouseholdServiceImpl.setPlatFormAccess();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserLogin(mobileLoginParam)); return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserLogin(mobileLoginParam));
} }
...@@ -117,11 +124,9 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -117,11 +124,9 @@ public class PeasantHouseholdWxController extends BaseController {
@RequestMapping (value = "/register", method = RequestMethod.POST) @RequestMapping (value = "/register", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册") @ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册")
public ResponseModel<PeasantHouseholdDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) { public ResponseModel<PeasantHouseholdDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
// log.info("微信农户注册, 入参 => {}", JSONObject.toJSONString(mobileLoginParam)); log.info("微信农户注册, 入参 => {}", mobileLoginParam);
if (null == mobileLoginParam.getPeasantHouseholdDto()) {
throw new BadRequest("农户信息不能为空");
}
PeasantHouseholdDto model = mobileLoginParam.getPeasantHouseholdDto(); PeasantHouseholdDto model = mobileLoginParam.getPeasantHouseholdDto();
validatedPeasantHouseholdDto(model);
AgencyUserModel userInfo = getUserInfo(); AgencyUserModel userInfo = getUserInfo();
model.setAmosUserId(userInfo.getUserId());// 绑定平台userId model.setAmosUserId(userInfo.getUserId());// 绑定平台userId
model.setPeasantHouseholdNo(peasantHouseholdServiceImpl.getPeasantHouseholdNo()); model.setPeasantHouseholdNo(peasantHouseholdServiceImpl.getPeasantHouseholdNo());
...@@ -158,7 +163,8 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -158,7 +163,8 @@ public class PeasantHouseholdWxController extends BaseController {
} }
} }
} }
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.savePeasantHousehold(model)); PeasantHouseholdDto result = peasantHouseholdServiceImpl.savePeasantHousehold(model, userInfo);
return ResponseHelper.buildResponse(result);
} }
public JSONArray getRegionName() { public JSONArray getRegionName() {
...@@ -219,17 +225,34 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -219,17 +225,34 @@ public class PeasantHouseholdWxController extends BaseController {
} }
@GetMapping("/getPersonalQrCode") private void validatedPeasantHouseholdDto(PeasantHouseholdDto model) {
@ApiOperation (httpMethod = "GET", value = " 获取个人经销商二维码", notes = " 获取个人经销商二维码") if (null == model) {
public void getPersonalQrCode( throw new BadRequest("农户信息不能为空");
@RequestParam (value = "fileType", required = false, defaultValue = "png") String fileType, }
@RequestParam (value = "width", required = false, defaultValue = "350") String width, if (StringUtils.isBlank(model.getOwnersName())) {
HttpServletResponse response) { throw new BadRequest("姓名不能为空");
AgencyUserModel userInfo = getUserInfo(); }
String accessToken = wxService.getAccessToken(); if (StringUtils.isBlank(model.getDeveloper())) {
String page = "view/mine/minepage/Login" + "?amosUserId=" + userInfo.getUserId() + "&qrCodeType=personal"; throw new BadRequest("开发人不能为空");
wxService.getSmallProQrCodeResponse(accessToken, null, page, Long.valueOf(width), null, null, null, response, }
page, fileType); if (StringUtils.isBlank(model.getDeveloperCode())) {
throw new BadRequest("开发方code不能为空");
}
if (StringUtils.isBlank(model.getDeveloperName())) {
throw new BadRequest("开发方名称不能为空");
}
if (null == model.getDeveloperId()) {
throw new BadRequest("开发方平台id不能为空");
}
if (null == model.getRegionalCompaniesSeq()) {
throw new BadRequest("区域公司id不能为空");
}
if (StringUtils.isBlank(model.getRegionalCompaniesCode())) {
throw new BadRequest("区域公司code不能为空");
}
if (StringUtils.isBlank(model.getRegionalCompaniesName())) {
throw new BadRequest("区域公司名称不能为空");
}
} }
} }
...@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller; ...@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.qiyuesuo.sdk.v2.SdkClient; import com.qiyuesuo.sdk.v2.SdkClient;
import com.qiyuesuo.sdk.v2.bean.*; import com.qiyuesuo.sdk.v2.bean.*;
import com.qiyuesuo.sdk.v2.exception.BaseSdkException; import com.qiyuesuo.sdk.v2.exception.BaseSdkException;
...@@ -11,6 +13,11 @@ import com.qiyuesuo.sdk.v2.response.ContractListResult; ...@@ -11,6 +13,11 @@ import com.qiyuesuo.sdk.v2.response.ContractListResult;
import com.qiyuesuo.sdk.v2.response.DocumentAddResult; import com.qiyuesuo.sdk.v2.response.DocumentAddResult;
import com.qiyuesuo.sdk.v2.response.MiniappTicketResult; import com.qiyuesuo.sdk.v2.response.MiniappTicketResult;
import com.qiyuesuo.sdk.v2.response.SdkResponse; import com.qiyuesuo.sdk.v2.response.SdkResponse;
import com.qiyuesuo.sdk.v2.utils.Algorithm;
import com.qiyuesuo.sdk.v2.utils.Base64Utils;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.hygf.api.Enum.HouseholdContractEnum;
import com.yeejoin.amos.boot.module.hygf.api.dto.CallbackDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.ContractDataDto; import com.yeejoin.amos.boot.module.hygf.api.dto.ContractDataDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractDto; import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.HouseholdContract; import com.yeejoin.amos.boot.module.hygf.api.entity.HouseholdContract;
...@@ -23,12 +30,16 @@ import io.swagger.annotations.ApiOperation; ...@@ -23,12 +30,16 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -43,7 +54,7 @@ import java.util.Map; ...@@ -43,7 +54,7 @@ import java.util.Map;
@RestController @RestController
@Api(tags = "契税锁Api") @Api(tags = "契税锁Api")
@RequestMapping(value = "/qiyuesuo") @RequestMapping(value = "/qiyuesuo")
public class QiyuesuoController { public class QiyuesuoController extends BaseController {
private static final Logger logger = LoggerFactory.getLogger(QiyuesuoController.class); private static final Logger logger = LoggerFactory.getLogger(QiyuesuoController.class);
@Autowired @Autowired
...@@ -53,6 +64,10 @@ public class QiyuesuoController { ...@@ -53,6 +64,10 @@ public class QiyuesuoController {
@Autowired @Autowired
HouseholdContractServiceImpl householdContractServiceImpl; HouseholdContractServiceImpl householdContractServiceImpl;
@Value("${qiyuesuo.secretKey}")
private String secretKey;
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "个人token", notes = "个人token") @ApiOperation(httpMethod = "post",value = "个人token", notes = "个人token")
@PostMapping (value = "/getUserToken") @PostMapping (value = "/getUserToken")
...@@ -96,6 +111,70 @@ public class QiyuesuoController { ...@@ -96,6 +111,70 @@ public class QiyuesuoController {
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "契约锁回调接口", notes = "契约锁回调接口")
@PostMapping (value = "/callback")
public String callback( String content) {
try {
System.out.println("契约锁回调接口"+content);
String data= this.aesDerypt(content,secretKey);
System.out.println("契约锁回调接口解析数据"+data);
CallbackDto CallbackDto= JSON.parseObject(data,CallbackDto.class);
if("PERSONAL".equals(CallbackDto.getCallbackType())){
LambdaUpdateWrapper<HouseholdContract> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(HouseholdContract::getSignStatus,HouseholdContractEnum.签字状态_已签字.getCode());
wrapper.set(HouseholdContract::getStatus,HouseholdContractEnum.合同状态_农户已签署.getCode());
wrapper.eq(HouseholdContract::getContractLockId,CallbackDto.getContractId());
householdContractServiceImpl.update(wrapper);
}else if("SEAL".equals(CallbackDto.getCallbackType())){
LambdaUpdateWrapper<HouseholdContract> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(HouseholdContract::getStampStatus,HouseholdContractEnum.盖章状态_已盖章.getCode());
wrapper.set(HouseholdContract::getSigningTime,new Date());
wrapper.set(HouseholdContract::getStatus,HouseholdContractEnum.合同状态_双方已签署.getCode());
wrapper.set(HouseholdContract::getSealedUser,getUserInfo().getRealName());
wrapper.eq(HouseholdContract::getContractLockId,CallbackDto.getContractId());
householdContractServiceImpl.update(wrapper);
}
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("契约锁回调失败");
}
return "success";
}
public String aesDerypt(String encrypt, String secret){
String decryptStr = null;
try {
byte[] decryptBytes = null;
Cipher cipher = Cipher.getInstance(Algorithm.AES.getKey());
byte[] bk = secret.getBytes("UTF-8");
SecretKey secretKey = new SecretKeySpec(bk, Algorithm.AES.getKey());
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] scrBytes = Base64Utils.decode(encrypt);
decryptBytes = cipher.doFinal(scrBytes);
if (decryptBytes != null) {
decryptStr = new String(decryptBytes, "UTF-8");
}
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("解密失败");
}
return decryptStr;
}
......
...@@ -15,6 +15,7 @@ import com.yeejoin.amos.boot.module.hygf.api.service.IHouseholdContractService; ...@@ -15,6 +15,7 @@ import com.yeejoin.amos.boot.module.hygf.api.service.IHouseholdContractService;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -116,7 +117,7 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD ...@@ -116,7 +117,7 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD
} }
@Transactional
public HouseholdContract initiateHouseholdContract(HouseholdContractDto model){ public HouseholdContract initiateHouseholdContract(HouseholdContractDto model){
HouseholdContract householdContract= householdContractMapper.selectById(model.getSequenceNbr()); HouseholdContract householdContract= householdContractMapper.selectById(model.getSequenceNbr());
householdContract.setPartyA(model.getPartyA()); householdContract.setPartyA(model.getPartyA());
...@@ -190,9 +191,13 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD ...@@ -190,9 +191,13 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD
} }
@Transactional
public HouseholdContract reissueinitiateHouseholdContract(HouseholdContract model){
public HouseholdContract reissueinitiateHouseholdContract(HouseholdContract model,Long sequenceNbr){ HouseholdContract peasantHousehold= this.getById(model.getSequenceNbr());
HouseholdContract householdContract= householdContractMapper.selectById(sequenceNbr); //生成合同
HouseholdContract householdContract=new HouseholdContract();
householdContract.setPartyA(model.getPartyA()); householdContract.setPartyA(model.getPartyA());
householdContract.setPartyB(model.getPartyB()); householdContract.setPartyB(model.getPartyB());
householdContract.setContractTemplateId(model.getContractTemplateId()); householdContract.setContractTemplateId(model.getContractTemplateId());
...@@ -205,13 +210,35 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD ...@@ -205,13 +210,35 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD
householdContract.setComponentPower(model.getComponentPower()); householdContract.setComponentPower(model.getComponentPower());
householdContract.setStationPower(model.getStationPower()); householdContract.setStationPower(model.getStationPower());
householdContract.setName(model.getName()); householdContract.setName(model.getName());
ContractDataDto contractDataDto =new ContractDataDto();
contractDataDto.setUsername(model.getPartyA());
contractDataDto.setContact(model.getPeasantHouseholdPhone());
contractDataDto.setIDCard(model.getPeasantHouseholdCard());
contractDataDto.setSubject(model.getName());
householdContract.setPeasantHouseholdNumber(peasantHousehold.getPeasantHouseholdNumber());
householdContract.setPeasantHouseholdCard(peasantHousehold.getPeasantHouseholdCard());
householdContract.setDealerId(peasantHousehold.getDealerId());
householdContract.setDealerCode(peasantHousehold.getDealerCode());
householdContract.setDealerName(peasantHousehold.getDealerName());
householdContract.setPeasantHouseholdId(peasantHousehold.getPeasantHouseholdId());
householdContract.setRegionalCompaniesCode(peasantHousehold.getRegionalCompaniesCode());
householdContract.setRegionalCompaniesName(peasantHousehold.getRegionalCompaniesName());
householdContract.setRegionalCompaniesSeq(peasantHousehold.getRegionalCompaniesSeq());
householdContract.setPeasantHouseholdPhone(peasantHousehold.getPeasantHouseholdPhone());
householdContract.setProjectAddressDetail(peasantHousehold.getProjectAddressDetail());
householdContract.setProjectAddressName(peasantHousehold.getProjectAddressName());
householdContract.setPermanentAddressDetail(peasantHousehold.getPermanentAddressDetail());
householdContract.setPermanentAddressName(peasantHousehold.getPermanentAddressName());
householdContract.setProjectUserId(peasantHousehold.getProjectUserId());
householdContract.setSurveyStatus(peasantHousehold.getSurveyStatus());
this.reissueHouseholdContract(householdContract);
ContractDataDto contractDataDto =new ContractDataDto();
contractDataDto.setUsername(householdContract.getPartyA());
contractDataDto.setContact(householdContract.getPeasantHouseholdPhone());
contractDataDto.setIDCard(householdContract.getPeasantHouseholdCard());
contractDataDto.setSubject(householdContract.getName());
QueryWrapper<SealDictionary> queryWrapper=new QueryWrapper(); QueryWrapper<SealDictionary> queryWrapper=new QueryWrapper();
queryWrapper.eq("amos_company_seq",householdContract.getRegionalCompaniesSeq()); queryWrapper.eq("amos_company_seq",householdContract.getRegionalCompaniesSeq());
...@@ -225,9 +252,9 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD ...@@ -225,9 +252,9 @@ public class HouseholdContractServiceImpl extends BaseService<HouseholdContractD
contractDataDto.setSealId(listSealId); contractDataDto.setSealId(listSealId);
QueryWrapper<ContractTemplate> qu=new QueryWrapper(); QueryWrapper<ContractTemplate> qu=new QueryWrapper();
qu.eq("template_id",model.getContractTemplateId()); qu.eq("template_id",householdContract.getContractTemplateId());
ContractTemplate contractTemplate=contractTemplateMapper.selectOne(qu); ContractTemplate contractTemplate=contractTemplateMapper.selectOne(qu);
contractDataDto.setEmplateId(model.getContractTemplateId()); contractDataDto.setEmplateId(householdContract.getContractTemplateId());
contractDataDto.setCompanykeyword(contractTemplate.getCompanyKeyword()); contractDataDto.setCompanykeyword(contractTemplate.getCompanyKeyword());
contractDataDto.setCompanyPage(contractTemplate.getCompanyPage()); contractDataDto.setCompanyPage(contractTemplate.getCompanyPage());
contractDataDto.setCompanyOffsetX(contractTemplate.getCompanyOffsetx()); contractDataDto.setCompanyOffsetX(contractTemplate.getCompanyOffsetx());
......
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PeasantHouseholdEnum;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PhoneRegisterTypeEum; import com.yeejoin.amos.boot.module.hygf.api.Enum.PhoneRegisterTypeEum;
import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto; import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto;
...@@ -69,6 +70,7 @@ import java.util.HashMap; ...@@ -69,6 +70,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -150,7 +152,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -150,7 +152,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
public static final String SECRETKEY = "qaz"; public static final String SECRETKEY = "qaz";
@Transactional (rollbackFor = Exception.class) @Transactional (rollbackFor = Exception.class)
public PeasantHouseholdDto savePeasantHousehold(PeasantHouseholdDto model) { public PeasantHouseholdDto savePeasantHousehold(PeasantHouseholdDto model, AgencyUserModel userInfo) {
SurveyInformationDto surveyInformationDto = new SurveyInformationDto(); SurveyInformationDto surveyInformationDto = new SurveyInformationDto();
surveyInformationServiceImpl.createWithModel(surveyInformationDto); surveyInformationServiceImpl.createWithModel(surveyInformationDto);
...@@ -163,8 +165,17 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -163,8 +165,17 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
model.setPeasantHouseholdNo(this.getPeasantHouseholdNo()); model.setPeasantHouseholdNo(this.getPeasantHouseholdNo());
model.setIsCertified(model.getIsCertified() == null ? 0 : model.getIsCertified());// 未认证 model.setIsCertified(model.getIsCertified() == null ? 0 : model.getIsCertified());// 未认证
if (model.getSequenceNbr() == null) {
List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", model.getTelephone()).orderByDesc("rec_date").list();
PeasantHousehold phd = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null;
if (phd != null) {
model.setSequenceNbr(phd.getSequenceNbr());
}
}
PeasantHouseholdDto peasantHousehold= this.createWithModel(model); PeasantHousehold peasantHousehold = new PeasantHousehold();
BeanUtils.copyProperties(model, peasantHousehold);
this.saveOrUpdate(peasantHousehold);
//生成合同 //生成合同
HouseholdContract householdContract=new HouseholdContract(); HouseholdContract householdContract=new HouseholdContract();
householdContract.setPartyA(peasantHousehold.getOwnersName()); householdContract.setPartyA(peasantHousehold.getOwnersName());
...@@ -185,7 +196,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -185,7 +196,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
householdContract.setProjectUserId(peasantHousehold.getAmosUserId()); householdContract.setProjectUserId(peasantHousehold.getAmosUserId());
householdContractServiceImpl.addHouseholdContract(householdContract); householdContractServiceImpl.addHouseholdContract(householdContract);
return peasantHousehold; return model;
} }
public boolean deletePeasantHouseholdBySequenceNbr(Long sequenceNbr){ public boolean deletePeasantHouseholdBySequenceNbr(Long sequenceNbr){
...@@ -216,21 +227,21 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -216,21 +227,21 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
/** /**
* 分页查询 * 分页查询
*/ */
public Page<PeasantHouseholdDto> queryForPeasantHouseholdPage(Page<PeasantHouseholdDto> page,String developerCode,@Condition(Operator.like) String ownersName,Long developerId) { public Page<PeasantHouseholdDto> queryForPeasantHouseholdPage(Page<PeasantHouseholdDto> page,String developerCode,@Condition(Operator.like) String ownersName,Long developerId, @Condition(Operator.eq) Integer isCertified) {
Page<PeasantHouseholdDto> peasantHouseholdDtoPage = this.queryForPage(page, "rec_date", false,developerCode,ownersName,developerId); Page<PeasantHouseholdDto> peasantHouseholdDtoPage = this.queryForPage(page, "rec_date", false,developerCode,ownersName,developerId, isCertified);
List<PeasantHouseholdDto> records = peasantHouseholdDtoPage.getRecords(); List<PeasantHouseholdDto> records = peasantHouseholdDtoPage.getRecords();
List<PeasantHouseholdDto> newRecords = records.stream().map(item -> { List<PeasantHouseholdDto> newRecords = records.stream().map(item -> {
if(item.getSurveyOrNot() != null){ if(item.getSurveyOrNot() != null){
if (item.getSurveyOrNot() == 0) { if (item.getSurveyOrNot() == 0) {
item.setSurveyOrNotText("待勘察"); item.setSurveyOrNotText("待勘察");
} else if (item.getSurveyOrNot() == 1) { } else if (item.getSurveyOrNot() == 1) {
item.setSurveyOrNotText("已勘察"); item.setSurveyOrNotText("已勘察");
} else if (item.getSurveyOrNot() == 2) { } else if (item.getSurveyOrNot() == 2) {
item.setSurveyOrNotText("审核中"); item.setSurveyOrNotText("审核中");
} else if (item.getSurveyOrNot() == 3) { } else if (item.getSurveyOrNot() == 3) {
item.setSurveyOrNotText("审核完成"); item.setSurveyOrNotText("审核完成");
} }
} }
if (!StringUtils.isEmpty(item.getProjectAddressName())) { if (!StringUtils.isEmpty(item.getProjectAddressName())) {
item.setProjectAddressText(Arrays.asList(item.getProjectAddressName().split("/"))); item.setProjectAddressText(Arrays.asList(item.getProjectAddressName().split("/")));
...@@ -249,8 +260,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -249,8 +260,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
/** /**
* 列表查询 示例 * 列表查询 示例
*/ */
public List<PeasantHouseholdDto> queryForPeasantHouseholdList() { public List<PeasantHouseholdDto> queryForPeasantHouseholdList(@Condition(Operator.eq) Integer isCertified) {
return this.queryForList("" , false); return this.queryForList("" , false, isCertified);
} }
public Boolean doAuthenticate(Long sequenceNbr) { public Boolean doAuthenticate(Long sequenceNbr) {
...@@ -263,21 +274,23 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -263,21 +274,23 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
return this.updateById(peasantHousehold); return this.updateById(peasantHousehold);
} }
@Transactional(rollbackFor = Exception.class)
public PeasantHouseholdWxDto wxUserLogin(MobileLoginParamDto wxDTO) { public PeasantHouseholdWxDto wxUserLogin(MobileLoginParamDto wxDTO) {
// 通过手机号和验证码调用平台接口进行验证 // 通过手机号和验证码调用平台接口进行验证
String phoneNo = this.parsePhoneNo(wxDTO); String phoneNo = this.parsePhoneNo(wxDTO);
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); log.error("获取手机号失败!");
throw new BadRequest("微信授权失败, 请重新授权");
} }
log.info("用户手机号码 => {} 开始登录", phoneNo); log.info("用户手机号码 => {} 开始登录", phoneNo);
wxDTO.setPhoneNo(phoneNo); wxDTO.setPhoneNo(phoneNo);
// // 机器人token
RequestContext.setAppKey("AMOS_STUDIO"); RequestContext.setAppKey("AMOS_STUDIO");
RequestContext.setProduct("AMOS_STUDIO_WEB"); RequestContext.setProduct("AMOS_STUDIO_WEB");
RequestContext.setToken(requestContext.getToken()); RequestContext.setToken(requestContext.getToken());
AgencyUserModel registerUserModel = null; AgencyUserModel registerUserModel = null;
// 判断有无在平台内部注册过用户 // region 判断有无在平台内部注册过用户 没有注册则去平台注册
FeignClientResult<LoginInfoModel> loginInfo = Privilege.agencyUserClient.getLoginInfo(phoneNo); FeignClientResult<LoginInfoModel> loginInfo = Privilege.agencyUserClient.getLoginInfo(phoneNo);
if (loginInfo != null && 200 == loginInfo.getStatus()) { if (loginInfo != null && 200 == loginInfo.getStatus()) {
...@@ -285,39 +298,68 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -285,39 +298,68 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
if (loginInfoModel == null || !StringUtils.isNotBlank(loginInfoModel.getLoginId())) { if (loginInfoModel == null || !StringUtils.isNotBlank(loginInfoModel.getLoginId())) {
// 没有认证过, 去注册用户 // 没有认证过, 去注册用户
FeignClientResult<AgencyUserModel> registerUserModelRestult = doRegister(wxDTO); FeignClientResult<AgencyUserModel> registerUserModelRestult = doRegister(wxDTO);
if (registerUserModelRestult != null && registerUserModelRestult.getStatus() != 200) { if (registerUserModelRestult == null || registerUserModelRestult.getStatus() != 200) {
log.error("调用平台创建用户信息失败:{}" + registerUserModelRestult.getDevMessage()); log.error("用户手机号码 => " + phoneNo + " 调用平台创建用户信息失败: " + registerUserModelRestult.getDevMessage());
throw new BadRequest(registerUserModelRestult.getMessage()); throw new RuntimeException(registerUserModelRestult.getMessage());
} }
registerUserModel = registerUserModelRestult.getResult(); registerUserModel = registerUserModelRestult.getResult();
} }
} }
// endregion
// 登录 // 登录
PeasantHouseholdWxDto loginResult = doLogin(wxDTO, registerUserModel); PeasantHouseholdWxDto loginResult;
// 判断是否注册过 try {
List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).orderByDesc("rec_date").list(); loginResult = doLogin(wxDTO, registerUserModel);
PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null; // 查询农户信息
// 没有注册过农户信息 List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).orderByDesc("rec_date").list();
if (null == peasantHousehold) { PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null;
peasantHousehold = new PeasantHousehold(); if (null == peasantHousehold) {
peasantHousehold.setIsCertified(0); peasantHousehold = new PeasantHousehold();
peasantHousehold.setSurveyOrNot(0); peasantHousehold.setIsCertified(0);
peasantHousehold.setReview(0); peasantHousehold.setSurveyOrNot(0);
peasantHousehold.setTelephone(phoneNo); peasantHousehold.setReview(0);
PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(wxDTO.getAmosUserId(), wxDTO.getQrCodeType(), phoneNo); peasantHousehold.setTelephone(phoneNo);
peasantHousehold.setDeveloperCode(peasantHouseholdDto.getDeveloperCode());// 开发方code PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(wxDTO.getAmosUserId(), wxDTO.getQrCodeType(), phoneNo);
peasantHousehold.setDeveloperId(peasantHouseholdDto.getDeveloperId());// 开发方id peasantHousehold.setDeveloperCode(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperCode).orElse(""));// 开发方code
peasantHousehold.setDeveloperName(peasantHouseholdDto.getDeveloperName());// 开发方名称 peasantHousehold.setDeveloperId(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperId).orElse(null));// 开发方id
peasantHousehold.setDeveloper(peasantHouseholdDto.getDeveloper());// 开发人 peasantHousehold.setDeveloperName(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperName).orElse(""));// 开发方名称
peasantHousehold.setRegionalCompaniesSeq(peasantHouseholdDto.getRegionalCompaniesSeq()); peasantHousehold.setDeveloper(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloper).orElse(""));// 开发人
peasantHousehold.setRegionalCompaniesCode(peasantHouseholdDto.getRegionalCompaniesCode()); peasantHousehold.setRegionalCompaniesSeq(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesSeq).orElse(null));
peasantHousehold.setRegionalCompaniesName(peasantHouseholdDto.getRegionalCompaniesName()); peasantHousehold.setRegionalCompaniesCode(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesCode).orElse(""));
// 过滤传给前端的数据 peasantHousehold.setRegionalCompaniesName(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesName).orElse(""));
peasantHousehold.setIsCertified(0);
// 过滤传给前端的数据
this.save(peasantHousehold);
}
/*else {
// 场景:扫码未实名认证的情况下, 关掉小程序第二次扫另一个区域经销商的二维码
//
wxDTO.getAmosUserId();// 二维码携带的经销商userId
PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(wxDTO.getAmosUserId(), wxDTO.getQrCodeType(), phoneNo);
Long newRegionalCompaniesSeq = Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesSeq).orElse(null);
if (newRegionalCompaniesSeq.compareTo()) {
throw new RuntimeException("");
}
}*/
log.debug("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold);
// 装载农户信息
loginResult.setPeasantHousehold(peasantHousehold);
return loginResult;
} catch (Exception e) {
log.error(e.getMessage());
if (null != registerUserModel) {
log.error("调用平台接口回滚注册的用户 => {}", e, registerUserModel.getUserId());
// 调用平台接口回滚注册的用户
RequestContext.setAppKey("AMOS_STUDIO");
RequestContext.setProduct("AMOS_STUDIO_WEB");
RequestContext.setToken(requestContext.getToken());
Privilege.agencyUserClient.multDeleteUser(registerUserModel.getUserId());
}
if (e instanceof BadRequest || e.getCause() instanceof BadRequest) {
throw new BadRequest(e.getMessage());
}
throw new RuntimeException(e.getMessage());
} }
log.info("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold);
// 装载农户信息
loginResult.setPeasantHousehold(peasantHousehold);
return loginResult;
} }
/** /**
...@@ -357,6 +399,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -357,6 +399,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
agencyUserModel.setRealName(mobileLoginParamDto.getPhoneNo()); agencyUserModel.setRealName(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setPassword(custPassword); agencyUserModel.setPassword(custPassword);
agencyUserModel.setRePassword(custPassword); agencyUserModel.setRePassword(custPassword);
// model中有个openId, 传手机号,verifyCode值为手机号加密
agencyUserModel.setOpenId(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(mobileLoginParamDto.getPhoneNo(), SECRETKEY));
agencyUserModel.setLockStatus("UNLOCK"); agencyUserModel.setLockStatus("UNLOCK");
agencyUserModel.setAgencyCode("JXIOP"); agencyUserModel.setAgencyCode("JXIOP");
agencyUserModel.setMobile(mobileLoginParamDto.getPhoneNo()); agencyUserModel.setMobile(mobileLoginParamDto.getPhoneNo());
...@@ -365,16 +410,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -365,16 +410,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
agencyUserModel.setOrgRoleSeqs(roleSeqMap); agencyUserModel.setOrgRoleSeqs(roleSeqMap);
log.debug("注册用户入参, agencyUserModel => {}", agencyUserModel); log.debug("注册用户入参, agencyUserModel => {}", agencyUserModel);
FeignClientResult<AgencyUserModel> agencyUserResult = Privilege.agencyUserClient.create(agencyUserModel); FeignClientResult<AgencyUserModel> agencyUserResult = Privilege.agencyUserClient.create(agencyUserModel);
try {
FeignClientResult<LoginInfoModel> wechatResult = Privilege.agencyUserClient.createWechatLoginInfo(agencyUserResult.getResult());
log.info("wechatResult:{}", wechatResult);
} catch (Exception e) {
e.printStackTrace();
}
/* agencyUserModel.setOpenId("openid");
agencyUserModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(mobileLoginParamDto.getPhoneNo(), SECRETKEY));
FeignClientResult<AgencyUserModel> wechatResult = Privilege.agencyUserClient.wechatRegister(agencyUserModel);*/
return agencyUserResult; return agencyUserResult;
} }
...@@ -394,20 +429,17 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -394,20 +429,17 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
RequestContext.setAppKey("studio_normalapp_5133538"); RequestContext.setAppKey("studio_normalapp_5133538");
String phoneNo = param.getPhoneNo(); String phoneNo = param.getPhoneNo();
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); log.error("获取手机号失败!");
throw new BadRequest("微信授权失败, 请重新授权");
} }
FeignClientResult loginResult; FeignClientResult loginResult;
if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) { if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) {
// 授权登录 // 授权登录
VerifyCodeAuthModel verifyCodeAuthModel = new VerifyCodeAuthModel(); VerifyCodeAuthModel verifyCodeAuthModel = new VerifyCodeAuthModel();
verifyCodeAuthModel.setLoginId(phoneNo); verifyCodeAuthModel.setLoginId(phoneNo);
verifyCodeAuthModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, SECRETKEY));// 手机号码 + 密码 verifyCodeAuthModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, SECRETKEY));// 手机号码 + 密码
log.info("微信登录入参 => {}", verifyCodeAuthModel); log.info("微信登录入参 => {}", verifyCodeAuthModel);
loginResult = Privilege.authClient.Wechat(verifyCodeAuthModel); loginResult = Privilege.authClient.Wechat(verifyCodeAuthModel);
/* IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId(phoneNo);
authModel.setPassword(com.yeejoin.precontrol.common.utils.DesUtil.encode(registerPassword, SECRETKEY));
loginResult = Privilege.authClient.idpassword(authModel);*/
} else { } else {
// 验证码 // 验证码
VerifyCodeAuthModel model = new VerifyCodeAuthModel(); VerifyCodeAuthModel model = new VerifyCodeAuthModel();
...@@ -416,55 +448,26 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -416,55 +448,26 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
loginResult = Privilege.authClient.mobileVerifyCode(model); loginResult = Privilege.authClient.mobileVerifyCode(model);
} }
if (loginResult == null || loginResult.getStatus() != 200) { if (loginResult == null || loginResult.getStatus() != 200) {
log.error("远程调用Privilege服务失败: " + loginResult.getDevMessage()); log.error("手机号码 => " + phoneNo + " 登录失败: " + loginResult.getDevMessage());
String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage(); String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage();
throw new BadRequest(message); throw new RuntimeException(message);
} }
HashMap resultMap = (HashMap) loginResult.getResult(); HashMap resultMap = (HashMap) loginResult.getResult();
String token = resultMap.get("token").toString(); String token = resultMap.get("token").toString();
// 设置登录信息
RequestContext.setToken(token); RequestContext.setToken(token);
// redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME); // redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME);
// 设置登录信息
String userId = (String) resultMap.get("userId"); String userId = (String) resultMap.get("userId");
// 组装数据
PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto(); PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto();
peasantHouseholdWxDto.setExpire(Long.valueOf((String) resultMap.get("expire"))); peasantHouseholdWxDto.setExpire(Long.valueOf((String) resultMap.get("expire")));
peasantHouseholdWxDto.setUserId(userId); peasantHouseholdWxDto.setUserId(userId);
// 判断用户是否刚刚注册过
AgencyUserModel userModel;
/*if (registerUserModel != null) {
// 使用注册接口返回的用户信息
userModel = registerUserModel;
} else {
// 查询用户信息
FeignClientResult<AgencyUserModel> getme = Privilege.agencyUserClient.queryByUserId(userId);
*//*FeignClientResult<AgencyUserModel> getme = Privilege.agencyUserClient.getme();*//*
if (null == getme || getme.getStatus() != 200) {
throw new BadRequest("获取用户信息失败");
}
userModel = (AgencyUserModel) getme.getResult();
}*/
FeignClientResult<AgencyUserModel> getme = Privilege.agencyUserClient.queryByUserId(userId);
if (null == getme || getme.getStatus() != 200) {
throw new BadRequest("获取用户信息失败");
}
userModel = (AgencyUserModel) getme.getResult();
// 组装userInfo数据
Map<String, Object> userInfo = new HashMap<>();
userInfo.put("realName", userModel.getRealName());
userInfo.put("mobile", userModel.getMobile());
userInfo.put("orgNames", userModel.getOrgNames());
userInfo.put("orgNamesWithoutRole", userModel.getOrgNamesWithoutRole());
// userInfo.put("phoneNo", phoneNo);
// userInfo.put("companyId", userModel.getCompanys().get(0).getCompanyOrgCode());
//
// userInfo.put("userModel", userModel);
peasantHouseholdWxDto.setUserInfo(userInfo);
// 组装authInfo数据 // 组装authInfo数据
Map<String, Object> authInfo = new HashMap<>(); Map<String, Object> authInfo = new HashMap<>();
authInfo.put("token", resultMap.get("token")); authInfo.put("token", token);
authInfo.put("personId", resultMap.get("userId")); authInfo.put("personId", userId);
authInfo.put("appKey", "STUDIO_APP_MOBILE"); /*authInfo.put("appKey", "STUDIO_APP_MOBILE");
authInfo.put("product", "studio_normalapp_5133538"); authInfo.put("product", "studio_normalapp_5133538");*/
peasantHouseholdWxDto.setAuthInfo(authInfo); peasantHouseholdWxDto.setAuthInfo(authInfo);
return peasantHouseholdWxDto; return peasantHouseholdWxDto;
...@@ -480,11 +483,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -480,11 +483,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* @throws * @throws
*/ */
public PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String qrCodeType, AgencyUserModel userInfo) { public PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String qrCodeType, AgencyUserModel userInfo) {
if (null == userInfo) { if (null == userInfo || CollectionUtils.isEmpty(userInfo.getCompanys())) {
throw new BadRequest("查询不到平台用户信息"); log.warn("userId:{} 查询不到经销商信息 或者 查询不到经销商单位信息");
} return null;
if (CollectionUtils.isEmpty(userInfo.getCompanys())) {
throw new BadRequest("查询不到经销商单位信息");
} }
log.info("通过区域/个人二维码扫描组装信息, user => {}, user's companys => {}", userInfo.getUserId(), JSONObject.toJSONString(userInfo.getCompanys())); log.info("通过区域/个人二维码扫描组装信息, user => {}, user's companys => {}", userInfo.getUserId(), JSONObject.toJSONString(userInfo.getCompanys()));
Long sequenceNbr = userInfo.getCompanys().get(0).getSequenceNbr(); Long sequenceNbr = userInfo.getCompanys().get(0).getSequenceNbr();
...@@ -492,15 +493,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -492,15 +493,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
String companyName = userInfo.getCompanys().get(0).getCompanyName(); String companyName = userInfo.getCompanys().get(0).getCompanyName();
// unitInfoServiceImpl.createCompanyAndUser 创建经销商的时候绑定的平台用户 // unitInfoServiceImpl.createCompanyAndUser 创建经销商的时候绑定的平台用户
List<UnitInfo> unitInfos = unitInfoServiceImpl.list(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getAmosCompanySeq, sequenceNbr)); List<UnitInfo> unitInfos = unitInfoServiceImpl.list(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getAmosCompanySeq, sequenceNbr));
UnitInfo unitInfo;
if (CollectionUtils.isEmpty(unitInfos)) {
log.warn("userId:{} 查询不到经销商信息", userInfo.getUserId());
throw new BadRequest("查询不到经销商信息");
}
unitInfo = unitInfos.get(0);
Long regionalCompaniesSeq = unitInfo.getRegionalCompaniesSeq();
String regionalCompaniesCode = unitInfo.getRegionalCompaniesCode();
String regionalCompaniesName = unitInfo.getRegionalCompaniesName();
PeasantHouseholdDto dto = new PeasantHouseholdDto(); PeasantHouseholdDto dto = new PeasantHouseholdDto();
// 先在后台创建一个角色和公司,微信农户新建的用户使用统一的 // 先在后台创建一个角色和公司,微信农户新建的用户使用统一的
// 用户光伏-微信农户 // 用户光伏-微信农户
...@@ -509,22 +501,42 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -509,22 +501,42 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
dto.setDeveloperId(sequenceNbr);// 开发方id dto.setDeveloperId(sequenceNbr);// 开发方id
dto.setDeveloperName(companyName);// 开发方名称 dto.setDeveloperName(companyName);// 开发方名称
dto.setDeveloper(userInfo.getRealName());// 开发人 dto.setDeveloper(userInfo.getRealName());// 开发人
dto.setRegionalCompaniesSeq(regionalCompaniesSeq); UnitInfo unitInfo;
dto.setRegionalCompaniesCode(regionalCompaniesCode); if (!CollectionUtils.isEmpty(unitInfos)) {
dto.setRegionalCompaniesName(regionalCompaniesName); log.warn("userId:{} 查询不到经销商信息", userInfo.getUserId());
unitInfo = unitInfos.get(0);
Long regionalCompaniesSeq = unitInfo.getRegionalCompaniesSeq();
String regionalCompaniesCode = unitInfo.getRegionalCompaniesCode();
String regionalCompaniesName = unitInfo.getRegionalCompaniesName();
dto.setRegionalCompaniesSeq(regionalCompaniesSeq);//所属区域公司id
dto.setRegionalCompaniesCode(regionalCompaniesCode);//所属区域公司code
dto.setRegionalCompaniesName(regionalCompaniesName);//所属区域公司名称
}
return dto; return dto;
} }
/**
* 农户通过扫描区域二维码进入注册,查询区域经销商的信息并
*
*
* @param userId userId
* @param qrCodeType qrCodeType
* @param phoneNo phoneNo
* @return {@link PeasantHouseholdDto}
* @author Provence
* @throws
*/
private PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String userId, String qrCodeType, String phoneNo) { private PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String userId, String qrCodeType, String phoneNo) {
// 获取区域 // 这里的userId 是解析区域二维码得到的参数, 如果第一次扫码进来会创建一条农户数据然后关联起来
if (StringUtils.isBlank(userId)) {
throw new BadRequest("请通过区域二维码扫码进入");
}
FeignClientResult<AgencyUserModel> userInfoResult = Privilege.agencyUserClient.queryByUserId(userId);// 获取用户 FeignClientResult<AgencyUserModel> userInfoResult = Privilege.agencyUserClient.queryByUserId(userId);// 获取用户
if (userInfoResult != null && userInfoResult.getStatus() != 200) { if (userInfoResult == null || userInfoResult.getStatus() != 200) {
throw new BadRequest("无效的userId"); return null;
} }
AgencyUserModel userInfo = userInfoResult.getResult(); AgencyUserModel userInfo = userInfoResult.getResult();
PeasantHouseholdDto dto = buildDefaultPeasantHouseholdDto(qrCodeType, userInfo); return buildDefaultPeasantHouseholdDto(qrCodeType, userInfo);
dto.setTelephone(phoneNo);
return dto;
} }
/** /**
......
...@@ -8,7 +8,6 @@ import com.qiyuesuo.sdk.v2.exception.BaseSdkException; ...@@ -8,7 +8,6 @@ import com.qiyuesuo.sdk.v2.exception.BaseSdkException;
import com.qiyuesuo.sdk.v2.json.JSONUtils; import com.qiyuesuo.sdk.v2.json.JSONUtils;
import com.qiyuesuo.sdk.v2.request.*; import com.qiyuesuo.sdk.v2.request.*;
import com.qiyuesuo.sdk.v2.response.*; import com.qiyuesuo.sdk.v2.response.*;
import com.yeejoin.amos.boot.module.common.api.dto.ContractDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.ContractDataDto; import com.yeejoin.amos.boot.module.hygf.api.dto.ContractDataDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.TemplateParamDto; import com.yeejoin.amos.boot.module.hygf.api.dto.TemplateParamDto;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -16,11 +15,8 @@ import org.slf4j.LoggerFactory; ...@@ -16,11 +15,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @description: * @description:
...@@ -89,6 +85,10 @@ public class QiyuesuoServiceImpl { ...@@ -89,6 +85,10 @@ public class QiyuesuoServiceImpl {
public Long addContract(ContractDataDto contractDataDto , List<TemplateParamDto> templateParam ){ public Long addContract(ContractDataDto contractDataDto , List<TemplateParamDto> templateParam ){
SdkResponse<Contract> responseObj=null;
// 返回结果
Contract result=new Contract();
String username=contractDataDto.getUsername(); String username=contractDataDto.getUsername();
String contact=contractDataDto.getContact(); String contact=contractDataDto.getContact();
String IDCard=contractDataDto.getIDCard(); String IDCard=contractDataDto.getIDCard();
...@@ -109,6 +109,7 @@ public class QiyuesuoServiceImpl { ...@@ -109,6 +109,7 @@ public class QiyuesuoServiceImpl {
Double personalOffsetX= contractDataDto.getPersonalOffsetX(); Double personalOffsetX= contractDataDto.getPersonalOffsetX();
Double personalOffsetY= contractDataDto.getPersonalOffsetY(); Double personalOffsetY= contractDataDto.getPersonalOffsetY();
List<Long> corpSealIds=contractDataDto.getSealId(); List<Long> corpSealIds=contractDataDto.getSealId();
try {
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret); SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
// 合同基本参数 // 合同基本参数
//进行日期格式化 //进行日期格式化
...@@ -142,10 +143,13 @@ public class QiyuesuoServiceImpl { ...@@ -142,10 +143,13 @@ public class QiyuesuoServiceImpl {
ContractDraftRequest request = new ContractDraftRequest(contract); ContractDraftRequest request = new ContractDraftRequest(contract);
logger.info("创建草稿合同调用前"+JSON.toJSONString(request)); logger.info("创建草稿合同调用前"+JSON.toJSONString(request));
String response = sdkClient.service(request); String response = sdkClient.service(request);
SdkResponse<Contract> responseObj = JSONUtils.toQysResponse(response, Contract.class); responseObj = JSONUtils.toQysResponse(response, Contract.class);
// 返回结果
Contract result=new Contract();
logger.info("创建草稿合同调用后"+JSON.toJSONString(responseObj)); logger.info("创建草稿合同调用后"+JSON.toJSONString(responseObj));
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("创建草稿合同失败");
}
if(responseObj.getCode() == 0) { if(responseObj.getCode() == 0) {
result = responseObj.getResult(); result = responseObj.getResult();
logger.info(JSON.toJSONString(responseObj)); logger.info(JSON.toJSONString(responseObj));
...@@ -189,6 +193,9 @@ public class QiyuesuoServiceImpl { ...@@ -189,6 +193,9 @@ public class QiyuesuoServiceImpl {
public DocumentAddResult getDocumentAddResult(Long contractId, String subject, List<TemplateParamDto> templateParam , Long emplateId ) { public DocumentAddResult getDocumentAddResult(Long contractId, String subject, List<TemplateParamDto> templateParam , Long emplateId ) {
DocumentAddResult result=null;
SdkResponse<DocumentAddResult> responseObj=null;
try {
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret); SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
// 添加合同文档 // 添加合同文档
List<TemplateParam> params = new ArrayList<>(); List<TemplateParam> params = new ArrayList<>();
...@@ -197,38 +204,49 @@ public class QiyuesuoServiceImpl { ...@@ -197,38 +204,49 @@ public class QiyuesuoServiceImpl {
params.add(new TemplateParam(templateParamDto.getKey(), templateParamDto.getValue())); params.add(new TemplateParam(templateParamDto.getKey(), templateParamDto.getValue()));
} }
} }
logger.info("合同参数"+JSON.toJSONString(params)); logger.info("添加合同文档参数"+JSON.toJSONString(params));
DocumentAddByTemplateRequest request = new DocumentAddByTemplateRequest(contractId, DocumentAddByTemplateRequest request = new DocumentAddByTemplateRequest(contractId,
emplateId , params, subject); emplateId , params, subject);
logger.info("添加合同文档前", JSON.toJSONString(request)); logger.info("添加合同文档前", JSON.toJSONString(request));
String response = sdkClient.service(request); String response = sdkClient.service(request);
SdkResponse<DocumentAddResult> responseObj = JSONUtils.toQysResponse(response, DocumentAddResult.class); responseObj = JSONUtils.toQysResponse(response, DocumentAddResult.class);
logger.info("添加合同文档后", JSON.toJSONString(responseObj)); logger.info("添加合同文档后", JSON.toJSONString(responseObj));
DocumentAddResult result=null;
if (responseObj.getCode() == 0) { }catch (Exception e){
e.printStackTrace();
throw new RuntimeException("添加合同文档失败");
}
if (responseObj!=null&&responseObj.getCode() == 0) {
result = responseObj.getResult(); result = responseObj.getResult();
logger.info("添加合同文档成功,文档ID:{}", JSON.toJSONString(result)); logger.info("添加合同文档成功,文档ID:{}", JSON.toJSONString(result));
} else { } else {
throw new RuntimeException("请求失败"); throw new RuntimeException("添加合同文档"+responseObj.getMessage());
} }
return result; return result;
} }
public SdkResponse<Object> getSdkResponse(Long contractId,List<Stamper> stampers ){ public SdkResponse<Object> getSdkResponse(Long contractId,List<Stamper> stampers ){
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
// 发起合同 // 发起合同
SdkResponse<Object> responseObj =null; SdkResponse<Object> responseObj =null;
try {
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
ContractSendRequest request = new ContractSendRequest(contractId, stampers); ContractSendRequest request = new ContractSendRequest(contractId, stampers);
logger.info("发起合同前", JSON.toJSONString(request)); logger.info("请求契约锁发起合同前", JSON.toJSONString(request));
String response = sdkClient.service(request); String response = sdkClient.service(request);
responseObj = JSONUtils.toQysResponse(response); responseObj = JSONUtils.toQysResponse(response);
logger.info("发起合同后", JSON.toJSONString(responseObj)); }catch (Exception e){
if(responseObj.getCode() == 0) { e.printStackTrace();
logger.info("合同发起成功"); throw new RuntimeException("请求契约锁发起合同接口失败");
}
logger.info("请求契约锁发起合同后", JSON.toJSONString(responseObj));
if(responseObj!=null&&responseObj.getCode() == 0) {
logger.info("请求契约锁发起合同成功");
} else { } else {
throw new RuntimeException("请求失败"); throw new RuntimeException("请求契约锁发起合同失败"+responseObj.getMessage());
} }
return responseObj; return responseObj;
} }
......
...@@ -29,6 +29,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -29,6 +29,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.exception.BaseException; import org.typroject.tyboot.core.foundation.exception.BaseException;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -103,7 +104,7 @@ public class SurveyInformationServiceImpl extends BaseService<SurveyInformationD ...@@ -103,7 +104,7 @@ public class SurveyInformationServiceImpl extends BaseService<SurveyInformationD
return this.queryForList("" , false); return this.queryForList("" , false);
} }
@Transactional
public SurveyInfoAllDto saveSurveyInfo(SurveyInfoAllDto surveyInfoAllDto,String operationType) { public SurveyInfoAllDto saveSurveyInfo(SurveyInfoAllDto surveyInfoAllDto,String operationType) {
JSONArray regionName = getRegionName(); JSONArray regionName = getRegionName();
List<RegionModel> list = JSONArray.parseArray(regionName.toJSONString(), RegionModel.class); List<RegionModel> list = JSONArray.parseArray(regionName.toJSONString(), RegionModel.class);
......
...@@ -319,7 +319,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto,UnitInfo,UnitIn ...@@ -319,7 +319,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto,UnitInfo,UnitIn
public UnitInfoDto createWithModelnew(UnitInfoDto regUnitInfo){ public UnitInfoDto createWithModelnew(UnitInfoDto regUnitInfo){
regUnitInfo.setBlacklist(0); regUnitInfo.setBlacklist(1);
regUnitInfo.setAuditStatus(1); regUnitInfo.setAuditStatus(1);
regUnitInfo.setManagementUnit("经销商事业部"); regUnitInfo.setManagementUnit("经销商事业部");
regUnitInfo= this.createWithModel(regUnitInfo); regUnitInfo= this.createWithModel(regUnitInfo);
...@@ -391,6 +391,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto,UnitInfo,UnitIn ...@@ -391,6 +391,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto,UnitInfo,UnitIn
}else{ }else{
// 1. 更新经销商状态 // 1. 更新经销商状态
unitInfo.setAuditStatus(2); unitInfo.setAuditStatus(2);
unitInfo.setBlacklist(0);
Privilege.agencyUserClient.unlockUsers(unitInfo.getAdminUserId()); Privilege.agencyUserClient.unlockUsers(unitInfo.getAdminUserId());
} }
} }
......
...@@ -249,12 +249,13 @@ public class WxServiceImpl implements IWxService { ...@@ -249,12 +249,13 @@ public class WxServiceImpl implements IWxService {
@Override @Override
public JSONObject getCode2Session(String code) { public JSONObject getCode2Session(String code) {
String url = buildOpenIdUrl(appId, secret, code); String url = buildOpenIdUrl(appId, secret, code);
log.info("微信 code2Session, code =>{}, 请求 => {}", code, url);
String resultStr = HttpUtil.sendHttpGet(url); String resultStr = HttpUtil.sendHttpGet(url);
// resultStr => {"session_key":"Mj5xbDhcZU73DtUduI1xKg==","openid":"oRraY5aYJkxkDJiG4rBaaw4MSmPA"} // resultStr => {"session_key":"Mj5xbDhcZU73DtUduI1xKg==","openid":"oRraY5aYJkxkDJiG4rBaaw4MSmPA"}
log.info("微信 Code2Session, code =>{}, 结果 => {}", code, resultStr); log.info("微信 code2Session, code =>{}, 结果 => {}", code, resultStr);
JSONObject jsonObject = JSONObject.parseObject(resultStr); JSONObject jsonObject = JSONObject.parseObject(resultStr);
if (jsonObject == null || jsonObject.getIntValue("errcode") != 0) { if (jsonObject == null || jsonObject.getIntValue("errcode") != 0) {
throw new BadRequest("微信授权失败, 请重新授权"); throw new RuntimeException("微信授权失败, 请重新授权");
} }
return jsonObject; return jsonObject;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment