Commit 4f0a7c3f authored by tangwei's avatar tangwei

解决冲突

parents fd265250 b2aba94d
package com.yeejoin.amos.boot.module.hygf.api.Enum;
/**
* @author DELL
* 手机登录类型: 2020年底 驻场开发
*/
public enum PhoneRegisterTypeEum {
WX("微信授权快捷登录",1),
PHONE_VERIFY("手机验证登录",2);
private String name;
private int code;
PhoneRegisterTypeEum(String name,int code){
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 发货单枚举
*
* @author Provence
* @version v1.0
* @date 2023/8/18 16:49
*/
public class PreparationMoneyEnum {
/**
* 订单状态
*
*/
@Getter
@AllArgsConstructor
public enum DOCUMENT_STATE {
未完成("未完成", "0", "未完成"),// 订单状态0未完成1已完成2作废
已完成("已完成", "1", "0"),//发货状态 0 未发货1已发货
作废("已作废", "2", "1");//到货状态0未到货1已到货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(DOCUMENT_STATE type: DOCUMENT_STATE.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 发货状态
*
*/
@Getter
@AllArgsConstructor
public enum SHIPMENT_STATUS {
未发货("未发货", "0", "未发货"),// 订单状态0未完成1已完成2作废
已发货("已发货", "1", "已发货");//发货状态 0 未发货1已发货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(SHIPMENT_STATUS type: SHIPMENT_STATUS.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 到货状态
*
*/
@Getter
@AllArgsConstructor
public enum RECEIVING_STATUS {
未到货("未到货", "0", "未到货"),// 订单状态0未完成1已完成2作废
已到货("已到货", "1", "已到货");//发货状态 0 未发货1已发货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(RECEIVING_STATUS type: RECEIVING_STATUS.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 业主类型
*
*/
@Getter
@AllArgsConstructor
enum OWNER_TYPE {
非居民("非居民", "0", "非居民"),
居民("居民", "1", "居民");//到货状态0未到货1已到货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
}
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
* @author Provence
* @version v1.0
* @date 2023/8/21 15:15
*/
@Data
public class MobileLoginParamDto {
/**
* 注册类型:1-微信授权快捷登录;2-手机验证登录
*/
@ApiModelProperty("注册类型:1-微信授权快捷登录;2-手机验证登录")
private int registerType;
/**
* 是否需要需要短信验证: true-验证; false-不验证
*/
@ApiModelProperty("是否需要需要短信验证: true-验证; false-不验证")
private Boolean isNeedVerify;
/**
* 注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号")
private String encryptedData;
/**
* 注册类型为1时使用:微信用户数据字段2,根据1、2进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号")
private String iv;
/**
*注册类型为1时使用:微信用户数据字段3,根据1、2、3进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段3,根据1、2、3进行数据解密,计算出手机号")
private String code;
/**
* 注册类型为2-手机验证登录时使用:手机号
*/
@ApiModelProperty("注册类型为2-手机验证登录时使用:手机号")
private String phoneNo;
/**
* 注册类型为2-手机验证登录时使用:验证码
*/
@ApiModelProperty("注册类型为2-手机验证登录时使用:验证码")
private String verifyCode;
@ApiModelProperty("农户信息")
private PeasantHouseholdDto peasantHouseholdDto;
}
...@@ -103,4 +103,30 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -103,4 +103,30 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "常住地址文字") @ApiModelProperty(value = "常住地址文字")
@TableField(typeHandler = FastjsonTypeHandler.class) @TableField(typeHandler = FastjsonTypeHandler.class)
private List<String> permanentAddressText; private List<String> permanentAddressText;
@ApiModelProperty(value = "区域公司id")
private Long regionalCompaniesSeq;
@ApiModelProperty(value = "区域公司code")
private String regionalCompaniesCode;
@ApiModelProperty(value = "区域公司名称")
private String regionalCompaniesName;
@ApiModelProperty(value = "身份证正面")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<String> idCardFront;
@ApiModelProperty(value = "身份证反面")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<String> idCardOpposite;
@ApiModelProperty(value = "微信唯一id")
private String openId;
@ApiModelProperty(value = "是否已认证(0-未认证,1-已认证)")
private Integer isCertified;
@ApiModelProperty(value = "平台userId")
private String userId;
} }
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Provence
* @version v1.0
* @date 2023/8/21 13:16
*/
@Data
@ApiModel (value="PeasantHouseholdWxDto", description="微信农户登录信息")
public class PeasantHouseholdWxDto {
@ApiModelProperty (value = "token有效期")
private Long expire;
@ApiModelProperty (value = "token")
private String token;
@ApiModelProperty (value = "userId")
private String userId;
@ApiModelProperty
private String userState;
@ApiModelProperty (value = "农户信息")
private PeasantHousehold peasantHousehold;
@ApiModelProperty
private Map<String, Object> userInfo;
@ApiModelProperty
private Map<String, Object> authInfo;
}
package com.yeejoin.amos.boot.module.hygf.api.dto; package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotEmpty;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 发货单 * 发货单
...@@ -16,6 +24,7 @@ import java.util.Date; ...@@ -16,6 +24,7 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel(value="PreparationMoneyDto", description="发货单") @ApiModel(value="PreparationMoneyDto", description="发货单")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PreparationMoneyDto extends BaseDto { public class PreparationMoneyDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -34,6 +43,7 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -34,6 +43,7 @@ public class PreparationMoneyDto extends BaseDto {
private String orderUser; private String orderUser;
@ApiModelProperty(value = "下单时间") @ApiModelProperty(value = "下单时间")
@JsonFormat (pattern="yyyy-MM-dd")
private Date orderTime; private Date orderTime;
@ApiModelProperty(value = "经销商id") @ApiModelProperty(value = "经销商id")
...@@ -43,7 +53,8 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -43,7 +53,8 @@ public class PreparationMoneyDto extends BaseDto {
private String dealerName; private String dealerName;
@ApiModelProperty(value = " 发货地址") @ApiModelProperty(value = " 发货地址")
private String sendAddress; @TableField (typeHandler = FastjsonTypeHandler.class)
private List<String> sendAddress;
@ApiModelProperty(value = " 业主类型") @ApiModelProperty(value = " 业主类型")
private String ownerType; private String ownerType;
...@@ -64,16 +75,19 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -64,16 +75,19 @@ public class PreparationMoneyDto extends BaseDto {
private String consigneePhone; private String consigneePhone;
@ApiModelProperty(value = "收货人地址") @ApiModelProperty(value = "收货人地址")
private String consigneeAddress; @TableField (typeHandler = FastjsonTypeHandler.class)
private List<String> consigneeAddress;
@ApiModelProperty(value = "收货人详细地址") @ApiModelProperty(value = "收货人详细地址")
private String consigneeDetailAddress; private String consigneeDetailAddress;
@ApiModelProperty(value = "发货单") @ApiModelProperty(value = "发货单")
private String invoice; @TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> invoice;
@ApiModelProperty(value = "收货单") @ApiModelProperty(value = "收货单")
private String receipt; @TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> receipt;
@ApiModelProperty(value = "订单状态0未完成1已完成2作废") @ApiModelProperty(value = "订单状态0未完成1已完成2作废")
private String documentState; private String documentState;
...@@ -99,4 +113,17 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -99,4 +113,17 @@ public class PreparationMoneyDto extends BaseDto {
@ApiModelProperty(value = "总价") @ApiModelProperty(value = "总价")
private Double totalPrice; private Double totalPrice;
@ApiModelProperty(value = "到货时间")
@JsonFormat (pattern="yyyy-MM-dd")
private Date deliveryTime;
@ApiModelProperty(value = "发货电站列表")
@NotEmpty(message = "请选择发货电站")
private List<PeasantHouseholdDto> powerStations;
@ApiModelProperty(value = "BOM清单")
private List<DocumentBomDto> documentBoms;
@ApiModelProperty(value = "单据追踪")
private List<PreparationMoneyLogDto> preparationMoneyLogs;
} }
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 发货单
*
* @author system_generator
* @date 2023-08-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PreparationMoneyLogDto", description="发货单追踪记录")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PreparationMoneyLogDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "货单id")
private Long preparationMoneyId;
@ApiModelProperty(value = "货单id")
private String operationContent;
}
...@@ -140,4 +140,44 @@ public class PeasantHousehold extends BaseEntity { ...@@ -140,4 +140,44 @@ public class PeasantHousehold extends BaseEntity {
* */ * */
@TableField("developer") @TableField("developer")
private String developer; private String developer;
/*
* 区域公司id
* */
@TableField("regional_companies_seq")
private Long regionalCompaniesSeq;
/*
* 区域公司code
* */
@TableField("regional_companies_code")
private String regionalCompaniesCode;
/*
* 区域公司名称
* */
@TableField("regional_companies_name")
private String regionalCompaniesName;
/*
* 身份证正面
* */
@TableField(value = "id_card_front", typeHandler = FastjsonTypeHandler.class)
private List<String> idCardFront;
/*
* 身份证反面
* */
@TableField(value = "id_card_opposite", typeHandler = FastjsonTypeHandler.class)
private List<String> idCardOpposite;
/*
* 微信唯一id
* */
@TableField("open_id")
private String openId;
/*
* 是否已认证(0-未认证,1-已认证)
* */
@TableField("is_certified")
private Integer isCertified;
/*
* 平台userId
* */
@TableField("user_id")
private String userId;
} }
...@@ -20,7 +20,7 @@ import java.util.List; ...@@ -20,7 +20,7 @@ import java.util.List;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("hygf_preparation_money") @TableName(value="hygf_preparation_money",autoResultMap = true)
public class PreparationMoney extends BaseEntity { public class PreparationMoney extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -70,8 +70,8 @@ public class PreparationMoney extends BaseEntity { ...@@ -70,8 +70,8 @@ public class PreparationMoney extends BaseEntity {
/** /**
* 发货地址 * 发货地址
*/ */
@TableField("send_address") @TableField(value = "send_address",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
private String sendAddress; private List<Object> sendAddress;
/** /**
* 业主类型 * 业主类型
...@@ -112,8 +112,8 @@ public class PreparationMoney extends BaseEntity { ...@@ -112,8 +112,8 @@ public class PreparationMoney extends BaseEntity {
/** /**
* 收货人地址 * 收货人地址
*/ */
@TableField("consignee_address") @TableField(value = "consignee_address",typeHandler = FastjsonTypeHandler.class)
private String consigneeAddress; private List<Object> consigneeAddress;
/** /**
* 收货人详细地址 * 收货人详细地址
...@@ -125,14 +125,14 @@ public class PreparationMoney extends BaseEntity { ...@@ -125,14 +125,14 @@ public class PreparationMoney extends BaseEntity {
* 发货单 * 发货单
*/ */
@TableField(value = "invoice",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED) @TableField(value = "invoice",typeHandler = FastjsonTypeHandler.class)
private List<Object> invoice; private List<Object> invoice;
/** /**
* 收货单 * 收货单
*/ */
@TableField(value = "receipt",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED) @TableField(value = "receipt",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
private String receipt; private List<Object> receipt;
/** /**
* 订单状态0未完成1已完成2已作废 * 订单状态0未完成1已完成2已作废
...@@ -188,4 +188,10 @@ public class PreparationMoney extends BaseEntity { ...@@ -188,4 +188,10 @@ public class PreparationMoney extends BaseEntity {
@TableField("validating") @TableField("validating")
private String validating; private String validating;
/**
* 到货时间
*/
@TableField("delivery_time")
private Date deliveryTime;
} }
package com.yeejoin.amos.boot.module.hygf.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 发货单日志记录
*
* @author system_generator
* @date 2023-08-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors (chain = true)
@TableName (value = "hygf_preparation_money_log")
public class PreparationMoneyLog extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField ("preparation_money_id")
private Long preparationMoneyId;
@TableField ("operation_content")
private String operationContent;
}
package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
/**
* 发货单 Mapper 接口
*
* @author system_generator
* @date 2023-08-17
*/
public interface PreparationMoneyLogMapper extends BaseMapper<PreparationMoneyLog> {
}
package com.yeejoin.amos.boot.module.hygf.api.service; package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.DocumentBomDto;
import java.util.List;
/** /**
* 发货单bom接口类 * 发货单bom接口类
* *
......
package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
/**
* 发货单接口类
*
* @author system_generator
* @date 2023-08-17
*/
public interface IPreparationMoneyLogService {
}
package com.yeejoin.amos.boot.module.hygf.api.service; package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
/** /**
* 发货单接口类 * 发货单接口类
* *
...@@ -9,4 +11,27 @@ package com.yeejoin.amos.boot.module.hygf.api.service; ...@@ -9,4 +11,27 @@ package com.yeejoin.amos.boot.module.hygf.api.service;
*/ */
public interface IPreparationMoneyService { public interface IPreparationMoneyService {
/**
* 新增/更新发货单
*
*
* @param model dto
* @return {@link PreparationMoneyDto}
* @author Provence
* @throws
*/
PreparationMoneyDto saveOrUpdateObject(PreparationMoneyDto model);
/**
* 更新发货单状态
*
*
* @param sequenceNbr 发货单ID
* @param operationType 操作类型(RECEIPT-确认收货, DELIVERY-发货, DISCARD-废弃)
* @return {@link Boolean}
* @author Provence
* @throws
*/
Boolean updatePreparationMoneyStatus(Long sequenceNbr, String operationType);
} }
...@@ -113,4 +113,25 @@ public class DocumentBomController extends BaseController { ...@@ -113,4 +113,25 @@ public class DocumentBomController extends BaseController {
public ResponseModel<List<DocumentBomDto>> selectForList() { public ResponseModel<List<DocumentBomDto>> selectForList() {
return ResponseHelper.buildResponse(documentBomServiceImpl.queryForDocumentBomList()); return ResponseHelper.buildResponse(documentBomServiceImpl.queryForDocumentBomList());
} }
/**
* 根据货单id查询BOM清单
*
*
* @param preparationMoneyId preparationMoneyId
* @return {@link ResponseModel< List< DocumentBomDto>>}
* @author Provence
* @throws
* @date 2023/8/17 20:33
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "根据货单id查询BOM清单", notes = "根据货单id查询BOM清单")
@GetMapping(value = "/listByPreparationMoneyId")
public ResponseModel<Page<DocumentBomDto>> listByPreparationMoneyId(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size,@RequestParam Long preparationMoneyId) {
Page<DocumentBomDto> page = new Page<DocumentBomDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(documentBomServiceImpl.queryForDocumentBomPage(page, preparationMoneyId));
}
} }
...@@ -201,13 +201,14 @@ public class PeasantHouseholdController extends BaseController { ...@@ -201,13 +201,14 @@ public class PeasantHouseholdController extends BaseController {
@ApiOperation(httpMethod = "GET",value = "农户信息分页查询", notes = "农户信息分页查询") @ApiOperation(httpMethod = "GET",value = "农户信息分页查询", notes = "农户信息分页查询")
public ResponseModel<Page<PeasantHouseholdDto>> queryForPage(@RequestParam(value = "current") int current, public ResponseModel<Page<PeasantHouseholdDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size, @RequestParam(value = "size") int size,
@RequestParam(value = "ownersName",required = false)String ownersName) { @RequestParam(value = "ownersName",required = false)String ownersName,
@RequestParam(value = "developerId",required = false)Long developerId) {
Page<PeasantHouseholdDto> page = new Page<PeasantHouseholdDto>(); Page<PeasantHouseholdDto> page = new Page<PeasantHouseholdDto>();
page.setCurrent(current); page.setCurrent(current);
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)); return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdPage(page,orgCode,ownersName,developerId));
} }
/** /**
......
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.SurveyInformationDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
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.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import com.yeejoin.amos.feign.systemctl.model.SmsRecordModel;
import com.yeejoin.precontrol.common.utils.DesUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
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.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.logging.SimpleFormatter;
/**
* 农户信息
*
* @author system_generator
* @date 2023-07-07
*/
@RestController
@Api (tags = "农户信息Api for mobile端")
@RequestMapping (value = "/peasant-household/mobile")
@Slf4j
public class PeasantHouseholdWxController extends BaseController {
@Autowired
RedisUtils redisUtil;
@Autowired
SurveyInformationServiceImpl surveyInformationServiceImpl;
@Autowired
PeasantHouseholdServiceImpl peasantHouseholdServiceImpl;
private static final String regionRedis = "app_region_redis";
/*@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/authenticate", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信农户认证", notes = "微信农户认证")
public ResponseModel<Boolean> authenticate(@ApiParam(name = "农户信息id") @RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.doAuthenticate(sequenceNbr));
}*/
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation("获取验证码")
@GetMapping("/getAuthCode")
public ResponseModel<Boolean> getAuthCode(@RequestParam String phoneNo) {
HashMap<String, String> sendMap = new HashMap<>();
sendMap.put("mobile", phoneNo);
sendMap.put("smsType", "MOBILE_LOGIN");
FeignClientResult<SmsRecordModel> sendVerifyCodeResult = Systemctl.smsClient.sendVerifyCode(sendMap);
if (sendVerifyCodeResult.getStatus() != 200) {
if (log.isErrorEnabled()) {
log.error("调用平台发送验证码失败:{}", sendVerifyCodeResult.getDevMessage());
}
throw new BadRequest(sendVerifyCodeResult.getMessage());
}
return ResponseHelper.buildResponse(true);
}
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/login", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆")
public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
peasantHouseholdServiceImpl.setPlatFormAccess();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserLogin(mobileLoginParam));
}
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/register", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册")
public ResponseModel<PeasantHouseholdDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
log.info("微信农户注册, 入参 => {}", JSONObject.toJSONString(mobileLoginParam));
if (null == mobileLoginParam.getPeasantHouseholdDto()) {
throw new BadRequest("农户信息不能为空");
}
AgencyUserModel userInfo = getUserInfo();
PeasantHouseholdDto model = mobileLoginParam.getPeasantHouseholdDto();
SurveyInformationDto surveyInformationDto = new SurveyInformationDto();
surveyInformationServiceImpl.createWithModel(surveyInformationDto);
JSONArray regionName = getRegionName();
List<RegionModel> list = JSONArray.parseArray(regionName.toJSONString(), RegionModel.class);
// 处理项目地址
String area = "";
if (model.getProjectAddress().size() != 0) {
for (Integer reg : model.getProjectAddress())
for (RegionModel re : list) {
if (re.getRegionCode().equals(Integer.valueOf(reg))) {
area = area + re.getRegionName() + "/";
}
}
model.setProjectAddressName(area.length() > 2 ? area.substring(0, area.length() - 2) : area);
if ("1".equals(model.getIsPermanent())) {
model.setPermanentAddress(model.getProjectAddress());
model.setPermanentAddressDetail(model.getProjectAddressDetail());
model.setPermanentAddressName(area.length() > 2 ? area.substring(0, area.length() - 2) : area);
} else {
// 处理常住地址
String permanent = "";
if (model.getPermanentAddress().size() != 0) {
for (Integer reg : model.getPermanentAddress())
for (RegionModel re : list) {
if (re.getRegionCode().equals(Integer.valueOf(reg))) {
permanent = permanent + re.getRegionName() + "/";
}
}
model.setPermanentAddressName(permanent.length() > 2 ? permanent.substring(0, permanent.length() - 2) : permanent);
}
}
}
model.setSurveyInformationId(surveyInformationDto.getSequenceNbr());
model.setSurveyOrNot(0);
model.setReview(0);
if (model.getCreationTime() == null) {
model.setCreationTime(new Date());
}
model.setPeasantHouseholdNo(peasantHouseholdServiceImpl.getPeasantHouseholdNo());
model.setIsCertified(model.getIsCertified() == null ? 0 : model.getIsCertified());// 未认证
model.setUserId(userInfo.getUserId());// 绑定平台userId
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.createWithModel(model));
}
public JSONArray getRegionName() {
JSONArray jsonArray = new JSONArray();
if (redisUtil.hasKey(regionRedis)) {
jsonArray = JSONArray.parseArray(redisUtil.get(regionRedis).toString());
} else {
Collection<RegionModel> regionChild = new ArrayList<>();
RegionModel regionModel1 = new RegionModel();
regionChild.add(regionModel1);
FeignClientResult<Collection<RegionModel>> collectionFeignClientResult = Systemctl.regionClient.queryForTreeParent(610000L);
Collection<RegionModel> result = collectionFeignClientResult.getResult();
for (RegionModel regionModel : result) {
if (null != regionModel && null != regionModel.getChildren()) {
for (RegionModel child : regionModel.getChildren()) {
if (null != child && null != child.getChildren()) {
for (RegionModel childChild : child.getChildren()) {
jsonArray.add(childChild);
}
child.setChildren(regionChild);
jsonArray.add(child);
}
}
regionModel.setChildren(regionChild);
jsonArray.add(regionModel);
}
}
redisUtil.set(regionRedis, jsonArray);
}
return jsonArray;
}
}
package com.yeejoin.amos.boot.module.hygf.biz.controller; package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney; import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import io.swagger.annotations.ApiModelProperty; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -12,11 +13,14 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController; ...@@ -12,11 +13,14 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PreparationMoneyServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PreparationMoneyServiceImpl;
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
...@@ -45,8 +49,8 @@ public class PreparationMoneyController extends BaseController { ...@@ -45,8 +49,8 @@ public class PreparationMoneyController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增发货单", notes = "新增发货单") @ApiOperation(httpMethod = "POST", value = "新增发货单", notes = "新增发货单")
public ResponseModel<PreparationMoneyDto> save(@RequestBody PreparationMoneyDto model) { public ResponseModel<PreparationMoneyDto> save(@Validated @RequestBody PreparationMoneyDto model) {
model = preparationMoneyServiceImpl.createWithModel(model); model = preparationMoneyServiceImpl.saveOrUpdateObject(model);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
...@@ -61,7 +65,7 @@ public class PreparationMoneyController extends BaseController { ...@@ -61,7 +65,7 @@ public class PreparationMoneyController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单")
public ResponseModel<PreparationMoneyDto> updateBySequenceNbrPreparationMoney(@RequestBody PreparationMoneyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<PreparationMoneyDto> updateBySequenceNbrPreparationMoney(@RequestBody PreparationMoneyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updateWithModel(model)); return ResponseHelper.buildResponse(preparationMoneyServiceImpl.saveOrUpdateObject(model));
} }
/** /**
...@@ -120,4 +124,47 @@ public class PreparationMoneyController extends BaseController { ...@@ -120,4 +124,47 @@ public class PreparationMoneyController extends BaseController {
public ResponseModel<List<PreparationMoneyDto>> selectForList() { public ResponseModel<List<PreparationMoneyDto>> selectForList() {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryForPreparationMoneyList()); return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryForPreparationMoneyList());
} }
/**
* 发货价格中金额列联动接口
*
* -根据发货电站表单传入的场站ID 查询数据然后计算相应的金额
*
*
* @param
* @return {@link ResponseModel< List< PreparationMoneyDto>>}
* @author Provence
* @throws
* @date 2023/8/17 18:23
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/getShippingPrice")
@ApiOperation(httpMethod = "POST", value = "发货价格数据查询", notes = "发货价格数据查询")
public ResponseModel<PreparationMoneyDto> getShippingPrice(@RequestBody List<PeasantHouseholdDto> dtos) {
List<Long> powerHouseholdIds = dtos.stream().map(PeasantHouseholdDto::getSequenceNbr).collect(Collectors.toList());
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.caculateShippingPriceByPowerHouseHoldIds(powerHouseholdIds));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/detail")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个发货单详情", notes = "根据sequenceNbr查询单个发货单详情")
public ResponseModel<PreparationMoneyDto> getObject(@RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.getObjectBySequenceNbr(sequenceNbr));
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/updatePreparationMoneyStatus")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单")
public ResponseModel<Boolean> updateBySequenceNbr(@RequestParam(value = "sequenceNbr") Long sequenceNbr, @RequestParam(value = "operationType") String operationType) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updatePreparationMoneyStatus(sequenceNbr, operationType));
}
} }
package com.yeejoin.amos.boot.module.hygf.biz.service.impl; package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.hygf.api.entity.DesignInformation;
import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentBom; import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentBom;
import com.yeejoin.amos.boot.module.hygf.api.mapper.DocumentBomMapper; import com.yeejoin.amos.boot.module.hygf.api.mapper.DocumentBomMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IDocumentBomService; import com.yeejoin.amos.boot.module.hygf.api.service.IDocumentBomService;
import com.yeejoin.amos.boot.module.hygf.api.dto.DocumentBomDto; import com.yeejoin.amos.boot.module.hygf.api.dto.DocumentBomDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
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;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* 发货单bom服务实现类 * 发货单bom服务实现类
...@@ -17,6 +31,15 @@ import java.util.List; ...@@ -17,6 +31,15 @@ import java.util.List;
*/ */
@Service @Service
public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentBom,DocumentBomMapper> implements IDocumentBomService { public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentBom,DocumentBomMapper> implements IDocumentBomService {
/**
* 折扣率
*/
private final static double DISCOUNT_RATE = 1;
@Autowired
DesignInformationServiceImpl designInformationService;
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -30,4 +53,110 @@ public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentB ...@@ -30,4 +53,110 @@ public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentB
public List<DocumentBomDto> queryForDocumentBomList() { public List<DocumentBomDto> queryForDocumentBomList() {
return this.queryForList("" , false); return this.queryForList("" , false);
} }
/**
* 分页查询 By preparationMoneyId
*/
public Page<DocumentBomDto> queryForDocumentBomPage(Page<DocumentBomDto> page, Long preparationMoneyId) {
return this.queryForPage(page, null, false, preparationMoneyId);
}
/**
* 查询 By preparationMoneyId
*/
public List<DocumentBomDto> listByPreparationMoneyId(Long preparationMoneyId) {
return this.queryForList(null, false, preparationMoneyId);
}
/**
* 根据发货电站组装BOM清单数据
*
*
* @param powerHouseholdIds powerHouseholdIds
* @return {@link List< DocumentBom>}
* @author Provence
* @throws
*/
public List<DocumentBom> assembleDocumentBom(List<Long> powerHouseholdIds) {
// hygf_design_information
List<DesignInformation> designInformations = designInformationService.query().in("peasant_household_id", powerHouseholdIds).list();
// [{"wlbm":"1","Symbol_key":"B1F7FEE3-9377-4A42-81FB-DEB8775EF67C","wlmc":"1","dcpgg":"1"}]
// 组件-assembly, 逆变器-inverter,电表箱-electricity_meter 根据物料编码 分组
List<DocumentBom> documentBoms = new ArrayList<>();
for (DesignInformation designInformation : designInformations) {
documentBoms.addAll(convertBom(designInformation.getAssembly(), "assembly"));
documentBoms.addAll(convertBom(designInformation.getInverter(), "inverter"));
documentBoms.addAll(convertBom(designInformation.getElectricityMeter(), "electricityMeter"));
}
// 根据物料编码 分组
return documentBoms.stream().collect(Collectors.groupingBy(DocumentBom::getMaterialNum)).values().stream()
.flatMap(list -> Stream.of(list.stream().reduce((o1, o2) -> {
o1.setDemandNumber(o1.getDemandNumber() + o2.getDemandNumber());
o1.setDiscountTotal(caculateDiscountTotal(o1).add(caculateDiscountTotal(o2)).doubleValue());
o1.setDiscountUnitPrice(caculateDiscountUnitPrice(o1).add(caculateDiscountUnitPrice(o2)).doubleValue());
return o1;
}).orElse(null)).filter(Objects::nonNull)).collect(Collectors.toList());
}
private BigDecimal caculateTotal(DocumentBom o1) {
return new BigDecimal(o1.getDemandNumber()).multiply(new BigDecimal(o1.getUnitPrice()));
}
private BigDecimal caculateDiscountTotal(DocumentBom o1) {
// 折扣总额 = 总价 - 折扣总价
return caculateTotal(o1).subtract(new BigDecimal(o1.getDemandNumber()).multiply(caculateDiscountUnitPrice(o1)));
}
private BigDecimal caculateDiscountUnitPrice(DocumentBom o1) {
// 折扣后单价 = 单价 * 折扣率
return new BigDecimal(o1.getUnitPrice()).multiply(new BigDecimal(DISCOUNT_RATE));
}
/**
* 设计信息内的组件-assembly, 逆变器-inverter,电表箱-electricity_meter json转成bom清单对象
*
*
* @param objects objects
* @param materialType materialType
* @return {@link List< DocumentBom>}
* @author Provence
* @throws
*/
private List<DocumentBom> convertBom(List<Object> objects, String materialType) {
if (CollectionUtils.isEmpty(objects)) {
return Collections.EMPTY_LIST;
}
List<DocumentBom> documentBoms = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(objects.toString());
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
documentBoms.add(parseDocumentBom(json));
}
return documentBoms;
}
private DocumentBom parseDocumentBom(JSONObject json) {
DocumentBom documentBom = new DocumentBom();
String materialNum = json.getString("wlbm");//物料编码
String materialName = json.getString("wlmc");//物料名称
Integer demandNumber = json.getInteger("pzsl");//配置数量
Double price = json.getDouble("price");//价格
if (StringUtils.isAnyBlank(materialNum, materialName)) {
throw new RuntimeException("物料编码和物料名称不能为空");
}
if (null == demandNumber || null == price) {
throw new RuntimeException("价格和配置数量不能为空");
}
Double power = Double.valueOf(Optional.ofNullable(json.getString("gl")).orElse("0").replace("W", ""));// 去掉功率的单位
documentBom.setMaterialNum(materialNum);//物料编码
documentBom.setMaterialName(materialName);//物料名称
documentBom.setUnitPrice(price);
documentBom.setDemandNumber(demandNumber);
documentBom.setPower(power);
/*
类型和分组目前没有该字段
documentBom.setMaterialType(materialType);
documentBom.setMaterialGroup();*/
return documentBom;
}
} }
\ No newline at end of file
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyLogDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
import com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyLogMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IPreparationMoneyLogService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
* 发货单日志记录服务实现类
*
* @author system_generator
* @date 2023-08-17
*/
@Service
public class PreparationMoneyLogServiceImpl extends BaseService<PreparationMoneyLogDto, PreparationMoneyLog, PreparationMoneyLogMapper> implements IPreparationMoneyLogService {
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jxiop.api.util.HttpUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.InputStream;
/**
* 农户微信小程序
*
* @author Provence
* @version v1.0
* @date 2023/8/21 16:21
*/
@Slf4j
@Component
public class WxServiceImpl {
@Value ("${hygfProgram.appid}")
private String appId;
@Value ("${hygfProgram.secret}")
private String secret;
public String getSessionKey(String code) {
JSONObject jsonObject = getCode2Session(code);
String sessionKey = null;
if (jsonObject != null) {
sessionKey = jsonObject.getString("session_key");
}
return sessionKey;
}
public JSONObject getCode2Session(String code) {
String url = buildOpenIdUrl(appId, secret, code);
String resultStr = HttpUtil.sendHttpGet(url);
// resultStr => {"session_key":"Mj5xbDhcZU73DtUduI1xKg==","openid":"oRraY5aYJkxkDJiG4rBaaw4MSmPA"}
log.info("微信 Code2Session, code =>{}, 结果 => {}", code, resultStr);
JSONObject jsonObject = JSONObject.parseObject(resultStr);
if (jsonObject == null || jsonObject.getIntValue("errcode") != 0) {
throw new BadRequest(jsonObject.getString("errmsg"));
}
return jsonObject;
}
private String buildOpenIdUrl(String appId, String secret, String code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + secret + "&js_code="
+ code + "&grant_type=authorization_code";
return url;
}
@Data
public static class ResponeVo {
int code;
CloseableHttpResponse response;
String content;
byte[] inStream;
InputStream inputStream;
}
public String getOpenId(String code) {
JSONObject jsonObject = getCode2Session(code);
String openId = null;
if (jsonObject != null) {
openId = jsonObject.getString("openid");
}
return openId;
}
}
...@@ -85,27 +85,27 @@ spring.jms.pub-sub-domain=false ...@@ -85,27 +85,27 @@ spring.jms.pub-sub-domain=false
myqueue=amos.privilege.v1.JXIOP.AQSC_FDGL.userBusiness myqueue=amos.privilege.v1.JXIOP.AQSC_FDGL.userBusiness
regulator.unit.code=86*258 regulator.unit.code=86*258
# 经销商应用code # ������Ӧ��code
dealer.appcode=studio_normalapp_5133538 dealer.appcode=studio_normalapp_5133538
hygf.sms.tempCode=SMS_HYGF_0001 hygf.sms.tempCode=SMS_HYGF_0001
# 华为短信相关配置 # ��Ϊ�����������
sms.huawei.url=https://smsapi.cn-north-4.myhuaweicloud.com:443/sms/batchSendSms/v1 sms.huawei.url=https://smsapi.cn-north-4.myhuaweicloud.com:443/sms/batchSendSms/v1
sms.huawei.appKey=n3FYPWO7Heo1ze212QRBvF4VA2E2 sms.huawei.appKey=n3FYPWO7Heo1ze212QRBvF4VA2E2
sms.huawei.appSecret=IFhiMpWROi7w4Ei21ZbfIjKyt97b sms.huawei.appSecret=IFhiMpWROi7w4Ei21ZbfIjKyt97b
# 模id # ģ��id
sms.huawei.templateId=6aaeb4bf916d4db0a1942c598912519e sms.huawei.templateId=6aaeb4bf916d4db0a1942c598912519e
# 签名通道号 # ǩ��ͨ����
sms.huawei.sender=1069368924410006092 sms.huawei.sender=1069368924410006092
# 签名名称 # 签名名称
sms.huawei.signature=华为云短信测试 sms.huawei.signature=华为云短信测试
# 审核pageId确认 # ���pageIdȷ��
power.station.examine.pageId=1680853427061551106 power.station.examine.pageId=1680853427061551106
# 电站审核计划id # ��վ��˼ƻ�id
power.station.examine.planId=c4ed1873-0dc6-4518-a7a9-dbc588ef35e5 power.station.examine.planId=c4ed1873-0dc6-4518-a7a9-dbc588ef35e5
# 用户组userGroupId # �û���userGroupId
hygf.user.group.id=1679755750924120066 hygf.user.group.id=1679755750924120066
...@@ -121,8 +121,24 @@ qiyuesuo.serverUrl = https://openapi.qiyuesuo.cn ...@@ -121,8 +121,24 @@ qiyuesuo.serverUrl = https://openapi.qiyuesuo.cn
qiyuesuo.accessKey = TdBmNkjAYd qiyuesuo.accessKey = TdBmNkjAYd
qiyuesuo.accessSecret = y8KiDFKKDdC9Ld9Cm5zuy2rpXjxP5Z qiyuesuo.accessSecret = y8KiDFKKDdC9Ld9Cm5zuy2rpXjxP5Z
qiyuesuo.category=智信能源科技有限公司光伏合同 qiyuesuo.category=������Դ�Ƽ����޹�˾�����ͬ
qiyuesuo.companyTenantName=智信能源科技有限公司 qiyuesuo.companyTenantName=������Դ�Ƽ����޹�˾
qiyuesuo.companyUsername=吴文宝 qiyuesuo.companyUsername=���ı�
qiyuesuo.companyContact=13870935656 qiyuesuo.companyContact=13870935656
\ No newline at end of file # ============================================= v20230821 add properties =============================================
security.productWeb=AMOS_STUDIO_WEB
security.appKey=AMOS_STUDIO
login.environment=dev
# 光伏农户微信小程序信息
hygfProgram.appid=wx2188769349b1ddeb
hygfProgram.secret=3bfd098cfdac002126e728d2dbf83c0d
# 默认微信小程序农户经销商
farmer.orgCode=86
farmer.sequenceNbr=1620981815542046722
farmer.orgNamesWithoutRole=
farmer.roleId=1678211468450885633
# 配置接口授权用户
platform.access.loginId=hygf_platform
platform.access.password=23F8A9AE5E9CF343B0AFD49A9C44947
\ No newline at end of file
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