| | |
| | | import com.java110.intf.common.IAppraiseInnerServiceSMO; |
| | | import com.java110.intf.user.IUserInnerServiceSMO; |
| | | import com.java110.po.appraise.AppraisePo; |
| | | import com.java110.po.user.UserPo; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | appraisePo.setObjType(AppraiseDto.OBJ_TYPE_REPAIR); |
| | | appraisePo.setAppraiseType(AppraiseDto.APPRAISE_TYPE_PUBLIC); |
| | | appraiseInnerServiceSMOImpl.saveAppraise(appraisePo); |
| | | //获取当前结单的用户 |
| | | Map mapInfo = new HashMap(); |
| | | mapInfo.put("repairId", repairId); |
| | | mapInfo.put("state", RepairUserDto.STATE_CLOSE); |
| | | List<Map> repairUsers = repairUserServiceDaoImpl.getRepairUserInfo(mapInfo); |
| | | Assert.listOnlyOne(repairUsers, "查询结单用户错误!"); |
| | | //获取结单员工的id |
| | | Object staffId = repairUsers.get(0).get("staffId"); |
| | | //获取结单员工信息 |
| | | UserDto user = new UserDto(); |
| | | user.setUserId(staffId.toString()); |
| | | List<UserDto> userList = userInnerServiceSMO.getUsers(user); |
| | | Assert.listOnlyOne(userList, "查询用户信息错误!"); |
| | | //获取综合评价得分 |
| | | Double appraiseScore = 0.0; |
| | | if (!StringUtil.isEmpty(appraisePo.getAppraiseScore())) { |
| | | appraiseScore = Double.parseDouble(appraisePo.getAppraiseScore()); |
| | | } |
| | | //获取上门速度评分 |
| | | Double doorSpeedScore = 0.0; |
| | | if (!StringUtil.isEmpty(appraisePo.getDoorSpeedScore())) { |
| | | doorSpeedScore = Double.parseDouble(appraisePo.getDoorSpeedScore()); |
| | | } |
| | | //获取维修员服务评分 |
| | | Double repairmanServiceScore = 0.0; |
| | | if (!StringUtil.isEmpty(appraisePo.getRepairmanServiceScore())) { |
| | | repairmanServiceScore = Double.parseDouble(appraisePo.getRepairmanServiceScore()); |
| | | } |
| | | //计算平均分 |
| | | double average = 0.0; |
| | | double averageNumber = (appraiseScore + doorSpeedScore + repairmanServiceScore) / 3.0; |
| | | if (StringUtil.isEmpty(userList.get(0).getScore())) { |
| | | BigDecimal averageNum = new BigDecimal(averageNumber); |
| | | average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | } else { |
| | | //获取用户原有评分 |
| | | Double scoreNumber = Double.parseDouble(userList.get(0).getScore()); |
| | | double score = (averageNumber + scoreNumber) / 2.0; |
| | | BigDecimal averageNum = new BigDecimal(score); |
| | | average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | } |
| | | //更新用户评分 |
| | | UserPo userPo = new UserPo(); |
| | | userPo.setUserId(staffId.toString()); |
| | | userPo.setScore(String.valueOf(average)); |
| | | userInnerServiceSMO.updateUser(userPo); |
| | | return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK); |
| | | |
| | | } |
| | | } |