添加完成订单添加字段
This commit is contained in:
parent
767c6f1fda
commit
6ba6151af0
|
@ -184,7 +184,7 @@ public class ArtificerController {
|
|||
@PostMapping("/accomplishOrders")
|
||||
@ApiOperation("完成订单")
|
||||
public Result accomplishOrders(Long ordersId){
|
||||
return ordersService.accomplishOrders(ordersId,1,null,null);
|
||||
return ordersService.accomplishOrders(ordersId,1,null,null,null, null,null);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@ import com.sqx.modules.artificer.entity.*;
|
|||
import com.sqx.modules.artificer.service.*;
|
||||
import com.sqx.modules.bl.collect.entity.CollectMassage;
|
||||
import com.sqx.modules.bl.collect.service.CollectMassageService;
|
||||
import com.sqx.modules.bl.pingjiaTag.entity.BlPingjiaTag;
|
||||
import com.sqx.modules.bl.pingjiaTag.service.BlPingjiaTagService;
|
||||
import com.sqx.modules.common.dao.CommonInfoDao;
|
||||
import com.sqx.modules.common.entity.CommonInfo;
|
||||
import com.sqx.modules.common.service.CommonInfoService;
|
||||
|
@ -81,6 +83,9 @@ public class AppArtificerController {
|
|||
private CommonInfoDao commonInfoDao;
|
||||
@Autowired
|
||||
private ArtificerDao artificerDao;
|
||||
|
||||
@Autowired
|
||||
private BlPingjiaTagService blPingjiaTagService;
|
||||
@Autowired
|
||||
private UserRechargeDao userRechargeDao;
|
||||
@Autowired
|
||||
|
@ -252,8 +257,8 @@ public class AppArtificerController {
|
|||
|
||||
@PostMapping("/accomplishOrders")
|
||||
@ApiOperation("完成订单")
|
||||
public Result accomplishOrders(Long ordersId,String accomplishLongitude,String accomplishLatitude){
|
||||
return ordersService.accomplishOrders(ordersId,2,accomplishLongitude,accomplishLatitude);
|
||||
public Result accomplishOrders(Long ordersId,String accomplishLongitude,String accomplishLatitude,String jsFwcn,String jsPjtag,String jsTsbz){
|
||||
return ordersService.accomplishOrders(ordersId,2,accomplishLongitude,accomplishLatitude, jsFwcn, jsPjtag, jsTsbz);
|
||||
}
|
||||
|
||||
@PostMapping("/startOrders")
|
||||
|
@ -588,5 +593,13 @@ public class AppArtificerController {
|
|||
return Result.success("拒单申请已提交,请等待客户审核!");
|
||||
}
|
||||
|
||||
@ApiOperation("技师获取评价标签")
|
||||
@GetMapping("/getPingjiaTagList")
|
||||
public Result getPingjiaTagList(){
|
||||
List<BlPingjiaTag> list = blPingjiaTagService.list();
|
||||
Map<String,Object> map = new HashMap<String,Object>();
|
||||
map.put("data",list);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -122,4 +122,6 @@ public interface OrdersDao extends BaseMapper<Orders> {
|
|||
IPage<Orders> getJiazhongList(Page<Orders> pages, Long userId, Integer isSfwc, String startTime, String endTime);
|
||||
|
||||
IPage<Orders> getChongzhiList(Page<Orders> pages, Long userId, Integer isSfwc, String startTime, String endTime);
|
||||
|
||||
String selectOrdersZxscNum(Long artificerId, String startTime, String endTime);
|
||||
}
|
|
@ -310,6 +310,19 @@ public class Orders implements Serializable {
|
|||
*/
|
||||
private String refusalContent;
|
||||
|
||||
/**
|
||||
* 技师完成服务承诺 多个按照逗号分割
|
||||
*/
|
||||
private String jsFwcn;
|
||||
/**
|
||||
* 技师评价标签 多个按照逗号分割
|
||||
*/
|
||||
private String jsPjtag;
|
||||
/**
|
||||
* 技师特殊备注
|
||||
*/
|
||||
private String jsTsbz;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
|
|
|
@ -48,7 +48,7 @@ public interface OrdersService extends IService<Orders> {
|
|||
|
||||
Result payUserVip(Long userId,Long vipDetailsId);
|
||||
|
||||
Result accomplishOrders(Long ordersId,Integer type,String accomplishLongitude,String accomplishLatitude);
|
||||
Result accomplishOrders(Long ordersId,Integer type,String accomplishLongitude,String accomplishLatitude,String jsFwcn,String jsPjtag,String jsTsbz);
|
||||
|
||||
Result startOrders(Long ordersId,String startLongitude,String startLatitude,String startImg);
|
||||
|
||||
|
|
|
@ -2862,7 +2862,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
|
||||
|
||||
@Override
|
||||
public Result accomplishOrders(Long ordersId, Integer type, String accomplishLongitude, String accomplishLatitude) {
|
||||
public Result accomplishOrders(Long ordersId, Integer type, String accomplishLongitude, String accomplishLatitude,String jsFwcn,String jsPjtag,String jsTsbz) {
|
||||
reentrantReadWriteLock.writeLock().lock();
|
||||
try {
|
||||
Orders orders = baseMapper.selectById(ordersId);
|
||||
|
@ -3017,6 +3017,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
}
|
||||
orders.setEndTimes(DateUtils.format(new Date()));
|
||||
orders.setJsFwcn(jsFwcn);
|
||||
orders.setJsPjtag(jsPjtag);
|
||||
orders.setJsTsbz(jsTsbz);
|
||||
//修改订单表类型
|
||||
baseMapper.updateById(orders);
|
||||
//修改订单下所有加钟的状态为待评价
|
||||
|
|
|
@ -55,9 +55,10 @@ public class AllTaskServiceImpl implements AllTaskSercice {
|
|||
* 计算技师升级规则 每天半夜1点执行,预留12点到01点之间的计算间隔,用于触发其他计算逻辑
|
||||
* A0,A1,A2,A3,A4,A5等
|
||||
*/
|
||||
@Scheduled(cron = "0 0 1 * * ?")
|
||||
@Scheduled(cron = "0 0 0 * * ?")
|
||||
public void upgradeJishi() {
|
||||
//1.获取全部有效技师
|
||||
System.out.println("------------计算技师升级规则-----------");
|
||||
//1.获取全部参与积分规则的技师
|
||||
List<Artificer> jslist = artificerDao.getYxjsList();
|
||||
//2.获取计算周期,从几号到几号例如1号-10号为一个周期,11号到20号第二个周期,21号-月底是第三个周期
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
|
@ -103,28 +104,73 @@ public class AllTaskServiceImpl implements AllTaskSercice {
|
|||
//获取技师是否参与积分规则,如果参与积分规则则继续执行,否则不变分成比例
|
||||
Integer ynJfgz = jsPar.getYnJfgz();//是否参与积分规则计算(0不参与 1参与)
|
||||
if(ynJfgz==1){
|
||||
Long classifyId = jsPar.getClassifyId();
|
||||
//4.1获取 技师销售金额(order表的 price) 只查询完成的单子
|
||||
int jsdqyj = ordersDao.selectOrdersArtificerIntegralEarnings(jsPar.getArtificerId(),endTime,startTime);
|
||||
//4.2获取 技师加钟率(order表的parent_id为空则是正常订单,不为空则是加钟订单 用加钟订单/正常订单为加钟率)
|
||||
String jsjzl = ordersDao.selectOrdersArtificerIntegraladdNum(jsPar.getArtificerId(),endTime,startTime);
|
||||
//4.3获取 在线时长(通过积分表和兑换比例反推在线时长 user_rechange的type=1)
|
||||
String jszxsc = ordersDao.selectOrdersZxscNum(jsPar.getArtificerId(),startTime,endTime);
|
||||
CommonInfo commonInfo = commonInfoDao.findOne(100000);
|
||||
String minute = commonInfo.getValue();//多少分钟等于1积分
|
||||
Double zxscHour = Double.parseDouble(jszxsc)*Double.parseDouble(minute)/60;
|
||||
//4.4获取 积分(充值积分 user_rechange的type=2)
|
||||
String jsjfStr = ordersDao.selectOrdersStoredValueIntegral(jsPar.getArtificerId(),endTime,startTime);
|
||||
//4.5根据对应的收益,判断属于哪个等级,并修改artificer的yn_jfgz(等级标识)及rate(百分比)
|
||||
//组装对应的升级规则集合
|
||||
List<ArtificerPartitioningDetails> sjgzList = new ArrayList<>();
|
||||
Long classifyId = jsPar.getClassifyId();
|
||||
// List<ArtificerPartitioningDetails> sjgzList = new ArrayList<>();
|
||||
Double zddj = Double.parseDouble(jsdqyj+"");
|
||||
Double jzl = Double.parseDouble(jsjzl);
|
||||
Double zxsc = zxscHour;
|
||||
Double jsjf = Double.parseDouble(jsjfStr);
|
||||
String jsdj = "";//
|
||||
BigDecimal rate = BigDecimal.valueOf(0.6);
|
||||
for (ArtificerPartitioningDetails sjgzPar : sjgzAllList){
|
||||
//当技师的服务类型=升级规则的服务类型,才可以添加到升级规则里去
|
||||
if(StringUtils.equals(sjgzPar.getClassifyId(),String.valueOf(classifyId))){
|
||||
sjgzList.add(sjgzPar);
|
||||
// sjgzList.add(sjgzPar);
|
||||
//最低业绩
|
||||
Double zddjPar = Double.parseDouble(sjgzPar.getOutstandingAchievement()+"");
|
||||
//加钟率
|
||||
Double jzlPar = Double.parseDouble(sjgzPar.getClockRate()+"");
|
||||
//在线时长
|
||||
Double zxscPar = Double.parseDouble(sjgzPar.getDurationOnline()+"");
|
||||
//充值积分
|
||||
Double czjfPar = Double.parseDouble(sjgzPar.getIntegral()+"");
|
||||
System.out.println("============================"+sjgzPar.getGrade()+"================================");
|
||||
System.out.println("最低业绩:"+zddj+">"+zddjPar);
|
||||
System.out.println("加钟率A:"+jzl+">"+jzlPar);
|
||||
System.out.println("在线时长:"+zxsc+">"+zxscPar);
|
||||
System.out.println("充值积分:"+jsjf+">"+czjfPar);
|
||||
System.out.println("============================================================");
|
||||
if(zddj>zddjPar && jzl >jzlPar && zxsc > zxscPar && jsjf > czjfPar){
|
||||
jsdj = sjgzPar.getGrade();
|
||||
rate = BigDecimal.valueOf(Double.parseDouble(sjgzPar.getProportionalSharing()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//4.1获取 技师销售金额(order表的 price) 只查询完成的单子
|
||||
Orders ordersQueryWrapper = new Orders();
|
||||
ordersQueryWrapper.setStartTime(startTime);
|
||||
ordersQueryWrapper.setEndTime(endTime);
|
||||
ordersQueryWrapper.setArtificerId(jsPar.getArtificerId());
|
||||
String tjxsje = ordersDao.selectTjpriceList(ordersQueryWrapper);
|
||||
//4.2获取 技师加钟率(order表的parent_id为空则是正常订单,不为空则是加钟订单 用加钟订单/正常订单为加钟率)
|
||||
|
||||
//4.3获取 在线时长(通过积分表和兑换比例反推在线时长 user_rechange的type=1)
|
||||
|
||||
//4.4获取 积分(充值积分 user_rechange的type=2)
|
||||
|
||||
//4.5根据对应的收益,判断属于哪个等级,并修改artificer的yn_jfgz(等级标识)及rate(百分比)
|
||||
//如果都不符合,则给最低等级(保底)
|
||||
if(StringUtils.isEmpty(jsdj)){
|
||||
QueryWrapper<ArtificerPartitioningDetails> sjgzQuery1 = new QueryWrapper<ArtificerPartitioningDetails>();
|
||||
sjgzQuery1.eq("outstanding_achievement",0);
|
||||
sjgzQuery1.eq("clock_rate",0);
|
||||
sjgzQuery1.eq("duration_online",0);
|
||||
sjgzQuery1.eq("integral",0);
|
||||
sjgzQuery1.eq("classify_id",classifyId);
|
||||
sjgzQuery1.last("limit 1");
|
||||
ArtificerPartitioningDetails zddjgz = artificerPartitioningDetailsMapper.selectOne(sjgzQuery1);
|
||||
jsdj = zddjgz.getGrade();
|
||||
rate = BigDecimal.valueOf(Double.parseDouble(zddjgz.getProportionalSharing()));
|
||||
}
|
||||
//如果还查不出来,则保持原样,一点办法都没有了
|
||||
if(StringUtils.isNotEmpty(jsdj)){
|
||||
Artificer jsUp = new Artificer();
|
||||
jsUp.setRate(rate);
|
||||
jsUp.setGrade(jsdj);
|
||||
jsUp.setArtificerId(jsPar.getArtificerId());
|
||||
artificerDao.updateById(jsUp);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -204,6 +204,7 @@
|
|||
select a.* from artificer a
|
||||
inner join tb_user u on a.user_id=u.user_id
|
||||
where u.status = 1
|
||||
and yn_jfgz = 1
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
@ -991,6 +991,13 @@
|
|||
and o.end_times BETWEEN #{startDate} and #{endDate}
|
||||
and o.status in (3,5)
|
||||
</select>
|
||||
<!--在线时长-->
|
||||
<select id="selectOrdersZxscNum" resultType="java.lang.String">
|
||||
select IFNULL( SUM(user_recharge),0) AS zxsc from bl_user_zxsc
|
||||
where artificer_id = #{artificerId}
|
||||
and create_time >= #{startTime}
|
||||
and create_time <= #{endTime}
|
||||
</select>
|
||||
|
||||
<select id="selectTjpriceList" resultType="java.lang.String">
|
||||
select
|
||||
|
|
Loading…
Reference in New Issue