diff --git a/tamguo-mms/src/main/resources/templates/index.html b/tamguo-mms/src/main/resources/templates/index.html index 481c468..f8c8c35 100644 --- a/tamguo-mms/src/main/resources/templates/index.html +++ b/tamguo-mms/src/main/resources/templates/index.html @@ -8,6 +8,8 @@ + + @@ -51,7 +53,7 @@ -
+

1000分
  • 余额:50
  • -
  • 最近登录时间:2018-04-27 10:32
  • +
  • 最近登录时间:2018-04-27 10:32
  • - 我的钱包 + 提现

    @@ -130,5 +132,23 @@
    + + + + + + \ No newline at end of file diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/book/model/BookEntity.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/book/model/BookEntity.java index 22c37a7..c23f62a 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/book/model/BookEntity.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/book/model/BookEntity.java @@ -30,6 +30,8 @@ public class BookEntity extends Model{ private List categoryIds; @TableField(exist=false) private String memberName; + @TableField(exist=false) + private String categoryName; public String getId() { return id; @@ -107,4 +109,10 @@ public class BookEntity extends Model{ public void setMemberName(String memberName) { this.memberName = memberName; } + public String getCategoryName() { + return categoryName; + } + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } } diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/MemberEntity.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/MemberEntity.java index aedc888..e1b3d58 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/MemberEntity.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/MemberEntity.java @@ -2,6 +2,7 @@ package com.tamguo.modules.member.model; import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableName; @@ -15,8 +16,6 @@ import com.tamguo.config.dao.SuperEntity; public class MemberEntity extends SuperEntity implements Serializable { private static final long serialVersionUID = 1L; - private String subjectId; - private String username; private String nickName; @@ -33,7 +32,7 @@ public class MemberEntity extends SuperEntity implements Serializa private BigDecimal amount; - private Long lastLoginTime; + private Date lastLoginTime; private Integer paperNum; @@ -105,14 +104,6 @@ public class MemberEntity extends SuperEntity implements Serializa this.amount = amount; } - public Long getLastLoginTime() { - return lastLoginTime; - } - - public void setLastLoginTime(Long lastLoginTime) { - this.lastLoginTime = lastLoginTime; - } - public Integer getPaperNum() { return paperNum; } @@ -161,14 +152,6 @@ public class MemberEntity extends SuperEntity implements Serializa this.verifyCode = verifyCode; } - public String getSubjectId() { - return subjectId; - } - - public void setSubjectId(String subjectId) { - this.subjectId = subjectId; - } - public String getNowPassword() { return nowPassword; } @@ -176,4 +159,12 @@ public class MemberEntity extends SuperEntity implements Serializa public void setNowPassword(String nowPassword) { this.nowPassword = nowPassword; } + + public Date getLastLoginTime() { + return lastLoginTime; + } + + public void setLastLoginTime(Date lastLoginTime) { + this.lastLoginTime = lastLoginTime; + } } \ No newline at end of file diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/condition/MemberCondition.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/condition/MemberCondition.java new file mode 100644 index 0000000..5d2e855 --- /dev/null +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/model/condition/MemberCondition.java @@ -0,0 +1,43 @@ +package com.tamguo.modules.member.model.condition; + +public class MemberCondition { + + private Integer pageNo; + private Integer pageSize; + + private String mobile; + private String username; + private String nickName; + + public String getMobile() { + return mobile; + } + public void setMobile(String mobile) { + this.mobile = mobile; + } + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + public String getNickName() { + return nickName; + } + public void setNickName(String nickName) { + this.nickName = nickName; + } + public Integer getPageNo() { + return pageNo; + } + public void setPageNo(Integer pageNo) { + this.pageNo = pageNo; + } + public Integer getPageSize() { + return pageSize; + } + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + +} diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/IMemberService.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/IMemberService.java index ef7333a..b93b627 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/IMemberService.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/IMemberService.java @@ -1,8 +1,12 @@ package com.tamguo.modules.member.service; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.IService; import com.tamguo.common.utils.Result; import com.tamguo.modules.member.model.MemberEntity; +import com.tamguo.modules.member.model.condition.MemberCondition; public interface IMemberService extends IService{ @@ -53,5 +57,11 @@ public interface IMemberService extends IService{ /** 修改密码 */ public Result updatePwd(MemberEntity member); + + /** 公司列表*/ + public Page listData(MemberCondition condition); + + /** 奖励*/ + public void reward(String id , String bookId , Integer rewardPoint, BigDecimal rewardMoney); } diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/impl/MemberService.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/impl/MemberService.java index 34efdaf..99ceaef 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/impl/MemberService.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/member/service/impl/MemberService.java @@ -1,5 +1,7 @@ package com.tamguo.modules.member.service.impl; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.UUID; import org.apache.commons.lang3.StringUtils; @@ -8,15 +10,20 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.aliyuncs.exceptions.ClientException; import com.baomidou.mybatisplus.mapper.Condition; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.tamguo.common.utils.DateUtil; import com.tamguo.common.utils.Result; import com.tamguo.common.utils.SystemConstant; import com.tamguo.config.redis.CacheService; +import com.tamguo.modules.book.model.BookEntity; +import com.tamguo.modules.book.service.IBookService; import com.tamguo.modules.member.dao.MemberMapper; import com.tamguo.modules.member.model.MemberEntity; +import com.tamguo.modules.member.model.condition.MemberCondition; import com.tamguo.modules.member.service.IMemberService; +import com.tamguo.modules.sys.service.ISmsService; @Service public class MemberService extends ServiceImpl implements IMemberService{ @@ -25,6 +32,10 @@ public class MemberService extends ServiceImpl imple private MemberMapper memberMapper; @Autowired private CacheService cacheService; + @Autowired + private ISmsService iSmsService; + @Autowired + private IBookService iBookService; @Override public Result login(String username, String password) { @@ -108,7 +119,6 @@ public class MemberService extends ServiceImpl imple entity.setPassword(new Sha256Hash(member.getPassword()).toHex()); entity.setUsername(member.getUsername()); entity.setNickName(member.getUsername()); - entity.setSubjectId(member.getSubjectId()); entity.setEmail(member.getEmail()); memberMapper.insert(entity); return Result.result(200, entity, "注册成功"); @@ -189,7 +199,6 @@ public class MemberService extends ServiceImpl imple entity.setAvatar(member.getAvatar()); entity.setEmail(member.getEmail()); entity.setMobile(member.getMobile()); - entity.setSubjectId(member.getSubjectId()); entity.setNickName(member.getNickName()); memberMapper.updateById(entity); @@ -213,7 +222,7 @@ public class MemberService extends ServiceImpl imple @Override public void updateLastLoginTime(String uid) { MemberEntity member = memberMapper.selectById(uid); - member.setLastLoginTime(DateUtil.getTime()); + member.setLastLoginTime(new Date()); memberMapper.updateById(member); } @@ -237,5 +246,43 @@ public class MemberService extends ServiceImpl imple entity.setPassword(new Sha256Hash(member.getNowPassword()).toHex()); return Result.result(0, null, "修改成功"); } + + @SuppressWarnings("unchecked") + @Transactional(readOnly=true) + @Override + public Page listData(MemberCondition condition) { + Page page = new Page<>(condition.getPageNo(), condition.getPageSize()); + Condition query = Condition.create(); + if(!StringUtils.isEmpty(condition.getMobile())) { + query.eq("mobile", condition.getMobile()); + } + if(!StringUtils.isEmpty(condition.getNickName())) { + query.like("nick_name", condition.getNickName()); + } + if(!StringUtils.isEmpty(condition.getUsername())) { + query.eq("username", condition.getUsername()); + } + return this.selectPage(page, query); + } + + @Transactional(readOnly=false) + @Override + public void reward(String id ,String bookId , Integer rewardPoint, BigDecimal rewardMoney) { + MemberEntity member = memberMapper.selectById(id); + + // 更新记录 + member.setPoint(member.getPoint() + rewardPoint); + member.setAmount(member.getAmount().add(rewardMoney)); + this.updateById(member); + + BookEntity book = iBookService.selectById(bookId); + + // 发送短信 + try { + iSmsService.sendRewardSms(member.getMobile(), member.getUsername(), book.getName(), rewardPoint, rewardMoney); + } catch (ClientException e) { + e.printStackTrace(); + } + } } diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/ISmsService.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/ISmsService.java index e2e59b7..197e260 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/ISmsService.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/ISmsService.java @@ -1,5 +1,7 @@ package com.tamguo.modules.sys.service; +import java.math.BigDecimal; + import com.aliyuncs.exceptions.ClientException; import com.tamguo.common.utils.Result; @@ -7,4 +9,6 @@ public interface ISmsService { public Result sendFindPasswordSms(String mobile) throws ClientException; + public Result sendRewardSms(String mobile ,String name , String bookName , Integer point, BigDecimal money) throws ClientException; + } diff --git a/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/impl/SmsServiceImpl.java b/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/impl/SmsServiceImpl.java index 884ce0c..39612a6 100644 --- a/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/impl/SmsServiceImpl.java +++ b/tamguo-modules-core/src/main/java/com/tamguo/modules/sys/service/impl/SmsServiceImpl.java @@ -1,5 +1,7 @@ package com.tamguo.modules.sys.service.impl; +import java.math.BigDecimal; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -59,4 +61,42 @@ public class SmsServiceImpl implements ISmsService{ return Result.result(501, null, response.getMessage()); } + @Override + public Result sendRewardSms(String mobile , String name ,String bookName , Integer point, BigDecimal money) throws ClientException { + //可自助调整超时时间 + System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); + System.setProperty("sun.net.client.defaultReadTimeout", "10000"); + + //初始化acsClient,暂不支持region化 + IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", SystemConstant.ALIYUN_ACCESS_KEY_ID, SystemConstant.ALIYUN_ACCESS_KEY_SECRET); + DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com"); + IAcsClient acsClient = new DefaultAcsClient(profile); + + //组装请求对象-具体描述见控制台-文档部分内容 + SendSmsRequest request = new SendSmsRequest(); + //必填:待发送手机号 + request.setPhoneNumbers(mobile); + //必填:短信签名-可在短信控制台中找到 + request.setSignName("探果网"); + //必填:短信模板-可在短信控制台中找到 + request.setTemplateCode("SMS_152285431"); + Integer vcode = (int) ((Math.random()*9+1)*100000); + //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 + request.setTemplateParam("{\"name\":\""+vcode+"\"}"); + + //选填-上行短信扩展码(无特殊需求用户请忽略此字段) + //request.setSmsUpExtendCode("90997"); + + //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 + request.setOutId("yourOutId"); + + //hint 此处可能会抛出异常,注意catch + SendSmsResponse response = acsClient.getAcsResponse(request); + if("OK".equals(response.getCode())) { + cacheService.setObject(SystemConstant.ALIYUN_MOBILE_SMS_PREFIX + mobile , vcode.toString() , 10 * 60); + return Result.result(200, null, "发送成功"); + } + return Result.result(501, null, response.getMessage()); + } + } diff --git a/tamguo-oms/src/main/java/com/tamguo/modules/tiku/web/MemberController.java b/tamguo-oms/src/main/java/com/tamguo/modules/tiku/web/MemberController.java new file mode 100644 index 0000000..5acec19 --- /dev/null +++ b/tamguo-oms/src/main/java/com/tamguo/modules/tiku/web/MemberController.java @@ -0,0 +1,89 @@ +package com.tamguo.modules.tiku.web; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import com.baomidou.mybatisplus.mapper.Condition; +import com.baomidou.mybatisplus.plugins.Page; +import com.tamguo.common.utils.Result; +import com.tamguo.modules.book.model.BookCategoryEntity; +import com.tamguo.modules.book.model.BookEntity; +import com.tamguo.modules.book.service.IBookCategoryService; +import com.tamguo.modules.book.service.IBookService; +import com.tamguo.modules.member.model.MemberEntity; +import com.tamguo.modules.member.model.condition.MemberCondition; +import com.tamguo.modules.member.service.IMemberService; + +@Controller +@RequestMapping(value="tiku/member") +public class MemberController { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + IMemberService iMemberService; + @Autowired + IBookService iBookService; + @Autowired + IBookCategoryService iBookCategoryService; + + @RequestMapping(value="list") + public ModelAndView list(ModelAndView model) { + model.setViewName("modules/tiku/member/list"); + return model; + } + + @RequestMapping(value="listData" , method=RequestMethod.POST) + @ResponseBody + public Map listData(MemberCondition condition){ + Page page = iMemberService.listData(condition); + return Result.jqGridResult(page.getRecords(), page.getTotal(), page.getSize(), page.getCurrent(), page.getPages()); + } + + @RequestMapping(value="reward" , method=RequestMethod.GET) + public ModelAndView reward(String id , ModelAndView model) { + model.setViewName("modules/tiku/member/reward"); + model.addObject("member", iMemberService.selectById(id)); + return model; + } + + @SuppressWarnings("unchecked") + @RequestMapping(value="bookTreeData",method=RequestMethod.POST) + @ResponseBody + public List bookTreeData(String memberId){ + List bookList = iBookService.selectList(Condition.create().eq("owner", memberId).orderDesc(Arrays.asList("create_date"))); + if(!CollectionUtils.isEmpty(bookList)) { + for(int i=0 ; i -登录 - Repas OMS +登录 - TamGuo OMS @@ -30,7 +30,7 @@
    @@ -118,7 +118,7 @@ - + \ No newline at end of file diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/index.html b/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/index.html index 398c28a..5d9b27f 100644 --- a/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/index.html +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/index.html @@ -3,7 +3,7 @@ content="IE=edge"> -章节管理 - JeeSite Demo +章节管理 - TamGuo OMS @@ -73,7 +73,7 @@ var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData: win.page(); }} }, tree, loadTree = function(){ - js.ajaxSubmit(ctx + "tiku/book/treeData?___t=" + new Date().getTime(), {ctrlPermi:'2'/*1拥有的权限 2管理的权限*/}, function(data){ + js.ajaxSubmit(ctx + "tiku/knowpoint/treeData?___t=" + new Date().getTime(), {ctrlPermi:'2'/*1拥有的权限 2管理的权限*/}, function(data){ tree = $.fn.zTree.init($("#tree"), setting, data);//.expandAll(true); // 展开第一级节点 /* var nodes = tree.getNodesByParam("level", 0); diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/list.html b/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/list.html index 175127c..86914e2 100644 --- a/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/list.html +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/chapter/list.html @@ -7,7 +7,7 @@ content="IE=edge"> -章节管理 - JeeSite Demo +章节管理 - Tamguo OMS diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/course/add.html b/tamguo-oms/src/main/resources/templates/modules/tiku/course/add.html index 393c041..1dbbabc 100644 --- a/tamguo-oms/src/main/resources/templates/modules/tiku/course/add.html +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/course/add.html @@ -3,7 +3,7 @@ content="IE=edge"> -科目管理 - JeeSite Demo +科目管理 - Tamguo @@ -57,7 +57,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
    diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/course/update.html b/tamguo-oms/src/main/resources/templates/modules/tiku/course/update.html index a2f40dd..7dc60a9 100644 --- a/tamguo-oms/src/main/resources/templates/modules/tiku/course/update.html +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/course/update.html @@ -3,7 +3,7 @@ content="IE=edge"> -科目管理 - JeeSite Demo +科目管理 - Tamguo diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/member/list.html b/tamguo-oms/src/main/resources/templates/modules/tiku/member/list.html new file mode 100644 index 0000000..3c227b0 --- /dev/null +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/member/list.html @@ -0,0 +1,104 @@ + +会员管理 - Tamguo OMS + + + + + + + + + + + + + +
    +
    +
    +
    + 会员管理 +
    +
    + 查询 +
    +
    +
    + +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tamguo-oms/src/main/resources/templates/modules/tiku/member/reward.html b/tamguo-oms/src/main/resources/templates/modules/tiku/member/reward.html new file mode 100644 index 0000000..225d3e7 --- /dev/null +++ b/tamguo-oms/src/main/resources/templates/modules/tiku/member/reward.html @@ -0,0 +1,151 @@ + +奖励积分 - TamGuo OMS + + + + + + + + + + + + + +
    +
    +
    +
    + 会员奖励积分 +
    +
    + +
    +
    +
    + + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    会员书籍
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + \ No newline at end of file