提交 082d08b7 作者: 刘明祎-运维用途

后台飞手团队可以修改结算金额,写金额明细

上级 35831283
......@@ -195,4 +195,6 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "订单共需多少人")
private Integer requireNum;
@ApiModelProperty(value = "后台修改后的金额")
private BigDecimal changedOrderAmount;
}
......@@ -11,7 +11,6 @@ import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.RequirementsService;
import io.swagger.annotations.*;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -89,14 +88,13 @@ public class RequirementsController extends BaseController {
@ApiOperation(value = "内部调用")
@GetMapping("/repertory")
public ServiceRequirementsDO repertory(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer requirementsInfoId, HttpServletRequest request){
public ServiceRequirementsDO repertory(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer requirementsInfoId, HttpServletRequest request) {
GrabTheOrderVO grabTheOrderVO = new GrabTheOrderVO();
grabTheOrderVO.setRequirementsInfoId(requirementsInfoId);
return requirementsService.getRepertory(grabTheOrderVO, request);
return requirementsService.getRepertory(grabTheOrderVO, request);
}
@ApiOperation(value = "小程序——发布服务需求订单编号单独接口")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publisherNumber")
......@@ -238,7 +236,7 @@ public class RequirementsController extends BaseController {
@PostMapping("confirmSettlement")
public ResultBody confirmSettlement(HttpServletRequest request, @RequestParam(value = "需求id") Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.confirmSettlement(userAccountId, requirementsInfoId,request);
return requirementsService.confirmSettlement(userAccountId, requirementsInfoId, request);
}
@ApiOperation(value = "new——小程序-—发布者--订单结算详情")
......@@ -314,6 +312,7 @@ public class RequirementsController extends BaseController {
/**
* 客服介入
*
* @param request
* @param liabilityProblemVO
* @return
......@@ -323,7 +322,7 @@ public class RequirementsController extends BaseController {
@PostMapping("cancelAll")
public ResultBody cancelAll(HttpServletRequest request, @RequestBody LiabilityProblemVO liabilityProblemVO) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.cancelAll(liabilityProblemVO, userAccountId,request);
return requirementsService.cancelAll(liabilityProblemVO, userAccountId, request);
}
......@@ -360,7 +359,7 @@ public class RequirementsController extends BaseController {
@ApiOperation(value = "小程序—获取子订单详细信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("selectRequireSonInfo")
public ResultBody<RequirementsInfoVO> selectRequireSonInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param){
public ResultBody<RequirementsInfoVO> selectRequireSonInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param) {
return ResultBody.success(requirementsService.selectRequireSonInfo(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
......@@ -370,6 +369,4 @@ public class RequirementsController extends BaseController {
public ResultBody agreeOrRefusePilot(@RequestBody AgreeOrRefusePilotQO param) {
return requirementsService.agreeOrRefusePilot(param);
}
}
}
\ No newline at end of file
package com.mmc.csf.release.dao;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.*;
import com.mmc.csf.infomation.vo.LiabilityProblemVO;
import com.mmc.csf.infomation.vo.ServiceSettleAccountsVO;
import com.mmc.csf.release.entity.requirements.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
......@@ -362,4 +360,20 @@ public interface RequirementsDao {
* @return {@link String}
*/
String selectOrderStatusByServiceFlowId(Integer serviceFlowId);
/**
* 查询订单所处的状态
* @param requireId 订单id
* @return {@link Integer}
*/
Integer selectServiceIdByRequireId(Integer requireId);
/**
* 获取后台修改后的金额
* @param requireId 订单id
* @return {@link Integer}
*/
BigDecimal getChangedOrderAmount(Integer requireId);
Integer selectUserSureChangeAmount(Integer requireId);
}
......@@ -2,6 +2,7 @@ package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
......@@ -12,6 +13,7 @@ import java.util.Date;
*
* @TableName order_amount_detail
*/
@Data
public class OrderAmountDetailDO implements Serializable {
/**
*
......@@ -23,7 +25,7 @@ public class OrderAmountDetailDO implements Serializable {
* 订单id
*/
@ApiModelProperty(value = "订单id",required = true)
@NotNull
@NotNull(message = "订单id不能为空")
private Integer requirementsInfoId;
/**
......
package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mmc.csf.config.IsNullConvertZero;
import com.mmc.csf.infomation.vo.RequirementsAmountVO;
import io.swagger.annotations.ApiModelProperty;
......@@ -27,7 +28,7 @@ public class RequirementsAmountUpdateDO {
@IsNullConvertZero
private BigDecimal orderAmount;
@ApiModelProperty(value = "发布者修改订单金额", example = "100")
@ApiModelProperty(value = "发布者修改订单金额", example = "100")
@IsNullConvertZero
private BigDecimal updateOrderAmount;
......@@ -67,6 +68,10 @@ public class RequirementsAmountUpdateDO {
@IsNullConvertZero
private BigDecimal returnSalaryAmount;
@ApiModelProperty(value = "小程序是否支付修改后金额")
@JsonIgnore
private Integer userSureChange;
public RequirementsAmountUpdateDO(RequirementsAmountVO amountVO, RequirementsInfoDO requirementsInfoDO) {
this.updateOrderAmount = amountVO.getUpdateOrderAmount();
this.reason = amountVO.getReason();
......
package com.mmc.csf.release.enums;
/**
* 对应ims service_flow中的字段
* @author Admin
* @date 2023/11/29
*/
public enum ServiceIdEnum {
WAIT_CHANGE_AMOUNT(12,"等待修改金额"),
DETAIL_COMPLETE(4,"任务已完成");
private Integer code;
private String name;
ServiceIdEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
public void setCode(Integer code) {
this.code = code;
}
public Integer getCode() {
return this.code;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
......@@ -11,14 +11,19 @@ import com.mmc.csf.release.dao.BackRequirementsDao;
import com.mmc.csf.release.dao.OrderAmountDetailDao;
import com.mmc.csf.release.dao.RequirementsDao;
import com.mmc.csf.release.entity.requirements.OrderAmountDetailDO;
import com.mmc.csf.release.entity.requirements.RequirementsAmountUpdateDO;
import com.mmc.csf.release.entity.requirements.ServiceOrderFormDO;
import com.mmc.csf.release.entity.requirements.ServiceOrderFormDetailsDO;
import com.mmc.csf.release.enums.ServiceIdEnum;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.BackRequirementsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
......@@ -27,6 +32,7 @@ import java.util.stream.Collectors;
* @Version 1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class BackRequirementsServiceImpl implements BackRequirementsService {
@Autowired
......@@ -98,9 +104,32 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
@Override
public ResultBody updateOrderAmountDetails(List<OrderAmountDetailDO> list) {
Integer requirementsInfoId = list.get(0).getRequirementsInfoId();
if(requirementsInfoId == null) {
return ResultBody.error("订单id不能为空");
}
//判当前订单是否是完成任务的状态
if(Objects.equals(requirementsDao.selectServiceIdByRequireId(requirementsInfoId), ServiceIdEnum.DETAIL_COMPLETE.getCode())) {
return ResultBody.error("当前订单不能进行修改金额");
}
//修改当前订单的状态
requirementsDao.updateScene(requirementsInfoId, ServiceIdEnum.WAIT_CHANGE_AMOUNT.getCode());
requirementsDao.updateInfo(requirementsInfoId, ServiceIdEnum.WAIT_CHANGE_AMOUNT.getCode());
//删除掉默认的一条数据
orderAmountDetailDao.deleteByPrimaryKey(list.get(0).getRequirementsInfoId());
orderAmountDetailDao.deleteByPrimaryKey(requirementsInfoId);
//把后面用户添加的数据保存到数据库
orderAmountDetailDao.batchInsert(list);
//算一下总金额保存下来,然后去小程序支付
BigDecimal amountSum = new BigDecimal(0);
for(OrderAmountDetailDO orderAmountDetailDO : list) {
amountSum = amountSum.add(orderAmountDetailDO.getRealWages());
}
RequirementsAmountUpdateDO requirementsAmountUpdateDO = new RequirementsAmountUpdateDO();
requirementsAmountUpdateDO.setRequirementsInfoId(requirementsInfoId);
requirementsAmountUpdateDO.setUpdateOrderAmount(amountSum);
requirementsAmountUpdateDO.setUserSureChange(0);
requirementsDao.requirementsAmountUpdate(requirementsAmountUpdateDO);
return ResultBody.success();
}
......
......@@ -265,6 +265,8 @@ public class RequirementsServiceImpl implements RequirementsService {
if (requirementsDao.selectServiceIdByRequireIdAndUserId(id, userAccountId) == 11) {
requirementsInfoVO.setOrderStatus("170");
}
BigDecimal changedOrderAmount = requirementsDao.getChangedOrderAmount(requirementsInfoVO.getRequirementsInfoId());
requirementsInfoVO.setChangedOrderAmount(changedOrderAmount);
return ResultBody.success(requirementsInfoVO);
}
......@@ -2003,8 +2005,14 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao.updateScene(amountVO.getRequirementsInfoId(), 8);
requirementsDao.updateInfo(amountVO.getRequirementsInfoId(), 8);
int amountUpdate = requirementsDao.findAmountUpdate(amountUpdateDO.getRequirementsInfoId());
//查看是否修改过最终结算金额
if (amountUpdate != 0) {
return ResultBody.error("只能修改一次不能重复修改");
//查看是否已经支付过 如果支付过就不能再修改了
if(requirementsDao.selectUserSureChangeAmount(amountUpdateDO.getRequirementsInfoId()) != 0){
return ResultBody.error("只能修改一次不能重复修改");
}
//没支付过是可以修改的
requirementsDao.updateRequirementsAmountUpdate(amountUpdateDO);
} else {
requirementsDao.requirementsAmountUpdate(amountUpdateDO);
}
......@@ -3263,7 +3271,6 @@ public class RequirementsServiceImpl implements RequirementsService {
return ResultBody.success();
}
public UserAccountSimpleDTO feignGetUserSimpleInfo(Integer userAccountId, HttpServletRequest request) {
String token = request.getHeader("token");
HttpHeaders headers = new HttpHeaders();
......
......@@ -50,11 +50,11 @@
INSERT INTO requirements_amount_update(requirements_info_id, order_amount, cash_amount, we_chat, salary_amount,
wechat_pay_order_number, create_time, update_time, reason, url,
user_account_id, update_order_amount, return_cash_amount, return_we_chat,
return_salary_amount)
return_salary_amount,user_sure_change)
values (#{requirementsInfoId}, #{orderAmount}, #{cashAmount}, #{weChat}, #{salaryAmount},
#{wechatPayOrderNumber}, NOW(), NOW(), #{reason}, #{url},
#{userAccountId}, #{updateOrderAmount}, #{returnCashAmount}, #{returnWeChat},
#{returnSalaryAmount})
#{returnSalaryAmount},#{userSureChange})
</insert>
......@@ -1824,6 +1824,15 @@
<select id="selectOrderStatusByServiceFlowId" resultType="java.lang.String">
select order_status from service_flow where id = #{serviceFlowId}
</select>
<select id="selectServiceIdByRequireId" resultType="java.lang.Integer">
select service_flow_id from requirements_info where id = #{requireId}
</select>
<select id="getChangedOrderAmount" resultType="java.math.BigDecimal">
select update_order_amount from requirements_amount_update where requirements_info_id = #{requireId} and user_sure_change = 0
</select>
<select id="selectUserSureChangeAmount" resultType="java.lang.Integer">
select user_sure_change from requirements_amount_update where requirements_info_id = #{requireId}
</select>
<delete id="deleteRequirementsServiceInfo">
delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论