From 7f1a7310b04542cdf2ea97dc9e4f50c9b50626bf Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 19 Nov 2019 16:23:21 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E9=85=8D=E7=BD=AElogback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 27 ++++++++ src/main/resources/logback-spring.xml | 93 +++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 src/main/resources/logback-spring.xml diff --git a/pom.xml b/pom.xml index 353222d..130adec 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,8 @@ 2.8.0 1.2.5 2.9.6 + 1.7.25 + 1.2.3 @@ -149,6 +151,31 @@ pom + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + ch.qos.logback + logback-core + ${logback.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + + + + ch.qos.logback + logback-access + ${logback.version} + diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..5747236 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + ${log.pattern} + + + + + + ${log.filePath}/debug.log + + + DEBUG + ACCEPT + DENY + + + + ${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz + + + ${log.maxHistory} + + + ${log.pattern} + + + + + ${log.filePath}/info.log + + + INFO + ACCEPT + DENY + + + + ${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz + + + ${log.maxHistory} + + + ${log.pattern} + + + + + ${log.filePath}/error.log + + + ERROR + ACCEPT + DENY + + + + ${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz + + + ${log.maxHistory} + + + ${log.pattern} + + + + + + + + + + + \ No newline at end of file -- Gitee From 1ba6ba29cec7d3e5f183d0ba866725873e950852 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 19 Nov 2019 16:24:22 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=AD=BB=E9=94=81?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/constant/CommonConstant.java | 10 +++ .../commons/exception/MyExceptionHandler.java | 1 - .../commons/thread/BuildPathRunable.java | 19 +++-- .../controller/CategoryController.java | 2 +- .../polaris/mapper/ShopCategoryMapper.java | 15 ++++ .../service/impl/CategoryServiceImpl.java | 85 +++++++++++++++---- .../resources/mapper/ShopCategoryMapper.xml | 14 ++- .../polaris/service/CategoryServiceTest.java | 14 +++ 8 files changed, 136 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java index 6b49fe0..1c5b8b5 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java @@ -258,4 +258,14 @@ public interface CommonConstant { */ Integer CAROUSE_COMMON_FAIL_4201 = 4201; String GET_ALL_CAROUSE_NULL = "查询的轮播图列表为空"; + + /** + * 数据库增删改操作pattern + */ + //pattern + String OPREARTION_METHOD_PATTERN = "操作类型:{0};操作结果:成功;操作类名:{1};操作方法:{2};传入参数:{3}"; + String OPREARTION_METHOD_INSERT = "新增"; + String OPREARTION_METHOD_DELETE = "删除"; + String OPREARTION_METHOD_UPDATE = "更新"; + String OPREARTION_METHOD_QUERY = "查询"; } diff --git a/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java b/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java index 8fbb682..7da68bd 100644 --- a/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java +++ b/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java @@ -3,7 +3,6 @@ package com.hxtec.polaris.commons.exception; import javax.servlet.http.HttpServletRequest; import com.hxtec.polaris.commons.api.vo.Result; -import com.hxtec.polaris.commons.constant.CommonConstant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; diff --git a/src/main/java/com/hxtec/polaris/commons/thread/BuildPathRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/BuildPathRunable.java index b17f84e..0a70d21 100644 --- a/src/main/java/com/hxtec/polaris/commons/thread/BuildPathRunable.java +++ b/src/main/java/com/hxtec/polaris/commons/thread/BuildPathRunable.java @@ -3,10 +3,13 @@ package com.hxtec.polaris.commons.thread; import com.hxtec.polaris.entity.ShopCategory; import com.hxtec.polaris.mapper.ShopCategoryMapper; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import javax.servlet.ServletContext; +import java.util.Date; import java.util.List; import java.util.concurrent.CountDownLatch; @@ -17,6 +20,8 @@ import java.util.concurrent.CountDownLatch; * @Version 1.0.0 **/ public class BuildPathRunable implements Runnable{ + private final static Long TIME_STAMP = 30000L; + private final static Logger logger = LoggerFactory.getLogger(BuildPathRunable.class); private ServletContext context = null; private final CountDownLatch doneSignal; private ShopCategoryMapper shopCategoryMapper; @@ -34,11 +39,11 @@ public class BuildPathRunable implements Runnable{ synchronized (doneSignal){ doneSignal.countDown(); callBuildPath(); - System.out.println("********分类路径构建成功**********"); + logger.info("********分类路径构建成功**********"); } doneSignal.await(); }catch (Exception e){ - System.out.println("*****发生异常*******,当前指针"+doneSignal); + logger.error("*****发生异常*******,当前指针"+doneSignal); e.printStackTrace(); } } @@ -53,7 +58,7 @@ public class BuildPathRunable implements Runnable{ //获取构建的类别路径 StringBuilder path = new StringBuilder("-"); path.append(shopCategory.getId()); - getPath(shopCategory,path); + getPath(shopCategory,path,new Date()); path.append("-"); shopCategory.setComment1(String.valueOf(path)); shopCategoryMapper.updateCategoryPath(shopCategory.getId(),String.valueOf(path)); @@ -66,7 +71,11 @@ public class BuildPathRunable implements Runnable{ * @param path * @return */ - private StringBuilder getPath(ShopCategory shopCategory,StringBuilder path){ + private StringBuilder getPath(ShopCategory shopCategory, StringBuilder path, Date date){ + if (System.currentTimeMillis()-date.getTime() > TIME_STAMP){ + logger.error("*****操作时间过长,可能陷入死循环*******,当前指针"+doneSignal); + return null; + } if (StringUtils.isNotBlank(shopCategory.getParentId())){ List list= shopCategoryMapper.getCategoryById(shopCategory.getParentId()); if (null != list && list.size()>0){ @@ -74,7 +83,7 @@ public class BuildPathRunable implements Runnable{ path.append("-").append(shopCategory1.getId()); if (StringUtils.isNotBlank(shopCategory1.getParentId())){ - getPath(shopCategory1,path); + getPath(shopCategory1,path,date); } } } diff --git a/src/main/java/com/hxtec/polaris/controller/CategoryController.java b/src/main/java/com/hxtec/polaris/controller/CategoryController.java index 0ddc18c..26b83d7 100644 --- a/src/main/java/com/hxtec/polaris/controller/CategoryController.java +++ b/src/main/java/com/hxtec/polaris/controller/CategoryController.java @@ -74,7 +74,7 @@ public class CategoryController { @ApiImplicitParam(name = "name", value = "当前节点编辑后的节点名", required = false, dataType = "String"), }) @RequestMapping(value = "update", method = RequestMethod.PUT,produces = "application/json;charset=utf-8") - public Object updateCategory(HttpServletRequest request, String pid, String id, String name){ + public Object updateCategory(HttpServletRequest request,String id, String pid, String name){ return categoryService.updateCategory(request,pid,id,name); } } diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopCategoryMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopCategoryMapper.java index 345391f..525e96a 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopCategoryMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopCategoryMapper.java @@ -53,6 +53,21 @@ public interface ShopCategoryMapper extends MyMapper { */ Integer updateCategoryParentId(@Param("id") String id,@Param("pid") String pid,@Param("name") String name); + /** + * 更新父id + * @param id + * @param pid + * @return + */ + Integer updateCategoryChildParentId(@Param("id") String id,@Param("pid") String pid); + + /** + * 更新父id + * @param pid + * @return + */ + Integer updateCategoryChildNullParentId(@Param("pid") String pid); + /** * 更新父id * @param id diff --git a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java index 5361d89..d7be232 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java @@ -9,18 +9,18 @@ import com.hxtec.polaris.entity.ShopCategory; import com.hxtec.polaris.mapper.ShopCategoryMapper; import com.hxtec.polaris.service.CategoryService; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; +import java.text.MessageFormat; import java.util.Date; import java.util.List; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; /** @@ -33,6 +33,12 @@ import java.util.concurrent.ThreadFactory; @Transactional public class CategoryServiceImpl implements CategoryService { + private final static Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class); + private static String CLASS_NAME = "CategoryServiceImpl"; + private static String METHOD_ADD_CATORY = "addCategory"; + private static String METHOD_DEL_CATORY = "deleteCategory"; + private static String METHOD_UPDATE_CATORY ="updateCategory"; + @Resource private ShopCategoryMapper shopCategoryMapper; @@ -86,6 +92,9 @@ public class CategoryServiceImpl implements CategoryService { if (updateResult < 0){ throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_FAIL)); } + String params = "pid="+pid+",name="+name; + logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_INSERT, + CLASS_NAME,METHOD_ADD_CATORY,params)); return Result.ok(CommonConstant.CATEGORY_INSERT_OK); } @@ -112,6 +121,9 @@ public class CategoryServiceImpl implements CategoryService { } } + String params = "ids="+ids; + logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_DELETE, + CLASS_NAME,METHOD_DEL_CATORY,params)); return Result.ok(CommonConstant.CATEGORY_DELETE_OK); } @@ -126,23 +138,15 @@ public class CategoryServiceImpl implements CategoryService { //如果该父节点对应的分类在数据库中没有记录或者删除状态是空或者已删除,则为故障节点,不能进行更新 throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_PID_EXCEPTION)); } - //将当前分类的父id更新为新的id,名称改为新的名称 - int updateResult = 0; + //执行更新操作 try { - updateResult = shopCategoryMapper.updateCategoryParentId(id,pid,name); + doUpdateShopCategory(request,pid,id,name); }catch (Exception e){ throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_FAIL)); } - if (updateResult < 0){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_FAIL)); - } - //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 - // 创建线程池 - ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.CATEGORY_BUILD_PATH_NAME).build(); - ServletContext context = request.getServletContext(); - // 计数器 - CountDownLatch doneSignal = new CountDownLatch(1); - pool.newThread(new BuildPathRunable(context,doneSignal)).run(); + String params = "pid="+pid+",id="+id+",name="+name; + logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_UPDATE, + CLASS_NAME,METHOD_UPDATE_CATORY,params)); return Result.ok(); } @@ -162,4 +166,53 @@ public class CategoryServiceImpl implements CategoryService { shopCategory.setUpdateTime(new Date()); return shopCategory; } + + /** + * 执行db层面的分类更新,返回t + * @param pid + * @param id + * @param name + * @return + */ + private void doUpdateShopCategory(HttpServletRequest request,String pid, String id, String name){ + //编辑的节点原来的父节点 + List shopCategorys = shopCategoryMapper.getCategoryById(id); + String oldParentId = shopCategorys.get(0).getParentId(); + + //step1 将当前节点的父节点和名字更新为修改后的值 + shopCategoryMapper.updateCategoryParentId(id,pid,name); + + //如果上级节点没有变动,则不需要变更子节点,业务结束 + if (equalsIgnoreCase(pid,oldParentId)){ + return; + } + + //step2 将节点更新前的下级节点指向的parentId,修改为更新的节点原来指向的parentId,相当于往前移了一位 + if (StringUtils.isBlank(oldParentId)){ + shopCategoryMapper.updateCategoryChildNullParentId(oldParentId); + }else { + shopCategoryMapper.updateCategoryChildParentId(id,oldParentId); + } + + //调用线程,更新path + //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 + // 创建线程池 + ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.CATEGORY_BUILD_PATH_NAME).build(); + ServletContext context = request.getServletContext(); + // 计数器 + CountDownLatch doneSignal = new CountDownLatch(1); + pool.newThread(new BuildPathRunable(context,doneSignal)).start(); + } + + /** + * 判断两个字符串是否相等 将"" 、" "、null相同对待 + * @param str1 + * @param str2 + * @return + */ + private boolean equalsIgnoreCase(String str1,String str2){ + str1 = StringUtils.isBlank(str1)? "":str1; + str2 = StringUtils.isBlank(str2)? "":str2; + return StringUtils.equals(str1, str2); + } } diff --git a/src/main/resources/mapper/ShopCategoryMapper.xml b/src/main/resources/mapper/ShopCategoryMapper.xml index c691de0..f0afeda 100644 --- a/src/main/resources/mapper/ShopCategoryMapper.xml +++ b/src/main/resources/mapper/ShopCategoryMapper.xml @@ -115,10 +115,22 @@ update shop_category - set parent_id = #{pid},name = #{name} + set parent_id = #{pid},name = #{name},is_parent = 'N' where id = #{id} and is_delete = 'N' + + update shop_category + set parent_id = #{pid} + where parent_id = #{id} and is_delete = 'N' + + + + update shop_category + set parent_id = #{pid} + where parent_id is null and is_delete = 'N' + + update shop_category set comment1 = #{path} diff --git a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java index 39afdb5..c757e8d 100644 --- a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java +++ b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java @@ -10,6 +10,8 @@ import org.springframework.boot.test.context.SpringBootTest; import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; +import java.text.MessageFormat; +import java.util.Date; import java.util.List; /** @@ -40,4 +42,16 @@ public class CategoryServiceTest { } System.out.println(list); } + + @Test + public void test(){ + shopCategoryMapper.updateCategoryChildNullParentId("1111"); + } + + @Test + public void testMessageFormat(){ + String str = "占位1{0},占位2{1},占位3{2}"; + Date date = new Date(); + System.out.println(MessageFormat.format(str,"aaa",true,date)); + } } -- Gitee From 61f107441f8c505f6a85ca2a13e6d393670a6dab Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 19 Nov 2019 17:24:21 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E5=B8=B8=E9=87=8F=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/constant/CommonConstant.java | 252 ++++-------------- .../commons/utils/GenerateSequenceUtil.java | 49 ++++ .../service/impl/CarouseServiceImpl.java | 2 +- .../service/impl/CategoryServiceImpl.java | 68 ++--- .../polaris/service/impl/GoodServiceImpl.java | 24 +- .../resources/mapper/ShopCategoryMapper.xml | 4 - .../polaris/service/CategoryServiceTest.java | 2 +- 7 files changed, 146 insertions(+), 255 deletions(-) create mode 100644 src/main/java/com/hxtec/polaris/commons/utils/GenerateSequenceUtil.java diff --git a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java index 1c5b8b5..41d5bfa 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java @@ -12,260 +12,104 @@ import java.util.List; * @return **/ public interface CommonConstant { - - /** - * 正常状态 - */ - public static final Integer STATUS_NORMAL = 0; - - /** - * 禁用状态 - */ - public static final Integer STATUS_DISABLE = -1; - - /** - * 删除标志 - */ - public static final Integer DEL_FLAG_1 = 1; - - /** - * 未删除 - */ - public static final Integer DEL_FLAG_0 = 0; - - /** - * 系统日志类型: 登录 - */ - public static final int LOG_TYPE_1 = 1; - - /** - * 系统日志类型: 操作 - */ - public static final int LOG_TYPE_2 = 2; - - /** - * 操作日志类型: 查询 - */ - public static final int OPERATE_TYPE_1 = 1; - - /** - * 操作日志类型: 添加 - */ - public static final int OPERATE_TYPE_2 = 2; - - /** - * 操作日志类型: 更新 - */ - public static final int OPERATE_TYPE_3 = 3; - - /** - * 操作日志类型: 删除 - */ - public static final int OPERATE_TYPE_4 = 4; - - /** - * 操作日志类型: 倒入 - */ - public static final int OPERATE_TYPE_5 = 5; - - /** - * 操作日志类型: 导出 - */ - public static final int OPERATE_TYPE_6 = 6; - - /** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */ - public static final Integer SC_INTERNAL_SERVER_ERROR_500 = 500; + Integer SC_INTERNAL_SERVER_ERROR_500 = 500; /** {@code 200 OK} (HTTP/1.0 - RFC 1945) */ - public static final Integer SC_OK_200 = 200; + Integer SC_OK_200 = 200; /**访问权限认证未通过 510*/ - public static final Integer SC_JEECG_NO_AUTHZ=510; + Integer SC_JEECG_NO_AUTHZ=510; - /** 登录用户Shiro权限缓存KEY前缀 */ - public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.modules.shiro.authc.ShiroRealm.authorizationCache:"; - /** 登录用户Token令牌缓存KEY前缀 */ - public static final String PREFIX_USER_TOKEN = "prefix_user_token_"; - /** Token缓存时间:3600秒即一小时 */ - public static final int TOKEN_EXPIRE_TIME = 3600; - /** - * 0:一级菜单 - */ - public static final Integer MENU_TYPE_0 = 0; - /** - * 1:子菜单 - */ - public static final Integer MENU_TYPE_1 = 1; - /** - * 2:按钮权限 - */ - public static final Integer MENU_TYPE_2 = 2; - - /**通告对象类型(USER:指定用户,ALL:全体用户)*/ - public static final String MSG_TYPE_UESR = "USER"; - public static final String MSG_TYPE_ALL = "ALL"; - - /**发布状态(0未发布,1已发布,2已撤销)*/ - public static final String NO_SEND = "0"; - public static final String HAS_SEND = "1"; - public static final String HAS_CANCLE = "2"; - - /**阅读状态(0未读,1已读)*/ - public static final String HAS_READ_FLAG = "1"; - public static final String NO_READ_FLAG = "0"; - - /**优先级(L低,M中,H高)*/ - public static final String PRIORITY_L = "L"; - public static final String PRIORITY_M = "M"; - public static final String PRIORITY_H = "H"; - - /** - * 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板 - */ - public static final String SMS_TPL_TYPE_0 = "0"; - public static final String SMS_TPL_TYPE_1 = "1"; - public static final String SMS_TPL_TYPE_2 = "2"; - - /** - * 状态(0无效1有效) - */ - public static final String STATUS_0 = "0"; - public static final String STATUS_1 = "1"; - - /** - * 同步工作流引擎1同步0不同步 - */ - public static final String ACT_SYNC_0 = "0"; - public static final String ACT_SYNC_1 = "1"; - - /** - * 消息类型1:通知公告2:系统消息 - */ - public static final String MSG_CATEGORY_1 = "1"; - public static final String MSG_CATEGORY_2 = "2"; - - /** - * 是否配置菜单的数据权限 1是0否 + * 日志pattern */ - public static final Integer RULE_FLAG_0 = 0; - public static final Integer RULE_FLAG_1 = 1; + //pattern + String LOG_PATTERN = "操作类型:{0};操作类名:{1};操作方法:{2};传入参数:{3}"; + String LOG_TYPE_INSERT = "新增"; + String LOG_TYPE_DELETE = "删除"; + String LOG_TYPE_UPDATE = "更新"; + String LOG_TYPE_QUERY = "查询"; /** - * 是否用户已被冻结 1(解冻)正常 2冻结 + * 符号 */ - public static final Integer USER_UNFREEZE = 1; - public static final Integer USER_FREEZE = 2; - - /**字典翻译文本后缀*/ - public static final String DICT_TEXT_SUFFIX = "_dictText"; + //分隔符 + String CHARACTOR_SEPARATOR = "-"; + String CHARACTOR_NO = "N"; /** - * 表单设计器主表类型 + * 线程池名 */ - public static final Integer DESIGN_FORM_TYPE_MAIN = 1; + //分类构建路径线程 + String THREAD_CATEGORY_BUILD_PATH= "category-path-%d"; /** - * 表单设计器子表表类型 + * 其他 */ - public static final Integer DESIGN_FORM_TYPE_SUB = 2; + //商品排序依据 1 综合排序 2 销量排序 3 价格排序升序 4价格排序降序 + List OTHER_PRUDUCT_ORDER_LIST = Arrays.asList("1","2","3","4"); /** - * 表单设计器URL授权通过 + * code */ - public static final Integer DESIGN_FORM_URL_STATUS_PASSED = 1; + //分类相关失败返回 + Integer CODE_FAIL_4101 = 4101; + //商品相关失败返回 + Integer CODE_FAIL_4301 = 4201; + //轮播图相关失败返回 + Integer CODE_FAIL_4201 = 4201; - /** - * 表单设计器URL授权未通过 - */ - public static final Integer DESIGN_FORM_URL_STATUS_NOT_PASSED = 2; /** - * 表单设计器URL授权未通过 - */ - public static final String DESIGN_FORM_URL_TYPE_ADD = "add"; - /** - * 表单设计器URL授权未通过 + * msg */ - public static final String DESIGN_FORM_URL_TYPE_EDIT = "edit"; - /** - * 表单设计器URL授权未通过 - */ - public static final String DESIGN_FORM_URL_TYPE_DETAIL = "detail"; - /** - * 表单设计器URL授权未通过 - */ - public static final String DESIGN_FORM_URL_TYPE_VIEW = "view"; - /** * 分类相关 */ - //分类线程池名 - String CATEGORY_BUILD_PATH_NAME= "category-path-%d"; - Integer CATEGORY_COMMON_FAIL_4101 = 4101; - //分隔符 - String CATEGORY_PATH_SEPARATOR = "-"; - //非父节点 - String CATEGORY_IS_PARENT_NO = "N"; - //未删除 - String CATEGORY_IS_DELETE_NO = "N"; //查询列表时结果为空 - String CATEGORY_BUILD_TREE_SELECT_NO = "查询的分类表结果为空"; + String MSG_CATEGORY_SELECT_NO = "查询的分类表结果为空"; //没有查询到当前节点的父节点 - String CATEGORY_PARENT_NODE_NO = "没有查询到对应的父节点"; + String MSG_CATEGORY_PNODE_NO = "没有查询到对应的父节点"; //inser 影响条数不为1 - String CATEGORY_INSERT_FAIL = "分类表插入数据失败"; + String MSG_CATEGORY_INSERT_FAIL = "分类表插入数据失败"; //inser 成功 - String CATEGORY_INSERT_OK = "分类表插入数据成功"; + String MSG_CATEGORY_INSERT_OK = "分类表插入数据成功"; //insert 异常 - String CATEGORY_INSERT_EXCEPTION = "分类表插入数据时发生异常"; + String MSG_CATEGORY_INSERT_EXCEPTION = "分类表插入数据时发生异常"; //update 异常 - String CATEGORY_UPDATE_EXCEPTION = "分类表更新数据时发生异常"; + String MSG_CATEGORY_UPDATE_EXCEPTION = "分类表更新数据时发生异常"; //update 影响条数不为1 - String CATEGORY_UPDATE_FAIL = "分类表更新数据失败"; + String MSG_CATEGORY_UPDATE_FAIL = "分类表更新数据失败"; //update 更新成功 - String CATEGORY_UPDATE_OK = "分类表更新数据成功"; + String MSG_CATEGORY_UPDATE_OK = "分类表更新数据成功"; //update 故障节点 - String CATEGORY_UPDATE_PID_EXCEPTION = "父节点故障"; + String MSG_CATEGORY_PID_EXCEPTION = "父节点故障"; //delete 异常 - String CATEGORY_DELETE_EXCEPTION = "分类表删除数据时发生异常"; + String MSG_CATEGORY_DELETE_EXCEPTION = "分类表删除数据时发生异常"; //delete 影响的条数为空 - String CATEGORY_DELETE_FAIL = "分类表删除数据失败"; + String MSG_CATEGORY_DELETE_FAIL = "分类表删除数据失败"; //delete 传的参数为空 - String CATEGORY_DELETE_PARAM_NO = "请至少选择一个节点删除"; + String MSG_CATEGORY_DELETE_NO = "请至少选择一个节点删除"; //delete 成功 - String CATEGORY_DELETE_OK = "删除成功"; + String MSG_CATEGORY_DELETE_OK = "删除成功"; /** * 商品相关 */ - Integer GOODS_COMMON_FAIL_4201 = 4201; //获取所有商品列表(综合排序/销量/价格) - String GET_ALL_GOODS_NULL = "查询的商品列表为空"; + String MSG_GET_ALL_GOODS_NULL = "查询的商品列表为空"; //获取猜你喜欢商品列表 - String GET_GUESS_LIKE_GOODS_NULL = "查询的猜你喜欢商品列表为空"; + String MSG_GET_GUESS_LIKE_GOODS_NULL = "查询的猜你喜欢商品列表为空"; //获取分类精选商品列表 - String GET_CLASSFIED_SELECTED_GOODS_NULL = "查询的分类精选商品列表为空"; + String MSG_GET_CLASSFIED_SELECTED_GOODS_NULL = "查询的分类精选商品列表为空"; //获取某个类别的商品列表 - String GET_GROUP_GOODS_NULL = "查询当前类别的商品列表为空"; - String PARAM_FORMAT_INVALID = "非法的请求参数"; - //商品排序依据 1 综合排序 2 销量排序 3 价格排序升序 4价格排序降序 - List PRUDUCT_ORDER_LIST = Arrays.asList("1","2","3","4"); + String MSG_GET_GROUP_GOODS_NULL = "查询当前类别的商品列表为空"; + String MSG_PARAM_INVALID = "非法的请求参数"; - /** - * 轮播图相关 - */ - Integer CAROUSE_COMMON_FAIL_4201 = 4201; - String GET_ALL_CAROUSE_NULL = "查询的轮播图列表为空"; /** - * 数据库增删改操作pattern + * 轮播图相关 */ - //pattern - String OPREARTION_METHOD_PATTERN = "操作类型:{0};操作结果:成功;操作类名:{1};操作方法:{2};传入参数:{3}"; - String OPREARTION_METHOD_INSERT = "新增"; - String OPREARTION_METHOD_DELETE = "删除"; - String OPREARTION_METHOD_UPDATE = "更新"; - String OPREARTION_METHOD_QUERY = "查询"; + String MSG_GET_CAROUSE_NULL = "查询的轮播图列表为空"; } diff --git a/src/main/java/com/hxtec/polaris/commons/utils/GenerateSequenceUtil.java b/src/main/java/com/hxtec/polaris/commons/utils/GenerateSequenceUtil.java new file mode 100644 index 0000000..ff15dab --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/utils/GenerateSequenceUtil.java @@ -0,0 +1,49 @@ +package com.hxtec.polaris.commons.utils; + +import java.text.DecimalFormat; +import java.text.FieldPosition; +import java.text.Format; +import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * @Author yonyong + * @Description

根据时间生成唯一序列ID
+ * 时间精确到秒,ID最大值为99999且循环使用

+ * @Date 2019/11/19 17:16 + * @Param + * @return + **/ +public class GenerateSequenceUtil { + + private static final FieldPosition HELPER_POSITION = new FieldPosition(0); + + /** 时间:精确到秒 */ + private final static Format dateFormat = new SimpleDateFormat("YYYYMMddHHmmss"); + + private final static NumberFormat numberFormat = new DecimalFormat("00000"); + + private static int seq = 0; + + private static final int MAX = 99999; + + public static synchronized String generateSequenceNo() { + + Calendar rightNow = Calendar.getInstance(); + + StringBuffer sb = new StringBuffer(); + + dateFormat.format(rightNow.getTime(), sb, HELPER_POSITION); + + numberFormat.format(seq, sb, HELPER_POSITION); + + if (seq == MAX) { + seq = 0; + } else { + seq++; + } + + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java index 055f3c4..223950f 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java @@ -31,7 +31,7 @@ public class CarouseServiceImpl implements CarouseService{ if (null != list && list.size()>0){ return Result.ok(list); }else { - throw new MyException(Result.error(CommonConstant.CAROUSE_COMMON_FAIL_4201,CommonConstant.GET_ALL_CAROUSE_NULL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4201,CommonConstant.MSG_GET_CAROUSE_NULL)); } } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java index d7be232..4b5c10c 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java @@ -5,6 +5,7 @@ import com.hxtec.polaris.commons.api.vo.Result; import com.hxtec.polaris.commons.constant.CommonConstant; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.commons.thread.BuildPathRunable; +import com.hxtec.polaris.commons.utils.GenerateSequenceUtil; import com.hxtec.polaris.entity.ShopCategory; import com.hxtec.polaris.mapper.ShopCategoryMapper; import com.hxtec.polaris.service.CategoryService; @@ -34,10 +35,10 @@ import java.util.concurrent.ThreadFactory; public class CategoryServiceImpl implements CategoryService { private final static Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class); - private static String CLASS_NAME = "CategoryServiceImpl"; - private static String METHOD_ADD_CATORY = "addCategory"; - private static String METHOD_DEL_CATORY = "deleteCategory"; - private static String METHOD_UPDATE_CATORY ="updateCategory"; + private final static String LOG_CLASS_NAME = "CategoryServiceImpl"; + private final static String LOG_METHOD_ADD_CATORY = "addCategory"; + private final static String LOG_METHOD_DEL_CATORY = "deleteCategory"; + private final static String LOG_METHOD_UPDATE_CATORY ="updateCategory"; @Resource private ShopCategoryMapper shopCategoryMapper; @@ -50,7 +51,7 @@ public class CategoryServiceImpl implements CategoryService { return Result.ok(list); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_BUILD_TREE_SELECT_NO)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_SELECT_NO)); } } @@ -58,28 +59,29 @@ public class CategoryServiceImpl implements CategoryService { public Object addCategory(String pid, String name) { //请求参数不合法 if (!StringUtils.isNumeric(pid)){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.PARAM_FORMAT_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); } //判断数据库中是否有该父节点 ShopCategory parentObject = shopCategoryMapper.selectByPrimaryKey(pid); if (null == parentObject){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_PARENT_NODE_NO)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PNODE_NO)); } //实例赋值 ShopCategory shopCategory = setParam(pid,name); - + //生成id + shopCategory.setId(GenerateSequenceUtil.generateSequenceNo()); //数据新增入库 int insertResult = 0; try { insertResult = shopCategoryMapper.insertCategory(shopCategory); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_INSERT_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_EXCEPTION)); } if (insertResult != 1){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_INSERT_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_FAIL)); } //构建分类路径 - StringBuilder path = new StringBuilder(CommonConstant.CATEGORY_PATH_SEPARATOR + shopCategory.getId()); + StringBuilder path = new StringBuilder(CommonConstant.CHARACTOR_SEPARATOR + shopCategory.getId()); path.append(parentObject.getComment1()); shopCategory.setComment1(String.valueOf(path)); //更新路径 @@ -87,67 +89,67 @@ public class CategoryServiceImpl implements CategoryService { try{ updateResult = shopCategoryMapper.updateCategoryDynamic(shopCategory); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_EXCEPTION)); } if (updateResult < 0){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL)); } String params = "pid="+pid+",name="+name; - logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_INSERT, - CLASS_NAME,METHOD_ADD_CATORY,params)); - return Result.ok(CommonConstant.CATEGORY_INSERT_OK); + logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, + LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params)); + return Result.ok(CommonConstant.MSG_CATEGORY_INSERT_OK); } @Override public Object deleteCategory(List ids) { //参数为空 if (null == ids || ids.size() == 0){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_DELETE_PARAM_NO)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_NO)); } for (String id : ids){ //参数不合法 if (!StringUtils.isNumeric(id)){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.PARAM_FORMAT_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); } //更新shop_category表 int deletCategoryResult = 0; try{ deletCategoryResult = shopCategoryMapper.deleteCategory(id); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_DELETE_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_EXCEPTION)); } if (deletCategoryResult < 0){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_DELETE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_FAIL)); } } String params = "ids="+ids; - logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_DELETE, - CLASS_NAME,METHOD_DEL_CATORY,params)); - return Result.ok(CommonConstant.CATEGORY_DELETE_OK); + logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, + LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params)); + return Result.ok(CommonConstant.MSG_CATEGORY_DELETE_OK); } @Override public Object updateCategory(HttpServletRequest request,String pid, String id, String name) { if (!StringUtils.isNumeric(pid) || !StringUtils.isNumeric(id) || StringUtils.isBlank(name)){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.PARAM_FORMAT_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); } List tempList = shopCategoryMapper.getCategoryById(pid); - if (null == tempList || tempList.size() ==0 || StringUtils.isBlank(tempList.get(0).getIsDelete()) || !CommonConstant.CATEGORY_IS_DELETE_NO.equals(tempList.get(0).getIsDelete())){ + if (null == tempList || tempList.size() ==0 || StringUtils.isBlank(tempList.get(0).getIsDelete()) || !CommonConstant.CHARACTOR_NO.equals(tempList.get(0).getIsDelete())){ //如果该父节点对应的分类在数据库中没有记录或者删除状态是空或者已删除,则为故障节点,不能进行更新 - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_PID_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PID_EXCEPTION)); } //执行更新操作 try { doUpdateShopCategory(request,pid,id,name); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CATEGORY_COMMON_FAIL_4101,CommonConstant.CATEGORY_UPDATE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL)); } String params = "pid="+pid+",id="+id+",name="+name; - logger.info(MessageFormat.format(CommonConstant.OPREARTION_METHOD_PATTERN,CommonConstant.OPREARTION_METHOD_UPDATE, - CLASS_NAME,METHOD_UPDATE_CATORY,params)); - return Result.ok(); + logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, + LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params)); + return Result.ok(CommonConstant.MSG_CATEGORY_UPDATE_OK); } /** @@ -159,9 +161,9 @@ public class CategoryServiceImpl implements CategoryService { private ShopCategory setParam(String pid, String name){ ShopCategory shopCategory = new ShopCategory(); shopCategory.setParentId(pid); - shopCategory.setIsParent(CommonConstant.CATEGORY_IS_PARENT_NO); + shopCategory.setIsParent(CommonConstant.CHARACTOR_NO); shopCategory.setName(name); - shopCategory.setIsDelete(CommonConstant.CATEGORY_IS_DELETE_NO); + shopCategory.setIsDelete(CommonConstant.CHARACTOR_NO); shopCategory.setCreateTime(new Date()); shopCategory.setUpdateTime(new Date()); return shopCategory; @@ -197,7 +199,7 @@ public class CategoryServiceImpl implements CategoryService { //调用线程,更新path //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 // 创建线程池 - ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.CATEGORY_BUILD_PATH_NAME).build(); + ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.THREAD_CATEGORY_BUILD_PATH).build(); ServletContext context = request.getServletContext(); // 计数器 CountDownLatch doneSignal = new CountDownLatch(1); diff --git a/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java index bb69428..0e6beb0 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java @@ -26,8 +26,8 @@ import java.util.Map; @Service @Transactional public class GoodServiceImpl implements GoodService{ - private static final String TARGET_GROUP_NAME = "getTargrtGroupGoods"; - private static final String GUESS_LIKE_NAME = "getGuessLikeGoods"; + private static final String METHOD_TARGET_GROUP_NAME = "getTargrtGroupGoods"; + private static final String METHOD_GUESS_LIKE_NAME = "getGuessLikeGoods"; @Resource private ShopProductBaseMapper shopProductBaseMapper; @@ -41,7 +41,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.GET_ALL_GOODS_NULL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_ALL_GOODS_NULL)); } } @@ -49,7 +49,7 @@ public class GoodServiceImpl implements GoodService{ public Object getGuessLikeGoods(String page, String rows,String order) { //如果是非法的请求 if (!ifParamsValid(page,rows,null,order)){ - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.PARAM_FORMAT_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_PARAM_INVALID)); } Integer start = getFormatInt(page,rows,true); Integer size = getFormatInt(page,rows,false); @@ -58,7 +58,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.GET_GUESS_LIKE_GOODS_NULL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_GUESS_LIKE_GOODS_NULL)); } } @@ -71,7 +71,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.GET_CLASSFIED_SELECTED_GOODS_NULL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_CLASSFIED_SELECTED_GOODS_NULL)); } } @@ -79,7 +79,7 @@ public class GoodServiceImpl implements GoodService{ public Object getTargrtGroupGoods(String page, String rows,String cid,String order) { //如果是非法的请求 if (!ifParamsValid(page,rows,cid,order)){ - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.PARAM_FORMAT_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_PARAM_INVALID)); } Integer start = (Integer.valueOf(page)-1)*Integer.valueOf(rows); List> mapList = shopProductBaseMapper.getTargrtGroupGoods(start,Integer.valueOf(rows),cid,order); @@ -90,7 +90,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(page1,mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.GOODS_COMMON_FAIL_4201,CommonConstant.GET_GROUP_GOODS_NULL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_GROUP_GOODS_NULL)); } } @@ -126,17 +126,17 @@ public class GoodServiceImpl implements GoodService{ } } //如果是查询某个分类下的方法调用 - if (TARGET_GROUP_NAME.equals(shiftMethod)){ + if (METHOD_TARGET_GROUP_NAME.equals(shiftMethod)){ if (!StringUtils.isNumeric(cid)||!StringUtils.isNumeric(order)){ return false; } - if (CommonConstant.PRUDUCT_ORDER_LIST.indexOf(order)<0){ + if (CommonConstant.OTHER_PRUDUCT_ORDER_LIST.indexOf(order)<0){ return false; } } //如果是猜你喜欢下的方法调用 - if (GUESS_LIKE_NAME.equals(shiftMethod)){ - if (!StringUtils.isNumeric(order) || CommonConstant.PRUDUCT_ORDER_LIST.indexOf(order)<0){ + if (METHOD_GUESS_LIKE_NAME.equals(shiftMethod)){ + if (!StringUtils.isNumeric(order) || CommonConstant.OTHER_PRUDUCT_ORDER_LIST.indexOf(order)<0){ return false; } } diff --git a/src/main/resources/mapper/ShopCategoryMapper.xml b/src/main/resources/mapper/ShopCategoryMapper.xml index f0afeda..ab5837f 100644 --- a/src/main/resources/mapper/ShopCategoryMapper.xml +++ b/src/main/resources/mapper/ShopCategoryMapper.xml @@ -52,10 +52,6 @@ #{isDelete,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{comment1,jdbcType=VARCHAR}, #{comment2,jdbcType=VARCHAR}, #{comment3,jdbcType=VARCHAR} ) - - - SELECT LAST_INSERT_ID() - diff --git a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java index c757e8d..4de1e39 100644 --- a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java +++ b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java @@ -32,7 +32,7 @@ public class CategoryServiceTest { // Object object = categoryService.buildTree("0","0"); // System.out.println(object); Example shopCategoryExample = new Example(ShopCategory.class); - shopCategoryExample.createCriteria().andEqualTo("isDelete", CommonConstant.CATEGORY_IS_DELETE_NO) + shopCategoryExample.createCriteria().andEqualTo("isDelete", CommonConstant.CHARACTOR_NO) .andEqualTo("parentId",null) .andEqualTo("id",null); //查询表category获取对应的数据 -- Gitee From b617d329b86500d37f4c2cbdf1f2663c668aaa01 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Wed, 20 Nov 2019 16:25:32 +0800 Subject: [PATCH 04/21] =?UTF-8?q?eoor=E7=BB=9F=E4=B8=80=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/exception/MyException.java | 12 +++ .../commons/exception/MyExceptionHandler.java | 9 +- .../service/impl/CategoryServiceImpl.java | 86 ++++++++++--------- 3 files changed, 66 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/commons/exception/MyException.java b/src/main/java/com/hxtec/polaris/commons/exception/MyException.java index 8c64dbc..6c57449 100644 --- a/src/main/java/com/hxtec/polaris/commons/exception/MyException.java +++ b/src/main/java/com/hxtec/polaris/commons/exception/MyException.java @@ -11,10 +11,15 @@ public class MyException extends RuntimeException { * 返回结果 */ private Object result; + private String logMsg; public MyException(Object result) { this.result = result; } + public MyException(Object result,String logMsg) { + this.result = result; + this.logMsg = logMsg; + } public Object getResult() { return result; @@ -23,4 +28,11 @@ public class MyException extends RuntimeException { public void setResult(Object result) { this.result = result; } + + public void setLogMsg(String logMsg){ + this.logMsg = logMsg; + } + public String getLogMsg(){ + return logMsg; + } } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java b/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java index 7da68bd..7f5042e 100644 --- a/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java +++ b/src/main/java/com/hxtec/polaris/commons/exception/MyExceptionHandler.java @@ -3,6 +3,7 @@ package com.hxtec.polaris.commons.exception; import javax.servlet.http.HttpServletRequest; import com.hxtec.polaris.commons.api.vo.Result; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -26,10 +27,16 @@ public class MyExceptionHandler { public Object handle(Exception e, HttpServletRequest request) { if (e instanceof MyException) { MyException myException = (MyException) e; + if (StringUtils.isNotBlank(myException.getLogMsg())){ + logger.error(myException.getLogMsg()); + Result result = (Result) myException.getResult(); + logger.error(result.getCode()+result.getMessage()); + logger.error(myException.getMessage()+"\n"); + } return myException.getResult(); }else { // 直接将异常对象传入日志接口,保存异常信息到日志文件中 - logger.error("error: {}", e.getMessage(), e); + logger.error("error: {}"+"\n", e.getMessage(), e); return Result.error("服务器异常"); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java index 4b5c10c..80a63d0 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java @@ -40,6 +40,8 @@ public class CategoryServiceImpl implements CategoryService { private final static String LOG_METHOD_DEL_CATORY = "deleteCategory"; private final static String LOG_METHOD_UPDATE_CATORY ="updateCategory"; + private static String LOG_MSG = null; + @Resource private ShopCategoryMapper shopCategoryMapper; @@ -57,98 +59,83 @@ public class CategoryServiceImpl implements CategoryService { @Override public Object addCategory(String pid, String name) { + String params = "pid="+pid+",name="+name; + LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, + LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params); + //请求参数不合法 if (!StringUtils.isNumeric(pid)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); } //判断数据库中是否有该父节点 ShopCategory parentObject = shopCategoryMapper.selectByPrimaryKey(pid); if (null == parentObject){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PNODE_NO)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PNODE_NO),LOG_MSG); } //实例赋值 ShopCategory shopCategory = setParam(pid,name); - //生成id - shopCategory.setId(GenerateSequenceUtil.generateSequenceNo()); //数据新增入库 - int insertResult = 0; try { - insertResult = shopCategoryMapper.insertCategory(shopCategory); - }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_EXCEPTION)); - } - if (insertResult != 1){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_FAIL)); - } - //构建分类路径 - StringBuilder path = new StringBuilder(CommonConstant.CHARACTOR_SEPARATOR + shopCategory.getId()); - path.append(parentObject.getComment1()); - shopCategory.setComment1(String.valueOf(path)); - //更新路径 - int updateResult = 0; - try{ - updateResult = shopCategoryMapper.updateCategoryDynamic(shopCategory); + doAddCategory(shopCategory,parentObject); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_EXCEPTION)); - } - if (updateResult < 0){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_EXCEPTION),LOG_MSG); } - String params = "pid="+pid+",name="+name; - logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, - LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params)); + logger.info(LOG_MSG); return Result.ok(CommonConstant.MSG_CATEGORY_INSERT_OK); } @Override public Object deleteCategory(List ids) { + String params = "ids="+ids; + LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, + LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params); + //参数为空 if (null == ids || ids.size() == 0){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_NO)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_NO),LOG_MSG); } for (String id : ids){ //参数不合法 if (!StringUtils.isNumeric(id)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); } //更新shop_category表 int deletCategoryResult = 0; try{ deletCategoryResult = shopCategoryMapper.deleteCategory(id); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_EXCEPTION),LOG_MSG); } if (deletCategoryResult < 0){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_FAIL),LOG_MSG); } } - String params = "ids="+ids; - logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, - LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params)); + logger.info(LOG_MSG); return Result.ok(CommonConstant.MSG_CATEGORY_DELETE_OK); } @Override public Object updateCategory(HttpServletRequest request,String pid, String id, String name) { + String params = "pid="+pid+",id="+id+",name="+name; + LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, + LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params); if (!StringUtils.isNumeric(pid) || !StringUtils.isNumeric(id) || StringUtils.isBlank(name)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); } List tempList = shopCategoryMapper.getCategoryById(pid); if (null == tempList || tempList.size() ==0 || StringUtils.isBlank(tempList.get(0).getIsDelete()) || !CommonConstant.CHARACTOR_NO.equals(tempList.get(0).getIsDelete())){ //如果该父节点对应的分类在数据库中没有记录或者删除状态是空或者已删除,则为故障节点,不能进行更新 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PID_EXCEPTION)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PID_EXCEPTION),LOG_MSG); } //执行更新操作 try { doUpdateShopCategory(request,pid,id,name); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL)); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL),LOG_MSG); } - String params = "pid="+pid+",id="+id+",name="+name; - logger.info(MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, - LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params)); + logger.info(LOG_MSG); return Result.ok(CommonConstant.MSG_CATEGORY_UPDATE_OK); } @@ -160,6 +147,8 @@ public class CategoryServiceImpl implements CategoryService { */ private ShopCategory setParam(String pid, String name){ ShopCategory shopCategory = new ShopCategory(); + //生成id + shopCategory.setId(GenerateSequenceUtil.generateSequenceNo()); shopCategory.setParentId(pid); shopCategory.setIsParent(CommonConstant.CHARACTOR_NO); shopCategory.setName(name); @@ -206,6 +195,23 @@ public class CategoryServiceImpl implements CategoryService { pool.newThread(new BuildPathRunable(context,doneSignal)).start(); } + /** + * @Author yonyong + * @Description //执行db层面的分类insert,返回t + * @Date 2019/11/20 14:36 + * @Param + * @return + **/ + private void doAddCategory(ShopCategory shopCategory,ShopCategory parentObject){ + shopCategoryMapper.insertCategory(shopCategory); + //构建分类路径 + StringBuilder path = new StringBuilder(CommonConstant.CHARACTOR_SEPARATOR + shopCategory.getId()); + path.append(parentObject.getComment1()); + shopCategory.setComment1(String.valueOf(path)); + //更新路径 + shopCategoryMapper.updateCategoryDynamic(shopCategory); + } + /** * 判断两个字符串是否相等 将"" 、" "、null相同对待 * @param str1 -- Gitee From e5fe850e5e535bf42bc0db80d26f56b59159636f Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Mon, 25 Nov 2019 09:53:26 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E5=88=86=E7=B1=BB=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=E3=80=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hxtec/polaris/service/impl/CategoryServiceImpl.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java index 80a63d0..743f320 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java @@ -40,8 +40,6 @@ public class CategoryServiceImpl implements CategoryService { private final static String LOG_METHOD_DEL_CATORY = "deleteCategory"; private final static String LOG_METHOD_UPDATE_CATORY ="updateCategory"; - private static String LOG_MSG = null; - @Resource private ShopCategoryMapper shopCategoryMapper; @@ -60,7 +58,7 @@ public class CategoryServiceImpl implements CategoryService { @Override public Object addCategory(String pid, String name) { String params = "pid="+pid+",name="+name; - LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, + String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params); //请求参数不合法 @@ -87,7 +85,7 @@ public class CategoryServiceImpl implements CategoryService { @Override public Object deleteCategory(List ids) { String params = "ids="+ids; - LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, + String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params); //参数为空 @@ -118,7 +116,7 @@ public class CategoryServiceImpl implements CategoryService { @Override public Object updateCategory(HttpServletRequest request,String pid, String id, String name) { String params = "pid="+pid+",id="+id+",name="+name; - LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, + String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params); if (!StringUtils.isNumeric(pid) || !StringUtils.isNumeric(id) || StringUtils.isBlank(name)){ throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); -- Gitee From a23eb53dba01e2a79c7a174f613fcb68486da1a2 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Mon, 25 Nov 2019 18:02:57 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E6=B5=8F=E8=A7=88=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/constant/CommonConstant.java | 20 ++- .../commons/thread/HistoryRunable.java | 62 ++++++++ .../polaris/controller/HistoryController.java | 45 ++++++ .../com/hxtec/polaris/entity/ShopHistory.java | 137 ++++++++++++++++++ .../polaris/mapper/ShopHistoryMapper.java | 37 +++++ .../hxtec/polaris/service/HistoryService.java | 41 ++++++ .../service/impl/AddressServiceImpl.java | 2 +- .../service/impl/HistoryServiceImpl.java | 91 ++++++++++++ .../resources/mapper/ShopHistoryMapper.xml | 102 +++++++++++++ 9 files changed, 534 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java create mode 100644 src/main/java/com/hxtec/polaris/controller/HistoryController.java create mode 100644 src/main/java/com/hxtec/polaris/entity/ShopHistory.java create mode 100644 src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java create mode 100644 src/main/java/com/hxtec/polaris/service/HistoryService.java create mode 100644 src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java create mode 100644 src/main/resources/mapper/ShopHistoryMapper.xml diff --git a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java index 41d5bfa..cdb9d69 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java @@ -30,6 +30,9 @@ public interface CommonConstant { String LOG_TYPE_DELETE = "删除"; String LOG_TYPE_UPDATE = "更新"; String LOG_TYPE_QUERY = "查询"; + //历史浏览相关 + String PATTERN_HISTORY= "历史浏览记录insert失败!传入参数:{0}"; + String PATTERN_BASE = "操作用户:{0}"; /** * 符号 @@ -43,6 +46,8 @@ public interface CommonConstant { */ //分类构建路径线程 String THREAD_CATEGORY_BUILD_PATH= "category-path-%d"; + //浏览记录入库线程 + String THREAD_HISTORY_INSERT= "history-insert-%d"; /** * 其他 @@ -55,10 +60,12 @@ public interface CommonConstant { */ //分类相关失败返回 Integer CODE_FAIL_4101 = 4101; - //商品相关失败返回 - Integer CODE_FAIL_4301 = 4201; //轮播图相关失败返回 Integer CODE_FAIL_4201 = 4201; + //商品相关失败返回 + Integer CODE_FAIL_4301 = 4301; + //浏览历史相关失败返回 + Integer CODE_FAIL_4401 = 4401; /** @@ -112,4 +119,13 @@ public interface CommonConstant { * 轮播图相关 */ String MSG_GET_CAROUSE_NULL = "查询的轮播图列表为空"; + + /** + * 浏览历史相关 + */ + String MSG_HISTORY_GET_FAIL = "查询所有浏览记录失败"; + String MSG_HISTORY_DELETE_FAIL = "删除指定浏览记录失败"; + String MSG_HISTORY_DELETE_NULL = "删除指定记录成功,影响条数为0"; + String MSG_HISTORY_TRUNK_FAIL = "清空全部浏览浏览记录失败"; + String MSG_HISTORY_TRUNK_NULL = "清空全部浏览记录成功,影响条数为0"; } diff --git a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java new file mode 100644 index 0000000..7130b33 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java @@ -0,0 +1,62 @@ +package com.hxtec.polaris.commons.thread; + +import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.entity.ShopHistory; +import com.hxtec.polaris.mapper.ShopHistoryMapper; +import com.hxtec.polaris.service.impl.AddressServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +import javax.servlet.ServletContext; +import java.text.MessageFormat; +import java.util.concurrent.CountDownLatch; + +/** + * @Describtion 历史浏览记录表 + * @Author yonyong + * @Date 2019/11/25 15:55 + * @Version 1.0.0 + **/ +public class HistoryRunable implements Runnable { + + private final static Logger logger = LoggerFactory.getLogger(BuildPathRunable.class); + private ServletContext context = null; + private final CountDownLatch doneSignal; + private ShopHistory history; + + private ShopHistoryMapper shopHistoryMapper; + private AddressServiceImpl addressServiceImpl; + + public HistoryRunable(ServletContext context,CountDownLatch doneSignal,ShopHistory history){ + this.context = context; + this.doneSignal = doneSignal; + this.history = history; + } + + @Override + public void run() { + initBean(context); + history.setUsername(addressServiceImpl.getUser()); + try{ + synchronized (doneSignal){ + doneSignal.countDown(); + shopHistoryMapper.insert(history); + } + doneSignal.wait(); + }catch (Exception e){ + logger.error(MessageFormat.format(CommonConstant.PATTERN_HISTORY,history.toString())); + } + } + + /** + * 获取bean + * @param context + */ + private void initBean(ServletContext context){ + WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); + this.shopHistoryMapper = webApplicationContext.getBean(ShopHistoryMapper.class); + this.addressServiceImpl = webApplicationContext.getBean(AddressServiceImpl.class); + } +} diff --git a/src/main/java/com/hxtec/polaris/controller/HistoryController.java b/src/main/java/com/hxtec/polaris/controller/HistoryController.java new file mode 100644 index 0000000..80d2690 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/controller/HistoryController.java @@ -0,0 +1,45 @@ +package com.hxtec.polaris.controller; + +import com.hxtec.polaris.entity.ShopHistory; +import com.hxtec.polaris.service.HistoryService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Describtion 历史记录相关 + * @Author yonyong + * @Date 2019/11/25 16:38 + * @Version 1.0.0 + **/ +@RestController +@RequestMapping(value = "history",produces = "application/json;charset=utf-8") +@CrossOrigin +@Api(value = "/history", tags = "历史记录相关") +public class HistoryController { + + @Autowired + private HistoryService historyService; + + @GetMapping("get") + public Object getAll(){ + return historyService.getAll(); + } + + @PostMapping("insert") + public Object insert(HttpServletRequest request,ShopHistory shopHistory){ + return historyService.insert(request,shopHistory); + } + + @DeleteMapping("del") + public Object del(ShopHistory shopHistory){ + return historyService.delete(shopHistory); + } + + @DeleteMapping("delAll") + public Object delAll(){ + return historyService.deleteAll(); + } +} diff --git a/src/main/java/com/hxtec/polaris/entity/ShopHistory.java b/src/main/java/com/hxtec/polaris/entity/ShopHistory.java new file mode 100644 index 0000000..793a017 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/entity/ShopHistory.java @@ -0,0 +1,137 @@ +package com.hxtec.polaris.entity; + +import java.util.Date; + +public class ShopHistory { + /** + * 浏览历史表id + */ + private Integer id; + + /** + * 用户账号 + */ + private String username; + + /** + * 商品id + */ + private String spu; + + /** + * sku + */ + private String sku; + + /** + * 图片地址 + */ + private String img; + + /** + * 浏览时间 + */ + private Date time; + + /** + * 备用字段1 + */ + private String comment1; + + /** + * 备用字段2 + */ + private String comment2; + + /** + * 备用字段3 + */ + private String comment3; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getSpu() { + return spu; + } + + public void setSpu(String spu) { + this.spu = spu; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public String getComment1() { + return comment1; + } + + public void setComment1(String comment1) { + this.comment1 = comment1; + } + + public String getComment2() { + return comment2; + } + + public void setComment2(String comment2) { + this.comment2 = comment2; + } + + public String getComment3() { + return comment3; + } + + public void setComment3(String comment3) { + this.comment3 = comment3; + } + + @Override + public String toString() { + return "ShopHistory{" + + "id=" + id + + ", username='" + username + '\'' + + ", spu='" + spu + '\'' + + ", sku='" + sku + '\'' + + ", img='" + img + '\'' + + ", time=" + time + + ", comment1='" + comment1 + '\'' + + ", comment2='" + comment2 + '\'' + + ", comment3='" + comment3 + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java new file mode 100644 index 0000000..f5aaa54 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java @@ -0,0 +1,37 @@ +package com.hxtec.polaris.mapper; + +import com.hxtec.polaris.entity.ShopHistory; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface ShopHistoryMapper { + /** + * 删除一条浏览记录 + * @param id + * @return + */ + int delete(Integer id); + + /** + * 删除所有浏览记录 + * @param username + * @return + */ + int deleteAll(String username); + + /** + * 添加浏览记录 + * @param shopHistory + * @return + */ + int insert(ShopHistory shopHistory); + + /** + * 获取所有浏览历史记录,默认查询最新记录前十条 + * @param username + * @return + */ + List> getAllHistory(@Param("username") String username); +} \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/HistoryService.java b/src/main/java/com/hxtec/polaris/service/HistoryService.java new file mode 100644 index 0000000..4f1e6f4 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/HistoryService.java @@ -0,0 +1,41 @@ +package com.hxtec.polaris.service; + +import com.hxtec.polaris.entity.ShopHistory; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Author yonyong + * @Description //历史记录相关 + * @Date 2019/11/25 16:43 + * @Param + * @return + **/ +public interface HistoryService { + /** + * 获取所有浏览历史记录,默认取最新记录前十条 + * @return + */ + Object getAll(); + + /** + * 添加浏览历史记录,走线程 + * @param request + * @param shopHistory + * @return + */ + Object insert(HttpServletRequest request,ShopHistory shopHistory); + + /** + * 删除一条浏览记录 + * @param shopHistory + * @return + */ + Object delete(ShopHistory shopHistory); + + /** + * 清空浏览记录 + * @return + */ + Object deleteAll(); +} diff --git a/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java index 4d8b370..d53b546 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java @@ -52,7 +52,7 @@ public class AddressServiceImpl implements AddressService { return addressMapper.deleteByPrimaryKey(id); } - private String getUser(){ + public String getUser(){ return SecurityContextHolder.getContext().getAuthentication().getName(); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java new file mode 100644 index 0000000..647a6e6 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java @@ -0,0 +1,91 @@ +package com.hxtec.polaris.service.impl; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.hxtec.polaris.commons.api.vo.Result; +import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.exception.MyException; +import com.hxtec.polaris.commons.thread.HistoryRunable; +import com.hxtec.polaris.entity.ShopHistory; +import com.hxtec.polaris.mapper.ShopHistoryMapper; +import com.hxtec.polaris.service.HistoryService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import java.text.MessageFormat; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadFactory; + +/** + * @Describtion 历史记录相关 + * @Author yonyong + * @Date 2019/11/25 16:45 + * @Version 1.0.0 + **/ +@Service +@Transactional +public class HistoryServiceImpl implements HistoryService{ + + @Resource + private ShopHistoryMapper shopHistoryMapper; + @Resource + private AddressServiceImpl addressService; + + @Override + public Object getAll() { + try { + List> mapList = shopHistoryMapper.getAllHistory(addressService.getUser()); + return Result.ok(mapList); + }catch (Exception e){ + String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_GET_FAIL),LOG_MSG); + } + } + + @Override + public Object insert(HttpServletRequest request, ShopHistory shopHistory) { + //调用线程,更新path + //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 + // 创建线程池 + ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.THREAD_HISTORY_INSERT).build(); + ServletContext context = request.getServletContext(); + // 计数器 + CountDownLatch doneSignal = new CountDownLatch(1); + pool.newThread(new HistoryRunable(context,doneSignal,shopHistory)).start(); + return Result.ok(); + } + + @Override + public Object delete(ShopHistory shopHistory) { + try { + int result = shopHistoryMapper.delete(shopHistory.getId()); + if (1 != result){ + String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_DELETE_NULL),LOG_MSG); + } + return Result.ok(); + }catch (Exception e){ + String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_DELETE_FAIL),LOG_MSG); + } + } + + @Override + public Object deleteAll() { + try { + int result = shopHistoryMapper.deleteAll(addressService.getUser()); + if (1 != result){ + String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_TRUNK_NULL),LOG_MSG); + } + return Result.ok(); + }catch (Exception e){ + String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_TRUNK_FAIL),LOG_MSG); + } + } +} diff --git a/src/main/resources/mapper/ShopHistoryMapper.xml b/src/main/resources/mapper/ShopHistoryMapper.xml new file mode 100644 index 0000000..c0faac2 --- /dev/null +++ b/src/main/resources/mapper/ShopHistoryMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + id, spu, sku, img + + + + + + delete from shop_history + where id = #{id,jdbcType=INTEGER} + + + + delete from shop_history + where username = #{username,jdbcType=VARCHAR} + + + + insert into shop_history + + + id, + + + username, + + + spu, + + + sku, + + + img, + + + time, + + + comment1, + + + comment2, + + + comment3, + + + + + #{id,jdbcType=INTEGER}, + + + #{username,jdbcType=VARCHAR}, + + + #{spu,jdbcType=VARCHAR}, + + + #{sku,jdbcType=VARCHAR}, + + + #{img,jdbcType=VARCHAR}, + + + #{time,jdbcType=TIMESTAMP}, + + + #{comment1,jdbcType=VARCHAR}, + + + #{comment2,jdbcType=VARCHAR}, + + + #{comment3,jdbcType=VARCHAR}, + + + + + \ No newline at end of file -- Gitee From a511d43981bc48c2dc462cb31636072197eb67cc Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 26 Nov 2019 11:42:41 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E5=B8=B8=E9=87=8F=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hxtec/polaris/commons/constant/Code.java | 23 ++++ .../commons/constant/CommonConstant.java | 113 ------------------ .../polaris/commons/constant/GlobalVar.java | 39 ++++++ .../hxtec/polaris/commons/constant/Log.java | 28 +++++ .../hxtec/polaris/commons/constant/Msg.java | 72 +++++++++++ .../commons/thread/HistoryRunable.java | 11 +- .../service/impl/CarouseServiceImpl.java | 7 +- .../service/impl/CategoryServiceImpl.java | 49 ++++---- .../polaris/service/impl/GoodServiceImpl.java | 23 ++-- .../service/impl/HistoryServiceImpl.java | 29 ++--- .../polaris/service/CategoryServiceTest.java | 4 +- 11 files changed, 222 insertions(+), 176 deletions(-) create mode 100644 src/main/java/com/hxtec/polaris/commons/constant/Code.java create mode 100644 src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java create mode 100644 src/main/java/com/hxtec/polaris/commons/constant/Log.java create mode 100644 src/main/java/com/hxtec/polaris/commons/constant/Msg.java diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Code.java b/src/main/java/com/hxtec/polaris/commons/constant/Code.java new file mode 100644 index 0000000..348653c --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/constant/Code.java @@ -0,0 +1,23 @@ +package com.hxtec.polaris.commons.constant; + +/** + * @Describtion 返回code,禁止继承 + * @Author yonyong + * @Date 2019/11/26 9:41 + * @Version 1.0.0 + **/ +public final class Code { + /** + * 禁止实例化 + */ + private Code(){} + + //分类相关失败返回 + public final static Integer FAIL_4101 = 4101; + //轮播图相关失败返回 + public final static Integer FAIL_4201 = 4201; + //商品相关失败返回 + public final static Integer FAIL_4301 = 4301; + //浏览历史相关失败返回 + public final static Integer FAIL_4401 = 4401; +} diff --git a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java index cdb9d69..8425c53 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/CommonConstant.java @@ -1,9 +1,5 @@ package com.hxtec.polaris.commons.constant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - /** * @Author yonyong * @Description //常量 @@ -19,113 +15,4 @@ public interface CommonConstant { /**访问权限认证未通过 510*/ Integer SC_JEECG_NO_AUTHZ=510; - - - /** - * 日志pattern - */ - //pattern - String LOG_PATTERN = "操作类型:{0};操作类名:{1};操作方法:{2};传入参数:{3}"; - String LOG_TYPE_INSERT = "新增"; - String LOG_TYPE_DELETE = "删除"; - String LOG_TYPE_UPDATE = "更新"; - String LOG_TYPE_QUERY = "查询"; - //历史浏览相关 - String PATTERN_HISTORY= "历史浏览记录insert失败!传入参数:{0}"; - String PATTERN_BASE = "操作用户:{0}"; - - /** - * 符号 - */ - //分隔符 - String CHARACTOR_SEPARATOR = "-"; - String CHARACTOR_NO = "N"; - - /** - * 线程池名 - */ - //分类构建路径线程 - String THREAD_CATEGORY_BUILD_PATH= "category-path-%d"; - //浏览记录入库线程 - String THREAD_HISTORY_INSERT= "history-insert-%d"; - - /** - * 其他 - */ - //商品排序依据 1 综合排序 2 销量排序 3 价格排序升序 4价格排序降序 - List OTHER_PRUDUCT_ORDER_LIST = Arrays.asList("1","2","3","4"); - - /** - * code - */ - //分类相关失败返回 - Integer CODE_FAIL_4101 = 4101; - //轮播图相关失败返回 - Integer CODE_FAIL_4201 = 4201; - //商品相关失败返回 - Integer CODE_FAIL_4301 = 4301; - //浏览历史相关失败返回 - Integer CODE_FAIL_4401 = 4401; - - - /** - * msg - */ - /** - * 分类相关 - */ - //查询列表时结果为空 - String MSG_CATEGORY_SELECT_NO = "查询的分类表结果为空"; - //没有查询到当前节点的父节点 - String MSG_CATEGORY_PNODE_NO = "没有查询到对应的父节点"; - //inser 影响条数不为1 - String MSG_CATEGORY_INSERT_FAIL = "分类表插入数据失败"; - //inser 成功 - String MSG_CATEGORY_INSERT_OK = "分类表插入数据成功"; - //insert 异常 - String MSG_CATEGORY_INSERT_EXCEPTION = "分类表插入数据时发生异常"; - //update 异常 - String MSG_CATEGORY_UPDATE_EXCEPTION = "分类表更新数据时发生异常"; - //update 影响条数不为1 - String MSG_CATEGORY_UPDATE_FAIL = "分类表更新数据失败"; - //update 更新成功 - String MSG_CATEGORY_UPDATE_OK = "分类表更新数据成功"; - //update 故障节点 - String MSG_CATEGORY_PID_EXCEPTION = "父节点故障"; - //delete 异常 - String MSG_CATEGORY_DELETE_EXCEPTION = "分类表删除数据时发生异常"; - //delete 影响的条数为空 - String MSG_CATEGORY_DELETE_FAIL = "分类表删除数据失败"; - //delete 传的参数为空 - String MSG_CATEGORY_DELETE_NO = "请至少选择一个节点删除"; - //delete 成功 - String MSG_CATEGORY_DELETE_OK = "删除成功"; - - /** - * 商品相关 - */ - //获取所有商品列表(综合排序/销量/价格) - String MSG_GET_ALL_GOODS_NULL = "查询的商品列表为空"; - //获取猜你喜欢商品列表 - String MSG_GET_GUESS_LIKE_GOODS_NULL = "查询的猜你喜欢商品列表为空"; - //获取分类精选商品列表 - String MSG_GET_CLASSFIED_SELECTED_GOODS_NULL = "查询的分类精选商品列表为空"; - //获取某个类别的商品列表 - String MSG_GET_GROUP_GOODS_NULL = "查询当前类别的商品列表为空"; - String MSG_PARAM_INVALID = "非法的请求参数"; - - - /** - * 轮播图相关 - */ - String MSG_GET_CAROUSE_NULL = "查询的轮播图列表为空"; - - /** - * 浏览历史相关 - */ - String MSG_HISTORY_GET_FAIL = "查询所有浏览记录失败"; - String MSG_HISTORY_DELETE_FAIL = "删除指定浏览记录失败"; - String MSG_HISTORY_DELETE_NULL = "删除指定记录成功,影响条数为0"; - String MSG_HISTORY_TRUNK_FAIL = "清空全部浏览浏览记录失败"; - String MSG_HISTORY_TRUNK_NULL = "清空全部浏览记录成功,影响条数为0"; } diff --git a/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java b/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java new file mode 100644 index 0000000..998a357 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java @@ -0,0 +1,39 @@ +package com.hxtec.polaris.commons.constant; + +import java.util.Arrays; +import java.util.List; + +/** + * @Describtion 通用的常量,禁止继承 + * @Author yonyong + * @Date 2019/11/26 9:58 + * @Version 1.0.0 + **/ +public final class GlobalVar { + /** + * 禁止实例化 + */ + private GlobalVar(){} + + /** + * 符号 + */ + //分隔符 + public final static String SEPARATOR = "-"; + public final static String NO = "N"; + + /** + * 线程池名 + */ + //分类构建路径线程 + public final static String THREAD_CATEGORY_BUILD_PATH= "category-path-%d"; + //浏览记录入库线程 + public final static String THREAD_HISTORY_INSERT= "history-insert-%d"; + + /** + * 其他 + */ + //商品排序依据 1 综合排序 2 销量排序 3 价格排序升序 4价格排序降序 + public final static List PRUDUCT_ORDER_LIST = Arrays.asList("1","2","3","4"); + public final static String TOURIST = "tourist"; +} diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Log.java b/src/main/java/com/hxtec/polaris/commons/constant/Log.java new file mode 100644 index 0000000..1db48f9 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/constant/Log.java @@ -0,0 +1,28 @@ +package com.hxtec.polaris.commons.constant; + +/** + * @Describtion 日志相关 + * @Author yonyong + * @Date 2019/11/26 9:30 + * @Version 1.0.0 + **/ +public final class Log { + /** + * 禁止实例化 + */ + private Log(){} + /** + * 日志pattern + */ + //pattern + public static final String PATTERN_LOG = "操作类型:{0};操作类名:{1};操作方法:{2};传入参数:{3}"; + //历史浏览相关 + public static final String PATTERN_HISTORY= "历史浏览记录insert失败!传入参数:{0}"; + public static final String PATTERN_BASE = "操作用户:{0}"; + + //type + public static final String INSERT = "新增"; + public static final String DELETE = "删除"; + public static final String UPDATE = "更新"; + public static final String QUERY = "查询"; +} diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Msg.java b/src/main/java/com/hxtec/polaris/commons/constant/Msg.java new file mode 100644 index 0000000..3af11bb --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/constant/Msg.java @@ -0,0 +1,72 @@ +package com.hxtec.polaris.commons.constant; + +/** + * @Describtion 消息常量,禁止继承 + * @Author yonyong + * @Date 2019/11/26 9:22 + * @Version 1.0.0 + **/ +public final class Msg { + /** + * 禁止实例化 + */ + private Msg (){} + + /** + * 分类相关 + */ + //查询列表时结果为空 + public static final String CATEGORY_SELECT_NO = "查询的分类表结果为空"; + //没有查询到当前节点的父节点 + public static final String CATEGORY_PNODE_NO = "没有查询到对应的父节点"; + //inser 影响条数不为1 + public static final String CATEGORY_INSERT_FAIL = "分类表插入数据失败"; + //inser 成功 + public static final String CATEGORY_INSERT_OK = "分类表插入数据成功"; + //insert 异常 + public static final String CATEGORY_INSERT_EXCEPTION = "分类表插入数据时发生异常"; + //update 异常 + public static final String CATEGORY_UPDATE_EXCEPTION = "分类表更新数据时发生异常"; + //update 影响条数不为1 + public static final String CATEGORY_UPDATE_FAIL = "分类表更新数据失败"; + //update 更新成功 + public static final String CATEGORY_UPDATE_OK = "分类表更新数据成功"; + //update 故障节点 + public static final String CATEGORY_PID_EXCEPTION = "父节点故障"; + //delete 异常 + public static final String CATEGORY_DELETE_EXCEPTION = "分类表删除数据时发生异常"; + //delete 影响的条数为空 + public static final String CATEGORY_DELETE_FAIL = "分类表删除数据失败"; + //delete 传的参数为空 + public static final String CATEGORY_DELETE_NO = "请至少选择一个节点删除"; + //delete 成功 + public static final String CATEGORY_DELETE_OK = "删除成功"; + + /** + * 商品相关 + */ + //获取所有商品列表(综合排序/销量/价格) + public static final String GET_ALL_GOODS_NULL = "查询的商品列表为空"; + //获取猜你喜欢商品列表 + public static final String GET_GUESS_LIKE_GOODS_NULL = "查询的猜你喜欢商品列表为空"; + //获取分类精选商品列表 + public static final String GET_CLASSFIED_SELECTED_GOODS_NULL = "查询的分类精选商品列表为空"; + //获取某个类别的商品列表 + public static final String GET_GROUP_GOODS_NULL = "查询当前类别的商品列表为空"; + public static final String PARAM_INVALID = "非法的请求参数"; + + + /** + * 轮播图相关 + */ + public static final String GET_CAROUSE_NULL = "查询的轮播图列表为空"; + + /** + * 浏览历史相关 + */ + public static final String HISTORY_GET_FAIL = "查询所有浏览记录失败"; + public static final String HISTORY_DELETE_FAIL = "删除指定浏览记录失败"; + public static final String HISTORY_DELETE_NULL = "删除指定记录成功,影响条数为0"; + public static final String HISTORY_TRUNK_FAIL = "清空全部浏览浏览记录失败"; + public static final String HISTORY_TRUNK_NULL = "清空全部浏览记录成功,影响条数为0"; +} diff --git a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java index 7130b33..4e76a0c 100644 --- a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java +++ b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java @@ -1,6 +1,6 @@ package com.hxtec.polaris.commons.thread; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.Log; import com.hxtec.polaris.entity.ShopHistory; import com.hxtec.polaris.mapper.ShopHistoryMapper; import com.hxtec.polaris.service.impl.AddressServiceImpl; @@ -11,6 +11,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils; import javax.servlet.ServletContext; import java.text.MessageFormat; +import java.util.Date; import java.util.concurrent.CountDownLatch; /** @@ -27,7 +28,6 @@ public class HistoryRunable implements Runnable { private ShopHistory history; private ShopHistoryMapper shopHistoryMapper; - private AddressServiceImpl addressServiceImpl; public HistoryRunable(ServletContext context,CountDownLatch doneSignal,ShopHistory history){ this.context = context; @@ -38,15 +38,15 @@ public class HistoryRunable implements Runnable { @Override public void run() { initBean(context); - history.setUsername(addressServiceImpl.getUser()); + history.setTime(new Date()); try{ synchronized (doneSignal){ doneSignal.countDown(); shopHistoryMapper.insert(history); } - doneSignal.wait(); + doneSignal.await(); }catch (Exception e){ - logger.error(MessageFormat.format(CommonConstant.PATTERN_HISTORY,history.toString())); + logger.error(MessageFormat.format(Log.PATTERN_HISTORY,history.toString())); } } @@ -57,6 +57,5 @@ public class HistoryRunable implements Runnable { private void initBean(ServletContext context){ WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); this.shopHistoryMapper = webApplicationContext.getBean(ShopHistoryMapper.class); - this.addressServiceImpl = webApplicationContext.getBean(AddressServiceImpl.class); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java index 223950f..bd9e749 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CarouseServiceImpl.java @@ -1,7 +1,8 @@ package com.hxtec.polaris.service.impl; import com.hxtec.polaris.commons.api.vo.Result; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.Code; +import com.hxtec.polaris.commons.constant.Msg; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopCarouse; import com.hxtec.polaris.mapper.ShopCarouseMapper; @@ -13,7 +14,7 @@ import javax.annotation.Resource; import java.util.List; /** - * @Describtion Todo + * @Describtion 轮播图相关service * @Author yonyong * @Date 2019/11/14 11:01 * @Version 1.0.0 @@ -31,7 +32,7 @@ public class CarouseServiceImpl implements CarouseService{ if (null != list && list.size()>0){ return Result.ok(list); }else { - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4201,CommonConstant.MSG_GET_CAROUSE_NULL)); + throw new MyException(Result.error(Code.FAIL_4201, Msg.GET_CAROUSE_NULL)); } } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java index 743f320..2e99cd9 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CategoryServiceImpl.java @@ -2,7 +2,7 @@ package com.hxtec.polaris.service.impl; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.hxtec.polaris.commons.api.vo.Result; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.*; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.commons.thread.BuildPathRunable; import com.hxtec.polaris.commons.utils.GenerateSequenceUtil; @@ -51,24 +51,23 @@ public class CategoryServiceImpl implements CategoryService { return Result.ok(list); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_SELECT_NO)); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_SELECT_NO)); } } @Override public Object addCategory(String pid, String name) { String params = "pid="+pid+",name="+name; - String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_INSERT, - LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params); + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.INSERT,LOG_CLASS_NAME,LOG_METHOD_ADD_CATORY,params); //请求参数不合法 if (!StringUtils.isNumeric(pid)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.PARAM_INVALID),LOG_MSG); } //判断数据库中是否有该父节点 ShopCategory parentObject = shopCategoryMapper.selectByPrimaryKey(pid); if (null == parentObject){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PNODE_NO),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_PNODE_NO),LOG_MSG); } //实例赋值 ShopCategory shopCategory = setParam(pid,name); @@ -76,65 +75,63 @@ public class CategoryServiceImpl implements CategoryService { try { doAddCategory(shopCategory,parentObject); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_INSERT_EXCEPTION),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_INSERT_EXCEPTION),LOG_MSG); } logger.info(LOG_MSG); - return Result.ok(CommonConstant.MSG_CATEGORY_INSERT_OK); + return Result.ok(Msg.CATEGORY_INSERT_OK); } @Override public Object deleteCategory(List ids) { String params = "ids="+ids; - String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_DELETE, - LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params); + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.DELETE,LOG_CLASS_NAME, LOG_METHOD_DEL_CATORY,params); //参数为空 if (null == ids || ids.size() == 0){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_NO),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_DELETE_NO),LOG_MSG); } for (String id : ids){ //参数不合法 if (!StringUtils.isNumeric(id)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.PARAM_INVALID),LOG_MSG); } //更新shop_category表 int deletCategoryResult = 0; try{ deletCategoryResult = shopCategoryMapper.deleteCategory(id); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_EXCEPTION),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_DELETE_EXCEPTION),LOG_MSG); } if (deletCategoryResult < 0){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_DELETE_FAIL),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101, Msg.CATEGORY_DELETE_FAIL),LOG_MSG); } } logger.info(LOG_MSG); - return Result.ok(CommonConstant.MSG_CATEGORY_DELETE_OK); + return Result.ok(Msg.CATEGORY_DELETE_OK); } @Override public Object updateCategory(HttpServletRequest request,String pid, String id, String name) { String params = "pid="+pid+",id="+id+",name="+name; - String LOG_MSG = MessageFormat.format(CommonConstant.LOG_PATTERN,CommonConstant.LOG_TYPE_UPDATE, - LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params); + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.UPDATE,LOG_CLASS_NAME,LOG_METHOD_UPDATE_CATORY,params); if (!StringUtils.isNumeric(pid) || !StringUtils.isNumeric(id) || StringUtils.isBlank(name)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_PARAM_INVALID),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.PARAM_INVALID),LOG_MSG); } List tempList = shopCategoryMapper.getCategoryById(pid); - if (null == tempList || tempList.size() ==0 || StringUtils.isBlank(tempList.get(0).getIsDelete()) || !CommonConstant.CHARACTOR_NO.equals(tempList.get(0).getIsDelete())){ + if (null == tempList || tempList.size() ==0 || StringUtils.isBlank(tempList.get(0).getIsDelete()) || !GlobalVar.NO.equals(tempList.get(0).getIsDelete())){ //如果该父节点对应的分类在数据库中没有记录或者删除状态是空或者已删除,则为故障节点,不能进行更新 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_PID_EXCEPTION),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_PID_EXCEPTION),LOG_MSG); } //执行更新操作 try { doUpdateShopCategory(request,pid,id,name); }catch (Exception e){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4101,CommonConstant.MSG_CATEGORY_UPDATE_FAIL),LOG_MSG); + throw new MyException(Result.error(Code.FAIL_4101,Msg.CATEGORY_UPDATE_FAIL),LOG_MSG); } logger.info(LOG_MSG); - return Result.ok(CommonConstant.MSG_CATEGORY_UPDATE_OK); + return Result.ok(Msg.CATEGORY_UPDATE_OK); } /** @@ -148,9 +145,9 @@ public class CategoryServiceImpl implements CategoryService { //生成id shopCategory.setId(GenerateSequenceUtil.generateSequenceNo()); shopCategory.setParentId(pid); - shopCategory.setIsParent(CommonConstant.CHARACTOR_NO); + shopCategory.setIsParent(GlobalVar.NO); shopCategory.setName(name); - shopCategory.setIsDelete(CommonConstant.CHARACTOR_NO); + shopCategory.setIsDelete(GlobalVar.NO); shopCategory.setCreateTime(new Date()); shopCategory.setUpdateTime(new Date()); return shopCategory; @@ -186,7 +183,7 @@ public class CategoryServiceImpl implements CategoryService { //调用线程,更新path //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 // 创建线程池 - ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.THREAD_CATEGORY_BUILD_PATH).build(); + ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(GlobalVar.THREAD_CATEGORY_BUILD_PATH).build(); ServletContext context = request.getServletContext(); // 计数器 CountDownLatch doneSignal = new CountDownLatch(1); @@ -203,7 +200,7 @@ public class CategoryServiceImpl implements CategoryService { private void doAddCategory(ShopCategory shopCategory,ShopCategory parentObject){ shopCategoryMapper.insertCategory(shopCategory); //构建分类路径 - StringBuilder path = new StringBuilder(CommonConstant.CHARACTOR_SEPARATOR + shopCategory.getId()); + StringBuilder path = new StringBuilder(GlobalVar.SEPARATOR + shopCategory.getId()); path.append(parentObject.getComment1()); shopCategory.setComment1(String.valueOf(path)); //更新路径 diff --git a/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java index 0e6beb0..f15c5ec 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/GoodServiceImpl.java @@ -1,19 +1,18 @@ package com.hxtec.polaris.service.impl; import com.hxtec.polaris.commons.api.vo.Result; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.Code; +import com.hxtec.polaris.commons.constant.GlobalVar; +import com.hxtec.polaris.commons.constant.Msg; import com.hxtec.polaris.commons.dto.Page; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.mapper.ShopProductBaseMapper; import com.hxtec.polaris.service.GoodService; import org.apache.commons.lang3.StringUtils; -import org.springframework.core.LocalVariableTableParameterNameDiscoverer; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.lang.reflect.Method; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,7 +40,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_ALL_GOODS_NULL)); + throw new MyException(Result.error(Code.FAIL_4301, Msg.GET_ALL_GOODS_NULL)); } } @@ -49,7 +48,7 @@ public class GoodServiceImpl implements GoodService{ public Object getGuessLikeGoods(String page, String rows,String order) { //如果是非法的请求 if (!ifParamsValid(page,rows,null,order)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_PARAM_INVALID)); + throw new MyException(Result.error(Code.FAIL_4301,Msg.PARAM_INVALID)); } Integer start = getFormatInt(page,rows,true); Integer size = getFormatInt(page,rows,false); @@ -58,7 +57,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_GUESS_LIKE_GOODS_NULL)); + throw new MyException(Result.error(Code.FAIL_4301,Msg.GET_GUESS_LIKE_GOODS_NULL)); } } @@ -71,7 +70,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_CLASSFIED_SELECTED_GOODS_NULL)); + throw new MyException(Result.error(Code.FAIL_4301,Msg.GET_CLASSFIED_SELECTED_GOODS_NULL)); } } @@ -79,7 +78,7 @@ public class GoodServiceImpl implements GoodService{ public Object getTargrtGroupGoods(String page, String rows,String cid,String order) { //如果是非法的请求 if (!ifParamsValid(page,rows,cid,order)){ - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_PARAM_INVALID)); + throw new MyException(Result.error(Code.FAIL_4301,Msg.PARAM_INVALID)); } Integer start = (Integer.valueOf(page)-1)*Integer.valueOf(rows); List> mapList = shopProductBaseMapper.getTargrtGroupGoods(start,Integer.valueOf(rows),cid,order); @@ -90,7 +89,7 @@ public class GoodServiceImpl implements GoodService{ return Result.ok(page1,mapList); }else { //查询失败或查询到的数据为空 - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4301,CommonConstant.MSG_GET_GROUP_GOODS_NULL)); + throw new MyException(Result.error(Code.FAIL_4301,Msg.GET_GROUP_GOODS_NULL)); } } @@ -130,13 +129,13 @@ public class GoodServiceImpl implements GoodService{ if (!StringUtils.isNumeric(cid)||!StringUtils.isNumeric(order)){ return false; } - if (CommonConstant.OTHER_PRUDUCT_ORDER_LIST.indexOf(order)<0){ + if (GlobalVar.PRUDUCT_ORDER_LIST.indexOf(order)<0){ return false; } } //如果是猜你喜欢下的方法调用 if (METHOD_GUESS_LIKE_NAME.equals(shiftMethod)){ - if (!StringUtils.isNumeric(order) || CommonConstant.OTHER_PRUDUCT_ORDER_LIST.indexOf(order)<0){ + if (!StringUtils.isNumeric(order) || GlobalVar.PRUDUCT_ORDER_LIST.indexOf(order)<0){ return false; } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java index 647a6e6..a946c47 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java @@ -2,7 +2,7 @@ package com.hxtec.polaris.service.impl; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.hxtec.polaris.commons.api.vo.Result; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.*; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.commons.thread.HistoryRunable; import com.hxtec.polaris.entity.ShopHistory; @@ -21,7 +21,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadFactory; /** - * @Describtion 历史记录相关 + * @Describtion 历史记录相关service * @Author yonyong * @Date 2019/11/25 16:45 * @Version 1.0.0 @@ -41,8 +41,8 @@ public class HistoryServiceImpl implements HistoryService{ List> mapList = shopHistoryMapper.getAllHistory(addressService.getUser()); return Result.ok(mapList); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_GET_FAIL),LOG_MSG); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_GET_FAIL),LOG_MSG); } } @@ -51,7 +51,8 @@ public class HistoryServiceImpl implements HistoryService{ //调用线程,更新path //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 // 创建线程池 - ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(CommonConstant.THREAD_HISTORY_INSERT).build(); + shopHistory.setUsername(addressService.getUser()); + ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(GlobalVar.THREAD_HISTORY_INSERT).build(); ServletContext context = request.getServletContext(); // 计数器 CountDownLatch doneSignal = new CountDownLatch(1); @@ -64,13 +65,13 @@ public class HistoryServiceImpl implements HistoryService{ try { int result = shopHistoryMapper.delete(shopHistory.getId()); if (1 != result){ - String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_DELETE_NULL),LOG_MSG); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_DELETE_FAIL),LOG_MSG); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_FAIL),LOG_MSG); } } @@ -78,14 +79,14 @@ public class HistoryServiceImpl implements HistoryService{ public Object deleteAll() { try { int result = shopHistoryMapper.deleteAll(addressService.getUser()); - if (1 != result){ - String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_TRUNK_NULL),LOG_MSG); + if (1 > result){ + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(Code.FAIL_4401, Msg.HISTORY_TRUNK_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(CommonConstant.PATTERN_BASE,addressService.getUser()); - throw new MyException(Result.error(CommonConstant.CODE_FAIL_4401,CommonConstant.MSG_HISTORY_TRUNK_FAIL),LOG_MSG); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_TRUNK_FAIL),LOG_MSG); } } } diff --git a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java index 4de1e39..a4ed7ae 100644 --- a/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java +++ b/src/test/java/com/hxtec/polaris/com/hxtec/polaris/service/CategoryServiceTest.java @@ -1,6 +1,6 @@ package com.hxtec.polaris.com.hxtec.polaris.service; -import com.hxtec.polaris.commons.constant.CommonConstant; +import com.hxtec.polaris.commons.constant.GlobalVar; import com.hxtec.polaris.entity.ShopCategory; import com.hxtec.polaris.mapper.ShopCategoryMapper; import com.hxtec.polaris.service.CategoryService; @@ -32,7 +32,7 @@ public class CategoryServiceTest { // Object object = categoryService.buildTree("0","0"); // System.out.println(object); Example shopCategoryExample = new Example(ShopCategory.class); - shopCategoryExample.createCriteria().andEqualTo("isDelete", CommonConstant.CHARACTOR_NO) + shopCategoryExample.createCriteria().andEqualTo("isDelete", GlobalVar.NO) .andEqualTo("parentId",null) .andEqualTo("id",null); //查询表category获取对应的数据 -- Gitee From a6d47e2ee4b2d2f4334b16da6ff7d73edfe99e86 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Wed, 27 Nov 2019 18:00:59 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/thread/HistoryRunable.java | 1 - .../polaris/controller/OrderController.java | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hxtec/polaris/controller/OrderController.java diff --git a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java index 4e76a0c..06dfbdf 100644 --- a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java +++ b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java @@ -3,7 +3,6 @@ package com.hxtec.polaris.commons.thread; import com.hxtec.polaris.commons.constant.Log; import com.hxtec.polaris.entity.ShopHistory; import com.hxtec.polaris.mapper.ShopHistoryMapper; -import com.hxtec.polaris.service.impl.AddressServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.context.WebApplicationContext; diff --git a/src/main/java/com/hxtec/polaris/controller/OrderController.java b/src/main/java/com/hxtec/polaris/controller/OrderController.java new file mode 100644 index 0000000..492990a --- /dev/null +++ b/src/main/java/com/hxtec/polaris/controller/OrderController.java @@ -0,0 +1,62 @@ +package com.hxtec.polaris.controller; + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +/** + * @Describtion 订单相关 + * @Author yonyong + * @Date 2019/11/27 9:24 + * @Version 1.0.0 + **/ +@RestController +@RequestMapping(value = "order",produces = "application/json;charset=utf-8") +@CrossOrigin +@Api(value = "/order", tags = "订单相关") +public class OrderController { + + @GetMapping("getAll") + public Object getAll(){ + return null; + } + + @GetMapping("getToPay") + public Object getToPay(){ + return null; + } + + @GetMapping("getToTransport") + public Object getToTransport(){ + return null; + } + + @GetMapping("getToRate") + public Object getToRate(){ + return null; + } + + @GetMapping("getAfterSale") + public Object getAfterSale(){ + return null; + } + + @PostMapping("cancel") + public Object cancelOrder(){ + return null; + } + + @DeleteMapping("delete") + public Object deleteOrder(){ + return null; + } + + @PostMapping("pay") + public Object payOrder(){ + return null; + } + + @PostMapping("receive") + public Object confirmReceive(){ + return null; + } +} -- Gitee From 599819ebe24e1d37270d409673ae6797052502db Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Mon, 2 Dec 2019 19:12:27 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E3=80=82=E3=80=82=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82=E3=80=82?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../polaris/controller/CarouseController.java | 11 ++++----- .../controller/CategoryController.java | 18 +++++++-------- .../polaris/controller/GoodsController.java | 23 ++++++++----------- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/controller/CarouseController.java b/src/main/java/com/hxtec/polaris/controller/CarouseController.java index 1e36b7c..e32ecf2 100644 --- a/src/main/java/com/hxtec/polaris/controller/CarouseController.java +++ b/src/main/java/com/hxtec/polaris/controller/CarouseController.java @@ -4,10 +4,7 @@ import com.hxtec.polaris.service.CarouseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @Describtion 轮播图相关 @@ -16,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController; * @Version 1.0.0 **/ @RestController -@RequestMapping("carouse") +@RequestMapping(value = "carouse",produces = "application/json;charset=utf-8") @CrossOrigin @Api(value = "/carouse", tags = "轮播图") public class CarouseController { @@ -28,8 +25,8 @@ public class CarouseController { * 首页页面 获取轮播图数据 * @return */ - @ApiOperation(value = "获取轮播图列表") - @RequestMapping(value = "getAll", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @ApiOperation("获取轮播图列表") + @GetMapping("getAll") public Object getAll(){ return carouseService.getAll(); } diff --git a/src/main/java/com/hxtec/polaris/controller/CategoryController.java b/src/main/java/com/hxtec/polaris/controller/CategoryController.java index 26b83d7..dbfd53e 100644 --- a/src/main/java/com/hxtec/polaris/controller/CategoryController.java +++ b/src/main/java/com/hxtec/polaris/controller/CategoryController.java @@ -18,7 +18,7 @@ import java.util.List; * @Version 1.0.0 **/ @RestController -@RequestMapping("category") +@RequestMapping(value = "category",produces = "application/json;charset=utf-8") @CrossOrigin @Api(value = "/category", tags = "分类相关") public class CategoryController { @@ -30,8 +30,8 @@ public class CategoryController { * 分类页面 获取所有分类数据 * @return */ - @ApiOperation(value = "获取商品分类列表") - @RequestMapping(value = "getAll", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @ApiOperation("获取商品分类列表") + @GetMapping("getAll") public Object getAllCategory(){ return categoryService.getAllCategory(); } @@ -40,12 +40,12 @@ public class CategoryController { * 分类相关 添加分类节点 * @return */ - @ApiOperation(value = "添加商品分类") + @ApiOperation("添加商品分类") @ApiImplicitParams({ @ApiImplicitParam(name = "pid", value = "父节点id", required = false, dataType = "String"), @ApiImplicitParam(name = "name", value = "添加的节点名", required = false, dataType = "String") }) - @RequestMapping(value = "add", method = RequestMethod.POST,produces = "application/json;charset=utf-8") + @PostMapping("add") public Object addCategory(String pid,String name){ return categoryService.addCategory(pid,name); } @@ -54,11 +54,11 @@ public class CategoryController { * 分类相关 删除分类节点 * @return */ - @ApiOperation(value = "删除商品分类") + @ApiOperation("删除商品分类") @ApiImplicitParams({ @ApiImplicitParam(name = "ids[]", value = "删除的节点集合", required = false,allowMultiple=true, dataType = "String") }) - @RequestMapping(value = "delete", method = RequestMethod.DELETE,produces = "application/json;charset=utf-8") + @DeleteMapping("delete") public Object deleteCategory(@RequestParam("ids[]") List ids){ return categoryService.deleteCategory(ids); } @@ -67,13 +67,13 @@ public class CategoryController { * 分类相关 更新分类节点 * @return */ - @ApiOperation(value = "更新商品分类") + @ApiOperation("更新商品分类") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "编辑的节点id", required = false, dataType = "String"), @ApiImplicitParam(name = "pid", value = "当前节点编辑后的父节点id", required = false, dataType = "String"), @ApiImplicitParam(name = "name", value = "当前节点编辑后的节点名", required = false, dataType = "String"), }) - @RequestMapping(value = "update", method = RequestMethod.PUT,produces = "application/json;charset=utf-8") + @PutMapping("update") public Object updateCategory(HttpServletRequest request,String id, String pid, String name){ return categoryService.updateCategory(request,pid,id,name); } diff --git a/src/main/java/com/hxtec/polaris/controller/GoodsController.java b/src/main/java/com/hxtec/polaris/controller/GoodsController.java index 1e13235..79c22af 100644 --- a/src/main/java/com/hxtec/polaris/controller/GoodsController.java +++ b/src/main/java/com/hxtec/polaris/controller/GoodsController.java @@ -6,10 +6,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @Describtion 商品相关 @@ -18,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; * @Version 1.0.0 **/ @RestController -@RequestMapping("goods") +@RequestMapping(value = "goods",produces = "application/json;charset=utf-8") @CrossOrigin @Api(value = "/goods", tags = "商品相关") public class GoodsController { @@ -30,13 +27,13 @@ public class GoodsController { * 获取商品列表 * @return */ - @ApiOperation(value = "获取商品列表") + @ApiOperation("获取商品列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "起始页", required = false, dataType = "String"), @ApiImplicitParam(name = "rows", value = "查询条数", required = false, dataType = "String"), @ApiImplicitParam(name = "order", value = "排序条件", required = false, dataType = "String"), }) - @RequestMapping(value = "getAll", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @GetMapping("getAll") public Object getAllGoods(String page,String rows,String order){ return goodService.getAllGoods(page,rows,order); } @@ -45,13 +42,13 @@ public class GoodsController { * 获取猜你喜欢数据 * @return */ - @ApiOperation(value = "获取猜你喜欢商品列表") + @ApiOperation("获取猜你喜欢商品列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "起始页", required = false, dataType = "String"), @ApiImplicitParam(name = "rows", value = "查询条数", required = false, dataType = "String"), @ApiImplicitParam(name = "order", value = "排序条件", required = false, dataType = "String"), }) - @RequestMapping(value = "getLike", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @GetMapping("getLike") public Object getLikeGoods(String page,String rows,String order){ return goodService.getGuessLikeGoods(page,rows,order); } @@ -60,12 +57,12 @@ public class GoodsController { * 获取分类精选数据 * @return */ - @ApiOperation(value = "获取分类精选商品列表") + @ApiOperation("获取分类精选商品列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "起始页", required = false, dataType = "String"), @ApiImplicitParam(name = "rows", value = "查询条数", required = false, dataType = "String") }) - @RequestMapping(value = "getGroupSelect", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @GetMapping("getGroupSelect") public Object getGroupSelect(String page,String rows){ return goodService.getClassifiedSelectGoods(page,rows); } @@ -74,14 +71,14 @@ public class GoodsController { * 获取某个分类下的商品列表 * @return */ - @ApiOperation(value = "获取某个分类下的商品列表") + @ApiOperation("获取某个分类下的商品列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "起始页", required = false, dataType = "String"), @ApiImplicitParam(name = "rows", value = "查询条数", required = false, dataType = "String"), @ApiImplicitParam(name = "cid", value = "分类id", required = false, dataType = "String"), @ApiImplicitParam(name = "order", value = "排序条件", required = false, dataType = "String"), }) - @RequestMapping(value = "getGroup", method = RequestMethod.GET,produces = "application/json;charset=utf-8") + @GetMapping("getGroup") public Object getGroup(String page,String rows,String cid,String order){ return goodService.getTargrtGroupGoods(page,rows,cid,order); } -- Gitee From d2b40ee5f92d6a8919fe7e02d2b051a7d1369bf1 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 3 Dec 2019 11:49:46 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../polaris/commons/constant/GlobalVar.java | 2 + .../commons/thread/HistoryRunable.java | 38 ++++++++++++++++++- .../polaris/controller/HistoryController.java | 4 ++ .../polaris/mapper/ShopHistoryMapper.java | 28 ++++++++++++++ .../resources/mapper/ShopHistoryMapper.xml | 29 ++++++++++++++ 5 files changed, 99 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java b/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java index 998a357..b778e80 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/GlobalVar.java @@ -36,4 +36,6 @@ public final class GlobalVar { //商品排序依据 1 综合排序 2 销量排序 3 价格排序升序 4价格排序降序 public final static List PRUDUCT_ORDER_LIST = Arrays.asList("1","2","3","4"); public final static String TOURIST = "tourist"; + //历史记录保存条数 + public final static int HISTORY_ROWS = 30; } diff --git a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java index 06dfbdf..9ab6866 100644 --- a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java +++ b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java @@ -1,16 +1,21 @@ package com.hxtec.polaris.commons.thread; +import com.hxtec.polaris.commons.api.vo.Result; +import com.hxtec.polaris.commons.constant.GlobalVar; import com.hxtec.polaris.commons.constant.Log; +import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopHistory; import com.hxtec.polaris.mapper.ShopHistoryMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import javax.servlet.ServletContext; import java.text.MessageFormat; import java.util.Date; +import java.util.List; import java.util.concurrent.CountDownLatch; /** @@ -19,6 +24,7 @@ import java.util.concurrent.CountDownLatch; * @Date 2019/11/25 15:55 * @Version 1.0.0 **/ +@Transactional public class HistoryRunable implements Runnable { private final static Logger logger = LoggerFactory.getLogger(BuildPathRunable.class); @@ -41,11 +47,14 @@ public class HistoryRunable implements Runnable { try{ synchronized (doneSignal){ doneSignal.countDown(); - shopHistoryMapper.insert(history); + //执行新增,判断库中是否已存在当前用户对应商品的记录 + doInsert(); + //如果历史记录超过30,删除该用户的30条之前的历史记录 + doDelete(); } doneSignal.await(); }catch (Exception e){ - logger.error(MessageFormat.format(Log.PATTERN_HISTORY,history.toString())); + throw new MyException(Result.error(MessageFormat.format(Log.PATTERN_HISTORY,history.toString()))); } } @@ -57,4 +66,29 @@ public class HistoryRunable implements Runnable { WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); this.shopHistoryMapper = webApplicationContext.getBean(ShopHistoryMapper.class); } + + /** + * 执行insert + */ + private void doInsert(){ + int count = shopHistoryMapper.getCountBySkuAndUserName(history.getSku(),history.getUsername()); + if (count > 0){ + //如果数据库中对应用户已经有该条记录,将该浏览记录的时间和图片更新 + shopHistoryMapper.updateRows(history); + }else { + //如果数据库中对应用户没有该浏览记录,执行新增 + shopHistoryMapper.insert(history); + } + } + + /** + * 如果历史记录超过30,删除该用户的30条之前的历史记录 + */ + private void doDelete(){ + int count = shopHistoryMapper.getCountByUsername(history.getUsername()); + if (count > GlobalVar.HISTORY_ROWS){ + //如果历史记录超过30,删除该用户的30条之前的历史记录 + shopHistoryMapper.deleteOverRowsByUsername(GlobalVar.HISTORY_ROWS,history.getUsername()); + } + } } diff --git a/src/main/java/com/hxtec/polaris/controller/HistoryController.java b/src/main/java/com/hxtec/polaris/controller/HistoryController.java index 80d2690..e927fb6 100644 --- a/src/main/java/com/hxtec/polaris/controller/HistoryController.java +++ b/src/main/java/com/hxtec/polaris/controller/HistoryController.java @@ -23,6 +23,10 @@ public class HistoryController { @Autowired private HistoryService historyService; + /** + * 上限30条,只取最新10条 + * @return + */ @GetMapping("get") public Object getAll(){ return historyService.getAll(); diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java index f5aaa54..7d53b7e 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java @@ -34,4 +34,32 @@ public interface ShopHistoryMapper { * @return */ List> getAllHistory(@Param("username") String username); + + /** + * 根据用户名获取数据库中的历史记录条数 + */ + int getCountByUsername(@Param("username") String username); + + /** + * 如果库中当前用户的历史记录超过指定的条数,删除该用户的30条之前的历史记录 + * @param max + * @param username + * @return + */ + int deleteOverRowsByUsername(@Param("max")int max,@Param("username") String username); + + /** + * 判断数据库中当前用户是否已经有过该sku的浏览记录 + * @param sku + * @param username + * @return + */ + int getCountBySkuAndUserName(@Param("sku")String sku,@Param("username") String username); + + /** + * 如果已经有该sku的记录,则不再执行insert,执行uppdate,更新时间和图片 + * @param shopHistory + * @return + */ + int updateRows(ShopHistory shopHistory); } \ No newline at end of file diff --git a/src/main/resources/mapper/ShopHistoryMapper.xml b/src/main/resources/mapper/ShopHistoryMapper.xml index c0faac2..800d1d4 100644 --- a/src/main/resources/mapper/ShopHistoryMapper.xml +++ b/src/main/resources/mapper/ShopHistoryMapper.xml @@ -23,10 +23,25 @@ from shop_history WHERE username = #{username} + group by sku ORDER BY time DESC limit 0,10 + + + + delete from shop_history where id = #{id,jdbcType=INTEGER} @@ -99,4 +114,18 @@ + + DELETE + FROM + shop_history + WHERE + id IN ( SELECT id FROM ( SELECT id FROM shop_history WHERE username = #{username} ORDER BY time DESC LIMIT #{max}, 100 ) a ) + + + + update shop_history + set time = #{time,jdbcType=TIMESTAMP},img = #{img,jdbcType=VARCHAR} + where username = #{username} and sku = #{sku} + + \ No newline at end of file -- Gitee From 21b177668cec84d804d3507a32ed5a379a139ad1 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Tue, 3 Dec 2019 17:54:20 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=9B=E9=BB=98=E8=AE=A4=E6=94=B6=E8=B4=A7=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 + .../hxtec/polaris/commons/constant/Code.java | 2 + .../hxtec/polaris/commons/constant/Msg.java | 8 + .../commons/thread/HistoryRunable.java | 4 +- .../controller/LocationController.java | 50 ++++++ .../polaris/controller/OrderController.java | 15 +- .../com/hxtec/polaris/entity/ShopAddress.java | 18 ++ .../polaris/mapper/ShopAddressMapper.java | 80 +++++++++ .../polaris/service/LocationService.java | 38 +++++ .../hxtec/polaris/service/OrderService.java | 40 +++++ .../service/impl/LocationServiceImpl.java | 160 ++++++++++++++++++ .../service/impl/OrderServiceImpl.java | 40 +++++ .../resources/mapper/ShopAddressMapper.xml | 70 ++++++++ .../resources/mapper/ShopCategoryMapper.xml | 4 +- 14 files changed, 526 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hxtec/polaris/controller/LocationController.java create mode 100644 src/main/java/com/hxtec/polaris/service/LocationService.java create mode 100644 src/main/java/com/hxtec/polaris/service/OrderService.java create mode 100644 src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java create mode 100644 src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java diff --git a/README.md b/README.md index 93ad7ee..a1894d5 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,9 @@ shop_category comment1字段用作当前分类的路径 shop_carouse comment字段用作当前轮播图绑定的商品spu 123231231412 ``` +##### 2019/12/3 16:42 by yonyong +``` +shop_category 主键改为int,自增 +shop_address 表comment1字段用作收货地址联系人,comment2字段用作收货地址联系电话 +shop_address weight字段用作判断收货地址是否为默认收货地址,1为是,其他则不是 +``` diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Code.java b/src/main/java/com/hxtec/polaris/commons/constant/Code.java index 348653c..07d10d5 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/Code.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/Code.java @@ -20,4 +20,6 @@ public final class Code { public final static Integer FAIL_4301 = 4301; //浏览历史相关失败返回 public final static Integer FAIL_4401 = 4401; + //地址相关失败返回 + public final static Integer FAIL_4501 = 4501; } diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Msg.java b/src/main/java/com/hxtec/polaris/commons/constant/Msg.java index 3af11bb..9c81cfe 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/Msg.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/Msg.java @@ -69,4 +69,12 @@ public final class Msg { public static final String HISTORY_DELETE_NULL = "删除指定记录成功,影响条数为0"; public static final String HISTORY_TRUNK_FAIL = "清空全部浏览浏览记录失败"; public static final String HISTORY_TRUNK_NULL = "清空全部浏览记录成功,影响条数为0"; + + /** + * 通用 + */ + public static final String COMMON_FAIL = "操作失败"; + public static final String COMMON_QUERY_NULL = "查询结果为空"; + public static final String COMMON_OK = "操作成功"; + } diff --git a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java index 9ab6866..223eaad 100644 --- a/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java +++ b/src/main/java/com/hxtec/polaris/commons/thread/HistoryRunable.java @@ -3,6 +3,7 @@ package com.hxtec.polaris.commons.thread; import com.hxtec.polaris.commons.api.vo.Result; import com.hxtec.polaris.commons.constant.GlobalVar; import com.hxtec.polaris.commons.constant.Log; +import com.hxtec.polaris.commons.constant.Msg; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopHistory; import com.hxtec.polaris.mapper.ShopHistoryMapper; @@ -15,7 +16,6 @@ import org.springframework.web.context.support.WebApplicationContextUtils; import javax.servlet.ServletContext; import java.text.MessageFormat; import java.util.Date; -import java.util.List; import java.util.concurrent.CountDownLatch; /** @@ -54,7 +54,7 @@ public class HistoryRunable implements Runnable { } doneSignal.await(); }catch (Exception e){ - throw new MyException(Result.error(MessageFormat.format(Log.PATTERN_HISTORY,history.toString()))); + throw new MyException(Result.error(Msg.COMMON_FAIL),MessageFormat.format(Log.PATTERN_HISTORY,history.toString())); } } diff --git a/src/main/java/com/hxtec/polaris/controller/LocationController.java b/src/main/java/com/hxtec/polaris/controller/LocationController.java new file mode 100644 index 0000000..fe113ec --- /dev/null +++ b/src/main/java/com/hxtec/polaris/controller/LocationController.java @@ -0,0 +1,50 @@ +package com.hxtec.polaris.controller; + +import com.hxtec.polaris.entity.ShopAddress; +import com.hxtec.polaris.service.LocationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Describtion 地址相关 + * @Author yonyong + * @Date 2019/12/3 15:25 + * @Version 1.0.0 + **/ +@RestController +@RequestMapping(value = "location",produces = "application/json;charset=utf-8") +@CrossOrigin +@Api(value = "/location", tags = "地址相关") +public class LocationController { + + @Autowired + private LocationService locationService; + + @GetMapping("get") + public Object getLoaction(){ + return locationService.getLoaction(); + } + + @PostMapping("add") + public Object addLoaction(ShopAddress shopAddress){ + return locationService.addLoaction(shopAddress); + } + + @PutMapping("update") + public Object updateLoaction(ShopAddress shopAddress){ + return locationService.updateLoaction(shopAddress); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids[]", value = "删除的地址集合",allowMultiple=true, dataType = "String") + }) + @DeleteMapping("delete") + public Object deleteLoaction(@RequestParam("ids[]") List ids){ + return locationService.deleteLoaction(ids); + } +} diff --git a/src/main/java/com/hxtec/polaris/controller/OrderController.java b/src/main/java/com/hxtec/polaris/controller/OrderController.java index 492990a..f1369f7 100644 --- a/src/main/java/com/hxtec/polaris/controller/OrderController.java +++ b/src/main/java/com/hxtec/polaris/controller/OrderController.java @@ -1,6 +1,8 @@ package com.hxtec.polaris.controller; +import com.hxtec.polaris.service.OrderService; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** @@ -15,29 +17,32 @@ import org.springframework.web.bind.annotation.*; @Api(value = "/order", tags = "订单相关") public class OrderController { + @Autowired + private OrderService orderService; + @GetMapping("getAll") public Object getAll(){ - return null; + return orderService.getAll(); } @GetMapping("getToPay") public Object getToPay(){ - return null; + return orderService.getToPay(); } @GetMapping("getToTransport") public Object getToTransport(){ - return null; + return orderService.getToTransport(); } @GetMapping("getToRate") public Object getToRate(){ - return null; + return orderService.getToRate(); } @GetMapping("getAfterSale") public Object getAfterSale(){ - return null; + return orderService.getAfterSale(); } @PostMapping("cancel") diff --git a/src/main/java/com/hxtec/polaris/entity/ShopAddress.java b/src/main/java/com/hxtec/polaris/entity/ShopAddress.java index 0668cf6..090d777 100644 --- a/src/main/java/com/hxtec/polaris/entity/ShopAddress.java +++ b/src/main/java/com/hxtec/polaris/entity/ShopAddress.java @@ -285,4 +285,22 @@ public class ShopAddress { public void setComment3(String comment3) { this.comment3 = comment3; } + + @Override + public String toString() { + return "ShopAddress{" + + "id=" + id + + ", userId='" + userId + '\'' + + ", province='" + province + '\'' + + ", city='" + city + '\'' + + ", region='" + region + '\'' + + ", detail='" + detail + '\'' + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + ", weight=" + weight + + ", comment1='" + comment1 + '\'' + + ", comment2='" + comment2 + '\'' + + ", comment3='" + comment3 + '\'' + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java index 0885a85..08df527 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java @@ -1,7 +1,87 @@ package com.hxtec.polaris.mapper; import com.hxtec.polaris.entity.ShopAddress; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.MyMapper; +import java.util.List; +import java.util.Map; +/** + * @Author yonyong + * @Description //TODO + * @Date 2019/12/3 16:30 + * @Param + * @return + **/ public interface ShopAddressMapper extends MyMapper { + + /** + * 根据手机号获取用户的所有收获地址 + * @param username + * @return + */ + List> getLocationByUsername(@Param("username") String username); + + /** + * 根据手机号获取用户的userid + * @param username + * @return + */ + String getUserIdByUsername(@Param("username") String username); + + /** + * 添加收货地址 + * @param shopAddress + * @return + */ + int insertLocation(ShopAddress shopAddress); + + /** + * 更新收货地址 + * @param shopAddress + * @return + */ + int updateLocation(ShopAddress shopAddress); + + /** + * 删除一条收货地址 + * @param id + * @return + */ + int deleteLocation(@Param("id") String id); + + /** + * 将当前用户的其他的收货地址改为非默认状态 + * @param username + * @param id + */ + void updateDefaultLocation(@Param("username")String username, @Param("id")Integer id); + + /** + * 根据手机号获取用户的所有收获地址的个数 + * @param username + * @return + */ + int selectCountByUsername(@Param("username")String username); + + /** + * 根据手机号获取用户的默认收获地址的个数 + * @param username + * @return + */ + int selectDefaultCountByUsername(@Param("username")String username); + + /** + * 根据手机号获取用户最新的收货地址 + * @param username + * @return + */ + ShopAddress getFrstLocationByUsername(@Param("username")String username); + + /** + * 更新指定id的收货地址的默认状态 1 为默认其他为非默认收货地址 + * @param shopAddress + * @return + */ + int updateDefaultState(ShopAddress shopAddress); } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/LocationService.java b/src/main/java/com/hxtec/polaris/service/LocationService.java new file mode 100644 index 0000000..427dba7 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/LocationService.java @@ -0,0 +1,38 @@ +package com.hxtec.polaris.service; + +import com.hxtec.polaris.entity.ShopAddress; + +import java.util.List; + +/** + * @Author yonyong + * @Description //地址相关service + * @Date 2019/12/3 15:33 + * @Param + * @return + **/ +public interface LocationService { + /** + * 获取对应用户的配置地址 + * @return + */ + Object getLoaction(); + + /** + * 添加对应用户的配置地址 + * @return + */ + Object addLoaction(ShopAddress shopAddress); + + /** + * 更新对应用户的配置地址 + * @return + */ + Object updateLoaction(ShopAddress shopAddress); + + /** + * 删除对应用户的配置地址 + * @return + */ + Object deleteLoaction(List ids); +} diff --git a/src/main/java/com/hxtec/polaris/service/OrderService.java b/src/main/java/com/hxtec/polaris/service/OrderService.java new file mode 100644 index 0000000..547ddde --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/OrderService.java @@ -0,0 +1,40 @@ +package com.hxtec.polaris.service; + +/** + * @Author yonyong + * @Description //订单相关service + * @Date 2019/12/3 14:49 + * @Param + * @return + **/ +public interface OrderService { + /** + * 获取所有订单 + * @return + */ + Object getAll(); + + /** + * 获取待付款订单 + * @return + */ + Object getToPay(); + + /** + * 获取待收获订单 + * @return + */ + Object getToTransport(); + + /** + * 获取待评价订单 + * @return + */ + Object getToRate(); + + /** + * 获取售后订单 + * @return + */ + Object getAfterSale(); +} diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java new file mode 100644 index 0000000..45d239c --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -0,0 +1,160 @@ +package com.hxtec.polaris.service.impl; + +import com.hxtec.polaris.commons.api.vo.Result; +import com.hxtec.polaris.commons.constant.Code; +import com.hxtec.polaris.commons.constant.Log; +import com.hxtec.polaris.commons.constant.Msg; +import com.hxtec.polaris.commons.exception.MyException; +import com.hxtec.polaris.entity.ShopAddress; +import com.hxtec.polaris.mapper.ShopAddressMapper; +import com.hxtec.polaris.service.LocationService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.text.MessageFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @Describtion 地址相关service + * @Author yonyong + * @Date 2019/12/3 15:32 + * @Version 1.0.0 + **/ +@Service +@Transactional +public class LocationServiceImpl implements LocationService { + + private final static Logger logger = LoggerFactory.getLogger(LocationServiceImpl.class); + private final static String LOG_CLASS_NAME = "LocationServiceImpl"; + private final static String LOG_METHOD_ADD_LOCATION = "addLoaction"; + private final static String LOG_METHOD_DEL_LOCATION = "deleteLoaction"; + private final static String LOG_METHOD_UPDATE_LOCATION ="updateLoaction"; + + @Resource + private ShopAddressMapper shopAddressMapper; + @Resource + private AddressServiceImpl addressService; + + @Override + public Object getLoaction() { + List> mapList = shopAddressMapper.getLocationByUsername( addressService.getUser()); + if (mapList.size()>0){ + return Result.ok(mapList); + }else { + throw new MyException(Result.error(Code.FAIL_4501, Msg.COMMON_QUERY_NULL)); + } + } + + @Override + public Object addLoaction(ShopAddress shopAddress) { + try { + doInsert(shopAddress); + }catch (Exception e){ + String params = "shopAddress="+shopAddress.toString(); + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.INSERT,LOG_CLASS_NAME,LOG_METHOD_ADD_LOCATION,params); + throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_FAIL),LOG_MSG); + } + return Result.ok(Msg.COMMON_OK); + } + + @Override + public Object updateLoaction(ShopAddress shopAddress) { + try { + doUpdate(shopAddress); + }catch (Exception e){ + String params = "shopAddress="+shopAddress.toString(); + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.UPDATE,LOG_CLASS_NAME,LOG_METHOD_UPDATE_LOCATION,params); + throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_FAIL),LOG_MSG); + } + return Result.ok(Msg.COMMON_OK); + } + + @Override + public Object deleteLoaction(List ids) { + try { + doDelete(ids); + }catch (Exception e){ + String params = "ids="+ids; + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.DELETE,LOG_CLASS_NAME,LOG_METHOD_DEL_LOCATION,params); + throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_FAIL),LOG_MSG); + } + return Result.ok(Msg.COMMON_OK); + } + + /** + * 执行添加收货地址业务 + * @param shopAddress + */ + private void doInsert(ShopAddress shopAddress) { + //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,则该地址为默认收货地址 + int count = shopAddressMapper.selectCountByUsername(addressService.getUser()); + if (count == 0){ + shopAddress.setWeight(1.0); + } + String userId = shopAddressMapper.getUserIdByUsername(addressService.getUser()); + shopAddress.setUserId(userId); + shopAddress.setCreateTime(new Date()); + shopAddress.setUpdateTime(new Date()); + shopAddressMapper.insertLocation(shopAddress); + + if (count > 0){ + //修正默认状态 + updateDefaultAddress(shopAddress); + } + } + + /** + * 执行更新收货地址业务 + * @param shopAddress + */ + private void doUpdate(ShopAddress shopAddress) { + //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,即使用户取消修改了默认地址,该地址仍然为默认收货地址 + int count = shopAddressMapper.selectCountByUsername(addressService.getUser()); + if (count == 1){ + shopAddress.setWeight(1.0); + } + shopAddress.setUpdateTime(new Date()); + shopAddressMapper.updateLocation(shopAddress); + + if (count > 1){ + //修正默认状态 + updateDefaultAddress(shopAddress); + } + } + + /** + * 执行删除收货地址业务 + * @param ids + */ + private void doDelete(List ids) { + for (String id: ids) { + shopAddressMapper.deleteLocation(id); + } + //如果把默认地址删除掉了,则默认第一条为默认收货地址 + int count = shopAddressMapper.selectDefaultCountByUsername(addressService.getUser()); + if (count !=1){ + ShopAddress shopAddress = shopAddressMapper.getFrstLocationByUsername(addressService.getUser()); + //如果shopAddress不为空,则表明数据库中还有当前用户的收货地址,将查询出的这个地址设置为默认收货地址 + if (null != shopAddress){ + shopAddress.setWeight(1.0); + shopAddressMapper.updateDefaultState(shopAddress); + } + } + } + + /** + * 如果当前操作的的收货地址状态为默认的,则将当前用户的其他地址状态改为非默认,改为0 + * @param shopAddress + */ + private void updateDefaultAddress(ShopAddress shopAddress){ + String username =addressService.getUser(); + if (null != shopAddress.getWeight() && shopAddress.getWeight() == 1){ + shopAddressMapper.updateDefaultLocation(username,shopAddress.getId()); + } + } +} diff --git a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..2e6c147 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java @@ -0,0 +1,40 @@ +package com.hxtec.polaris.service.impl; + +import com.hxtec.polaris.service.OrderService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @Describtion 订单相关service + * @Author yonyong + * @Date 2019/12/3 14:48 + * @Version 1.0.0 + **/ +@Service +@Transactional +public class OrderServiceImpl implements OrderService{ + @Override + public Object getAll() { + return null; + } + + @Override + public Object getToPay() { + return null; + } + + @Override + public Object getToTransport() { + return null; + } + + @Override + public Object getToRate() { + return null; + } + + @Override + public Object getAfterSale() { + return null; + } +} diff --git a/src/main/resources/mapper/ShopAddressMapper.xml b/src/main/resources/mapper/ShopAddressMapper.xml index 32fa12e..10b0c37 100644 --- a/src/main/resources/mapper/ShopAddressMapper.xml +++ b/src/main/resources/mapper/ShopAddressMapper.xml @@ -18,4 +18,74 @@ + + a.id, a.user_id,a.region, a.detail,a.weight,a.comment1,a.comment2 + + + + + + + + + + + + insert into shop_address (user_id, region, detail,create_time, update_time, weight,comment1,comment2) + values (#{userId,jdbcType=VARCHAR}, #{region,jdbcType=VARCHAR}, #{detail,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{weight,jdbcType=VARCHAR}, + #{comment1,jdbcType=VARCHAR},#{comment2,jdbcType=VARCHAR} + ) + + + + update shop_address set comment1=#{comment1,jdbcType=VARCHAR}, comment2=#{comment2,jdbcType=VARCHAR},region =#{region,jdbcType=VARCHAR}, + detail = #{detail,jdbcType=VARCHAR},update_time = #{updateTime,jdbcType=TIMESTAMP},weight = #{weight,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + + + UPDATE shop_address set weight = 0 + WHERE id != #{id} and user_id in ( + select id from shop_user where mobile = #{username} + ) + + + + delete from shop_address where id = #{id} + + + + + + UPDATE set weight = #{weight,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + \ No newline at end of file diff --git a/src/main/resources/mapper/ShopCategoryMapper.xml b/src/main/resources/mapper/ShopCategoryMapper.xml index d988283..f0deae7 100644 --- a/src/main/resources/mapper/ShopCategoryMapper.xml +++ b/src/main/resources/mapper/ShopCategoryMapper.xml @@ -40,13 +40,13 @@ - insert into shop_category (id, parent_id, is_parent, + insert into shop_category (parent_id, is_parent, name, decriptsion, image, weight, goods_count, state, is_delete, create_time, update_time, comment1, comment2, comment3 ) - values (#{id,jdbcType=VARCHAR}, #{parentId,jdbcType=VARCHAR}, #{isParent,jdbcType=VARCHAR}, + values (#{parentId,jdbcType=VARCHAR}, #{isParent,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{decriptsion,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, #{weight,jdbcType=DOUBLE}, #{goodsCount,jdbcType=INTEGER}, #{state,jdbcType=VARCHAR}, #{isDelete,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, -- Gitee From 6f1acc07d5d58d5c61bf6d2976d5b500552888c1 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Wed, 4 Dec 2019 15:50:23 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E4=BF=AE=E6=AD=A3=E9=BB=98=E8=AE=A4=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E5=9C=B0=E5=9D=80=EF=BC=8C=E7=94=B1=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LocationController.java | 6 ++-- .../service/impl/LocationServiceImpl.java | 31 +++---------------- .../resources/mapper/ShopAddressMapper.xml | 2 +- 3 files changed, 9 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/controller/LocationController.java b/src/main/java/com/hxtec/polaris/controller/LocationController.java index fe113ec..9ee9b0c 100644 --- a/src/main/java/com/hxtec/polaris/controller/LocationController.java +++ b/src/main/java/com/hxtec/polaris/controller/LocationController.java @@ -8,6 +8,7 @@ import io.swagger.annotations.ApiImplicitParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; /** @@ -44,7 +45,8 @@ public class LocationController { @ApiImplicitParam(name = "ids[]", value = "删除的地址集合",allowMultiple=true, dataType = "String") }) @DeleteMapping("delete") - public Object deleteLoaction(@RequestParam("ids[]") List ids){ - return locationService.deleteLoaction(ids); + public Object deleteLoaction(String ids){ + List list = Arrays.asList(ids.split(",")); + return locationService.deleteLoaction(list); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java index 45d239c..50cd217 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -92,20 +92,14 @@ public class LocationServiceImpl implements LocationService { */ private void doInsert(ShopAddress shopAddress) { //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,则该地址为默认收货地址 - int count = shopAddressMapper.selectCountByUsername(addressService.getUser()); - if (count == 0){ - shopAddress.setWeight(1.0); - } String userId = shopAddressMapper.getUserIdByUsername(addressService.getUser()); shopAddress.setUserId(userId); shopAddress.setCreateTime(new Date()); shopAddress.setUpdateTime(new Date()); shopAddressMapper.insertLocation(shopAddress); - if (count > 0){ - //修正默认状态 - updateDefaultAddress(shopAddress); - } + //修正默认状态 + updateDefaultAddress(shopAddress); } /** @@ -113,18 +107,11 @@ public class LocationServiceImpl implements LocationService { * @param shopAddress */ private void doUpdate(ShopAddress shopAddress) { - //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,即使用户取消修改了默认地址,该地址仍然为默认收货地址 - int count = shopAddressMapper.selectCountByUsername(addressService.getUser()); - if (count == 1){ - shopAddress.setWeight(1.0); - } shopAddress.setUpdateTime(new Date()); shopAddressMapper.updateLocation(shopAddress); - if (count > 1){ - //修正默认状态 - updateDefaultAddress(shopAddress); - } + //修正默认状态 + updateDefaultAddress(shopAddress); } /** @@ -135,16 +122,6 @@ public class LocationServiceImpl implements LocationService { for (String id: ids) { shopAddressMapper.deleteLocation(id); } - //如果把默认地址删除掉了,则默认第一条为默认收货地址 - int count = shopAddressMapper.selectDefaultCountByUsername(addressService.getUser()); - if (count !=1){ - ShopAddress shopAddress = shopAddressMapper.getFrstLocationByUsername(addressService.getUser()); - //如果shopAddress不为空,则表明数据库中还有当前用户的收货地址,将查询出的这个地址设置为默认收货地址 - if (null != shopAddress){ - shopAddress.setWeight(1.0); - shopAddressMapper.updateDefaultState(shopAddress); - } - } } /** diff --git a/src/main/resources/mapper/ShopAddressMapper.xml b/src/main/resources/mapper/ShopAddressMapper.xml index 10b0c37..45b44b2 100644 --- a/src/main/resources/mapper/ShopAddressMapper.xml +++ b/src/main/resources/mapper/ShopAddressMapper.xml @@ -85,7 +85,7 @@ - UPDATE set weight = #{weight,jdbcType=VARCHAR} + UPDATE shop_address set weight = #{weight,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} \ No newline at end of file -- Gitee From 2fb47fce251f2058f789399da8b1a8346f7bfae3 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Wed, 4 Dec 2019 17:24:27 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E5=9C=B0=E5=9D=80=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=EF=BC=8C=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E7=94=A8=E6=88=B7=E8=87=AA=E8=A1=8C=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../polaris/controller/LocationController.java | 5 +++++ .../polaris/mapper/ShopAddressMapper.java | 14 ++++++++++++++ .../hxtec/polaris/service/LocationService.java | 6 ++++++ .../service/impl/LocationServiceImpl.java | 18 ++++++++++++++++++ .../resources/mapper/ShopAddressMapper.xml | 18 ++++++++++++++++++ 5 files changed, 61 insertions(+) diff --git a/src/main/java/com/hxtec/polaris/controller/LocationController.java b/src/main/java/com/hxtec/polaris/controller/LocationController.java index 9ee9b0c..56ce09a 100644 --- a/src/main/java/com/hxtec/polaris/controller/LocationController.java +++ b/src/main/java/com/hxtec/polaris/controller/LocationController.java @@ -49,4 +49,9 @@ public class LocationController { List list = Arrays.asList(ids.split(",")); return locationService.deleteLoaction(list); } + + @GetMapping("getDefault") + public Object getDefaultLocation(){ + return locationService.getDefaultLocation(); + } } diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java index 08df527..3a95089 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java @@ -84,4 +84,18 @@ public interface ShopAddressMapper extends MyMapper { * @return */ int updateDefaultState(ShopAddress shopAddress); + + /** + * 根据用户名获取默认收货地址 + * @param username + * @return + */ + Map selectDefaultByUsername(@Param("username") String username); + + /** + * 根据用户名获取默认收货地址,当没有默认地址的情况下 + * @param username + * @return + */ + Map getDefaultWhenNoDefaultByUsername(@Param("username") String username); } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/LocationService.java b/src/main/java/com/hxtec/polaris/service/LocationService.java index 427dba7..8f1059d 100644 --- a/src/main/java/com/hxtec/polaris/service/LocationService.java +++ b/src/main/java/com/hxtec/polaris/service/LocationService.java @@ -35,4 +35,10 @@ public interface LocationService { * @return */ Object deleteLoaction(List ids); + + /** + * 获取当前用户的默认收货地址 + * @return + */ + Object getDefaultLocation(); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java index 50cd217..dc60875 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.MessageFormat; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,6 +87,23 @@ public class LocationServiceImpl implements LocationService { return Result.ok(Msg.COMMON_OK); } + @Override + public Object getDefaultLocation() { + Map map = new HashMap<>(16); + try { + int count = shopAddressMapper.selectDefaultCountByUsername(addressService.getUser()); + if (count > 0){ + map = shopAddressMapper.selectDefaultByUsername(addressService.getUser()); + }else { + //没有设置默认地址让用户自己设置 + //map = shopAddressMapper.getDefaultWhenNoDefaultByUsername(addressService.getUser()); + } + }catch (Exception e){ + throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_QUERY_NULL)); + } + return Result.ok(map); + } + /** * 执行添加收货地址业务 * @param shopAddress diff --git a/src/main/resources/mapper/ShopAddressMapper.xml b/src/main/resources/mapper/ShopAddressMapper.xml index 45b44b2..23c5079 100644 --- a/src/main/resources/mapper/ShopAddressMapper.xml +++ b/src/main/resources/mapper/ShopAddressMapper.xml @@ -43,6 +43,15 @@ WHERE u.mobile = #{username} and a.weight = 1 + + + select + + from shop_address a left join shop_user u on a.user_id = u.id + WHERE u.mobile = #{username} + order by a.update_time desc + limit 0,1 + \ No newline at end of file -- Gitee From cf3f1122514dddaa69bb45d5aa9f08f32dbf519c Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Wed, 4 Dec 2019 22:06:49 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=9C=B0=E5=9D=80=E9=BB=98=E8=AE=A4=E5=8F=96?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=B8=80=E6=9D=A1=E4=BD=9C=E4=B8=BA=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=B1=95=E7=A4=BA=E7=9A=84=E6=94=B6=E8=B4=A7=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hxtec/polaris/service/impl/LocationServiceImpl.java | 4 ++-- src/main/resources/mapper/ShopAddressMapper.xml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java index dc60875..f101549 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -95,8 +95,8 @@ public class LocationServiceImpl implements LocationService { if (count > 0){ map = shopAddressMapper.selectDefaultByUsername(addressService.getUser()); }else { - //没有设置默认地址让用户自己设置 - //map = shopAddressMapper.getDefaultWhenNoDefaultByUsername(addressService.getUser()); + //没有设置默认地址默认取最新一条作为订单展示的收货地址 + map = shopAddressMapper.getDefaultWhenNoDefaultByUsername(addressService.getUser()); } }catch (Exception e){ throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_QUERY_NULL)); diff --git a/src/main/resources/mapper/ShopAddressMapper.xml b/src/main/resources/mapper/ShopAddressMapper.xml index 23c5079..42f0e98 100644 --- a/src/main/resources/mapper/ShopAddressMapper.xml +++ b/src/main/resources/mapper/ShopAddressMapper.xml @@ -27,6 +27,7 @@ from shop_address a left join shop_user u on a.user_id = u.id WHERE u.mobile = #{username} + order by a.update_time desc + + + + \ No newline at end of file -- Gitee From 05a58cfdfb5f2e6ee2b0a2306a31cc359b7f0c09 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Fri, 13 Dec 2019 11:54:32 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E5=8E=BB=E9=99=A4addressController?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=EF=BC=8C=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++ .../hxtec/polaris/commons/constant/Code.java | 2 + .../controller/AddredssController.java | 47 -------------- .../polaris/controller/OrderController.java | 26 +------- .../hxtec/polaris/mapper/ShopOrderMapper.java | 31 +++++++++ .../hxtec/polaris/service/AddressService.java | 15 ----- .../hxtec/polaris/service/OrderService.java | 30 ++------- .../hxtec/polaris/service/UserService.java | 6 ++ .../service/impl/AddressServiceImpl.java | 57 ----------------- .../service/impl/HistoryServiceImpl.java | 19 +++--- .../service/impl/LocationServiceImpl.java | 19 +++--- .../service/impl/OrderServiceImpl.java | 63 +++++++++++++------ .../service/impl/PaymentServiceImpl.java | 3 +- .../polaris/service/impl/UserServiceImpl.java | 5 ++ src/main/resources/mapper/ShopOrderMapper.xml | 12 ++++ 15 files changed, 133 insertions(+), 207 deletions(-) delete mode 100644 src/main/java/com/hxtec/polaris/controller/AddredssController.java delete mode 100644 src/main/java/com/hxtec/polaris/service/AddressService.java delete mode 100644 src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java diff --git a/README.md b/README.md index a1894d5..c2f39b6 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,8 @@ shop_category 主键改为int,自增 shop_address 表comment1字段用作收货地址联系人,comment2字段用作收货地址联系电话 shop_address weight字段用作判断收货地址是否为默认收货地址,1为是,其他则不是 ``` +##### 2019/12/13 09:39 by yonyong +```html +订单状态 order表state字段 +state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 +``` diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Code.java b/src/main/java/com/hxtec/polaris/commons/constant/Code.java index 07d10d5..1ef134f 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/Code.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/Code.java @@ -22,4 +22,6 @@ public final class Code { public final static Integer FAIL_4401 = 4401; //地址相关失败返回 public final static Integer FAIL_4501 = 4501; + //订单相关失败返回 + public final static Integer FAIL_4601 = 4601; } diff --git a/src/main/java/com/hxtec/polaris/controller/AddredssController.java b/src/main/java/com/hxtec/polaris/controller/AddredssController.java deleted file mode 100644 index 3ccd6a7..0000000 --- a/src/main/java/com/hxtec/polaris/controller/AddredssController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hxtec.polaris.controller; - -import com.hxtec.polaris.entity.ShopAddress; -import com.hxtec.polaris.service.AddressService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @Author Marcus lv - * @create 2019/11/17 5:23 下午 - */ -@RestController -@RequestMapping("address") -@Api(value = "/address", tags = "地址") -public class AddredssController { - @Autowired - private AddressService addressService; - - - @GetMapping - @ApiOperation(value = "获取当前用户收货地址") - public List get(){ - return addressService.getOne(); - } - - @PostMapping - @ApiOperation(value = "修改收货地址") - public int modify(@RequestBody ShopAddress address){ - return addressService.modify(address); - } - - - @PutMapping - @ApiOperation(value = "增加收货地址") - public int create(@RequestBody ShopAddress address){ - return addressService.create(address); - } - @DeleteMapping - @ApiOperation(value = "删除收获地址") - public int delete(int id){ - return addressService.delete(id); - } -} diff --git a/src/main/java/com/hxtec/polaris/controller/OrderController.java b/src/main/java/com/hxtec/polaris/controller/OrderController.java index 6c9ce4e..31c1310 100644 --- a/src/main/java/com/hxtec/polaris/controller/OrderController.java +++ b/src/main/java/com/hxtec/polaris/controller/OrderController.java @@ -30,30 +30,8 @@ public class OrderController { @Autowired private OrderService orderService; - @GetMapping("getAll") - public Object getAll(){ - return orderService.getAll(); - } - - @GetMapping("getToPay") - public Object getToPay(){ - return orderService.getToPay(); - } - - @GetMapping("getToTransport") - public Object getToTransport(){ - return orderService.getToTransport(); - } - - @GetMapping("getToRate") - public Object getToRate(){ - return orderService.getToRate(); - } - - @GetMapping("getAfterSale") - public Object getAfterSale(){ - return orderService.getAfterSale(); - } + @GetMapping("getOrder") + public Object getOrder(Integer state, Integer pageNow, Integer rows){ return orderService.getOrder(state,pageNow,rows); } @PostMapping("cancel") public Object cancelOrder(){ diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java index c40ac54..63bb0c5 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java @@ -1,7 +1,38 @@ package com.hxtec.polaris.mapper; import com.hxtec.polaris.entity.ShopOrder; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.MyMapper; +import java.util.List; +import java.util.Map; + public interface ShopOrderMapper extends MyMapper { + + /** + * 获取订单数量 + * @param userAccount + * @param state + * @return + */ + Integer getOrderCount(@Param("phone") String userAccount,@Param("state") Integer state); + + /** + * 获取订单信息 + * @param userAccount + * @param state + * @param start + * @param rows + * @return + */ + List> getOrder(@Param("phone") String userAccount,@Param("state") Integer state, @Param("start") Integer start, @Param("rows") Integer rows); + + /** + * 获取一条订单对应的商品详情信息 + * @param userAccount + * @param orderId + * @return + */ + List> getOrderItemsByOneOrder(@Param("phone") String userAccount,@Param("orderId") Integer orderId); + } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/AddressService.java b/src/main/java/com/hxtec/polaris/service/AddressService.java deleted file mode 100644 index 18a15af..0000000 --- a/src/main/java/com/hxtec/polaris/service/AddressService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hxtec.polaris.service; - -import com.hxtec.polaris.entity.ShopAddress; - -import java.util.List; - -public interface AddressService { - int modify(ShopAddress address); - - int create(ShopAddress address); - - List getOne(); - - int delete(int id); -} diff --git a/src/main/java/com/hxtec/polaris/service/OrderService.java b/src/main/java/com/hxtec/polaris/service/OrderService.java index ce0569b..f757741 100644 --- a/src/main/java/com/hxtec/polaris/service/OrderService.java +++ b/src/main/java/com/hxtec/polaris/service/OrderService.java @@ -14,35 +14,13 @@ import java.util.Optional; * @return **/ public interface OrderService { - /** - * 获取所有订单 - * @return - */ - Object getAll(); - - /** - * 获取待付款订单 - * @return - */ - Object getToPay(); - - /** - * 获取待收获订单 - * @return - */ - Object getToTransport(); - - /** - * 获取待评价订单 - * @return - */ - Object getToRate(); /** - * 获取售后订单 + * 根据条件获取订单 + * state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 * @return */ - Object getAfterSale(); + Object getOrder(Integer state, Integer pageNow, Integer rows); /** * 提交订单 @@ -51,5 +29,5 @@ public interface OrderService { */ Map submitOrder(ShopAddress shopAddress); - Optional getOne(String orderId); +// Optional getOne(String orderId); } diff --git a/src/main/java/com/hxtec/polaris/service/UserService.java b/src/main/java/com/hxtec/polaris/service/UserService.java index b4496c0..3caf7ac 100644 --- a/src/main/java/com/hxtec/polaris/service/UserService.java +++ b/src/main/java/com/hxtec/polaris/service/UserService.java @@ -13,4 +13,10 @@ public interface UserService { void bind(String openid); ShopUser getUserInfoByPhone(String phone); + + /** + * 获取当前登录用户手机号 + * @return + */ + String getUserPhonenumber(); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java deleted file mode 100644 index 005b755..0000000 --- a/src/main/java/com/hxtec/polaris/service/impl/AddressServiceImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hxtec.polaris.service.impl; - -import com.hxtec.polaris.entity.ShopAddress; -import com.hxtec.polaris.mapper.ShopAddressMapper; -import com.hxtec.polaris.mapper.ShopUserMapper; -import com.hxtec.polaris.service.AddressService; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Service; -import tk.mybatis.mapper.entity.Example; - -import javax.annotation.Resource; -import java.util.Calendar; -import java.util.List; - -/** - * @author C - */ -@Service -public class AddressServiceImpl implements AddressService { - @Resource - private ShopAddressMapper addressMapper; - @Resource - private ShopUserMapper shopUserMapper; - private Calendar calendar= Calendar.getInstance(); - @Override - public int modify(ShopAddress address) { - address.setUpdateTime(calendar.getTime()); - address.setUserId(null); - return addressMapper.updateByPrimaryKeySelective(address); - } - - @Override - public int create(ShopAddress address) { - String user=getUser(); - address.setUserId(user); - address.setCreateTime(calendar.getTime()); - address.setUpdateTime(calendar.getTime()); - return addressMapper.insert(address); - } - - @Override - public List getOne() { - String user=getUser(); - Example example=new Example(ShopAddress.class); - example.createCriteria().andEqualTo("userId",user); - return addressMapper.selectByExample(example); - } - - @Override - public int delete(int id) { - return addressMapper.deleteByPrimaryKey(id); - } - - public String getUser(){ - return SecurityContextHolder.getContext().getAuthentication().getName(); - } -} diff --git a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java index a946c47..061b3c4 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java @@ -8,6 +8,7 @@ import com.hxtec.polaris.commons.thread.HistoryRunable; import com.hxtec.polaris.entity.ShopHistory; import com.hxtec.polaris.mapper.ShopHistoryMapper; import com.hxtec.polaris.service.HistoryService; +import com.hxtec.polaris.service.UserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,15 +34,15 @@ public class HistoryServiceImpl implements HistoryService{ @Resource private ShopHistoryMapper shopHistoryMapper; @Resource - private AddressServiceImpl addressService; + private UserService userService; @Override public Object getAll() { try { - List> mapList = shopHistoryMapper.getAllHistory(addressService.getUser()); + List> mapList = shopHistoryMapper.getAllHistory(userService.getUserPhonenumber()); return Result.ok(mapList); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_GET_FAIL),LOG_MSG); } } @@ -51,7 +52,7 @@ public class HistoryServiceImpl implements HistoryService{ //调用线程,更新path //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 // 创建线程池 - shopHistory.setUsername(addressService.getUser()); + shopHistory.setUsername(userService.getUserPhonenumber()); ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(GlobalVar.THREAD_HISTORY_INSERT).build(); ServletContext context = request.getServletContext(); // 计数器 @@ -65,12 +66,12 @@ public class HistoryServiceImpl implements HistoryService{ try { int result = shopHistoryMapper.delete(shopHistory.getId()); if (1 != result){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_FAIL),LOG_MSG); } } @@ -78,14 +79,14 @@ public class HistoryServiceImpl implements HistoryService{ @Override public Object deleteAll() { try { - int result = shopHistoryMapper.deleteAll(addressService.getUser()); + int result = shopHistoryMapper.deleteAll(userService.getUserPhonenumber()); if (1 > result){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); throw new MyException(Result.error(Code.FAIL_4401, Msg.HISTORY_TRUNK_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,addressService.getUser()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_TRUNK_FAIL),LOG_MSG); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java index 2e8be0d..990f6cf 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -8,6 +8,7 @@ import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopAddress; import com.hxtec.polaris.mapper.ShopAddressMapper; import com.hxtec.polaris.service.LocationService; +import com.hxtec.polaris.service.UserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -39,11 +40,11 @@ public class LocationServiceImpl implements LocationService { @Resource private ShopAddressMapper shopAddressMapper; @Resource - private AddressServiceImpl addressService; + private UserService userService; @Override public Object getLoaction() { - List> mapList = shopAddressMapper.getLocationByUsername( addressService.getUser()); + List> mapList = shopAddressMapper.getLocationByUsername( userService.getUserPhonenumber()); if (mapList.size()>0){ return Result.ok(mapList); }else { @@ -91,12 +92,12 @@ public class LocationServiceImpl implements LocationService { public Object getDefaultLocation() { Map map = new HashMap<>(16); try { - int count = shopAddressMapper.selectDefaultCountByUsername(addressService.getUser()); + int count = shopAddressMapper.selectDefaultCountByUsername(userService.getUserPhonenumber()); if (count > 0){ - map = shopAddressMapper.selectDefaultByUsername(addressService.getUser()); + map = shopAddressMapper.selectDefaultByUsername(userService.getUserPhonenumber()); }else { //没有设置默认地址默认取最新一条作为订单展示的收货地址 - map = shopAddressMapper.getDefaultWhenNoDefaultByUsername(addressService.getUser()); + map = shopAddressMapper.getDefaultWhenNoDefaultByUsername(userService.getUserPhonenumber()); } }catch (Exception e){ throw new MyException(Result.error(Code.FAIL_4501,Msg.COMMON_QUERY_NULL)); @@ -107,10 +108,10 @@ public class LocationServiceImpl implements LocationService { @Override public Object checkLocation(ShopAddress shopAddress) { try{ - int count = shopAddressMapper.getLocationCountByIdAndUserName(shopAddress.getId(),addressService.getUser()); + int count = shopAddressMapper.getLocationCountByIdAndUserName(shopAddress.getId(),userService.getUserPhonenumber()); if (count>0){ //如果数据库中有该id,以防被编辑,从数据库中查出该记录到页面展示 - Map map = shopAddressMapper.getLocationByIdAndUserName(shopAddress.getId(),addressService.getUser()); + Map map = shopAddressMapper.getLocationByIdAndUserName(shopAddress.getId(),userService.getUserPhonenumber()); return Result.ok(map); }else { //如果数据库中没有该id则证明已被删除,展示最新的一条 @@ -127,7 +128,7 @@ public class LocationServiceImpl implements LocationService { */ private void doInsert(ShopAddress shopAddress) { //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,则该地址为默认收货地址 - String userId = shopAddressMapper.getUserIdByUsername(addressService.getUser()); + String userId = shopAddressMapper.getUserIdByUsername(userService.getUserPhonenumber()); shopAddress.setUserId(userId); shopAddress.setCreateTime(new Date()); shopAddress.setUpdateTime(new Date()); @@ -164,7 +165,7 @@ public class LocationServiceImpl implements LocationService { * @param shopAddress */ private void updateDefaultAddress(ShopAddress shopAddress){ - String username =addressService.getUser(); + String username =userService.getUserPhonenumber(); if (null != shopAddress.getWeight() && shopAddress.getWeight() == 1){ shopAddressMapper.updateDefaultLocation(username,shopAddress.getId()); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java index 3bdc7b1..b1fe7db 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java @@ -1,6 +1,12 @@ package com.hxtec.polaris.service.impl; +import com.hxtec.polaris.commons.api.vo.Result; +import com.hxtec.polaris.commons.constant.Code; +import com.hxtec.polaris.commons.constant.Log; +import com.hxtec.polaris.commons.constant.Msg; import com.hxtec.polaris.commons.contants.CommonContants; +import com.hxtec.polaris.commons.dto.Page; +import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopAddress; import com.hxtec.polaris.entity.ShopCartItem; import com.hxtec.polaris.entity.ShopOrder; @@ -22,6 +28,7 @@ import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -37,6 +44,10 @@ import java.util.Map; @Service @Transactional public class OrderServiceImpl implements OrderService{ + + private final static String LOG_CLASS_NAME = "OrderServiceImpl"; + private final static String LOG_METHOD_GET_ORDER = "getOrder"; + @Resource private ShopOrderItemMapper shopOrderItemMapper; @Resource @@ -54,28 +65,42 @@ public class OrderServiceImpl implements OrderService{ private ShopProductVariantMapper productVariantMapper; @Override - public Object getAll() { - return null; - } - - @Override - public Object getToPay() { - return null; - } - - @Override - public Object getToTransport() { - return null; + public Object getOrder(Integer state, Integer pageNow, Integer rows) { + //state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 + try { + return doGetOrder(state,pageNow,rows); + }catch (Exception e){ + String params = "state="+state+";pageNow="+pageNow+";rows="+rows; + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.DELETE,LOG_CLASS_NAME,LOG_METHOD_GET_ORDER,params); + throw new MyException(Result.error(Code.FAIL_4601, Msg.COMMON_FAIL),LOG_MSG); + } } - @Override - public Object getToRate() { - return null; - } - @Override - public Object getAfterSale() { - return null; + /** + * 执行查询订单 state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 + * @param state + * @param pageNow + * @param rows + * @return + */ + private Result doGetOrder(Integer state, Integer pageNow, Integer rows) { + //分页信息 + int count = shopOrderMapper.getOrderCount(userService.getUserPhonenumber(),state); + Page page = new Page(count,pageNow,rows); + + //数据信息 + //分页查出订单信息 + List> list = shopOrderMapper.getOrder(userService.getUserPhonenumber(),state,(pageNow-1)*rows,rows); + if (null!=list && list.size()>0){ + for (Map map1 : list){ + //将查询出的每个订单的商品信息查出放到订单的map里 + Integer orderId = (Integer) map1.get("orderId"); + List> itemList = shopOrderMapper.getOrderItemsByOneOrder(userService.getUserPhonenumber(),orderId); + map1.put("goods",itemList); + } + } + return Result.ok(page,list); } @Override diff --git a/src/main/java/com/hxtec/polaris/service/impl/PaymentServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/PaymentServiceImpl.java index b2744f2..194a984 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/PaymentServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/PaymentServiceImpl.java @@ -61,7 +61,8 @@ public class PaymentServiceImpl implements PaymentService { private Object miniWx(PayForm form) throws Exception { WXPay pay = new WXPay(config, "??????"); - Optional orderOptional = orderService.getOne(form.getOrderId()); +// Optional orderOptional = orderService.getOne(form.getOrderId()); + Optional orderOptional = null; if (orderOptional.isPresent()) { ShopOrder order = orderOptional.get(); Map pam = new HashMap<>(); diff --git a/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java index 218b9ee..61e8196 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java @@ -70,4 +70,9 @@ public class UserServiceImpl implements UserService { one.setWxId(openid); userRepository.save(one); } + + @Override + public String getUserPhonenumber(){ + return SecurityContextHolder.getContext().getAuthentication().getName(); + } } diff --git a/src/main/resources/mapper/ShopOrderMapper.xml b/src/main/resources/mapper/ShopOrderMapper.xml index a3c0299..55d0739 100644 --- a/src/main/resources/mapper/ShopOrderMapper.xml +++ b/src/main/resources/mapper/ShopOrderMapper.xml @@ -28,4 +28,16 @@ + + + + + + \ No newline at end of file -- Gitee From 13d1b6eea0d013e4108cd9b74f20c692c00e937a Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Fri, 13 Dec 2019 11:57:45 +0800 Subject: [PATCH 17/21] =?UTF-8?q?getOne=E5=8F=96=E6=B6=88=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/hxtec/polaris/service/OrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hxtec/polaris/service/OrderService.java b/src/main/java/com/hxtec/polaris/service/OrderService.java index f757741..7779346 100644 --- a/src/main/java/com/hxtec/polaris/service/OrderService.java +++ b/src/main/java/com/hxtec/polaris/service/OrderService.java @@ -29,5 +29,5 @@ public interface OrderService { */ Map submitOrder(ShopAddress shopAddress); -// Optional getOne(String orderId); + Optional getOne(String orderId); } -- Gitee From 40ca03667391153790083304e861aedb7ff5706e Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Sun, 15 Dec 2019 15:51:25 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=E7=A0=81=E5=8F=96=E7=94=A8=E6=88=B7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=94=B9=E4=B8=BA=E6=A0=B9=E6=8D=AEuserid?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ .../hxtec/polaris/commons/constant/Log.java | 2 +- .../com/hxtec/polaris/entity/ShopUser.java | 19 +++++++++++++++++++ .../polaris/mapper/ShopAddressMapper.java | 4 ++-- .../polaris/mapper/ShopHistoryMapper.java | 4 ++-- .../hxtec/polaris/mapper/ShopUserMapper.java | 3 +++ .../hxtec/polaris/service/UserService.java | 6 ++++++ .../service/impl/HistoryServiceImpl.java | 16 ++++++++-------- .../service/impl/LocationServiceImpl.java | 8 ++++---- .../polaris/service/impl/UserServiceImpl.java | 6 ++++++ .../resources/mapper/ShopAddressMapper.xml | 6 ++---- .../resources/mapper/ShopHistoryMapper.xml | 2 +- src/main/resources/mapper/ShopUserMapper.xml | 10 ++++++++++ 13 files changed, 69 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index c2f39b6..aa6131c 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,8 @@ shop_address weight字段用作判断收货地址是否为默认收货地址,1 订单状态 order表state字段 state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 ``` +##### 2019/12/15 09:39 by yonyong +```html +历史记录 shop_history表usrname字段由手机号变更为userid +state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 +``` diff --git a/src/main/java/com/hxtec/polaris/commons/constant/Log.java b/src/main/java/com/hxtec/polaris/commons/constant/Log.java index 1db48f9..6d0a521 100644 --- a/src/main/java/com/hxtec/polaris/commons/constant/Log.java +++ b/src/main/java/com/hxtec/polaris/commons/constant/Log.java @@ -18,7 +18,7 @@ public final class Log { public static final String PATTERN_LOG = "操作类型:{0};操作类名:{1};操作方法:{2};传入参数:{3}"; //历史浏览相关 public static final String PATTERN_HISTORY= "历史浏览记录insert失败!传入参数:{0}"; - public static final String PATTERN_BASE = "操作用户:{0}"; + public static final String PATTERN_BASE = "操作用户信息:{0}"; //type public static final String INSERT = "新增"; diff --git a/src/main/java/com/hxtec/polaris/entity/ShopUser.java b/src/main/java/com/hxtec/polaris/entity/ShopUser.java index d946a55..d8f2b9b 100644 --- a/src/main/java/com/hxtec/polaris/entity/ShopUser.java +++ b/src/main/java/com/hxtec/polaris/entity/ShopUser.java @@ -387,4 +387,23 @@ public class ShopUser { public void setComment3(String comment3) { this.comment3 = comment3; } + + @Override + public String toString() { + return "ShopUser{" + + "id=" + id + + ", wxId='" + wxId + '\'' + + ", mobile='" + mobile + '\'' + + ", username='" + username + '\'' + + ", nickname='" + nickname + '\'' + + ", portrait='" + portrait + '\'' + + ", password='" + password + '\'' + + ", gender='" + gender + '\'' + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + ", birthday=" + birthday + + ", state='" + state + '\'' + + ", isDelete='" + isDelete + '\'' + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java index 6de4f6b..dc904f5 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopAddressMapper.java @@ -52,10 +52,10 @@ public interface ShopAddressMapper extends MyMapper { /** * 将当前用户的其他的收货地址改为非默认状态 - * @param username + * @param uid * @param id */ - void updateDefaultLocation(@Param("username")String username, @Param("id")Integer id); + void updateDefaultLocation(@Param("uid")String uid, @Param("id")Integer id); /** * 根据手机号获取用户的所有收获地址的个数 diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java index 7d53b7e..da7d51a 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopHistoryMapper.java @@ -30,10 +30,10 @@ public interface ShopHistoryMapper { /** * 获取所有浏览历史记录,默认查询最新记录前十条 - * @param username + * @param userId * @return */ - List> getAllHistory(@Param("username") String username); + List> getAllHistory(@Param("uid") int userId); /** * 根据用户名获取数据库中的历史记录条数 diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopUserMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopUserMapper.java index 46c4766..d767659 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopUserMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopUserMapper.java @@ -1,6 +1,7 @@ package com.hxtec.polaris.mapper; import com.hxtec.polaris.entity.ShopUser; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.MyMapper; /** @@ -8,4 +9,6 @@ import tk.mybatis.mapper.MyMapper; * @date 2019/11/28 */ public interface ShopUserMapper extends MyMapper { + + ShopUser getUserInfoByPhone(@Param("phone")String phone); } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/UserService.java b/src/main/java/com/hxtec/polaris/service/UserService.java index 3caf7ac..608bfdc 100644 --- a/src/main/java/com/hxtec/polaris/service/UserService.java +++ b/src/main/java/com/hxtec/polaris/service/UserService.java @@ -19,4 +19,10 @@ public interface UserService { * @return */ String getUserPhonenumber(); + + /** + * 获取用户信息 + * @return + */ + ShopUser getUserInfo(); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java index 061b3c4..b7d27be 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java @@ -39,10 +39,10 @@ public class HistoryServiceImpl implements HistoryService{ @Override public Object getAll() { try { - List> mapList = shopHistoryMapper.getAllHistory(userService.getUserPhonenumber()); + List> mapList = shopHistoryMapper.getAllHistory(userService.getUserInfo().getId()); return Result.ok(mapList); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserInfo().toString()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_GET_FAIL),LOG_MSG); } } @@ -52,7 +52,7 @@ public class HistoryServiceImpl implements HistoryService{ //调用线程,更新path //把当前编辑的节点及其所有子节点挂到新的节点下面,更新路径 // 创建线程池 - shopHistory.setUsername(userService.getUserPhonenumber()); + shopHistory.setUsername(String.valueOf(userService.getUserInfo().getId())); ThreadFactory pool = new ThreadFactoryBuilder().setNameFormat(GlobalVar.THREAD_HISTORY_INSERT).build(); ServletContext context = request.getServletContext(); // 计数器 @@ -66,12 +66,12 @@ public class HistoryServiceImpl implements HistoryService{ try { int result = shopHistoryMapper.delete(shopHistory.getId()); if (1 != result){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserInfo().toString()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserInfo().toString()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_DELETE_FAIL),LOG_MSG); } } @@ -79,14 +79,14 @@ public class HistoryServiceImpl implements HistoryService{ @Override public Object deleteAll() { try { - int result = shopHistoryMapper.deleteAll(userService.getUserPhonenumber()); + int result = shopHistoryMapper.deleteAll(String.valueOf(userService.getUserInfo().getId())); if (1 > result){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserInfo().toString()); throw new MyException(Result.error(Code.FAIL_4401, Msg.HISTORY_TRUNK_NULL),LOG_MSG); } return Result.ok(); }catch (Exception e){ - String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserPhonenumber()); + String LOG_MSG = MessageFormat.format(Log.PATTERN_BASE,userService.getUserInfo().toString()); throw new MyException(Result.error(Code.FAIL_4401,Msg.HISTORY_TRUNK_FAIL),LOG_MSG); } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java index 990f6cf..ed471d7 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java @@ -44,7 +44,7 @@ public class LocationServiceImpl implements LocationService { @Override public Object getLoaction() { - List> mapList = shopAddressMapper.getLocationByUsername( userService.getUserPhonenumber()); + List> mapList = shopAddressMapper.getLocationByUsername(String.valueOf(userService.getUserInfo().getId())); if (mapList.size()>0){ return Result.ok(mapList); }else { @@ -128,7 +128,7 @@ public class LocationServiceImpl implements LocationService { */ private void doInsert(ShopAddress shopAddress) { //查询数据库中当前用户设置了几条收货地址,如果是第一次添加收货地址,则该地址为默认收货地址 - String userId = shopAddressMapper.getUserIdByUsername(userService.getUserPhonenumber()); + String userId = String.valueOf(userService.getUserInfo().getId()); shopAddress.setUserId(userId); shopAddress.setCreateTime(new Date()); shopAddress.setUpdateTime(new Date()); @@ -165,9 +165,9 @@ public class LocationServiceImpl implements LocationService { * @param shopAddress */ private void updateDefaultAddress(ShopAddress shopAddress){ - String username =userService.getUserPhonenumber(); + String userId = String.valueOf(userService.getUserInfo().getId()); if (null != shopAddress.getWeight() && shopAddress.getWeight() == 1){ - shopAddressMapper.updateDefaultLocation(username,shopAddress.getId()); + shopAddressMapper.updateDefaultLocation(userId,shopAddress.getId()); } } } diff --git a/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java index f1687a0..15b354c 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java @@ -75,4 +75,10 @@ public class UserServiceImpl implements UserService { public String getUserPhonenumber(){ return SecurityContextHolder.getContext().getAuthentication().getName(); } + + @Override + public ShopUser getUserInfo() { + String mobile = SecurityContextHolder.getContext().getAuthentication().getName(); + return shopUserMapper.getUserInfoByPhone(mobile); + } } diff --git a/src/main/resources/mapper/ShopAddressMapper.xml b/src/main/resources/mapper/ShopAddressMapper.xml index 723788f..c9449dd 100644 --- a/src/main/resources/mapper/ShopAddressMapper.xml +++ b/src/main/resources/mapper/ShopAddressMapper.xml @@ -26,7 +26,7 @@ select from shop_address a left join shop_user u on a.user_id = u.id - WHERE u.mobile = #{username} + WHERE u.id = #{username} order by a.update_time desc @@ -77,9 +77,7 @@ UPDATE shop_address set weight = 0 - WHERE id != #{id} and user_id in ( - select id from shop_user where mobile = #{username} - ) + WHERE id != #{id} and user_id=#{uid} diff --git a/src/main/resources/mapper/ShopHistoryMapper.xml b/src/main/resources/mapper/ShopHistoryMapper.xml index 800d1d4..d81d9e7 100644 --- a/src/main/resources/mapper/ShopHistoryMapper.xml +++ b/src/main/resources/mapper/ShopHistoryMapper.xml @@ -22,7 +22,7 @@ select from shop_history - WHERE username = #{username} + WHERE username = #{uid} group by sku ORDER BY time DESC limit 0,10 diff --git a/src/main/resources/mapper/ShopUserMapper.xml b/src/main/resources/mapper/ShopUserMapper.xml index 3d7a470..1c798b0 100644 --- a/src/main/resources/mapper/ShopUserMapper.xml +++ b/src/main/resources/mapper/ShopUserMapper.xml @@ -25,4 +25,14 @@ id, wx_id, mobile, username, nickname, portrait, `password`, gender, create_time, update_time, birthday, `state`, is_delete, comment1, comment2, comment3 + + id,wx_id,mobile,username + + \ No newline at end of file -- Gitee From b2598d6679dc12aaf87c21160a4e1125327171a1 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Sun, 15 Dec 2019 16:00:58 +0800 Subject: [PATCH 19/21] Merge branch 'yonyong' of https://gitee.com/anymre/Polaris into yonyong # Conflicts: # README.md # src/main/java/com/hxtec/polaris/service/UserService.java # src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index aa6131c..efa703b 100644 --- a/README.md +++ b/README.md @@ -23,5 +23,4 @@ state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售 ##### 2019/12/15 09:39 by yonyong ```html 历史记录 shop_history表usrname字段由手机号变更为userid -state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 ``` -- Gitee From b04ecd40e61bdc403b7ef372bf615afc173c1c61 Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Sun, 15 Dec 2019 16:03:26 +0800 Subject: [PATCH 20/21] Merge branch 'yonyong' of https://gitee.com/anymre/Polaris into yonyong # Conflicts: # README.md # src/main/java/com/hxtec/polaris/service/UserService.java # src/main/java/com/hxtec/polaris/service/impl/HistoryServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/LocationServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java # src/main/java/com/hxtec/polaris/service/impl/UserServiceImpl.java --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index aa6131c..efa703b 100644 --- a/README.md +++ b/README.md @@ -23,5 +23,4 @@ state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售 ##### 2019/12/15 09:39 by yonyong ```html 历史记录 shop_history表usrname字段由手机号变更为userid -state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 ``` -- Gitee From b058dc032295b2bd9bffc070297b15b36095930c Mon Sep 17 00:00:00 2001 From: yonyong <2365878736@qq.com> Date: Sun, 15 Dec 2019 20:39:45 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../polaris/controller/OrderController.java | 2 ++ .../hxtec/polaris/mapper/ShopOrderMapper.java | 7 ++-- .../hxtec/polaris/service/OrderService.java | 2 ++ .../service/impl/OrderServiceImpl.java | 21 +++++++++--- src/main/resources/mapper/ShopOrderMapper.xml | 34 +++++++++++++++++-- 6 files changed, 58 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index efa703b..21504d6 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ shop_address weight字段用作判断收货地址是否为默认收货地址,1 ##### 2019/12/13 09:39 by yonyong ```html 订单状态 order表state字段 -state 0 全部订单 1 待付款订单 2待收货订单 3待评价订单 4 售后订单 +state 0 待付款 1 待发货订单 2待收货订单 3待评价订单 4 交易成功订单 5 已关闭订单 ``` ##### 2019/12/15 09:39 by yonyong ```html diff --git a/src/main/java/com/hxtec/polaris/controller/OrderController.java b/src/main/java/com/hxtec/polaris/controller/OrderController.java index 196e516..b37fbdf 100644 --- a/src/main/java/com/hxtec/polaris/controller/OrderController.java +++ b/src/main/java/com/hxtec/polaris/controller/OrderController.java @@ -59,4 +59,6 @@ public class OrderController { Map map=orderService.submitOrder(shopAddress); return Result.ok(map); } + @GetMapping("getPrice") + public Object getPrice(int oid){ return orderService.getPrice(oid); } } diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java index 63bb0c5..4155e22 100644 --- a/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java +++ b/src/main/java/com/hxtec/polaris/mapper/ShopOrderMapper.java @@ -15,7 +15,7 @@ public interface ShopOrderMapper extends MyMapper { * @param state * @return */ - Integer getOrderCount(@Param("phone") String userAccount,@Param("state") Integer state); + Integer getOrderCount(@Param("uid") String userAccount,@Param("state") Integer state); /** * 获取订单信息 @@ -25,7 +25,7 @@ public interface ShopOrderMapper extends MyMapper { * @param rows * @return */ - List> getOrder(@Param("phone") String userAccount,@Param("state") Integer state, @Param("start") Integer start, @Param("rows") Integer rows); + List> getOrder(@Param("uid") String userAccount,@Param("state") Integer state, @Param("start") Integer start, @Param("rows") Integer rows); /** * 获取一条订单对应的商品详情信息 @@ -33,6 +33,7 @@ public interface ShopOrderMapper extends MyMapper { * @param orderId * @return */ - List> getOrderItemsByOneOrder(@Param("phone") String userAccount,@Param("orderId") Integer orderId); + List> getOrderItemsByOneOrder(@Param("uid") String userAccount,@Param("orderId") Integer orderId); + Map getPriceByOrderId(@Param("oid") int oid,@Param("uid") String userid); } \ No newline at end of file diff --git a/src/main/java/com/hxtec/polaris/service/OrderService.java b/src/main/java/com/hxtec/polaris/service/OrderService.java index 7779346..0d6d405 100644 --- a/src/main/java/com/hxtec/polaris/service/OrderService.java +++ b/src/main/java/com/hxtec/polaris/service/OrderService.java @@ -30,4 +30,6 @@ public interface OrderService { Map submitOrder(ShopAddress shopAddress); Optional getOne(String orderId); + + Object getPrice(int oid); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java index 6726b0b..5d869f1 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java @@ -86,18 +86,19 @@ public class OrderServiceImpl implements OrderService{ * @return */ private Result doGetOrder(Integer state, Integer pageNow, Integer rows) { + String usrId = String.valueOf(userService.getUserInfo().getId()); //分页信息 - int count = shopOrderMapper.getOrderCount(userService.getUserPhonenumber(),state); + int count = shopOrderMapper.getOrderCount(usrId,state); Page page = new Page(count,pageNow,rows); //数据信息 //分页查出订单信息 - List> list = shopOrderMapper.getOrder(userService.getUserPhonenumber(),state,(pageNow-1)*rows,rows); + List> list = shopOrderMapper.getOrder(usrId,state,(pageNow-1)*rows,rows); if (null!=list && list.size()>0){ for (Map map1 : list){ //将查询出的每个订单的商品信息查出放到订单的map里 - Integer orderId = (Integer) map1.get("orderId"); - List> itemList = shopOrderMapper.getOrderItemsByOneOrder(userService.getUserPhonenumber(),orderId); + Integer orderId = (Integer) map1.get("id"); + List> itemList = shopOrderMapper.getOrderItemsByOneOrder(usrId,orderId); map1.put("goods",itemList); } } @@ -170,6 +171,18 @@ public class OrderServiceImpl implements OrderService{ return Optional.empty(); } + @Override + public Object getPrice(int oid) { + try { + Map orderMap = shopOrderMapper.getPriceByOrderId(oid,String.valueOf(userService.getUserInfo().getId())); + return Result.ok(orderMap); + }catch (Exception e){ + String params = "oid="+oid; + String LOG_MSG = MessageFormat.format(Log.PATTERN_LOG,Log.DELETE,LOG_CLASS_NAME,LOG_METHOD_GET_ORDER,params); + throw new MyException(Result.error(Code.FAIL_4601, Msg.COMMON_FAIL),LOG_MSG); + } + } + private void saveOrder(ShopOrder shopOrder) { //订单表 shopOrderMapper.insertSelective(shopOrder); diff --git a/src/main/resources/mapper/ShopOrderMapper.xml b/src/main/resources/mapper/ShopOrderMapper.xml index 55d0739..f6bb2e2 100644 --- a/src/main/resources/mapper/ShopOrderMapper.xml +++ b/src/main/resources/mapper/ShopOrderMapper.xml @@ -29,15 +29,45 @@ - + SELECT COUNT(1) + from shop_order + WHERE member_id=#{uid} and (isnull(is_delete) or is_delete!='Y') + + and state=#{state} + + \ No newline at end of file -- Gitee