package com.farriver.bwf.service.order; import com.farriver.bwf.common.model.ApiData; import com.farriver.bwf.common.model.ApiPageData; import com.farriver.bwf.common.options.ActionType; import com.farriver.bwf.common.options.MapDataType; import com.farriver.bwf.common.statics.LangConstants; import com.farriver.bwf.data.master.entity.OrderActiveExtend; import com.farriver.bwf.data.master.mapper.OrderActiveMapper; import com.farriver.bwf.data.master.model.OrderActive; import com.farriver.bwf.data.master.model.OrderActiveExample; import com.farriver.bwf.data.master.model.OrderActiveProduct; import com.farriver.bwf.data.transferobject.options.OrderStatusOptions; import com.farriver.bwf.data.transferobject.options.PaymentMethodOptions; import com.farriver.bwf.data.transferobject.options.VIPMasterPaperRelationStatusOptions; import com.farriver.bwf.data.transferobject.queryobject.order.OrderActiveProductQueryObject; import com.farriver.bwf.data.transferobject.queryobject.order.OrderActiveQueryObject; import com.farriver.bwf.data.transferobject.queryobject.shopping.ShoppingCartQueryObject; import com.farriver.bwf.data.transferobject.viewmodel.order.OrderActiveProductViewModel; import com.farriver.bwf.data.transferobject.viewmodel.order.OrderActiveViewModel; import com.farriver.bwf.data.transferobject.viewmodel.shopping.ShoppingCartViewModel; import com.farriver.bwf.data.transferobject.viewmodel.vip.VIPMasterPaperRelationViewModel; import com.farriver.bwf.data.transferobject.viewmodel.vip.VIPMasterViewModel; import com.farriver.bwf.data.transferobject.viewmodel.vip.VIPMasterWalletChargeViewModel; import com.farriver.bwf.service.ServiceBase; import com.farriver.bwf.service.shopping.ShoppingCartProductService; import com.farriver.bwf.service.shopping.ShoppingCartService; import com.farriver.bwf.service.vip.VIPMasterPaperRelationService; import com.farriver.bwf.service.vip.VIPMasterService; import com.farriver.bwf.service.vip.VIPMasterWalletService; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import jakarta.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @Service @CacheConfig(cacheNames = "bwf_OrderActive_cache") public class OrderActiveService extends ServiceBase { private static final Logger logger = LoggerFactory.getLogger(OrderActiveService.class); private String message; @Resource OrderActiveMapper mapper; @Resource OrderActiveProductService orderActiveProductService; @Resource ShoppingCartService shoppingCartService; @Resource ShoppingCartProductService shoppingCartProductService; @Resource VIPMasterService vipMasterService; @Resource VIPMasterWalletService vipMasterWalletService; @Resource VIPMasterPaperRelationService vipMasterPaperRelationService; public Map GetList(OrderActiveQueryObject queryObject) { if (queryObject == null) return null; OrderActiveExample example = new OrderActiveExample(); OrderActiveExample.Criteria criteria = example.createCriteria(); //查询条件 if (queryObject.getFilter() != null && !queryObject.getFilter().isEmpty()) { criteria.andNoLike("%" + queryObject.getFilter() + "%"); } else { if (queryObject.getId() != null && !queryObject.getId().isEmpty()) { criteria.andIdEqualTo(queryObject.getId()); } if (queryObject.getVipuserid() != null && !queryObject.getVipuserid().isEmpty()) { criteria.andVipuseridEqualTo(queryObject.getVipuserid()); } if (queryObject.getNo() != null && !queryObject.getNo().isEmpty()) { criteria.andNoLike("%" + queryObject.getNo() + "%"); } if (queryObject.getVipphone() != null && !queryObject.getVipphone().isEmpty()) { criteria.andVipphoneLike("%" + queryObject.getVipphone() + "%"); } if (queryObject.getVipname() != null && !queryObject.getVipname().isEmpty()) { criteria.andVipnameLike("%" + queryObject.getVipname() + "%"); } if (queryObject.getStartDateTime() != null && queryObject.getEndDateTime() != null) { criteria.andOrdertimeBetween(queryObject.getStartDateTime(), queryObject.getEndDateTime()); } if (queryObject.getType() != null) { criteria.andTypeEqualTo(queryObject.getType()); } if (queryObject.getStatus() != null && queryObject.getStatus() >= 0) { criteria.andStatusEqualTo(queryObject.getStatus()); } if (queryObject.getStatuslist() != null && queryObject.getStatuslist().size() > 0) { criteria.andStatusIn(queryObject.getStatuslist()); } } //查询总数 long total = mapper.countByExample(example); //分页 int pageIndex = queryObject.getPageIndex(); int pageSize = queryObject.getPageSize(); if (pageIndex > 0 && pageSize > 0) { example.setRows(pageSize); example.setOffset((pageIndex - 1) * pageSize); } example.setOrderByClause("createtime desc"); List list = mapper.selectByExample(example); Map map = new HashMap<>(); map.put(MapDataType.DATA_LIST, list); map.put(MapDataType.TOTAL_COUNT, total); map.put(MapDataType.PAGE_INDEX, pageIndex); map.put(MapDataType.PAGE_SIZE, pageSize); return map; } public Map GetExtendList(OrderActiveQueryObject queryObject) { if (queryObject == null) ApiPageData.error(LangConstants.MSG_ERROR_PARAMETERS); OrderActiveExample example = new OrderActiveExample(); OrderActiveExample.Criteria criteria = example.createCriteria(); //查询条件 if (queryObject.getFilter() != null && !queryObject.getFilter().isEmpty()) { criteria.andVipnameLike("%" + queryObject.getFilter() + "%"); } else { if (queryObject.getId() != null && !queryObject.getId().isEmpty()) { criteria.andIdEqualTo(queryObject.getId()); } if (queryObject.getVipuserid() != null && !queryObject.getVipuserid().isEmpty()) { criteria.andVipuseridEqualTo(queryObject.getVipuserid()); } if (queryObject.getNo() != null && !queryObject.getNo().isEmpty()) { criteria.andNoEqualTo(queryObject.getNo()); } if (queryObject.getStartDateTime() != null && queryObject.getEndDateTime() != null) { criteria.andOrdertimeBetween(queryObject.getStartDateTime(), queryObject.getEndDateTime()); } if (queryObject.getType() != null) { criteria.andTypeEqualTo(queryObject.getType()); } if (queryObject.getStatus() != null && queryObject.getStatus() >= 0) { criteria.andStatusEqualTo(queryObject.getStatus()); } if (queryObject.getStatuslist() != null && queryObject.getStatuslist().size() > 0) { criteria.andStatusIn(queryObject.getStatuslist()); } } //查询总数 long total = mapper.countByExample(example); //分页 int pageIndex = queryObject.getPageIndex(); int pageSize = queryObject.getPageSize(); if (pageIndex > 0 && pageSize > 0) { example.setRows(pageSize); example.setOffset((pageIndex - 1) * pageSize); } example.setOrderByClause("createtime desc"); List list = mapper.selectOrderActiveExtendByExample(example); Map map = new HashMap<>(); map.put(MapDataType.DATA_LIST, list); map.put(MapDataType.TOTAL_COUNT, total); map.put(MapDataType.PAGE_INDEX, pageIndex); map.put(MapDataType.PAGE_SIZE, pageSize); return map; } public OrderActive GetDetail(OrderActiveQueryObject queryObject) { Map map = GetList(queryObject); Object object = map.get(MapDataType.DATA_LIST); if (object != null) { List list = (List) object; if (list != null && list.size() == 1) return list.get(0); } return null; } public OrderActiveExtend GetExtendDetail(OrderActiveQueryObject queryObject) { Map map = GetExtendList(queryObject); Object object = map.get(MapDataType.DATA_LIST); if (object != null) { List list = (List) object; if (list != null && list.size() == 1) return list.get(0); } return null; } @CacheEvict(allEntries = true) public ApiData Create(OrderActiveViewModel model) { OrderActive entity = Check(ActionType.CREATE, model); if (entity != null) { mapper.insertSelective(entity); return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, entity); } else { return ApiData.error(message); } } @CacheEvict(allEntries = true) public ApiData CreateWithProducts(OrderActiveViewModel model) { OrderActive entity = Check(ActionType.CREATE, model); if (entity != null) { entity.setOrdertime(new Date()); List productViewModels = model.getProducts(); if (productViewModels != null && productViewModels.size() > 0) { for (OrderActiveProductViewModel productViewModel : productViewModels) { productViewModel.setOrderid(entity.getId()); productViewModel.setOrderno(entity.getNo()); } } ApiData productResult = orderActiveProductService.BatchCreate(model.getProducts()); mapper.insertSelective(entity); return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, entity); } else { return ApiData.error(message); } } @CacheEvict(allEntries = true) public ApiData Update(OrderActiveViewModel model) { OrderActive entity = Check(ActionType.UPDATE, model); if (entity != null) { return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, mapper.updateByPrimaryKeySelective(entity)); } else { return ApiData.error(message); } } @CacheEvict(allEntries = true) public ApiData UpdateWithProducts(OrderActiveViewModel model) { OrderActive entity = Check(ActionType.UPDATE, model); //清楚旧产品数据 OrderActiveProductQueryObject queryObject = new OrderActiveProductQueryObject(); queryObject.setOrderid(model.getId()); orderActiveProductService.BatchDelete(queryObject); if (entity != null) { List productViewModels = model.getProducts(); if (productViewModels != null && productViewModels.size() > 0) { for (OrderActiveProductViewModel productViewModel : productViewModels) { productViewModel.setOrderid(entity.getId()); productViewModel.setOrderno(entity.getNo()); } } ApiData productResult = orderActiveProductService.BatchCreate(model.getProducts()); return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, mapper.updateByPrimaryKeySelective(entity)); } else { return ApiData.error(message); } } @Transactional public ApiData Delete(String id) { return ApiData.ok("", mapper.deleteByPrimaryKey(id)); } @Transactional public ApiData BatchDelete(OrderActiveQueryObject queryObject) { Map map = GetList(queryObject); Object object = map.get(MapDataType.DATA_LIST); int count = 0; if (object != null) { List list = (List) object; if (list != null && list.size() == 1) { count += mapper.deleteByPrimaryKey(list.get(0).getId()); } } return ApiData.ok("", count); } @Transactional public ApiData MakeOrder(OrderActiveViewModel model) { ShoppingCartQueryObject queryObject = new ShoppingCartQueryObject(); queryObject.setVipuserid(model.getVipuserid()); if (model.getProducts() == null || model.getProducts().size() <= 0) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } //Remove product from shopping cart ShoppingCartViewModel shoppingCartViewModel = shoppingCartService.GetExtendViewDetail(queryObject); if (shoppingCartViewModel != null) { List productIds = model.getProducts().stream() .map(OrderActiveProductViewModel::getProductid) .collect(Collectors.toList()); shoppingCartProductService.DeleteByProductID(productIds); } return CreateWithProducts(model); } public ApiData Delivery(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Delivered.ordinal()); return Update(orderActiveViewModel); } public ApiData Receive(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Received.ordinal()); return Update(orderActiveViewModel); } public ApiData Reject(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Rejected.ordinal()); return Update(orderActiveViewModel); } @Transactional public ApiData Pay(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetExtendViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } VIPMasterViewModel vipMasterViewModel = vipMasterService.GetViewDetail(model.getVipuserid()); if (vipMasterViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Paid.ordinal()); orderActiveViewModel.setPayedmoney(model.getPayedmoney()); orderActiveViewModel.setPaytime(new Date()); orderActiveViewModel.setPaymentmethod(model.getPaymentmethod()); if (PaymentMethodOptions.AccountBalancePay.ordinal() == model.getPaymentmethod()) { VIPMasterWalletChargeViewModel walletChargeViewModel = new VIPMasterWalletChargeViewModel(); walletChargeViewModel.setMasterid(orderActiveViewModel.getVipuserid()); walletChargeViewModel.setAmount(model.getPayedmoney()); vipMasterWalletService.Charge(walletChargeViewModel); } List products = orderActiveViewModel.getProducts(); for (OrderActiveProductViewModel product : products) { switch (orderActiveViewModel.getType()) { case 0: //OrderTypeOptions.RECHARGE.ordinal() { break; } case 1: //OrderTypeOptions.PAPER.ordinal() { VIPMasterPaperRelationViewModel paperRelationViewModel = new VIPMasterPaperRelationViewModel(); paperRelationViewModel.setAmount(orderActiveViewModel.getPayedmoney()); paperRelationViewModel.setBuyedtime(new Date()); paperRelationViewModel.setStatus(VIPMasterPaperRelationStatusOptions.VALID.ordinal()); paperRelationViewModel.setMasterid(vipMasterViewModel.getId()); paperRelationViewModel.setMastercode(vipMasterViewModel.getCode()); paperRelationViewModel.setMastername(vipMasterViewModel.getName()); paperRelationViewModel.setPaperid(product.getProductid()); paperRelationViewModel.setPapercode(product.getProductcode()); paperRelationViewModel.setPapername(product.getProductname()); vipMasterPaperRelationService.Create(paperRelationViewModel); break; } case 2: //OrderTypeOptions.MALL.ordinal() { break; } } } return Update(orderActiveViewModel); } public ApiData Cancel(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Canceled.ordinal()); return Update(orderActiveViewModel); } public ApiData Comment(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Commented.ordinal()); orderActiveViewModel.setCommentcontent(model.getCommentcontent()); orderActiveViewModel.setCommentlevel(model.getCommentlevel()); orderActiveViewModel.setCommenttime(new Date()); return Update(orderActiveViewModel); } public ApiData Complete(OrderActiveViewModel model) { if (model == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } if (model.getId() == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } OrderActiveViewModel orderActiveViewModel = GetViewDetail(model.getId()); if (orderActiveViewModel == null) { return ApiData.error(LangConstants.MSG_ERROR_PARAMETERS); } orderActiveViewModel.setStatus(OrderStatusOptions.Completed.ordinal()); orderActiveViewModel.setCompletetime(new Date()); return Update(orderActiveViewModel); } public OrderActiveViewModel GetViewDetail(String id) { OrderActiveQueryObject queryObject = new OrderActiveQueryObject(); queryObject.setId(id); OrderActive entity = GetDetail(queryObject); return BuildViewModel(entity); } public ApiPageData GetViewPageList(OrderActiveQueryObject queryObject) { Map map = GetList(queryObject); List list = (List) map.get(MapDataType.DATA_LIST); List viewModels = new ArrayList<>(); for (OrderActive entity : list) { OrderActiveViewModel viewModel = BuildViewModel(entity); viewModels.add(viewModel); } ApiPageData bean = ApiPageData.build(); bean.setData(viewModels); bean.setTotal((Long) map.get(MapDataType.TOTAL_COUNT)); return bean; } public OrderActiveViewModel GetExtendViewDetail(String id) { OrderActiveQueryObject queryObject = new OrderActiveQueryObject(); queryObject.setId(id); OrderActiveExtend entity = GetExtendDetail(queryObject); return BuildViewModel(entity); } public ApiPageData GetExtendViewPageList(OrderActiveQueryObject queryObject) { Map map = GetExtendList(queryObject); List list = (List) map.get(MapDataType.DATA_LIST); List viewModels = new ArrayList<>(); for (OrderActiveExtend entity : list) { OrderActiveViewModel viewModel = BuildViewModel(entity); viewModels.add(viewModel); } ApiPageData bean = ApiPageData.build(); bean.setData(viewModels); bean.setTotal((Long) map.get(MapDataType.TOTAL_COUNT)); return bean; } //private methods private static OrderActiveViewModel BuildViewModel(OrderActive entity) { if (entity == null) return null; OrderActiveViewModel model = new OrderActiveViewModel(); model.setId(entity.getId()); model.setIsdeleted(entity.getIsdeleted()); model.setRemark(entity.getRemark()); model.setCreatetime(entity.getCreatetime()); model.setUpdatetime(entity.getUpdatetime()); model.setNo(entity.getNo()); model.setTotalmoney(entity.getTotalmoney()); model.setPayedmoney(entity.getPayedmoney()); model.setPaymentmethod(entity.getPaymentmethod()); model.setDiscountmoney(entity.getDiscountmoney()); model.setStatus(entity.getStatus()); model.setOrdertime(entity.getOrdertime()); model.setPaytime(entity.getPaytime()); model.setSendtime(entity.getSendtime()); model.setReceivetime(entity.getReceivetime()); model.setCommenttime(entity.getCommenttime()); model.setSendername(entity.getSendername()); model.setSendercode(entity.getSendercode()); model.setSendercontactno(entity.getSendercontactno()); model.setTargetaddress(entity.getTargetaddress()); model.setDeliveryaddress(entity.getDeliveryaddress()); model.setOptimalcoupon(entity.getOptimalcoupon()); model.setLogisticscompany(entity.getLogisticscompany()); model.setLogisticsno(entity.getLogisticsno()); model.setTransportmode(entity.getTransportmode()); model.setBoxcount(entity.getBoxcount()); model.setBoxweight(entity.getBoxweight()); model.setFreight(entity.getFreight()); model.setCommentcontent(entity.getCommentcontent()); model.setCommentlevel(entity.getCommentlevel()); model.setReceiverid(entity.getReceiverid()); model.setVipuserid(entity.getVipuserid()); model.setVipphone(entity.getVipphone()); model.setVipdiamondtype(entity.getVipdiamondtype()); model.setViptype(entity.getViptype()); model.setVippicture(entity.getVippicture()); model.setVipcarddiscountrate(entity.getVipcarddiscountrate()); model.setType(entity.getType()); return model; } private static OrderActiveViewModel BuildViewModel(OrderActiveExtend entity) { if (entity == null) return null; OrderActiveViewModel model = new OrderActiveViewModel(); model.setId(entity.getId()); model.setIsdeleted(entity.getIsdeleted()); model.setRemark(entity.getRemark()); model.setCreatetime(entity.getCreatetime()); model.setUpdatetime(entity.getUpdatetime()); model.setNo(entity.getNo()); model.setTotalmoney(entity.getTotalmoney()); model.setPayedmoney(entity.getPayedmoney()); model.setPaymentmethod(entity.getPaymentmethod()); model.setDiscountmoney(entity.getDiscountmoney()); model.setStatus(entity.getStatus()); model.setOrdertime(entity.getOrdertime()); model.setPaytime(entity.getPaytime()); model.setSendtime(entity.getSendtime()); model.setReceivetime(entity.getReceivetime()); model.setCommenttime(entity.getCommenttime()); model.setSendername(entity.getSendername()); model.setSendercode(entity.getSendercode()); model.setSendercontactno(entity.getSendercontactno()); model.setTargetaddress(entity.getTargetaddress()); model.setDeliveryaddress(entity.getDeliveryaddress()); model.setOptimalcoupon(entity.getOptimalcoupon()); model.setLogisticscompany(entity.getLogisticscompany()); model.setLogisticsno(entity.getLogisticsno()); model.setTransportmode(entity.getTransportmode()); model.setBoxcount(entity.getBoxcount()); model.setBoxweight(entity.getBoxweight()); model.setFreight(entity.getFreight()); model.setCommentcontent(entity.getCommentcontent()); model.setCommentlevel(entity.getCommentlevel()); model.setReceiverid(entity.getReceiverid()); model.setVipuserid(entity.getVipuserid()); model.setVipphone(entity.getVipphone()); model.setVipdiamondtype(entity.getVipdiamondtype()); model.setViptype(entity.getViptype()); model.setVippicture(entity.getVippicture()); model.setVipcarddiscountrate(entity.getVipcarddiscountrate()); model.setType(entity.getType()); List products = new ArrayList<>(); for (OrderActiveProduct product : entity.getProducts()) { OrderActiveProductViewModel productmodel = new OrderActiveProductViewModel(); productmodel.setId(product.getId()); productmodel.setIsdeleted(product.getIsdeleted()); productmodel.setRemark(product.getRemark()); productmodel.setCreatetime(product.getCreatetime()); productmodel.setUpdatetime(product.getUpdatetime()); productmodel.setProductid(product.getProductid()); productmodel.setProductcode(product.getProductcode()); productmodel.setProductname(product.getProductname()); productmodel.setStatus(product.getStatus()); productmodel.setColor(product.getColor()); productmodel.setSize(product.getSize()); productmodel.setCount(product.getCount()); productmodel.setImage(product.getImage()); productmodel.setPrice(product.getPrice()); productmodel.setSaleprice(product.getSaleprice()); productmodel.setRejectreason(product.getRejectreason()); productmodel.setRejectcomment(product.getRejectcomment()); productmodel.setRejecttime(product.getRejecttime()); productmodel.setPayer(product.getPayer()); productmodel.setPayedmoney(product.getPayedmoney()); productmodel.setDiscount(product.getDiscount()); productmodel.setPayee(product.getPayee()); productmodel.setOrderid(product.getOrderid()); productmodel.setOrderno(product.getOrderno()); products.add(productmodel); } model.setProducts(products); return model; } public OrderActive Check(ActionType actionType, OrderActiveViewModel model) { message = ""; if (model == null) { message = LangConstants.MSG_ERROR_PARAMETERS; return null; } OrderActive entity = null; if (ActionType.CREATE == actionType) { entity = new OrderActive(); entity.setId(UUID.randomUUID().toString()); entity.setCreatetime(new Date()); entity.setIsdeleted(false); entity.setStatus(OrderStatusOptions.Defined.ordinal()); String oldCode = GetLatestCode(); String newCode = generateCode(oldCode); if (newCode == null) return null; entity.setNo(newCode); } else { OrderActiveQueryObject queryObject = new OrderActiveQueryObject(); queryObject.setId(model.getId()); entity = GetDetail(queryObject); entity.setUpdatetime(new Date()); entity.setStatus(model.getStatus()); } entity.setTotalmoney(model.getTotalmoney()); entity.setPayedmoney(model.getPayedmoney()); entity.setDiscountmoney(model.getDiscountmoney()); entity.setOrdertime(model.getOrdertime()); entity.setPaytime(model.getPaytime()); entity.setPaymentmethod(model.getPaymentmethod()); entity.setSendtime(model.getSendtime()); entity.setReceivetime(model.getReceivetime()); entity.setCommenttime(model.getCommenttime()); entity.setSendername(model.getSendername()); entity.setSendercode(model.getSendercode()); entity.setSendercontactno(model.getSendercontactno()); entity.setTargetaddress(model.getTargetaddress()); entity.setDeliveryaddress(model.getDeliveryaddress()); entity.setOptimalcoupon(model.getOptimalcoupon()); entity.setLogisticscompany(model.getLogisticscompany()); entity.setLogisticsno(model.getLogisticsno()); entity.setTransportmode(model.getTransportmode()); entity.setBoxcount(model.getBoxcount()); entity.setBoxweight(model.getBoxweight()); entity.setFreight(model.getFreight()); entity.setCommentcontent(model.getCommentcontent()); entity.setCommentlevel(model.getCommentlevel()); entity.setReceiverid(model.getReceiverid()); entity.setVipuserid(model.getVipuserid()); entity.setType(model.getType()); if (model.getVipuserid() != null) { VIPMasterViewModel vipMasterViewModel = vipMasterService.GetViewDetail(model.getVipuserid()); if (vipMasterViewModel != null) { entity.setVipname(vipMasterViewModel.getName()); entity.setVipphone(vipMasterViewModel.getCellphone()); entity.setVipdiamondtype(vipMasterViewModel.getDiamondtype()); entity.setViptype(vipMasterViewModel.getType()); entity.setVippicture(vipMasterViewModel.getAvatarurl()); entity.setVipcarddiscountrate(vipMasterViewModel.getDiscountrate()); } } return entity; } @Nullable public String generateCode(String oldCode) { String preNo = "A"; int _newCodeNum = 1; try { int _oldCodeNum = 0; if (oldCode != null && !oldCode.equals("") && oldCode.length() > 2) { String _oldNoNumString = oldCode.substring(2); _oldCodeNum = Integer.parseInt(_oldNoNumString); } if (_oldCodeNum != 0) { int a = _oldCodeNum + 1; _newCodeNum = a; } } catch (NumberFormatException e) { e.printStackTrace(); message = LangConstants.MSG_ERROR_SYSTEM; return null; } return String.format("%s%09d", preNo, _newCodeNum); } public String GetLatestCode() { String oldCode = ""; OrderActiveExample example = new OrderActiveExample(); example.setOrderByClause("no desc"); example.setRows(1); example.setOffset(0); List list = mapper.selectByExample(example); if (list != null && list.size() > 0) { OrderActive entity2 = list.get(0); if (entity2 != null) { oldCode = entity2.getNo(); } } return oldCode; } }