|
@@ -63,7 +63,8 @@ import com.iamberry.wechat.tools.ValidatorUtil;
|
|
|
* Update Date:2016年4月20日
|
|
|
*/
|
|
|
@Controller
|
|
|
-@RequestMapping("/wechat/order")
|
|
|
+//@RequestMapping("/wechat/order")
|
|
|
+@RequestMapping("/order")
|
|
|
public class OrderHandler {
|
|
|
|
|
|
@Autowired
|
|
@@ -104,7 +105,7 @@ public class OrderHandler {
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
- @RequestMapping(value = "/payBefore", method = RequestMethod.POST)
|
|
|
+ @RequestMapping(value = "/payBefore")
|
|
|
public ResultMsg payBefore(HttpServletRequest request) throws Exception {
|
|
|
|
|
|
ResultMsg msg = new ResultMsg();
|
|
@@ -113,8 +114,12 @@ public class OrderHandler {
|
|
|
OrderPayDto dto = new OrderPayDto();
|
|
|
// 用户信息
|
|
|
Member member = WechatUtils.getUserBySession(request);
|
|
|
+// Member member = new Member();
|
|
|
+// member.setUserId(14708);
|
|
|
+// member.setUserOpenid("oZ9pv02WMRQgyDVRY1a_daYecwHI");
|
|
|
+
|
|
|
member = memberService.getMemberByUserId(member.getUserId());
|
|
|
- String cartIds = request.getParameter("cartId");
|
|
|
+ String cartIds = request.getParameter("cartIds");
|
|
|
if (cartIds == null) {
|
|
|
msg.setMessage(ResultInfo.cartEmptyError);
|
|
|
return msg;
|
|
@@ -148,198 +153,25 @@ public class OrderHandler {
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
- /*//如果是有二维码的商户,进入后显示优惠价
|
|
|
- int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
|
|
|
- if (num > 0) {
|
|
|
- QrcodeGift gift = new QrcodeGift();
|
|
|
- List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
|
|
|
- if (giftList != null && giftList.size() > 0 && cartDtos != null && cartDtos.size() > 0) {
|
|
|
- for (CartDto cartDto : cartDtos) {
|
|
|
- for (QrcodeGift qrcodeGift : giftList) {
|
|
|
- if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()
|
|
|
- && qrcodeGift.getQrcodePreDiscount() != null
|
|
|
- && qrcodeGift.getQrcodePreDiscount() > 0) {
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- //判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
|
|
|
- //查询金牌会员模板id
|
|
|
- int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
|
|
|
- //如果模板id等于金牌会模板id,则该用户为金牌会员下线
|
|
|
- if (member.getUserDealers() != null && member.getTemplateId() != null
|
|
|
- && templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
|
|
|
- //若果是金牌会员下线,产品的价格就以优惠价显示
|
|
|
- if (cartDtos != null && cartDtos.size() >= 1) {
|
|
|
- for (CartDto cartDto : cartDtos) {
|
|
|
- UserGiftDto userGiftDto = new UserGiftDto();
|
|
|
- userGiftDto.setUserLevel(2);
|
|
|
- userGiftDto.setUserProductId(cartDto.getCartProductId());
|
|
|
- userGiftDto.setUserColorId(cartDto.getCartColorId());
|
|
|
- //根据商品id和会员等级查询礼品信息
|
|
|
- userGiftDto = productInfoService.selectUserGift(userGiftDto);
|
|
|
- if (userGiftDto != null) {
|
|
|
- cartDto.setProductPrice(userGiftDto.getUserDiscount());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //根据openid查询该用户是否购买过订单
|
|
|
- ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
|
|
|
- shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
|
|
|
- shopSalesOrderDto.setSalesStatus("2");
|
|
|
- int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
|
|
|
- //如果购买过订单,则滤芯的价格可按折扣价购买
|
|
|
- if (orderNum > 0) {
|
|
|
- if (cartDtos != null && cartDtos.size() >= 1) {
|
|
|
- for (CartDto cartDto : cartDtos) {
|
|
|
- if (cartDto.getProductType().intValue() == 2) {
|
|
|
- UserGiftDto userGiftDto = new UserGiftDto();
|
|
|
- userGiftDto.setUserLevel(3);
|
|
|
- userGiftDto.setUserProductId(cartDto.getCartProductId());
|
|
|
- userGiftDto.setUserColorId(cartDto.getCartColorId());
|
|
|
- //根据商品id和会员等级查询礼品信息
|
|
|
- userGiftDto = productInfoService.selectUserGift(userGiftDto);
|
|
|
- if (userGiftDto != null) {
|
|
|
- cartDto.setProductPrice(userGiftDto.getUserDiscount());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 判断当前提交的购物车ID,有多少产品在售
|
|
|
int total = 0; // 支付金额
|
|
|
int sum = 0; // 产品数量
|
|
|
- int productNum = 0; //计算商品为滤芯的数量
|
|
|
- int machineNum = 0; //计算商品为水机的数量
|
|
|
- boolean disable = true; //标识,是否可用优惠券,当购买商品只有滤芯时禁止使用优惠券
|
|
|
+ boolean disable = false; //标识,是否可以使用(新人券)优惠券,当购买商品需要有牙刷时才能使用优惠券
|
|
|
+ String element = systemService.selectOneShopRuleById(249).getRuleDesc();
|
|
|
|
|
|
List<CartDto> tempCarts = new ArrayList<CartDto>();
|
|
|
-
|
|
|
- //查询系统规则表滤芯id信息
|
|
|
- String element = systemService.selectOneShopRuleById(236).getRuleDesc();//赠送滤芯类型id
|
|
|
- String machine = systemService.selectOneShopRuleById(237).getRuleDesc();//水机类型id
|
|
|
- String[] elements = null;
|
|
|
- String[] machines = null;
|
|
|
- StringBuilder preGift = new StringBuilder();
|
|
|
- if (element != null) {
|
|
|
- String rolesStr = element.split(":")[1];
|
|
|
- elements = rolesStr.split(",");
|
|
|
- }
|
|
|
- if (machine != null) {
|
|
|
- String rolesStr = machine.split(":")[1];
|
|
|
- machines = rolesStr.split(",");
|
|
|
- }
|
|
|
-
|
|
|
- String userQrcodeType = request.getParameter("userQrcodeType");
|
|
|
- //存在水机时赠送4个滤芯
|
|
|
- if(userQrcodeType != null && !"".equals(userQrcodeType)){
|
|
|
-
|
|
|
- //如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
|
|
|
- QrcodeGift gift = new QrcodeGift();
|
|
|
- gift.setQrcodeStatus(1);
|
|
|
- List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
|
|
|
- if (giftList != null && giftList.size() > 0 && cartDtos != null && cartDtos.size() > 0) {
|
|
|
- for (CartDto cartDto : cartDtos) {
|
|
|
- for (QrcodeGift qrcodeGift : giftList) {
|
|
|
- if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
|
|
|
- switch (userQrcodeType) {
|
|
|
- case "1":
|
|
|
- if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
|
|
|
- }
|
|
|
- if (qrcodeGift.getQrcodePreGiftColor() != null) {
|
|
|
- for (int i = 0;i < cartDto.getCartNum();i++) {
|
|
|
- preGift.append(qrcodeGift.getQrcodePreGiftColor());
|
|
|
- preGift.append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case "2":
|
|
|
- if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
|
|
|
- }
|
|
|
- if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
|
|
|
- for (int i = 0;i < cartDto.getCartNum();i++) {
|
|
|
- preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
|
|
|
- preGift.append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
for (CartDto cartDto : cartDtos) {
|
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
total += cartDto.getCartNum() * cartDto.getProductPrice();
|
|
|
sum++;
|
|
|
tempCarts.add(cartDto);
|
|
|
}
|
|
|
- for(int i=0,len = elements.length;i < len;i++){
|
|
|
- //计算商品为滤芯的数量
|
|
|
- if (cartDto.getProductType().intValue() == Integer.valueOf(elements[i])) {
|
|
|
- productNum = productNum+cartDto.getCartNum();
|
|
|
+ String[] els = element.split("-");
|
|
|
+ for(String el : els){
|
|
|
+ if(cartDto.getProductType() == Integer.valueOf(el)){ //订单中没有牙刷的时候,不能使用新人券
|
|
|
+ disable = true;
|
|
|
}
|
|
|
}
|
|
|
- for(int i=0,len = machines.length;i < len;i++){
|
|
|
- //计算商品为滤芯的数量
|
|
|
- if (cartDto.getProductType().intValue() == Integer.valueOf(machines[i])) {
|
|
|
- machineNum = machineNum+cartDto.getCartNum();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(preGift.toString() != null && !"".equals(preGift.toString())){
|
|
|
- String[] giftss = preGift.toString().split(",");
|
|
|
- ProductColor color = new ProductColor();
|
|
|
- color.setPage(null);
|
|
|
- List<ProductColor> colorList = productColorService.selectProductColorList(color);
|
|
|
- for (int i = 0;i < giftss.length;i++) {
|
|
|
- boolean cartFlag = false;
|
|
|
- for (CartDto cart : tempCarts) {
|
|
|
- //判断是否已经存在该赠品,如果存在则数量加1
|
|
|
- if (Integer.parseInt(giftss[i]) == cart.getCartColorId() && cart.getTotal() == 0) {
|
|
|
- cart.setCartNum(cart.getCartNum().intValue() + 1);
|
|
|
- cartFlag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- //如果不存在,则新增赠品
|
|
|
- if (!cartFlag) {
|
|
|
- for (ProductColor productColor : colorList) {
|
|
|
- if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
|
|
|
- CartDto cartDto = new CartDto();
|
|
|
- cartDto.setCartOpenId(member.getUserOpenid());
|
|
|
- cartDto.setCartProductId(productColor.getColorProductId());
|
|
|
- cartDto.setCartColorId(productColor.getColorId());
|
|
|
- cartDto.setCartNum(1);
|
|
|
- cartDto.setCartCreateDate(new Date());
|
|
|
- cartDto.setProductName(productColor.getColorProductName());
|
|
|
- cartDto.setProductType(productColor.getColorProductType());
|
|
|
- cartDto.setProductPrice(0);
|
|
|
- cartDto.setProductIntroduceImg(productColor.getColorProductPic());
|
|
|
- cartDto.setTotal(0);
|
|
|
- cartDto.setProductDiscount(0);
|
|
|
- cartDto.setProductRemark("赠送滤芯");
|
|
|
- cartDto.setProductColor(productColor.getColorName());
|
|
|
- tempCarts.add(cartDto);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //当购买商品只有滤芯时禁止使用优惠券
|
|
|
- if(productNum == cartDtos.size()) {
|
|
|
- disable = false;
|
|
|
}
|
|
|
|
|
|
if (sum <= 0) {
|
|
@@ -347,16 +179,23 @@ public class OrderHandler {
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
- //未使用的优惠券
|
|
|
+ //查询所有优惠券
|
|
|
CouponItemDto cDto = new CouponItemDto();
|
|
|
cDto.setUseropenid(member.getUserOpenid());
|
|
|
cDto.setCouponUseStatus(1);
|
|
|
cDto.setBeginDate(new Date());
|
|
|
- cDto.setPage(new PageBean());
|
|
|
- cDto.getPage().setPageSize(12);
|
|
|
+ //cDto.setPage(new PageBean());
|
|
|
+ //cDto.getPage().setPageSize(12);
|
|
|
//cDto.getPage().setPageNumber(pageNO);
|
|
|
List<CouponItemDto> list = couponItemService.getCouponItemDtoList(cDto);
|
|
|
-
|
|
|
+ for(CouponItemDto couponItemDto : list){
|
|
|
+ if(couponItemDto.getCouponIsNewPeople() == 1 && member.getUserIdentity() != 1){ //当券为新人券,用户为非会员时,需要有牙刷,结算才可以使用该券
|
|
|
+ if(!disable){ //没有牙刷
|
|
|
+ couponItemDto.setCouponIsUse(2);
|
|
|
+ couponItemDto.setCouponNoUseReason("需要购买牙刷才能使用");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
dto.setCouponItems(list);
|
|
|
|
|
|
dto.setCartId(cartIds);// 购物车ID
|
|
@@ -364,9 +203,6 @@ public class OrderHandler {
|
|
|
dto.setCartItems(tempCarts); // 订单项
|
|
|
dto.setSuccess(true); // 请求成功
|
|
|
dto.setMeonyProportion(0);
|
|
|
- dto.setBalance(member.getUserIncome());
|
|
|
-
|
|
|
- dto.setDisable(disable);
|
|
|
|
|
|
//回显用户支付过的地址信息
|
|
|
Order order=cartService.getOrderRecentAddress(member.getUserOpenid());
|
|
@@ -409,7 +245,12 @@ public class OrderHandler {
|
|
|
|
|
|
SendPayDto dto = new SendPayDto();
|
|
|
dto.setSuccess(false);
|
|
|
- Member member = WechatUtils.getUserBySession(request); // 当前用户
|
|
|
+
|
|
|
+ //Member member = WechatUtils.getUserBySession(request); // 当前用户
|
|
|
+ Member member = new Member();
|
|
|
+ member.setUserId(14708);
|
|
|
+ member.setUserOpenid("oZ9pv02WMRQgyDVRY1a_daYecwHI");
|
|
|
+
|
|
|
/** 数据格式校验 */
|
|
|
if (member == null || member.getUserOpenid() == null) {// 校验当前用户信息是否丢失
|
|
|
msg.setMessage(ResultInfo.loginOutError);
|
|
@@ -445,119 +286,18 @@ public class OrderHandler {
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
- //根据openid查询该用户是否购买过订单
|
|
|
- ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
|
|
|
- shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
|
|
|
- shopSalesOrderDto.setSalesStatus("2");
|
|
|
- int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
|
|
|
+ /*是否含有电动牙刷*/
|
|
|
+ boolean isContainProduct = false;
|
|
|
|
|
|
int total = 0; // 需要支付的总额, 单位为分
|
|
|
-
|
|
|
-
|
|
|
- //查询金牌会员模板id
|
|
|
- int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
|
|
|
- UserGiftDto userGift = null;
|
|
|
- int giftNum = 0;
|
|
|
-
|
|
|
/** 提前准备订单项数据 */
|
|
|
/** 准备数据 */
|
|
|
Order order = new Order();
|
|
|
order.setSalesOrderid(OrderNOUtil.createOrderCode(member.getUserId())); // 订单ID
|
|
|
List<OrderItem> list = new ArrayList<OrderItem>();
|
|
|
List<Integer> cartIds = new ArrayList<Integer>();
|
|
|
- String userQrcodeType = request.getParameter("userQrcodeType");
|
|
|
int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
|
|
|
for (CartDto cartDto : cartDtos) {
|
|
|
-
|
|
|
- /*//如果是有二维码的商户,进入后显示优惠价
|
|
|
- if (num > 0) {
|
|
|
- QrcodeGift gift = new QrcodeGift();
|
|
|
- List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
|
|
|
- if (giftList != null && giftList.size() > 0) {
|
|
|
- for (QrcodeGift qrcodeGift : giftList) {
|
|
|
- if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()
|
|
|
- && qrcodeGift.getQrcodePreDiscount() != null
|
|
|
- && qrcodeGift.getQrcodePreDiscount() > 0) {
|
|
|
- cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- if (userQrcodeType != null && !"".equals(userQrcodeType)) {
|
|
|
-
|
|
|
- //如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
|
|
|
- QrcodeGift gift = new QrcodeGift();
|
|
|
- gift.setQrcodeStatus(1);
|
|
|
- List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
|
|
|
- if (giftList != null && giftList.size() > 0) {
|
|
|
- for (QrcodeGift qrcodeGift : giftList) {
|
|
|
- if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
|
|
|
- switch (userQrcodeType) {
|
|
|
- case "1":
|
|
|
- if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
|
|
|
- cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
|
|
|
- }
|
|
|
- if (qrcodeGift.getQrcodePreGiftColor() != null) {
|
|
|
- for (int i = 0;i < cartDto.getCartNum();i++) {
|
|
|
- preGift.append(qrcodeGift.getQrcodePreGiftColor());
|
|
|
- preGift.append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case "2":
|
|
|
- if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
|
|
|
- cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
|
|
|
- cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
|
|
|
- }
|
|
|
- if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
|
|
|
- for (int i = 0;i < cartDto.getCartNum();i++) {
|
|
|
- preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
|
|
|
- preGift.append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //如果购买过订单,则滤芯的价格可按折扣价购买
|
|
|
- if (orderNum > 0) {
|
|
|
- if (cartDto.getProductType().intValue() == 2) {
|
|
|
- UserGiftDto userGiftDto = new UserGiftDto();
|
|
|
- userGiftDto.setUserLevel(3);
|
|
|
- userGiftDto.setUserProductId(cartDto.getCartProductId());
|
|
|
- userGiftDto.setUserColorId(cartDto.getCartColorId());
|
|
|
- //根据商品id和会员等级查询礼品信息
|
|
|
- userGiftDto = productInfoService.selectUserGift(userGiftDto);
|
|
|
- if (userGiftDto != null) {
|
|
|
- cartDto.setProductPrice(userGiftDto.getUserDiscount());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //如果模板id等于金牌会模板id,则该用户为金牌会员下线
|
|
|
- if (member.getUserDealers() != null && member.getTemplateId() != null
|
|
|
- && templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
|
|
|
- UserGiftDto userGiftDto = new UserGiftDto();
|
|
|
- userGiftDto.setUserLevel(2);
|
|
|
- userGiftDto.setUserProductId(cartDto.getCartProductId());
|
|
|
- userGiftDto.setUserColorId(cartDto.getCartColorId());
|
|
|
- //根据商品id和会员等级查询礼品信息
|
|
|
- userGiftDto = productInfoService.selectUserGift(userGiftDto);
|
|
|
- if (userGiftDto != null) {
|
|
|
- cartDto.setProductPrice(userGiftDto.getUserDiscount());
|
|
|
- giftNum += cartDto.getCartNum();
|
|
|
- if (userGift == null) {
|
|
|
- userGift = userGiftDto;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
|
|
|
cartIds.add(cartDto.getCartId());
|
|
|
Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
|
|
@@ -575,63 +315,8 @@ public class OrderHandler {
|
|
|
item.setItemColorId(cartDto.getCartColorId());
|
|
|
list.add(item);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- //扫描优惠二维码赠送赠品信息
|
|
|
- if (preGift != null && !"".equals(preGift.toString())) {
|
|
|
- String[] giftss = preGift.toString().split(",");
|
|
|
- ProductColor color = new ProductColor();
|
|
|
- color.setPage(null);
|
|
|
- List<ProductColor> colorList = productColorService.selectProductColorList(color);
|
|
|
- for (int i = 0;i < giftss.length;i++) {
|
|
|
- boolean cartFlag = false;
|
|
|
- for (OrderItem item : list) {
|
|
|
- //判断是否已经存在该赠品,如果存在则数量加1
|
|
|
- if (Integer.parseInt(giftss[i]) == item.getItemColorId() && item.getItemTotal() == 0) {
|
|
|
- item.setItemNum(item.getItemNum().intValue() + 1);
|
|
|
- cartFlag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- //如果不存在,则新增订单项
|
|
|
- if (!cartFlag) {
|
|
|
- for (ProductColor productColor : colorList) {
|
|
|
- if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
|
|
|
- OrderItem orderItem = new OrderItem();
|
|
|
- orderItem.setItemNum(1);
|
|
|
- orderItem.setItemProductDiscount(0);
|
|
|
- orderItem.setItemProductId(productColor.getColorProductId());
|
|
|
- orderItem.setItemProductName(productColor.getColorProductName());
|
|
|
- orderItem.setItemProductPic(productColor.getColorProductPic());
|
|
|
- orderItem.setItemSalesOrderid(order.getSalesOrderid());
|
|
|
- orderItem.setItemTotal(0);
|
|
|
- orderItem.setItemProductType(productColor.getColorProductType());
|
|
|
- orderItem.setItemProductPrice(0);
|
|
|
- orderItem.setItemColorId(productColor.getColorId());
|
|
|
- list.add(orderItem);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //如果模板id等于金牌会模板id,来源是3,则该用户为金牌会员直接下线,直接下线送三年滤芯
|
|
|
- if (member.getUserDealers() != null && member.getTemplateId() != null &&
|
|
|
- templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
|
|
|
- //当userGift不为空时,说明该用户购买的商品有奖励礼品,奖励礼品取第一个产品的,不适用于多个产品有不同奖励礼品的情况
|
|
|
- if (userGift != null && userGift.getUserGiftId() != null && !"".equals(userGift.getUserGiftId())) {
|
|
|
- Product product = productInfoService.getProductByProductId(userGift.getUserGiftId(),userGift.getUserGiftColor());
|
|
|
- OrderItem orderItem = new OrderItem();
|
|
|
- orderItem.setItemNum(userGift.getUserGiftCount() * giftNum);
|
|
|
- orderItem.setItemProductDiscount(0);
|
|
|
- orderItem.setItemProductId(userGift.getUserGiftId());
|
|
|
- orderItem.setItemProductName(product.getProductName());
|
|
|
- orderItem.setItemProductPic(product.getProductIntroduceImg());
|
|
|
- orderItem.setItemSalesOrderid(order.getSalesOrderid());
|
|
|
- orderItem.setItemTotal(0);
|
|
|
- orderItem.setItemProductType(product.getProductType().getTypeId());
|
|
|
- orderItem.setItemProductPrice(0);
|
|
|
- orderItem.setItemColorId(userGift.getUserColorId());
|
|
|
- list.add(orderItem);
|
|
|
+ if(cartDto.getProductType() == 100){ //当订单中有电动牙刷时,isContainProduct为true
|
|
|
+ isContainProduct = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -656,6 +341,7 @@ public class OrderHandler {
|
|
|
couponItem.setCouponItemUseropenid(couponItemDto.getUseropenid());
|
|
|
couponItem.setCouponUseEndDate(couponItemDto.getCouponUseEndDate());
|
|
|
couponItem.setCouponUseDate(couponItemDto.getCouponUseDate());
|
|
|
+ couponItem.setCouponIsNewPeople(couponItemDto.getCouponIsNewPeople());
|
|
|
|
|
|
if(null==couponItemDto || !couponItemDto.getUseropenid().equals(member.getUserOpenid()) || couponItemDto.getCouponUseStatus()!=1){
|
|
|
msg.setMessage(ResultInfo.COUPON_INVALID); //优惠券无效
|
|
@@ -665,20 +351,25 @@ public class OrderHandler {
|
|
|
msg.setMessage(ResultInfo.COUPON_OUTOFDATE); //优惠券过期
|
|
|
return msg;
|
|
|
}
|
|
|
-
|
|
|
//消费达到指定额度
|
|
|
CouponType couponType = couponTypeService.getCouponTypeById(couponItemDto.getCouponId());
|
|
|
if(couponType.getCouponConsumeEnough()>total){
|
|
|
msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH); //消费额度不足
|
|
|
return msg;
|
|
|
}
|
|
|
- //优惠券的类型,是直接减免额度 还是折扣价
|
|
|
+ if(member.getUserIdentity() != 1){ //判断该用户是否为会员
|
|
|
+ if(couponItem.getCouponIsNewPeople() == 1 && !isContainProduct){
|
|
|
+ msg.setMessage(ResultInfo.COUPON_NO_MEMBER); //非会员需要购买电动牙刷才能使用该优惠券
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //优惠券的类型,是直接减免额度 还是折扣价
|
|
|
if(couponType.getCouponType()==1){
|
|
|
total=total-couponType.getCouponReduce();
|
|
|
}else if(couponType.getCouponType()==2){
|
|
|
+ Integer all = new Integer(total);
|
|
|
total=total*couponType.getCouponReduce()/100;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
if(total==0 || total<0){
|
|
|
total=0;
|
|
@@ -687,20 +378,11 @@ public class OrderHandler {
|
|
|
mustPay=total;
|
|
|
}
|
|
|
|
|
|
- //获取账户余额,判断是否在可用范围内
|
|
|
- int balancePayAmount=temp.getBalancePayAmount();
|
|
|
- if(balancePayAmount>0 && member.getUserIncome()>balancePayAmount){
|
|
|
- mustPay=total-temp.getBalancePayAmount()>0?total-temp.getBalancePayAmount():0;
|
|
|
- }else if(balancePayAmount>0 && member.getUserIncome()<balancePayAmount){
|
|
|
- msg.setMessage(ResultInfo.NO_ENOUGH_FOR_PAY);
|
|
|
- return msg;
|
|
|
- }
|
|
|
-
|
|
|
order.setSalesYetAmount(total);
|
|
|
order.setSalesRateAmount(0);
|
|
|
- order.setSalesIntegralNum(temp.getOrderIntegralNum()); // 订单使用积分
|
|
|
+ order.setSalesIntegralNum(0); // 订单使用积分
|
|
|
order.setSalesCreateDate(new Date()); // 创建时间
|
|
|
- order.setBalancePayAmount(temp.getBalancePayAmount()); //账户余额支付金额
|
|
|
+ order.setBalancePayAmount(0); //账户余额支付金额
|
|
|
order.setCouponId(couponId); //优惠券id
|
|
|
|
|
|
order.setSalesStatus(1); // 待支付订单
|
|
@@ -715,7 +397,7 @@ public class OrderHandler {
|
|
|
boolean flag = false;
|
|
|
try {
|
|
|
flag = cartService.addOrderAndSaveOrderItem(order, list, cartIds);
|
|
|
-//System.out.println("====插入订单列表信息===="+flag);
|
|
|
+ //System.out.println("====插入订单列表信息===="+flag);
|
|
|
//修改优惠券状态为临时状态
|
|
|
if(hasCoupon){
|
|
|
couponItem.setCouponUseStatus(7);
|
|
@@ -766,40 +448,7 @@ public class OrderHandler {
|
|
|
couponItem.setCouponUseDate(new Date());//添加使用时间
|
|
|
int i=couponItemService.updateCouponItemById(couponItem);
|
|
|
}
|
|
|
-
|
|
|
- //更新账户余额
|
|
|
- if(balancePayAmount>0){
|
|
|
- member.setUserIncome(-balancePayAmount);
|
|
|
- memberService.updateUserIncomeByOpenId(member);
|
|
|
-
|
|
|
- //修改用户购买记录为已购买
|
|
|
- memberService.updateIsBaughtByOpenid(member.getUserOpenid(), 2);
|
|
|
- //更新用户绑定状态
|
|
|
- if (member.getUserIsFlag()!= null && member.getUserIsFlag() == 1) {
|
|
|
- member.setUserIsFlag(2);//终身绑定
|
|
|
- homeService.updateMemberIsFlagByOpenid(member);
|
|
|
- }
|
|
|
- try {
|
|
|
- temporaryQrcodeService.applyTempQrcode(member.getUserOpenid());//为用户生成二维码
|
|
|
- } catch (Exception e) {
|
|
|
- System.out.println("为用户生成二维码失败!");
|
|
|
- }
|
|
|
-
|
|
|
- //现金使用记录
|
|
|
- CashLog log=new CashLog();
|
|
|
- log.setCashLogsIntroduction("订单支出");
|
|
|
- log.setCashLogsNum(balancePayAmount);
|
|
|
- log.setCashLogsOpenid(member.getUserOpenid());
|
|
|
- log.setCashLogsType(2);
|
|
|
- log.setCashLogsResType(3);
|
|
|
- log.setCashLogsOrderid(order.getSalesOrderid());
|
|
|
- log.setCashLogsCreateDate(nowDate);
|
|
|
- cashLogService.addCashLog(log);
|
|
|
-
|
|
|
- }
|
|
|
- rebackServices.loadSingleOrderReward(order);
|
|
|
productInfoService.updateProductNumList(order.getSalesOrderid());
|
|
|
-
|
|
|
}
|
|
|
msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|