提交 c0b9086a 作者: zhenjie

Merge branch 'develop'

...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<dependency> <dependency>
<groupId>org.hibernate.validator</groupId> <groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId> <artifactId>hibernate-validator</artifactId>
<version>6.0.7.Final</version> <version>6.0.20.Final</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.afterturn</groupId> <groupId>cn.afterturn</groupId>
......
...@@ -23,19 +23,19 @@ import java.util.List; ...@@ -23,19 +23,19 @@ import java.util.List;
public class IndustryCaseQO implements Serializable { public class IndustryCaseQO implements Serializable {
private static final long serialVersionUID = -4615177472593013257L; private static final long serialVersionUID = -4615177472593013257L;
@ApiModelProperty(value = "关键字", required = false) @ApiModelProperty(value = "关键字", required = false, example = "张三")
private String keyword; private String keyword;
@ApiModelProperty(value = "需求类型id", required = false) @ApiModelProperty(value = "需求类型id", required = false, example = "1")
private Integer requirementTypeId; private Integer requirementTypeId;
@ApiModelProperty(value = "省份编码", required = false) @ApiModelProperty(value = "省份编码", required = false, example = "802323")
private Integer provinceCode; private Integer provinceCode;
@ApiModelProperty(value = "市编码", required = false) @ApiModelProperty(value = "市编码", required = false, example = "802323")
private Integer cityCode; private Integer cityCode;
@ApiModelProperty(value = "区编码", required = false) @ApiModelProperty(value = "区编码", required = false, example = "802323")
private Integer districtCode; private Integer districtCode;
@ApiModelProperty(value = "时间:2023-05-19", required = false) @ApiModelProperty(value = "时间:2023-05-19", required = false)
......
package com.mmc.csf.infomation.vo; package com.mmc.csf.infomation.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mmc.csf.release.model.group.Insert; import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update; import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -9,8 +10,11 @@ import lombok.Data; ...@@ -9,8 +10,11 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
...@@ -26,6 +30,69 @@ public class RequirementsInfoVO implements Serializable { ...@@ -26,6 +30,69 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class}) @NotNull(message = "id不能为空", groups = {Update.class})
private Integer id; private Integer id;
@ApiModelProperty(value = "需求发布id", hidden = true)
private Integer requirementsInfoId;
@ApiModelProperty(value = "需求类型id", example = "1", required = true)
@NotNull(message = "需求类型id不能为空", groups = {Insert.class, Update.class})
private Integer requirementTypeId;
@ApiModelProperty(value = "任务标题", example = "任务标题001", required = true)
@Size(max = 15, message = "任务标题限制15个字")
@NotBlank(message = "任务标题不能为空", groups = {Insert.class, Update.class})
private String taskTitle;
@ApiModelProperty(value = "任务开始时间", example = "2023-07-25", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskStartTime;
@ApiModelProperty(value = "任务结束时间", example = "2023-07-26", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskEndTime;
@ApiModelProperty(value = "任务地址", example = "广东省深圳市", required = true)
@NotBlank(message = "任务地址不能为空", groups = {Insert.class, Update.class})
private String taskAddress;
@ApiModelProperty(value = "任务经度", example = "23.344324", required = true)
@NotNull(message = "任务经度不能为空", groups = {Insert.class, Update.class})
private Double longitude;
@ApiModelProperty(value = "任务纬度", example = "44.344324", required = true)
@NotNull(message = "任务纬度不能为空", groups = {Insert.class, Update.class})
private Double latitude;
@ApiModelProperty(value = "需求描述", example = "描述一下", required = true)
@NotNull(message = "需求描述不能为空", groups = {Insert.class})
@Length(max = 300, message = "字符过长")
private String requireDescription;
@ApiModelProperty(value = "描述图片", example = "http://,http://", required = false)
private String requireUrl;
@ApiModelProperty(value = "发布者姓名", example = "张三")
// @NotNull(message = "发布者姓名不能为空", groups = {Insert.class})
private String publishName;
@ApiModelProperty(value = "发布者电话", example = "1892994543", required = true)
@NotNull(message = "发布者电话不能为空", groups = {Insert.class})
private String publishPhone;
/**
* 后台获取token里面的用户id
*/
@ApiModelProperty(value = "用户id", hidden = true)
//@NotNull(message = "用户id不能为空", groups = {Insert.class})
private Integer userAccountId;
@ApiModelProperty(value = "省份编码", required = false) @ApiModelProperty(value = "省份编码", required = false)
//@NotNull(message = "省份编码不能为空", groups = {Insert.class}) //@NotNull(message = "省份编码不能为空", groups = {Insert.class})
private Integer provinceCode; private Integer provinceCode;
...@@ -33,28 +100,26 @@ public class RequirementsInfoVO implements Serializable { ...@@ -33,28 +100,26 @@ public class RequirementsInfoVO implements Serializable {
private Integer cityCode; private Integer cityCode;
@ApiModelProperty(value = "区编码", required = false) @ApiModelProperty(value = "区编码", required = false)
private Integer districtCode; private Integer districtCode;
@ApiModelProperty(value = "需求类型id")
@NotNull(message = "需求类型id不能为空", groups = {Insert.class})
private Integer requirementTypeId;
@ApiModelProperty(value = "需求类型名称")
private String requirementTypeName;
@ApiModelProperty(value = "用户id")
//@NotNull(message = "用户id不能为空", groups = {Insert.class})
private Integer userAccountId;
@ApiModelProperty(value = "发布者姓名")
@NotNull(message = "发布者姓名不能为空", groups = {Insert.class})
private String publishName;
@ApiModelProperty(value = "发布者电话")
@NotNull(message = "发布者电话不能为空", groups = {Insert.class})
private String publishPhone;
@ApiModelProperty(value = "需求描述")
@NotNull(message = "需求描述不能为空", groups = {Insert.class})
@Length(max = 256, message = "字符过长")
private String requireDescription;
@ApiModelProperty(value = "是否已解决") @ApiModelProperty(value = "是否已解决")
private Boolean solved; private Boolean solved;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "类型名称", hidden = true)
private Date updateTime; private String requirementTypeName;
@ApiModelProperty(value = "订单编号")
private String orderNumber;
@ApiModelProperty(value = "应支付金额 单位元", example = "1.00")
private BigDecimal paramMoney;
@ApiModelProperty(value = "发布者id", example = "1", required = true)
private Integer publishAccountId;
@ApiModelProperty(value = "发布者订单编号")
private String publisherNumber;
} }
package com.mmc.csf.infomation.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/7/25 9:56
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class RequirementsTypeSubclassVO {
/**
* 二级分类的id
*/
private Integer id;
/**
* 一级分类的id
*/
private Integer requirementsTypeId;
/**
* 二级分类的名称
*/
private String name;
}
...@@ -7,7 +7,7 @@ import lombok.Data; ...@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.List;
/** /**
* @author: zj * @author: zj
...@@ -23,4 +23,9 @@ public class RequirementsTypeVO implements Serializable { ...@@ -23,4 +23,9 @@ public class RequirementsTypeVO implements Serializable {
private Integer id; private Integer id;
@ApiModelProperty(value = "需求名称") @ApiModelProperty(value = "需求名称")
private String typeName; private String typeName;
/**
* 二级分类
*/
private List<RequirementsTypeSubclassVO> typeSubclassList;
} }
...@@ -34,4 +34,6 @@ public class TenderApplyVO implements Serializable { ...@@ -34,4 +34,6 @@ public class TenderApplyVO implements Serializable {
@ApiModelProperty(value = "联系电话", hidden = true) @ApiModelProperty(value = "联系电话", hidden = true)
//@NotNull(message = "联系电话不能为空", groups = {Create.class}) //@NotNull(message = "联系电话不能为空", groups = {Create.class})
private String phoneNum; private String phoneNum;
} }
package com.mmc.csf.release.model.group; package com.mmc.csf.release.model.group;
import javax.validation.groups.Default;
/** /**
* @author 作者 dahang * @author 作者 dahang
* @version 创建时间:2022年7月20日 * @version 创建时间:2022年7月20日
* @explain 类说明 * @explain 类说明
*/ */
public interface Insert { public interface Insert extends Default {
} }
...@@ -83,13 +83,6 @@ ...@@ -83,13 +83,6 @@
<version>2.9.0</version> <version>2.9.0</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.github.wxpay/wxpay-sdk -->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>javax.servlet</groupId>
......
...@@ -404,7 +404,11 @@ public enum ResultEnum implements BaseErrorInfoInterface { ...@@ -404,7 +404,11 @@ public enum ResultEnum implements BaseErrorInfoInterface {
// 论坛 // 论坛
DYNAMIC_SENSITIVE_INFO("50100", "发布信息涉及敏感信息!"), DYNAMIC_SENSITIVE_INFO("50100", "发布信息涉及敏感信息!"),
THE_ORGANIZATION_NAME_ALREADY_EXISTS("60001", "机构名称已存在"), THE_ORGANIZATION_NAME_ALREADY_EXISTS("60001", "机构名称已存在"),
YOU_CANNOT_MODIFY_REQUIREMENTS_PUBLISHED_BY_OTHERS("60003", "不能修改他(她)人发布的需求"),
YOU_CANNOT_DELETE_REQUIREMENTS_POSTED_BY_OTHERS("60004", "不能删除他(她)人发布的需求"),
THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED("60005", "第三方接口在更新请联系开发人员"),
THREE_FIELDS_CAN_BE_REPEATED("60002", "机型、等级、类型存在重复"); THREE_FIELDS_CAN_BE_REPEATED("60002", "机型、等级、类型存在重复");
/** /**
* 错误码 * 错误码
* *
......
...@@ -18,4 +18,4 @@ patches: ...@@ -18,4 +18,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: 89096d93770e8076a81d07f0386daff9a303bd14 newTag: 8d6510aa5d90515a62b0293d79641358521815c9
...@@ -6,12 +6,9 @@ import com.mmc.csf.infomation.vo.RequirementsInfoVO; ...@@ -6,12 +6,9 @@ import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO; import com.mmc.csf.infomation.vo.RequirementsTypeVO;
import com.mmc.csf.release.model.group.Insert; import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Page; import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Query; import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.RequirementsService; import com.mmc.csf.release.service.RequirementsService;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -25,44 +22,75 @@ import javax.servlet.http.HttpServletRequest; ...@@ -25,44 +22,75 @@ import javax.servlet.http.HttpServletRequest;
@Api(tags = {"需求相关"}) @Api(tags = {"需求相关"})
@RestController @RestController
@RequestMapping("/requirements/") @RequestMapping("/requirements/")
public class RequirementsController extends BaseController{ public class RequirementsController extends BaseController {
@Autowired @Autowired
private RequirementsService requirementsService; private RequirementsService requirementsService;
@ApiOperation(value = "需求类型") @ApiOperation(value = "需求类型")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = RequirementsTypeVO.class) }) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = RequirementsTypeVO.class)})
@GetMapping("listType") @GetMapping("listType")
public ResultBody listType(){ public ResultBody listType(@RequestParam(value = "1", required = false) Integer id) {
return requirementsService.listType(); return requirementsService.listType(id);
} }
@ApiOperation(value = "需求发布") @ApiOperation(value = "小程序——需求发布")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) }) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publish") @PostMapping("publish")
public ResultBody publish(@Validated(value = {Insert.class})@RequestBody RequirementsInfoVO requirementsInfoVO, HttpServletRequest request){ public ResultBody publish(@RequestBody @Validated(value = {Insert.class}) RequirementsInfoVO requirementsInfoVO, HttpServletRequest request) {
requirementsInfoVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId()); requirementsInfoVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.publish(requirementsInfoVO, request); return requirementsService.publish(requirementsInfoVO, request);
} }
@ApiOperation(value = "小程序-编辑——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("updatePublish")
public ResultBody updatePublish(@RequestBody @Validated(value = {Update.class}) RequirementsInfoVO requirementsInfoVO, HttpServletRequest request) {
requirementsInfoVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.updatePublish(requirementsInfoVO, request);
}
@ApiOperation(value = "小程序-删除——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("deletePublish")
public ResultBody deletePublish(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer id, HttpServletRequest request) {
return requirementsService.deletePublish(id, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "小程序-列表——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("appPublishList")
public ResultBody<RequirementsInfoVO> appPublishList() {
return requirementsService.appPublishList();
}
@ApiOperation(value = "小程序-详情——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("detailPublish")
public ResultBody<RequirementsInfoVO> detailPublish(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer id, HttpServletRequest request) {
return requirementsService.detailPublish(id, request, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "需求发布列表") @ApiOperation(value = "需求发布列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = RequirementsInfoVO.class) }) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = RequirementsInfoVO.class)})
@PostMapping("listPublishPage") @PostMapping("listPublishPage")
public ResultBody listPublishPage(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO, HttpServletRequest request){ public ResultBody listPublishPage(@Validated(value = {Page.class}) @RequestBody IndustryCaseQO
industryCaseQO, HttpServletRequest request) {
return requirementsService.listPublishPage(industryCaseQO, request); return requirementsService.listPublishPage(industryCaseQO, request);
} }
@ApiOperation(value = "需求已解决") @ApiOperation(value = "需求已解决")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) }) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("solveRequire") @GetMapping("solveRequire")
public ResultBody solveRequire(@RequestParam Integer requirementsInfoId, HttpServletRequest request){ public ResultBody solveRequire(@RequestParam Integer requirementsInfoId, HttpServletRequest request) {
return requirementsService.solveRequire(requirementsInfoId, this.getUserLoginInfoFromRedis(request).getUserAccountId()); return requirementsService.solveRequire(requirementsInfoId, this.getUserLoginInfoFromRedis(request).getUserAccountId());
} }
@ApiOperation(value = "删除需求") @ApiOperation(value = "删除需求")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) }) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("deleteRequire") @GetMapping("deleteRequire")
public ResultBody deleteRequire(@RequestParam Integer requirementsInfoId, HttpServletRequest request){ public ResultBody deleteRequire(@RequestParam Integer requirementsInfoId, HttpServletRequest request) {
return requirementsService.deleteRequire(requirementsInfoId, this.getUserLoginInfoFromRedis(request).getUserAccountId()); return requirementsService.deleteRequire(requirementsInfoId, this.getUserLoginInfoFromRedis(request).getUserAccountId());
} }
......
...@@ -15,30 +15,35 @@ import java.util.List; ...@@ -15,30 +15,35 @@ import java.util.List;
public interface RequirementsDao { public interface RequirementsDao {
/** /**
* 需求类型列表 * 需求类型列表
*
* @return * @return
*/ */
List<RequirementsTypeDO> listType(); List<RequirementsTypeDO> listType();
/** /**
* 添加需求 * 添加需求
*
* @param requirementsInfoDO * @param requirementsInfoDO
*/ */
void addRequirementsInfo(RequirementsInfoDO requirementsInfoDO); void addRequirementsInfo(RequirementsInfoDO requirementsInfoDO);
/** /**
* 获取需求 * 获取需求
*
* @param requirementsInfoId * @param requirementsInfoId
*/ */
RequirementsInfoDO getRequirementsInfoById(Integer requirementsInfoId); RequirementsInfoDO getRequirementsInfoById(Integer requirementsInfoId);
/** /**
* 解决需求 * 解决需求
*
* @param requirementsInfoId * @param requirementsInfoId
*/ */
void solveRequire(Integer requirementsInfoId); void solveRequire(Integer requirementsInfoId);
/** /**
* 需求发布的数量 * 需求发布的数量
*
* @param industryCaseQO * @param industryCaseQO
* @return * @return
*/ */
...@@ -46,6 +51,7 @@ public interface RequirementsDao { ...@@ -46,6 +51,7 @@ public interface RequirementsDao {
/** /**
* 需求发布列表 * 需求发布列表
*
* @param industryCaseQO * @param industryCaseQO
* @return * @return
*/ */
...@@ -53,7 +59,22 @@ public interface RequirementsDao { ...@@ -53,7 +59,22 @@ public interface RequirementsDao {
/** /**
* 删除需求 * 删除需求
*
* @param requirementsInfoId * @param requirementsInfoId
*/ */
void removeRequire(Integer requirementsInfoId); void removeRequire(Integer requirementsInfoId);
List<RequirementsTypeDO> listTypeReq(Integer id);
Integer findPublish(RequirementsInfoDO requirementsInfoDO);
void updatePublish(RequirementsInfoDO requirementsInfoDO);
Integer findPublishCount(Integer id, Integer userAccountId);
void requirementsDao(Integer id);
List<RequirementsInfoDO> appPublishList();
RequirementsInfoDO detailPublish(Integer id);
} }
package com.mmc.csf.release.entity.requirements; package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mmc.csf.infomation.vo.RequirementsInfoVO; import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
...@@ -31,13 +38,59 @@ public class RequirementsInfoDO implements Serializable { ...@@ -31,13 +38,59 @@ public class RequirementsInfoDO implements Serializable {
private Boolean solved; private Boolean solved;
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "任务标题", example = "任务标题001", required = true)
@NotBlank(message = "任务标题不能为空", groups = {Insert.class, Update.class})
@Size(max = 15, message = "任务标题限制15个字")
private String taskTitle;
public RequirementsInfoVO buildRequirementsInfoVO(){ @ApiModelProperty(value = "任务开始时间", example = "2023-07-25", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskStartTime;
@ApiModelProperty(value = "任务结束时间", example = "2023-07-26", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskEndTime;
@ApiModelProperty(value = "任务地址", example = "广东省深圳市", required = true)
@NotBlank(message = "任务地址不能为空", groups = {Insert.class, Update.class})
private String taskAddress;
@ApiModelProperty(value = "任务经度", example = "23.344324", required = true)
@NotNull(message = "任务经度不能为空", groups = {Insert.class, Update.class})
private Double longitude;
@ApiModelProperty(value = "任务纬度", example = "44.344324", required = true)
@NotNull(message = "任务纬度不能为空", groups = {Insert.class, Update.class})
private Double latitude;
@ApiModelProperty(value = "描述图片", example = "http://,http://", required = false)
private String requireUrl;
@ApiModelProperty(value = "类型名称")
private String requirementTypeName;
@ApiModelProperty(value = "发布者订单编号")
private String publisherNumber;
public RequirementsInfoVO buildRequirementsInfoVO() {
return RequirementsInfoVO.builder().id(this.id).requirementTypeId(this.requirementTypeId).userAccountId(this.userAccountId).publishName(this.publishName) return RequirementsInfoVO.builder().id(this.id).requirementTypeId(this.requirementTypeId).userAccountId(this.userAccountId).publishName(this.publishName)
.publishPhone(this.publishPhone).requireDescription(this.requireDescription).solved(this.solved).createTime(this.createTime).updateTime(this.updateTime).build(); .publishPhone(this.publishPhone).requireDescription(this.requireDescription).solved(this.solved).taskStartTime(this.taskStartTime).taskEndTime(this.taskEndTime)
.taskTitle(this.taskTitle)
.taskAddress(this.taskAddress)
.longitude(this.longitude)
.latitude(this.latitude)
.requirementTypeName(this.requirementTypeName)
.publisherNumber(this.publisherNumber)
.requireUrl(this.requireUrl).build();
} }
public RequirementsInfoDO(RequirementsInfoVO requirementsInfoVO){ public RequirementsInfoDO(RequirementsInfoVO requirementsInfoVO) {
this.id = requirementsInfoVO.getId(); this.id = requirementsInfoVO.getId();
this.requirementTypeId = requirementsInfoVO.getRequirementTypeId(); this.requirementTypeId = requirementsInfoVO.getRequirementTypeId();
this.userAccountId = requirementsInfoVO.getUserAccountId(); this.userAccountId = requirementsInfoVO.getUserAccountId();
...@@ -47,6 +100,13 @@ public class RequirementsInfoDO implements Serializable { ...@@ -47,6 +100,13 @@ public class RequirementsInfoDO implements Serializable {
this.provinceCode = requirementsInfoVO.getProvinceCode(); this.provinceCode = requirementsInfoVO.getProvinceCode();
this.cityCode = requirementsInfoVO.getCityCode(); this.cityCode = requirementsInfoVO.getCityCode();
this.districtCode = requirementsInfoVO.getDistrictCode(); this.districtCode = requirementsInfoVO.getDistrictCode();
this.taskStartTime = requirementsInfoVO.getTaskStartTime();
this.taskEndTime = requirementsInfoVO.getTaskEndTime();
this.taskTitle = requirementsInfoVO.getTaskTitle();
this.taskAddress = requirementsInfoVO.getTaskAddress();
this.longitude = requirementsInfoVO.getLongitude();
this.latitude = requirementsInfoVO.getLatitude();
this.requireUrl = requirementsInfoVO.getRequireUrl();
} }
} }
package com.mmc.csf.release.entity.requirements; package com.mmc.csf.release.entity.requirements;
import com.mmc.csf.infomation.vo.RequirementsTypeSubclassVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO; import com.mmc.csf.infomation.vo.RequirementsTypeVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
...@@ -7,6 +8,7 @@ import lombok.NoArgsConstructor; ...@@ -7,6 +8,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @description 需求类型 用枚举 * @description 需求类型 用枚举
...@@ -21,9 +23,14 @@ public class RequirementsTypeDO implements Serializable { ...@@ -21,9 +23,14 @@ public class RequirementsTypeDO implements Serializable {
private Integer id; private Integer id;
private String typeName; private String typeName;
private Date createTime; private Date createTime;
/**
* 二级分类
*/
private List<RequirementsTypeSubclassVO> typeSubclassList;
public RequirementsTypeVO buildRequirementsTypeVO(){ public RequirementsTypeVO buildRequirementsTypeVO() {
return RequirementsTypeVO.builder().id(this.id).typeName(this.typeName).build(); return RequirementsTypeVO.builder().id(this.id).typeName(this.typeName).typeSubclassList(this.typeSubclassList).
build();
} }
} }
package com.mmc.csf.release.entity.requirements;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/7/25 9:52
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RequirementsTypeSubclassDO {
/**
* 二级分类的id
*/
private Integer id;
/**
* 一级分类的id
*/
private Integer requirementsTypeId;
/**
* 二级分类的名称
*/
private String name;
}
...@@ -13,12 +13,14 @@ import javax.servlet.http.HttpServletRequest; ...@@ -13,12 +13,14 @@ import javax.servlet.http.HttpServletRequest;
public interface RequirementsService { public interface RequirementsService {
/** /**
* 需求类型列表 * 需求类型列表
*
* @return * @return
*/ */
ResultBody listType(); ResultBody listType(Integer id);
/** /**
* 需求发布 * 需求发布
*
* @param requirementsInfoVO * @param requirementsInfoVO
* @param request * @param request
* @return * @return
...@@ -27,6 +29,7 @@ public interface RequirementsService { ...@@ -27,6 +29,7 @@ public interface RequirementsService {
/** /**
* 解决需求 * 解决需求
*
* @param requirementsInfoId * @param requirementsInfoId
* @param userAccountId * @param userAccountId
* @return * @return
...@@ -35,6 +38,7 @@ public interface RequirementsService { ...@@ -35,6 +38,7 @@ public interface RequirementsService {
/** /**
* 需求发布列表 * 需求发布列表
*
* @param industryCaseQO * @param industryCaseQO
* @param request * @param request
* @return * @return
...@@ -43,9 +47,18 @@ public interface RequirementsService { ...@@ -43,9 +47,18 @@ public interface RequirementsService {
/** /**
* 删除需求 * 删除需求
*
* @param requirementsInfoId * @param requirementsInfoId
* @param userAccountId * @param userAccountId
* @return * @return
*/ */
ResultBody deleteRequire(Integer requirementsInfoId, Integer userAccountId); ResultBody deleteRequire(Integer requirementsInfoId, Integer userAccountId);
ResultBody updatePublish(RequirementsInfoVO requirementsInfoVO, HttpServletRequest request);
ResultBody deletePublish(Integer id, Integer userAccountId);
ResultBody appPublishList();
ResultBody detailPublish(Integer id, HttpServletRequest request, Integer userAccountId);
} }
package com.mmc.csf.release.service.impl; package com.mmc.csf.release.service.impl;
import java.util.List; import com.alibaba.fastjson.JSON;
import java.util.Map; import com.alibaba.fastjson.JSONObject;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mmc.csf.common.util.page.PageResult; import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.qo.IndustryCaseQO; import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO; import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO; import com.mmc.csf.infomation.vo.RequirementsTypeVO;
...@@ -20,8 +14,23 @@ import com.mmc.csf.release.entity.requirements.RequirementsTypeDO; ...@@ -20,8 +14,23 @@ import com.mmc.csf.release.entity.requirements.RequirementsTypeDO;
import com.mmc.csf.release.feign.UserAppApi; import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.RequirementsService; import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil; import com.mmc.csf.release.util.RestTemplateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;
/** /**
* @author: zj * @author: zj
...@@ -39,9 +48,18 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -39,9 +48,18 @@ public class RequirementsServiceImpl implements RequirementsService {
@Autowired @Autowired
private RestTemplateUtil restTemplateUtil; private RestTemplateUtil restTemplateUtil;
@Autowired
private RestTemplate restTemplate;
@Value("${iuav.omsapp.url}")
private String omsApp;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override @Override
public ResultBody listType() { public ResultBody listType(Integer id) {
List<RequirementsTypeDO> requirementsTypeDOList = requirementsDao.listType(); List<RequirementsTypeDO> requirementsTypeDOList = requirementsDao.listTypeReq(id);
List<RequirementsTypeVO> requirementsTypeVOList = requirementsTypeDOList.stream().map(RequirementsTypeDO::buildRequirementsTypeVO).collect(Collectors.toList()); List<RequirementsTypeVO> requirementsTypeVOList = requirementsTypeDOList.stream().map(RequirementsTypeDO::buildRequirementsTypeVO).collect(Collectors.toList());
return ResultBody.success(requirementsTypeVOList); return ResultBody.success(requirementsTypeVOList);
} }
...@@ -53,15 +71,20 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -53,15 +71,20 @@ public class RequirementsServiceImpl implements RequirementsService {
// if (userAccountSimpleDTO == null || !userAccountSimpleDTO.getCompanyAuthStatus().toString().equals("1")){ // if (userAccountSimpleDTO == null || !userAccountSimpleDTO.getCompanyAuthStatus().toString().equals("1")){
// return ResultBody.error(ResultEnum.COMPANY_NOT_VERIFY_ERROR); // return ResultBody.error(ResultEnum.COMPANY_NOT_VERIFY_ERROR);
// } // }
RequirementsInfoDO requirementsInfoDO = new RequirementsInfoDO(requirementsInfoVO); RequirementsInfoDO requirementsInfoDO = new RequirementsInfoDO(requirementsInfoVO);
requirementsInfoDO.setPublisherNumber(randomOrderCode());
requirementsDao.addRequirementsInfo(requirementsInfoDO); requirementsDao.addRequirementsInfo(requirementsInfoDO);
return ResultBody.success(); return ResultBody.success();
} }
HttpHeaders headers = new HttpHeaders();
@Override @Override
public ResultBody solveRequire(Integer requirementsInfoId, Integer userAccountId) { public ResultBody solveRequire(Integer requirementsInfoId, Integer userAccountId) {
RequirementsInfoDO requirementsInfoDO = requirementsDao.getRequirementsInfoById(requirementsInfoId); RequirementsInfoDO requirementsInfoDO = requirementsDao.getRequirementsInfoById(requirementsInfoId);
if (!requirementsInfoDO.getUserAccountId().toString().equals(userAccountId.toString())){ if (!requirementsInfoDO.getUserAccountId().toString().equals(userAccountId.toString())) {
return ResultBody.error("无权限"); return ResultBody.error("无权限");
} }
requirementsDao.solveRequire(requirementsInfoId); requirementsDao.solveRequire(requirementsInfoId);
...@@ -91,4 +114,104 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -91,4 +114,104 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao.removeRequire(requirementsInfoId); requirementsDao.removeRequire(requirementsInfoId);
return ResultBody.success(); return ResultBody.success();
} }
@Override
public ResultBody updatePublish(RequirementsInfoVO requirementsInfoVO, HttpServletRequest request) {
RequirementsInfoDO requirementsInfoDO = new RequirementsInfoDO(requirementsInfoVO);
Integer publish = requirementsDao.findPublish(requirementsInfoDO);
if (publish == 0) {
return ResultBody.error(ResultEnum.YOU_CANNOT_MODIFY_REQUIREMENTS_PUBLISHED_BY_OTHERS);
}
requirementsDao.updatePublish(requirementsInfoDO);
return ResultBody.success();
}
@Override
public ResultBody deletePublish(Integer id, Integer userAccountId) {
Integer publish = requirementsDao.findPublishCount(id, userAccountId);
if (publish == 0) {
return ResultBody.error(ResultEnum.YOU_CANNOT_DELETE_REQUIREMENTS_POSTED_BY_OTHERS);
}
requirementsDao.requirementsDao(id);
return ResultBody.success();
}
@Override
public ResultBody appPublishList() {
List<RequirementsInfoDO> requirementsInfoDOS = requirementsDao.appPublishList();
List<RequirementsInfoVO> collect = requirementsInfoDOS.stream().map(RequirementsInfoDO::buildRequirementsInfoVO).collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody detailPublish(Integer id, HttpServletRequest request, Integer userAccountId) {
RequirementsInfoDO requirementsInfoDO = requirementsDao.detailPublish(id);
RequirementsInfoVO requirementsInfoVO = requirementsInfoDO.buildRequirementsInfoVO();
if (userAccountId.equals(requirementsInfoVO.getUserAccountId())) {
requirementsInfoVO.setParamMoney(BigDecimal.valueOf(0.00));
} else if (!userAccountId.equals(requirementsInfoVO.getUserAccountId())) {
requirementsInfoVO.setParamMoney(BigDecimal.valueOf(0.10));
}
requirementsInfoVO.setOrderNumber(randomOrderCode());
requirementsInfoVO.setPublishAccountId(requirementsInfoDO.getUserAccountId());
requirementsInfoVO.setRequirementsInfoId(requirementsInfoDO.getId());
//已经支付
String s = stringRedisTemplate.opsForValue().get(requirementsInfoDO.getId().toString());
RequirementsInfoVO orderVO = JSON.parseObject(s, RequirementsInfoVO.class);
if (s != null) {
if (requirementsInfoDO.getId().equals(orderVO.getRequirementsInfoId()) && userAccountId.equals(orderVO.getUserAccountId())) {
requirementsInfoVO.setParamMoney(new BigDecimal(0));
requirementsInfoVO.setOrderNumber(orderVO.getOrderNumber());
requirementsInfoVO.setPublishPhone("");
return ResultBody.success(requirementsInfoVO);
}
}
//生成
ResultBody resultBody = releaseOrder(requirementsInfoVO, request.getHeader("token"));
if (resultBody.getCode().equals(ResultEnum.THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED.getResultCode())) {
return resultBody;
}
requirementsInfoVO.setPublishPhone("");
return ResultBody.success(requirementsInfoVO);
}
public ResultBody releaseOrder(RequirementsInfoVO requirementsInfoVO, String token) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("token", token);
HttpEntity<String> entity = new HttpEntity<>(JSONObject.toJSONString(requirementsInfoVO), headers);
ResponseEntity<Object> exchange = null;
try {
exchange = restTemplate.exchange(omsApp + "releaseOrder/publish", HttpMethod.POST, entity, Object.class);
} catch (RestClientException e) {
return ResultBody.error(ResultEnum.THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED);
}
return ResultBody.success();
}
public String randomOrderCode() {
SimpleDateFormat dmDate = new SimpleDateFormat("yyyyMMddHHmmss");
String ranData = getRandom(6);
Date date = new Date();
String dateRan = dmDate.format(date);
String xsCode = "R" + dateRan + ranData;
if (xsCode.length() < 24) {
xsCode = xsCode + 0;
}
return xsCode;
}
public String getRandom(int len) {
Random r = new Random();
StringBuilder rs = new StringBuilder();
for (int i = 0; i < len; i++) {
rs.append(r.nextInt(10));
}
return rs.toString();
}
} }
...@@ -67,9 +67,9 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService { ...@@ -67,9 +67,9 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService {
return ResultBody.error(ResultEnum.THREE_FIELDS_CAN_BE_REPEATED); return ResultBody.error(ResultEnum.THREE_FIELDS_CAN_BE_REPEATED);
} }
} }
// licenceBackgroundDao.insertLicenseOrgTraining(organizationsDO.getOrgTrainingIds(), organizationsDO.getId()); // licenceBackgroundDao.insertLicenseOrgTraining(organizationsDO.getOrgTrainingIds(), organizationsDO.getId());
} }
if (organizations.getTrainingProgramsVOS()==null || organizations.getTrainingProgramsVOS().size()==0){ if (organizations.getTrainingProgramsVOS() == null || organizations.getTrainingProgramsVOS().size() == 0) {
licenceBackgroundDao.insertOrganizations(organizationsDO); licenceBackgroundDao.insertOrganizations(organizationsDO);
} }
return ResultBody.success(); return ResultBody.success();
...@@ -97,7 +97,7 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService { ...@@ -97,7 +97,7 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService {
hashMap.put(trainingProgramsVO, pro++); hashMap.put(trainingProgramsVO, pro++);
return ResultBody.error(ResultEnum.THREE_FIELDS_CAN_BE_REPEATED); return ResultBody.error(ResultEnum.THREE_FIELDS_CAN_BE_REPEATED);
} }
// licenceBackgroundDao.removeOrganizations(organizations.getId()); // licenceBackgroundDao.removeOrganizations(organizations.getId());
programsDO = new LicenseTrainingProgramsDO(trainingProgramsVO); programsDO = new LicenseTrainingProgramsDO(trainingProgramsVO);
Integer id = organizations.getId(); Integer id = organizations.getId();
programsDO.setOrgId(id); programsDO.setOrgId(id);
...@@ -107,9 +107,9 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService { ...@@ -107,9 +107,9 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService {
} }
licenceBackgroundDao.updateOrganizations(organizationsDO); licenceBackgroundDao.updateOrganizations(organizationsDO);
// licenceBackgroundDao.insertLicenseOrgTraining(organizationsDO.getOrgTrainingIds(), organizationsDO.getId()); // licenceBackgroundDao.insertLicenseOrgTraining(organizationsDO.getOrgTrainingIds(), organizationsDO.getId());
} }
if (organizations.getTrainingProgramsVOS()==null || organizations.getTrainingProgramsVOS().size()==0){ if (organizations.getTrainingProgramsVOS() == null || organizations.getTrainingProgramsVOS().size() == 0) {
licenceBackgroundDao.updateOrganizations(organizationsDO); licenceBackgroundDao.updateOrganizations(organizationsDO);
} }
return ResultBody.success(); return ResultBody.success();
...@@ -159,7 +159,10 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService { ...@@ -159,7 +159,10 @@ public class LicenceBackgroundServiceImpl implements LicenceBackgroundService {
} }
return true; return true;
}).collect(Collectors.toList());*/ }).collect(Collectors.toList());*/
if (organizationsQO.getModelsId() != null || organizationsQO.getGradeId() != null || organizationsQO.getTypeId() != null) {
orgList = orgList.stream().filter(t -> t.getProgramsDOList() != null).collect(Collectors.toList());
}
List<LicenseOrganizationsDTO> subList = orgList.stream().skip((pageNo - 1) * organizationsQO.getPageSize()).limit(organizationsQO.getPageSize()). List<LicenseOrganizationsDTO> subList = orgList.stream().skip((pageNo - 1) * organizationsQO.getPageSize()).limit(organizationsQO.getPageSize()).
collect(Collectors.toList()); collect(Collectors.toList());
......
...@@ -147,6 +147,9 @@ iuav: ...@@ -147,6 +147,9 @@ iuav:
url: http://cms-svc:35150 url: http://cms-svc:35150
pmsapp: pmsapp:
url: http://pms-svc:8099 url: http://pms-svc:8099
omsapp:
url: https://test.iuav.shop/oms/
#mmc: #mmc:
# appid: 80001 # appid: 80001
...@@ -174,4 +177,4 @@ iuav: ...@@ -174,4 +177,4 @@ iuav:
# endpoints: # endpoints:
# web: # web:
# exposure: # exposure:
# include: "*" # include: "*"
\ No newline at end of file
...@@ -15,35 +15,34 @@ spring: ...@@ -15,35 +15,34 @@ spring:
password: IUAV_DEV@2023&MYSQL password: IUAV_DEV@2023&MYSQL
# Druid数据源配置 # Druid数据源配置
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
druid: # druid:
initial-size: 1 #初始化连接池大小 # initial-size: 1 #初始化连接池大小
min-idle: 1 #最小大小 # min-idle: 1 #最小大小
max-active: 1 #最大大小 # max-active: 1 #最大大小
max-wait: 60000 #获取连接时最大等待时间,单位毫秒 # max-wait: 60000 #获取连接时最大等待时间,单位毫秒
time-between-eviction-runs-millis: 60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 # time-between-eviction-runs-millis: 60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
min-evictable-idle-time-millis: 300000 #配置一个连接在池中最小生存的时间,单位是毫秒 # min-evictable-idle-time-millis: 300000 #配置一个连接在池中最小生存的时间,单位是毫秒
validation-query: SELECT 1 FROM DUAL #用来检测连接是否有效的sql # validation-query: SELECT 1 FROM DUAL #用来检测连接是否有效的sql
test-while-idle: true #申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性 # test-while-idle: true #申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性
testOnBorrow: false #获取连接时执行检测,建议关闭,影响性能 # testOnBorrow: false #获取连接时执行检测,建议关闭,影响性能
testOnReturn: false #归还连接时执行检测,建议关闭,影响性能 # testOnReturn: false #归还连接时执行检测,建议关闭,影响性能
pool-prepared-statements: false #是否开启PSCache,PSCache对支持游标的数据库性能提升巨大,oracle建议开启,mysql下建议关闭 # pool-prepared-statements: false #是否开启PSCache,PSCache对支持游标的数据库性能提升巨大,oracle建议开启,mysql下建议关闭
filters: stat,wall #配置扩展插件,常用的插件有=>stat:监控统计 log4j:日志 wall:防御sql注入 # filters: stat,wall #配置扩展插件,常用的插件有=>stat:监控统计 log4j:日志 wall:防御sql注入
filter: # filter:
wall: # wall:
config: # config:
multi-statement-allow: true # multi-statement-allow: true
db-type: mysql # db-type: mysql
enabled: true # enabled: true
connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 #打开慢sql记录和延迟时间 # connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 #打开慢sql记录和延迟时间
web-stat-filter: # web-stat-filter:
url-pattern: /* # url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" # exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
enabled: true # enabled: true
stat-view-servlet: # stat-view-servlet:
enabled: true # enabled: true
login-username: druid # login-username: druid
login-password: druid # login-password: druid
#cloud
cloud: cloud:
loadbalancer: loadbalancer:
retry: retry:
...@@ -53,8 +52,7 @@ spring: ...@@ -53,8 +52,7 @@ spring:
#Redis #Redis
redis: redis:
database: 1 database: 1
host: r-wz9ke310fs684hacn1pd.redis.rds.aliyuncs.com host: 127.0.0.1
password: MMC@2022&REDIS
port: 6379 port: 6379
#连接池 #连接池
lettuce: lettuce:
...@@ -69,13 +67,25 @@ spring: ...@@ -69,13 +67,25 @@ spring:
#初始化最小 #初始化最小
min-idle: 1 min-idle: 1
#rabbitMQ #rabbitMQ
#rabbitMQ
rabbitmq: rabbitmq:
host: amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.net.mq.amqp.aliyuncs.com host: amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.net.mq.amqp.aliyuncs.com
port: 5672 port: 5672
username: MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY= username: MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY=
password: ${RABBITMQ_PASSWORD} password: RTg3OUMxQzk4NzU0NDQ4RkQ1RDg4MkEzQjY4M0M3MkQxOTM2QkEyNDoxNjUyNDA4NDk0NDg4
virtual-host: / virtual-host: /
wx:
sub:
appid: wx5c6a105a0ddca4c5
secret: 96c75255dd26f82f8d55e15b59e101c7
app:
id: wx18b7883acd204278
secret: 28afe74ba373830237a8133a7431ee82
miniprogram-state: trial
env-version: trial
port: user
#eureka eureka.client.register-with-eureka=true #eureka eureka.client.register-with-eureka=true
eureka: eureka:
instance: instance:
...@@ -104,48 +114,40 @@ mybatis: ...@@ -104,48 +114,40 @@ mybatis:
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
#feign
feign:
client:
config:
default:
connect-timeout: 3000
read-timeout: 6000
#Okhttp参数配置
httpclient:
enabled: false
okhttp:
enabled: true
hystrix:
enabled: true
hystrix:
command:
default:
execution:
isolation:
thread:
# hystrix 超时时间
timeoutInMilliseconds: 9000
#ribbon-ribbo和hystrix时间取最小的生效,feign和ribbon的超时时间只能选其一生效feign优先级高于ribbon
ribbon:
okhttp:
enabled: true
iuav: iuav:
userapp: userapp:
url: http://127.0.0.1:35150 url: http://cms-svc:35150
pmsapp: pmsapp:
url: http://127.0.0.1:8099 url: http://pms-svc:8099
omsapp:
wx: url: http://localhost:8077/oms/
sub:
appid: wx5c6a105a0ddca4c5
secret: 96c75255dd26f82f8d55e15b59e101c7
app:
id: wx18b7883acd204278
secret: 28afe74ba373830237a8133a7431ee82
miniprogram-state: trial
env-version: trial
##feign
#feign:
# client:
# config:
# default:
# connect-timeout: 3000
# read-timeout: 6000
# #Okhttp参数配置
# httpclient:
# enabled: false
# okhttp:
# enabled: true
# hystrix:
# enabled: true
#hystrix:
# command:
# default:
# execution:
# isolation:
# thread:
# # hystrix 超时时间
# timeoutInMilliseconds: 9000
##ribbon-ribbo和hystrix时间取最小的生效,feign和ribbon的超时时间只能选其一生效feign优先级高于ribbon
#ribbon:
# okhttp:
# enabled: true
#mmc: #mmc:
# appid: 80001 # appid: 80001
......
...@@ -145,6 +145,8 @@ iuav: ...@@ -145,6 +145,8 @@ iuav:
url: http://cms-svc:35150 url: http://cms-svc:35150
pmsapp: pmsapp:
url: http://pms-svc:8099 url: http://pms-svc:8099
omsapp:
url: https://www.iuav.shop/oms/
#mmc: #mmc:
# appid: 80001 # appid: 80001
...@@ -172,4 +174,4 @@ iuav: ...@@ -172,4 +174,4 @@ iuav:
# endpoints: # endpoints:
# web: # web:
# exposure: # exposure:
# include: "*" # include: "*"
\ No newline at end of file
...@@ -4,29 +4,75 @@ ...@@ -4,29 +4,75 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.csf.release.dao.RequirementsDao"> <mapper namespace="com.mmc.csf.release.dao.RequirementsDao">
<resultMap id="listTypeMap" type="com.mmc.csf.release.entity.requirements.RequirementsTypeDO">
<result property="id" column="id"/>
<result property="typeName" column="type_name"/>
<collection property="typeSubclassList" ofType="com.mmc.csf.infomation.vo.RequirementsTypeSubclassVO"
select="selectSubListType" column="{requirementsTypeId=id}">
</collection>
</resultMap>
<select id="selectSubListType" resultType="com.mmc.csf.infomation.vo.RequirementsTypeSubclassVO">
select id, requirements_type_id AS requirementsTypeId, `name`
from requirements_type_subclass
where requirements_type_id = #{requirementsTypeId}
</select>
<insert id="addRequirementsInfo" parameterType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO" <insert id="addRequirementsInfo" parameterType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
keyProperty="id" useGeneratedKeys="true"> keyProperty="id" useGeneratedKeys="true">
INSERT INTO `requirements_info`(`requirement_type_id`, `user_account_id`, `publish_name`, `publish_phone`, `require_description`, `province_code`, `city_code`, `district_code`, `create_time`) INSERT INTO requirements_info(requirement_type_id, user_account_id, publish_name, publish_phone,
VALUES (#{requirementTypeId}, #{userAccountId}, #{publishName}, #{publishPhone}, #{requireDescription}, #{provinceCode}, #{cityCode}, #{districtCode}, NOW()); require_description, province_code, city_code, district_code, create_time,
update_time, task_title, task_start_time, task_end_time, task_address, longitude,
latitude, require_url, publisher_number)
VALUES (#{requirementTypeId}, #{userAccountId}, #{publishName}, #{publishPhone},
#{requireDescription}, #{provinceCode}, #{cityCode}, #{districtCode}, NOW(),
NOW(), #{taskTitle}, #{taskStartTime}, #{taskEndTime}, #{taskAddress}, #{longitude},
#{latitude}, #{requireUrl}, #{publisherNumber});
</insert> </insert>
<update id="solveRequire"> <update id="solveRequire">
update requirements_info set is_solved = 1 where id = #{requirementsInfoId} update requirements_info
set is_solved = 1
where id = #{requirementsInfoId}
</update> </update>
<update id="removeRequire"> <delete id="removeRequire">
update requirements_info set is_deleted = 1 where id = #{requirementsInfoId} delete
</update> from requirements_info
where id = #{requirementsInfoId}
</delete>
<select id="listType" resultType="com.mmc.csf.release.entity.requirements.RequirementsTypeDO"> <select id="listType" resultType="com.mmc.csf.release.entity.requirements.RequirementsTypeDO">
select id, type_name from requirements_type where is_deleted = 0 select id, type_name
from requirements_type
where is_deleted = 0
</select>
<select id="listTypeReq" resultMap="listTypeMap">
select id, type_name
from requirements_type
where is_deleted = 0
<if test="id!= null ">
and id = #{id}
</if>
</select> </select>
<select id="getRequirementsInfoById" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO"> <select id="getRequirementsInfoById" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
select id, requirement_type_id, user_account_id, publish_name, publish_phone, require_description, is_solved as solved, create_time from requirements_info where id = #{id} select id,
requirement_type_id,
user_account_id,
publish_name,
publish_phone,
require_description,
is_solved as solved,
create_time
from requirements_info
where id = #{id}
</select> </select>
<select id="countListPublishPage" resultType="java.lang.Integer" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO"> <select id="countListPublishPage" resultType="java.lang.Integer"
parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select count(*) from requirements_info select count(*) from requirements_info
where is_deleted = 0 where is_deleted = 0
<if test="keyword != null"> <if test="keyword != null">
...@@ -52,20 +98,31 @@ ...@@ -52,20 +98,31 @@
</if> </if>
</select> </select>
<select id="listPublishPage" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO"> <select id="listPublishPage" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
select id, parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
SELECT
id,
requirement_type_id, requirement_type_id,
user_account_id, user_account_id,
publish_name, publish_name,
publish_phone, publish_phone,
require_description, require_description,
is_solved as solved, is_solved AS solved,
is_deleted as deleted, is_deleted AS deleted,
create_time, create_time,
update_time update_time,
from requirements_info task_title,
where is_deleted = 0 task_start_time,
<if test="keyword != null"> task_end_time,
task_address,
longitude,
latitude,
require_url
FROM
requirements_info
WHERE
is_deleted = 0
<if test="keyword != null and keyword != '' ">
and ( and (
publish_name like CONCAT("%",#{keyword},"%") or publish_name like CONCAT("%",#{keyword},"%") or
publish_phone like CONCAT("%",#{keyword},"%") publish_phone like CONCAT("%",#{keyword},"%")
...@@ -89,4 +146,115 @@ ...@@ -89,4 +146,115 @@
order by create_time desc order by create_time desc
limit #{pageNo}, #{pageSize} limit #{pageNo}, #{pageSize}
</select> </select>
</mapper>
\ No newline at end of file <select id="findPublish" parameterType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
resultType="java.lang.Integer">
SELECT count(*)
FROM requirements_info
WHERE id = #{id}
AND user_account_id = #{userAccountId}
</select>
<update id="updatePublish"
parameterType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
UPDATE requirements_info
<set>
<if test=" requirementTypeId != null and requirementTypeId != '' ">
requirement_type_id = #{requirementTypeId},
</if>
<if test=" userAccountId != null and userAccountId != '' ">
user_account_id = #{userAccountId},
</if>
<if test=" publishName != null and publishName != '' ">
publish_name = #{publishName},
</if>
<if test=" publishPhone != null and publishPhone != '' ">
publish_phone = #{publishPhone},
</if>
<if test=" requireDescription != null and requireDescription != '' ">
require_description = #{requireDescription},
</if>
<if test=" provinceCode != null and provinceCode != '' ">
province_code = #{provinceCode},
</if>
<if test=" cityCode != null and cityCode != '' ">
city_code = #{cityCode},
</if>
<if test=" districtCode != null and districtCode != '' ">
district_code = #{districtCode},
</if>
<if test=" taskTitle != null and taskTitle != '' ">
task_title = #{taskTitle},
</if>
<if test=" taskStartTime != null ">
task_start_time = #{taskStartTime},
</if>
<if test=" taskEndTime != null ">
task_end_time = #{taskEndTime},
</if>
<if test=" taskAddress != null and taskAddress != '' ">
task_address = #{taskAddress},
</if>
<if test=" longitude != null and longitude != '' ">
longitude = #{longitude},
</if>
<if test=" latitude != null and latitude != '' ">
latitude = #{latitude},
</if>
<if test=" requireUrl != null and requireUrl != '' ">
require_url = #{requireUrl},
</if>
update_time=NOW()
</set>
where id = #{id}
</update>
<select id="findPublishCount" resultType="java.lang.Integer">
SELECT count(*)
FROM requirements_info
WHERE id = #{id}
AND user_account_id = #{userAccountId}
</select>
<delete id="requirementsDao">
delete
from requirements_info
where id = #{id}
</delete>
<select id="appPublishList" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
SELECT id,
task_title,
task_start_time,
task_end_time,
task_address,
longitude,
latitude,
require_url,
require_description,
requirement_type_id,
user_account_id
FROM requirements_info
order by create_time desc
</select>
<select id="detailPublish" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
SELECT ri.id,
ri.task_title,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
ri.longitude,
ri.latitude,
ri.require_url,
ri.require_description,
ri.requirement_type_id,
ri.user_account_id,
rt.type_name AS requirementTypeName,
ri.publish_phone,
ri.publisher_number
FROM requirements_info ri
LEFT JOIN requirements_type rt
ON rt.id = ri.requirement_type_id
WHERE ri.id = #{id}
</select>
</mapper>
...@@ -37,3 +37,4 @@ data-filter: ...@@ -37,3 +37,4 @@ data-filter:
- /release/wechat/mediaCheckAsync - /release/wechat/mediaCheckAsync
- /release/licence/background/appListOrgPage - /release/licence/background/appListOrgPage
- /release/licence/background/webListOrgPage - /release/licence/background/webListOrgPage
- /release/requirements/appPublishList
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论