Commit b4ac361d authored by 周健威's avatar 周健威

修改bug

parent de5c5669
package com.github.wxiaoqi.security.common.util;
import java.util.UUID;
import java.util.*;
/**
* Created by ace on 2017/9/27.
......@@ -35,13 +35,40 @@ public class UUIDUtils {
public static String genCodes(int length) {
StringBuffer shortBuffer = new StringBuffer();
String uuid = UUID.randomUUID().toString().replace("-", "");
//System.out.println(uuid);
for (int i = 0; i < length; i++) {
String str = uuid.substring(i * 4, i * 4 + 4);
int x = Integer.parseInt(str, 16);
shortBuffer.append(chars1[x % 0x3E]);
// chars1[x % 0x3B]chars[x % 0x3E]
shortBuffer.append(chars1[x % 0x3B]);
}
return shortBuffer.toString();
}
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < 100000000; i++) {
//System.out.println(UUIDUtils.genCodes(6));
String key = UUIDUtils.genCodes(8);
if(null == map.get(key)) {
map.put(key, 1);
}else {
System.out.println("重复"+ key+ ":"+ i);
map.put(key, map.get(key) + 1);
}
}
int flag = 0;
Set<Map.Entry<String, Integer>> list = map.entrySet();
for(Map.Entry<String, Integer> e : list) {
if(e.getValue() > 1) {
flag++;
System.out.println(e.getKey()+ ":"+ e.getValue());
}
}
System.out.println("flag : "+ flag);
}
}
......@@ -249,8 +249,8 @@ public class AppPermissionService {
rsUserDetail.setIsdel(0);
rsUserDetail.setCrtHost(getIp());
setCreateIPInfo(rsUserDetail);
//生成邀请码
rsUserDetail.setCode(UUIDUtils.genCodes(6));
//生成邀请码 长度改为8 不然重复率太高
rsUserDetail.setCode(UUIDUtils.genCodes(8));
appUserDetailBiz.insertSelective(rsUserDetail);
log.error("注册:新增用户详情: " + userid);
//自动登录获取优惠卷
......@@ -757,8 +757,8 @@ public class AppPermissionService {
rsUserDetail.setCreatetime(now);
rsUserDetail.setUpdatetime(now);
rsUserDetail.setIsdel(0);
//生成邀请码
rsUserDetail.setCode(UUIDUtils.genCodes(6));
//生成邀请码 长度改为8 不然重复率太高
rsUserDetail.setCode(UUIDUtils.genCodes(8));
//设置来源
rsUserDetail.setChannel(UserSourceEnum.APPLET.getCode());
rsUserDetail.setCrtHost(getIp());
......
......@@ -214,4 +214,18 @@ public class BaseOrder implements Serializable {
@ApiModelProperty(value = "乐观锁,修改版本号")
@Version
private Integer version;
/**
* 下单来源 1--app;2--小程序
*/
@ApiModelProperty(value = "下单来源 1--app;2--小程序")
@Column(name = "order_origin")
private Integer orderOrigin;
/**
* 支付来源 1--app;2--小程序
*/
@ApiModelProperty(value = "支付来源 1--app;2--小程序")
@Column(name = "pay_origin")
private Integer payOrigin;
}
......@@ -15,4 +15,8 @@ public interface OrderDetail {
BaseOrder getOrder();
void setOrder(BaseOrder order);
Integer getOrderOrigin();
void setOrderOrigin(Integer orderOrigin);
}
......@@ -94,6 +94,12 @@ public class AddRentVehicleDTO{
@ApiModelProperty(value = "是否使用出租免费天数")
private Integer rentFreeDay;
/**
*
*/
@ApiModelProperty(value = "下单来源,1--app;2--小程序")
private Integer orderOrigin;
/**
* 优惠券ids
......
......@@ -18,6 +18,10 @@ import java.util.List;
public class MemberBO extends OrderMemberDetail implements OrderDetail {
private BaseOrder order;
private BaseUserMemberLevel baseUserMemberLevel;
/**
* 下单来源,1--app;2--小程序
*/
private Integer orderOrigin;
/**
* 优惠券*
*/
......
......@@ -7,6 +7,7 @@ import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
......@@ -22,6 +23,11 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
private Integer rentFreeDay;
private AppUserDTO appUserDTO;
/**
* 下单来源,1--app;2--小程序
*/
private Integer orderOrigin;
/**
* 优惠券*
*/
......
......@@ -21,6 +21,10 @@ public class TourBO extends OrderTourDetail implements OrderDetail {
List<TourUser> tourUsers;
AppUserDTO appUserDTO;
/**
* 下单来源,1--app;2--小程序
*/
private Integer orderOrigin;
/**
* 优惠券*
*/
......
......@@ -12,7 +12,7 @@ import lombok.Data;
* @date 2019-05-28 16:17:42
*/
@Data
public class RentVehicleOrderPayVO {
public class OrderPayDTO {
//订单号
@ApiModelProperty(value = "订单号")
private String orderNo;
......@@ -24,4 +24,8 @@ public class RentVehicleOrderPayVO {
//来源:1-app;2-小程序
@ApiModelProperty(value = "来源:1-app;2-小程序")
private Integer type;
//买家第三方付款账号
@ApiModelProperty(value = "买家第三方付款账号(如:openId)")
private String buyerAccount;
}
......@@ -366,7 +366,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param orderNo
* @param tradeNo
*/
public void payNotifyHandle(String orderNo, String tradeNo) {
public void payNotifyHandle(String orderNo, String tradeNo, Integer type) {
BaseOrder baseOrder = this.selectOne(new BaseOrder() {{
setNo(orderNo);
}});
......@@ -377,6 +377,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
setOutTradeNo(tradeNo);
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
setPayOrigin(type);
setVersion(baseOrder.getVersion());
}};
......
......@@ -3,7 +3,6 @@ package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.entity.AppUser;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
......@@ -28,7 +27,7 @@ import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderListVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderAboutParamDTO;
import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO;
import com.xxfc.platform.order.pojo.pay.OrderPayDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
......@@ -306,16 +305,16 @@ public class BaseOrderController extends CommonBaseController {
@ResponseBody
@ApiOperation(value = "订单支付")
@IgnoreClientToken
public ObjectRestResponse pay(@RequestBody RentVehicleOrderPayVO vo) {
public ObjectRestResponse pay(@RequestBody OrderPayDTO dto) {
//查询列表数据
if (StringUtils.isBlank(BaseContextHandler.getUserID())) {
throw new BaseException(ResultCode.AJAX_WECHAT_NOTEXIST_CODE);
}
OrderPayVo orderPayVo = BeanUtil.toBean(vo, OrderPayVo.class);
OrderPayVo orderPayVo = BeanUtil.toBean(dto, OrderPayVo.class);
BaseOrder baseOrder = baseOrderBiz.selectOne(new BaseOrder() {{
setNo(vo.getOrderNo());
setNo(dto.getOrderNo());
}});
if (null == baseOrder || !OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus())) {
......@@ -362,7 +361,7 @@ public class BaseOrderController extends CommonBaseController {
public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) {
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if (StrUtil.isNotBlank(dto.getOrderNo())) {
baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo());
baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo(), dto.getType());
}else{
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
}
......@@ -449,5 +448,9 @@ public class BaseOrderController extends CommonBaseController {
//订单号
@ApiModelProperty(value = "支付订单(流水)号")
private String tradeNo;
//支付类型
@ApiModelProperty(value = "支付类型")
private Integer type;
}
}
}
......@@ -42,8 +42,12 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
* 创建基础订单
* @return
*/
public BaseOrder createBaseOrder() {
public BaseOrder createBaseOrder(Integer orderOrigin) {
BaseOrder baseOrder = new BaseOrder();
//设置下单来源
baseOrder.setOrderOrigin(orderOrigin);
//设置订单号
baseOrder.setNo(OrderUtil.GetOrderNumber("", OrderUtil.APP_MID));
//设置订单类型
......@@ -64,7 +68,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
}
public void initDetail(Detail detail) {
BaseOrder order = createBaseOrder();
BaseOrder order = createBaseOrder(detail.getOrderOrigin());
detail.setOrder(order);
}
......
package com.xxfc.platform.order;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={OrderApplication.class})
public class InvitationTest {
@Autowired
BaseOrderBiz baseOrderBiz;
@Test
public void test() {
BaseOrder baseOrder =baseOrderBiz.selectById(93);
baseOrder.setRefundTime(System.currentTimeMillis());
baseOrder.setVersion(baseOrder.getVersion() - 1);
baseOrderBiz.updateSelectiveById(baseOrder);
log.info("success");
}
}
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
......@@ -23,5 +26,8 @@ public class VehicleModelQueryCondition {
private String takeALieTheNumber;
@ApiModelProperty(value = "是否删除")
private Integer isDel;
@ApiModelProperty("分类逗号分割")
String catasStr;
@ApiModelProperty(value = "分类列表", hidden = true)
Map<Integer, List<VehiclePlatCata>> catas;
}
......@@ -51,9 +51,6 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
*/
public ObjectRestResponse findVehicleModelPage(VehicleModelQueryCondition vmqc) {
try {
PageDataVO<VehicleModelVo> mPageDataVO = PageDataVO.pageInfo(vmqc.getPage(),
vmqc.getLimit(), () -> mapper.findVehicleModelPage(vmqc));
......
......@@ -33,7 +33,10 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
......@@ -480,4 +483,20 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
updateSelectiveById(vehiclePlatCata);
return ObjectRestResponse.succ();
}
public Map<Integer, List<VehiclePlatCata>> groupCatasByParent(String catasStr) {
List<Integer> catasIds = Pattern.compile(",").splitAsStream(catasStr).map((s) -> Integer.parseInt(s)).collect(Collectors.toList());
List<VehiclePlatCata> catas = selectByExample(new Example.Builder(VehiclePlatCata.class)
.where(WeekendSqls.<VehiclePlatCata>custom().andIn(VehiclePlatCata::getId, catasIds)).build());
Map<Integer, List<VehiclePlatCata>> vpcMap = new HashMap<Integer, List<VehiclePlatCata>>();
for (VehiclePlatCata vpc : catas) {
List<VehiclePlatCata> vpcs = vpcMap.get(vpc.getParentId());
if (null == vpcs) {
vpcs = new ArrayList<VehiclePlatCata>();
}
vpcs.add(vpc);
vpcMap.put(vpc.getParentId(), vpcs);
}
return vpcMap;
}
}
......@@ -363,23 +363,11 @@ public class VehicleController extends BaseController<VehicleBiz> {
//根据时间 获得 可用车辆
//结合车型
if (StringUtils.isNotBlank(dto.getCatasStr())) {
List<Integer> catasIds = Pattern.compile(",").splitAsStream(dto.getCatasStr()).map((s) -> Integer.parseInt(s)).collect(Collectors.toList());
List<VehiclePlatCata> catas = vehiclePlatCataBiz.selectByExample(new Example.Builder(VehiclePlatCata.class)
.where(WeekendSqls.<VehiclePlatCata>custom().andIn(VehiclePlatCata::getId, catasIds)).build());
Map<Integer, List<VehiclePlatCata>> vpcMap = new HashMap<Integer, List<VehiclePlatCata>>();
for (VehiclePlatCata vpc : catas) {
List<VehiclePlatCata> vpcs = vpcMap.get(vpc.getParentId());
if (null == vpcs) {
vpcs = new ArrayList<VehiclePlatCata>();
}
vpcs.add(vpc);
vpcMap.put(vpc.getParentId(), vpcs);
}
dto.setCatas(vpcMap);
dto.setCatas(vehiclePlatCataBiz.groupCatasByParent(dto.getCatasStr()));
}
//设置显示是否有车
dto.setYearNo4Where(Boolean.TRUE);
return new ObjectRestResponse<>().data(vehicleBiz.searchUsableModel(dto)).rel(true);
return ObjectRestResponse.succ(vehicleBiz.searchUsableModel(dto));
}
/**
......
......@@ -107,6 +107,12 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
if (vmqc == null || vmqc.getPage() == null || vmqc.getLimit() == null || vmqc.getPage() < 0 || vmqc.getLimit() <= 0) {
return ObjectRestResponse.createDefaultFail();
}
//结合车型
if (org.apache.commons.lang3.StringUtils.isNotBlank(vmqc.getCatasStr())) {
vmqc.setCatas(vehiclePlatCataBiz.groupCatasByParent(vmqc.getCatasStr()));
}
return vehicleModelBiz.findVehicleModelPage(vmqc);
}
......
......@@ -28,6 +28,21 @@
<if test="takeALieTheNumber!=null and takeALieTheNumber!=''">
AND EXISTS(SELECT vc2.vehicle_model_id FROM vehicle_cata vc2 WHERE vc2.cata_id=#{takeALieTheNumber} AND vmqc.id=vc2.vehicle_model_id)
</if>
<if test="catas != null">
AND ( 1
<foreach collection="catas" index="key" item="cataList">
&amp; (
<foreach collection="cataList" index="cIndex" item="cata">
<if test=" cIndex != 0">
|
</if>
(case when FIND_IN_SET(#{cata.id},vmqc.config) > 0 then 1 else 0 end)
</foreach>
)
</foreach>
) > 0
</if>
ORDER BY vmqc.id ASC
</select>
......
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